diff --git a/assets/Game/prefabs/SlotScene.prefab b/assets/Game/prefabs/SlotScene.prefab index 0d3246f..85f3e2d 100644 --- a/assets/Game/prefabs/SlotScene.prefab +++ b/assets/Game/prefabs/SlotScene.prefab @@ -2318,7 +2318,7 @@ "__id__": 88 }, "asset": { - "__uuid__": "5347ef5a-5046-4c36-be8f-bb27dc475204", + "__uuid__": "a4cde73d-6ad9-430a-9b55-6f16ff2da91e", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -2329,7 +2329,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "c0g1DHTXxF0IdO5eFyI83V", + "fileId": "71zt3wa3RLJqAZ/u9CWXFG", "prefabRootNode": { "__id__": 1 }, @@ -2355,7 +2355,7 @@ "__id__": 91 }, "asset": { - "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", + "__uuid__": "e50482a2-447d-46ce-91f0-488953dda75c", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -2366,7 +2366,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "d2YXq7LalEF60rKZIA6LuD", + "fileId": "34ABZOccdHoKE3vNWNgTtr", "prefabRootNode": { "__id__": 1 }, @@ -2392,7 +2392,7 @@ "__id__": 94 }, "asset": { - "__uuid__": "a4cde73d-6ad9-430a-9b55-6f16ff2da91e", + "__uuid__": "f8999765-2b3b-4d22-8a12-dd5165927db7", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -2403,7 +2403,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "32mbMDKC1POZ2jeQfjIYMx", + "fileId": "fbKTuJfC1OSrr3gdmxdxtE", "prefabRootNode": { "__id__": 1 }, @@ -2429,7 +2429,7 @@ "__id__": 97 }, "asset": { - "__uuid__": "2c62af7c-9b93-48ff-bd76-a2dfd799659e", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -2440,7 +2440,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "c37rxnLwBLS6tkALmzBSOW", + "fileId": "3cOawSdLNLFYE+vW7CBMzQ", "prefabRootNode": { "__id__": 1 }, @@ -2466,7 +2466,7 @@ "__id__": 100 }, "asset": { - "__uuid__": "09ec107b-880c-45b8-ad98-84592e637c0b", + "__uuid__": "2c62af7c-9b93-48ff-bd76-a2dfd799659e", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -2477,7 +2477,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "19LxibMKxMcoe8IEkNkNed", + "fileId": "1aZp6l9O1IpI08Z/inPDzx", "prefabRootNode": { "__id__": 1 }, @@ -2512,7 +2512,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "d755D3m1RBMrZWZiwBb1jo" + "fileId": "c3DCsUDulCOLtUz4BCFZ2F" }, { "__type__": "cc.PrefabInfo", @@ -2522,7 +2522,7 @@ "asset": { "__id__": 0 }, - "fileId": "d9TOZkH0FFmbsP0zeUOZA7", + "fileId": "d0j1XKhsJOIqhz8znCqPre", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -2553,7 +2553,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "98cBDG04hEwKT2QxYjdAhv" + "fileId": "bfTE8xvKxFIqjL1sg3+bUC" }, { "__type__": "cc.PrefabInfo", @@ -2563,7 +2563,7 @@ "asset": { "__id__": 0 }, - "fileId": "fbMJTIdpBH3aj8F9yyTr/s", + "fileId": "32yT7EDXdHHLc9et6denx/", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -2594,7 +2594,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "eapTRL0ZhJHZz5Qx5K7iYW" + "fileId": "eavcXY0k5N/bfR2E8UjpSa" }, { "__type__": "45522uB1sdFu4FJAojtnha4", @@ -2619,7 +2619,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "cdykUJkT1KQIDjD5h7wnRR" + "fileId": "55F6qH7llGfrlB5wZtIUmN" }, { "__type__": "5fd13+Xa69CZogb3Q/F1lnC", @@ -2792,7 +2792,7 @@ "asset": { "__id__": 0 }, - "fileId": "d3zul1w8ZIXKbwzlSf6Nas", + "fileId": "c6pXHCg+FATo1h6emiyc6P", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -2982,7 +2982,7 @@ "__id__": 123 }, "asset": { - "__uuid__": "a4cde73d-6ad9-430a-9b55-6f16ff2da91e", + "__uuid__": "a0fd2fb6-af52-4b80-a9fc-93d543fa2acd", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -2993,7 +2993,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "bfScW5v49GiKVd7vi+YuIq", + "fileId": "d9J2bYYJxE0JeYLFBnskkI", "prefabRootNode": { "__id__": 1 }, @@ -3019,7 +3019,7 @@ "__id__": 126 }, "asset": { - "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", + "__uuid__": "a0fd2fb6-af52-4b80-a9fc-93d543fa2acd", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3030,7 +3030,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "b1UbOpq/JIF4KWkCCKsFQ9", + "fileId": "2979wsXhRBlK0q1tIQ/49R", "prefabRootNode": { "__id__": 1 }, @@ -3056,7 +3056,7 @@ "__id__": 129 }, "asset": { - "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", + "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3067,7 +3067,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "1bUp9rYw1GQ7VUw7f1oxoG", + "fileId": "a82m7Xw81ENb6JtSa2WuoL", "prefabRootNode": { "__id__": 1 }, @@ -3093,7 +3093,7 @@ "__id__": 132 }, "asset": { - "__uuid__": "a0fd2fb6-af52-4b80-a9fc-93d543fa2acd", + "__uuid__": "c2de34b1-99b2-49c4-a6ec-44eeb63b12cd", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3104,7 +3104,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "d3rVd2qUtCM6IKsMgtGgrD", + "fileId": "f9TjX/uvlN9rnGLTsa2jke", "prefabRootNode": { "__id__": 1 }, @@ -3130,7 +3130,7 @@ "__id__": 135 }, "asset": { - "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", + "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3141,7 +3141,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "9eipy8ItdFKb7XPVk9AY7U", + "fileId": "0eNLxiWkBPq6Eoewj+xTRW", "prefabRootNode": { "__id__": 1 }, @@ -3176,7 +3176,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "99eotMh1BItqRmKN4O+Pey" + "fileId": "949TMsTVpP87gxk5ZcnV1A" }, { "__type__": "cc.PrefabInfo", @@ -3186,7 +3186,7 @@ "asset": { "__id__": 0 }, - "fileId": "99kXboghdIibK103f417RL", + "fileId": "73VMPXeSRJnrZdGbm+grQ0", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -3217,7 +3217,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "56w8yOFCpHvYV9v+r1ENcB" + "fileId": "6bgs32NFdAc46LKuPCE0Ol" }, { "__type__": "cc.PrefabInfo", @@ -3227,7 +3227,7 @@ "asset": { "__id__": 0 }, - "fileId": "c6uA/Tu9RAdKGovoMLVlWk", + "fileId": "d8J7zKJvlKJK6VC9uwFKfh", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -3258,7 +3258,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "d6etHGcK9OvLeDEx/O8Mci" + "fileId": "a5quEfKPxA5JyEQQ2JQaCx" }, { "__type__": "45522uB1sdFu4FJAojtnha4", @@ -3283,7 +3283,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "56maxSFMVOsK6tVux4plhX" + "fileId": "3axgyCSqFMkY08BO6KYxzT" }, { "__type__": "cc.PrefabInfo", @@ -3293,7 +3293,7 @@ "asset": { "__id__": 0 }, - "fileId": "27OnvgnK9Hdr8+OEkIJwmt", + "fileId": "f2EfXsDg1JrI7P5pwfC4j9", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -3483,7 +3483,7 @@ "__id__": 152 }, "asset": { - "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", + "__uuid__": "f8999765-2b3b-4d22-8a12-dd5165927db7", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3494,7 +3494,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "70uUB0fLtIkYKghbSg5ZrY", + "fileId": "b5SDJuiWNET6dXCPlKUvaB", "prefabRootNode": { "__id__": 1 }, @@ -3520,7 +3520,7 @@ "__id__": 155 }, "asset": { - "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", + "__uuid__": "31e7557b-3a6b-4d2d-9daf-5a5e4b522638", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3531,7 +3531,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "53tew8mmZL+KQNBenCxVxB", + "fileId": "e6LUB05XpC4Y0231wc414o", "prefabRootNode": { "__id__": 1 }, @@ -3557,7 +3557,7 @@ "__id__": 158 }, "asset": { - "__uuid__": "2c62af7c-9b93-48ff-bd76-a2dfd799659e", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3568,7 +3568,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "ceQr22WBFDAIgVJy/yGHQv", + "fileId": "c8Yo2PT8VEJ4mcFmuLqeUF", "prefabRootNode": { "__id__": 1 }, @@ -3594,7 +3594,7 @@ "__id__": 161 }, "asset": { - "__uuid__": "a4cde73d-6ad9-430a-9b55-6f16ff2da91e", + "__uuid__": "e50482a2-447d-46ce-91f0-488953dda75c", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3605,7 +3605,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "46eTb1sG9KL676zkuX6Aea", + "fileId": "35egUri4NKLa2oU+LUgRfh", "prefabRootNode": { "__id__": 1 }, @@ -3631,7 +3631,7 @@ "__id__": 164 }, "asset": { - "__uuid__": "55a879b3-2ccd-48e3-bd43-c984e67f1637", + "__uuid__": "2c62af7c-9b93-48ff-bd76-a2dfd799659e", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3642,7 +3642,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "0av4cPR/xMLJ/lNUigQPK7", + "fileId": "5e/ZAOpg9LWKIakOVQldQn", "prefabRootNode": { "__id__": 1 }, @@ -3677,7 +3677,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "50rdf8FAtPVL3JR1NQ2q9w" + "fileId": "33+43UBhhPApcy/gCjfAyO" }, { "__type__": "cc.PrefabInfo", @@ -3687,7 +3687,7 @@ "asset": { "__id__": 0 }, - "fileId": "c8i2ay/T9PyJp9N6fmzX0f", + "fileId": "fccZz2AVFCIoCp8Mx4fdOP", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -3718,7 +3718,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "978+GDLkhNWpDW8HVzEYg0" + "fileId": "41Xfg+e35M/q6uDQ2Mn1S9" }, { "__type__": "cc.PrefabInfo", @@ -3728,7 +3728,7 @@ "asset": { "__id__": 0 }, - "fileId": "0cJBW+EBBKJ5bNBSb+JYa2", + "fileId": "1chWVm4IxEgoVHNNdPa4ZS", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -3759,7 +3759,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "14bN305RND5p0IBJDUySLa" + "fileId": "32TuTvHTtBW73trujQiYVs" }, { "__type__": "45522uB1sdFu4FJAojtnha4", @@ -3784,7 +3784,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "d0xfeNbilIL7ohPChB/uuY" + "fileId": "30VRehNSlIaILdpcmhMf/c" }, { "__type__": "cc.PrefabInfo", @@ -3794,7 +3794,7 @@ "asset": { "__id__": 0 }, - "fileId": "e3sfxhb1hPeJAQmhj+ZZY1", + "fileId": "f15515UpxLiJYD1mX+hTy8", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -3984,7 +3984,7 @@ "__id__": 181 }, "asset": { - "__uuid__": "e50482a2-447d-46ce-91f0-488953dda75c", + "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -3995,7 +3995,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "42wS7WdhhMHZVdKotSGzJg", + "fileId": "60bKRtZ9JGtY3x143eAqMx", "prefabRootNode": { "__id__": 1 }, @@ -4021,7 +4021,7 @@ "__id__": 184 }, "asset": { - "__uuid__": "5347ef5a-5046-4c36-be8f-bb27dc475204", + "__uuid__": "f8999765-2b3b-4d22-8a12-dd5165927db7", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4032,7 +4032,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "behflXFUxE84hHGH1L8fTV", + "fileId": "697wJTZ5VPK6y5L24lVqDi", "prefabRootNode": { "__id__": 1 }, @@ -4058,7 +4058,7 @@ "__id__": 187 }, "asset": { - "__uuid__": "e50482a2-447d-46ce-91f0-488953dda75c", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4069,7 +4069,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "ebduDGvTBCUYHdW9cAGUgL", + "fileId": "2aY9G7lUxPiLUNBOlpg+PN", "prefabRootNode": { "__id__": 1 }, @@ -4095,7 +4095,7 @@ "__id__": 190 }, "asset": { - "__uuid__": "c2de34b1-99b2-49c4-a6ec-44eeb63b12cd", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4106,7 +4106,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "641alB1JpLpZ+742HmcNFc", + "fileId": "f1aMqhktBDQpDMiLKuHYF3", "prefabRootNode": { "__id__": 1 }, @@ -4132,7 +4132,7 @@ "__id__": 193 }, "asset": { - "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4143,7 +4143,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "09mKDonn1MNo3Awn90gvST", + "fileId": "40N+BOqddFG5fmIgsjgMCH", "prefabRootNode": { "__id__": 1 }, @@ -4178,7 +4178,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "b9jlOSzWxNBKFG2rl+oipm" + "fileId": "91bLTTNelDZI/T6DWl9WRa" }, { "__type__": "cc.PrefabInfo", @@ -4188,7 +4188,7 @@ "asset": { "__id__": 0 }, - "fileId": "b0lnzzqNFHFomF5HhWjZzL", + "fileId": "e4lhd3opdN6qIuQdyi/w5M", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -4219,7 +4219,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "2e2514indHsYtvgvQyjWFx" + "fileId": "4dN6lJwnRL34JIpnWseZat" }, { "__type__": "cc.PrefabInfo", @@ -4229,7 +4229,7 @@ "asset": { "__id__": 0 }, - "fileId": "2a6eDZe/RKkaFqRkoLqBVT", + "fileId": "58M/bZ/M9OqJtug78K3eVI", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -4260,7 +4260,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "1181ECx1dMOIjw1kXOcP6U" + "fileId": "acmyit+vhN+reeU8hOLwkA" }, { "__type__": "45522uB1sdFu4FJAojtnha4", @@ -4285,7 +4285,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "0cq5DsAKtPkJGb0Gzg0pU1" + "fileId": "31KFIwsUtM5ofW/aPbujrI" }, { "__type__": "cc.PrefabInfo", @@ -4295,7 +4295,7 @@ "asset": { "__id__": 0 }, - "fileId": "92d0Y1FzVHV6I2MuLdpGPo", + "fileId": "394hQxnqZHapKNKPVrADO4", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -4485,7 +4485,7 @@ "__id__": 210 }, "asset": { - "__uuid__": "a4cde73d-6ad9-430a-9b55-6f16ff2da91e", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4496,7 +4496,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "1aesCdNxpA+JoAXMSDwFWU", + "fileId": "b7bx6f0v5DeKaj2UjbB+Hk", "prefabRootNode": { "__id__": 1 }, @@ -4522,7 +4522,7 @@ "__id__": 213 }, "asset": { - "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", + "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4533,7 +4533,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "56yNhh9dZJnqTWBVQv7UHL", + "fileId": "e4h9WGiO1D65jazClkuz4e", "prefabRootNode": { "__id__": 1 }, @@ -4570,7 +4570,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "19WupQVF5PG4PkbnRZMgKF", + "fileId": "c3auXt415IXYs1nd8AwoH0", "prefabRootNode": { "__id__": 1 }, @@ -4596,7 +4596,7 @@ "__id__": 219 }, "asset": { - "__uuid__": "31e7557b-3a6b-4d2d-9daf-5a5e4b522638", + "__uuid__": "c2de34b1-99b2-49c4-a6ec-44eeb63b12cd", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4607,7 +4607,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "3e04Nx4GFBZabvLQcqot36", + "fileId": "b4coFMyzdMFIvsr+hs1feY", "prefabRootNode": { "__id__": 1 }, @@ -4633,7 +4633,7 @@ "__id__": 222 }, "asset": { - "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", + "__uuid__": "31e7557b-3a6b-4d2d-9daf-5a5e4b522638", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4644,7 +4644,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "7dq3prf6ZBzYE4ipYwFyle", + "fileId": "4eCuo+iZdMk6Xj+QydyDyJ", "prefabRootNode": { "__id__": 1 }, @@ -4679,7 +4679,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "639VawBMNKx6uF7vOsKb+Z" + "fileId": "95GF2Jtr5BhLb8c4GNFIB3" }, { "__type__": "cc.PrefabInfo", @@ -4689,7 +4689,7 @@ "asset": { "__id__": 0 }, - "fileId": "28tP2QbRJCP5xwXohjDWBT", + "fileId": "493GJ5nv1KXq07rB2d0ZL2", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -4720,7 +4720,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "30Z+lsCA9H3pB85RbHEzQC" + "fileId": "e2Xzqw6D5KtIMd12ojlWhI" }, { "__type__": "cc.PrefabInfo", @@ -4730,7 +4730,7 @@ "asset": { "__id__": 0 }, - "fileId": "b8KtFQqjdFeYKTpyb/tb2V", + "fileId": "11AYv1qUZJXKH959WJP/pz", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -4761,7 +4761,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "2bvC/DJwpAjrrwoOkI7W5D" + "fileId": "53GwLjFMBM5q6gi2c/6mSF" }, { "__type__": "45522uB1sdFu4FJAojtnha4", @@ -4786,7 +4786,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "3a4cgOb/hMEb4wPIkEZ3ay" + "fileId": "59DvJJtvZO0bSgnCMptdOi" }, { "__type__": "cc.PrefabInfo", @@ -4796,7 +4796,7 @@ "asset": { "__id__": 0 }, - "fileId": "bd00gQGLZHT75fj5zefo2S", + "fileId": "cdFmMsAuxPqIbNaknQDCpY", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -4986,7 +4986,7 @@ "__id__": 239 }, "asset": { - "__uuid__": "a4cde73d-6ad9-430a-9b55-6f16ff2da91e", + "__uuid__": "e218006e-19e0-486f-b9db-e13d4c1f6cad", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -4997,7 +4997,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "55/9Mm725NcoWEo6KlRyMf", + "fileId": "4c7m3Z3QtO1ZqvAan9KV2M", "prefabRootNode": { "__id__": 1 }, @@ -5023,7 +5023,7 @@ "__id__": 242 }, "asset": { - "__uuid__": "a0fd2fb6-af52-4b80-a9fc-93d543fa2acd", + "__uuid__": "f8999765-2b3b-4d22-8a12-dd5165927db7", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -5034,7 +5034,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "13E250vpdJsow6gHE6zqGq", + "fileId": "d0C5ORfU9Kjpq9xnW/v3qJ", "prefabRootNode": { "__id__": 1 }, @@ -5060,7 +5060,7 @@ "__id__": 245 }, "asset": { - "__uuid__": "a185ad99-a791-4309-9851-549c756647b9", + "__uuid__": "5347ef5a-5046-4c36-be8f-bb27dc475204", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -5071,7 +5071,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "51LaaCfZFAb7GmSP97KXOM", + "fileId": "d2mlxHd2pFe5+Fp6O2qo37", "prefabRootNode": { "__id__": 1 }, @@ -5097,7 +5097,7 @@ "__id__": 248 }, "asset": { - "__uuid__": "09ec107b-880c-45b8-ad98-84592e637c0b", + "__uuid__": "79c428b2-5899-404c-8495-991b407ef71b", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -5108,7 +5108,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "76aJ1Lrz5NnYmq8ydDq396", + "fileId": "76W3nMd+9PRKF38QgdHyhK", "prefabRootNode": { "__id__": 1 }, @@ -5134,7 +5134,7 @@ "__id__": 251 }, "asset": { - "__uuid__": "c2de34b1-99b2-49c4-a6ec-44eeb63b12cd", + "__uuid__": "e50482a2-447d-46ce-91f0-488953dda75c", "__expectedType__": "cc.Prefab" }, "fileId": "fchELCmEtHhb3lT1fagDGR", @@ -5145,7 +5145,7 @@ }, { "__type__": "cc.PrefabInstance", - "fileId": "10MtQez1xMtpEVZezWfAJ0", + "fileId": "5ashrYfDxBOZIF3jVuXXOJ", "prefabRootNode": { "__id__": 1 }, @@ -5180,7 +5180,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "eafNpUkxdN5bxpV9Tfl6nM" + "fileId": "30y3sZ1xhCKbqBYL/1bm4L" }, { "__type__": "cc.PrefabInfo", @@ -5190,7 +5190,7 @@ "asset": { "__id__": 0 }, - "fileId": "75vZNEoxVOQZ7vw7OtzxML", + "fileId": "b5GEtsj45LRI/tnrkBov1p", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -5221,7 +5221,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "78IGbgdedLOZAtd/4IqNSP" + "fileId": "f09dNYPLxHWZgXL/c14ymM" }, { "__type__": "cc.PrefabInfo", @@ -5231,7 +5231,7 @@ "asset": { "__id__": 0 }, - "fileId": "22m4NvAfJCIYDP2bgbVcTZ", + "fileId": "027cAPhGBAxovRNlWUDrnW", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -5262,7 +5262,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "a1Eg6Ml5JPQ618WKNKQ+s1" + "fileId": "f6PE196H1Jgr4OJW4fsMa8" }, { "__type__": "45522uB1sdFu4FJAojtnha4", @@ -5287,7 +5287,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "a1HUbhVlNBOJ85X5B7GavD" + "fileId": "a7NabZ3vFN4bEQOW+KP6Id" }, { "__type__": "cc.PrefabInfo", @@ -5297,7 +5297,7 @@ "asset": { "__id__": 0 }, - "fileId": "59+NI/yJROSISMbiaX9qbw", + "fileId": "26RLG6ziVEULy9OZlVcfHi", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -5322,7 +5322,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "4fIWUH5MhE7I3BomdehGxz" + "fileId": "31ybn906hGw6DSts0l2y30" }, { "__type__": "cc.UITransform", @@ -5350,7 +5350,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "e6kZ082o9MFJWYJiGPNuaJ" + "fileId": "2cDox1xyZFy7JaYoT2bs6M" }, { "__type__": "cc.Graphics", @@ -5396,7 +5396,7 @@ }, { "__type__": "cc.CompPrefabInfo", - "fileId": "59gAW7vjBC4JWm8J71G5x7" + "fileId": "cbBCcrPkRDNJt2C83BbKC7" }, { "__type__": "cc.PrefabInfo", @@ -5406,7 +5406,7 @@ "asset": { "__id__": 0 }, - "fileId": "b4aM4Cg7REDbhEJrrnAodX", + "fileId": "d5tHKU53RDIrWqKbERhjd1", "instance": null, "targetOverrides": null, "nestedPrefabInstanceRoots": null @@ -5493,7 +5493,7 @@ "__id__": 284 } ], - "_active": false, + "_active": true, "_components": [ { "__id__": 288 @@ -5540,7 +5540,7 @@ "__id__": 277 }, "_children": [], - "_active": true, + "_active": false, "_components": [ { "__id__": 279 @@ -17465,8 +17465,8 @@ "__prefab": { "__id__": 796 }, - "rotateSpine": { - "__id__": 766 + "rotateNode": { + "__id__": 763 }, "_id": "" }, diff --git a/assets/Game/scripts/SlotBar.ts b/assets/Game/scripts/SlotBar.ts index ee401e4..b45d19b 100644 --- a/assets/Game/scripts/SlotBar.ts +++ b/assets/Game/scripts/SlotBar.ts @@ -354,18 +354,6 @@ export class SlotBar extends Component { openHistory() { if (!this.tweenIsEnd) return; - // let url = getHistoryUrl(); - // window.open(url, '_blank'); - // return; - - // AudioManager.instance.playSFX('Common_Button_Click'); - // let param = "history"; - // let viewNode = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre); - - // viewNode.setPosition(v3(0, -view.getVisibleSize().height, 0)); - - // this.MaskNode.addChild(viewNode); - // viewNode.getComponent(webView).open(param, this.curBet); let history = instantiate(this.pfb_history); this.MaskNode.addChild(history); @@ -733,9 +721,6 @@ export class SlotBar extends Component { this.setBtnEnable(this.addBtn, false); this.setBtnEnable(this.autoBtn, false); this.setBtnEnable(this.menuBtn, false); - // 正确获取五分钟后的时间戳(单位:秒)写法如下: - // Math.floor((Date.now() + 5 * 60 * 1000) / 1000) - // 解释:Date.now() 获取当前毫秒数,5 * 60 * 1000 表示五分钟的毫秒数,相加后再除以1000转为秒,最后用Math.floor取整。 } protected onDestroy(): void { this.autoBtn.off(Node.EventType.TOUCH_START, this.autoAin, this); diff --git a/assets/Game/scripts/SlotGame.ts b/assets/Game/scripts/SlotGame.ts index 76685f1..8776dc8 100644 --- a/assets/Game/scripts/SlotGame.ts +++ b/assets/Game/scripts/SlotGame.ts @@ -673,21 +673,6 @@ export class SlotGame extends Component { this.normalWinLayout.updateLayout(); } - // 播放动画效果 - // if (isFirstWin) { - // this.winTypeAni.play('Marquee_in_animation'); - // this.winTypeParticle.play(); - // this.winTypeAni.once(Animation.EventType.FINISHED, () => { - // this.winTypeAni.play('Marquee_loop_animation'); - // }); - // } else { - // this.winTypeAni.play('Marquee_win_animation'); - // this.winTypeParticle.play(); - // this.winTypeAni.once(Animation.EventType.FINISHED, () => { - // this.winTypeAni.play('Marquee_loop_animation'); - // }); - // } - } checkWinType(score: number) { @@ -769,18 +754,6 @@ export class SlotGame extends Component { } } - playNormalMultiAni(isSwitch: boolean) { - // if (isSwitch) { - // this.normalMultiAni.play('NM_multiVFX_switch_animation'); - // } else { - // this.normalMultiAni.play('NM_multiVFX_win_animation'); - // } - } - - // playFreeMultiAni() { - // this.freeMultiAni.play('FS_multiVFX_win_animation'); - // } - showReadyHand(rollerId?: number) { if (this.rollerManager.getIsManualStop() || this.rollerManager.getIsFastSpin()) return; this.readyHand.active = true; diff --git a/assets/Game/scripts/SlotScene.ts b/assets/Game/scripts/SlotScene.ts index 7d1b341..d427739 100644 --- a/assets/Game/scripts/SlotScene.ts +++ b/assets/Game/scripts/SlotScene.ts @@ -7,7 +7,6 @@ import { SLOT_GAME_EVENT, SYS_GIFT, WIN_TYPE, - TestData, } from "./game/Define"; import { SlotBar } from "./SlotBar"; import { SlotGame } from "./SlotGame"; @@ -339,11 +338,8 @@ export class SlotScene extends Component { } this.SysGift.handleSysInfoFreeCount(count); } - // if (frb?.Ongoing?.Frn - 1 != GameDataManager.instance.frb?.Ongoing?.Frn) { - // this.SysGift.handleSysInfoFreeCount(this.spinInfo.Frb.Ongoing.Frn); - // } } else { - this.spinInfo = TestData; + this.spinInfo = null; } if (this.TipPanel.getHasTip()) { @@ -587,11 +583,6 @@ export class SlotScene extends Component { this.spinData = this.spinInfo.Data; // 改变图标框和图标 this.slotGame.changeIconAndFrameType(this.spinData); - if (this.gameState.isInFreeSpin) { - // this.slotGame.playFreeMultiAni(); - } else { - this.slotGame.playNormalMultiAni(true); - } // 创建新图标 this.slotGame.createNewIconTop(this.spinData); } catch (error) { diff --git a/assets/Game/scripts/game/BaseRoller.ts b/assets/Game/scripts/game/BaseRoller.ts index 04b2f35..66ecfe2 100644 --- a/assets/Game/scripts/game/BaseRoller.ts +++ b/assets/Game/scripts/game/BaseRoller.ts @@ -1,5 +1,5 @@ import { _decorator, Component, Mask, Node, tween, Tween, UITransform, v3, Vec3 } from "cc"; -import { ICON_HEIGHT, ICON_MAP, ICON_STATE, ICON_WIDTH, ROLLER_EVENT } from "./Define"; +import { ICON_HEIGHT, ICON_STATE, ICON_WIDTH, ROLLER_EVENT } from "./Define"; import { IconFactory } from "./IconFactory"; import { EDITOR } from "cc/env"; import { Icon } from "./Icon"; diff --git a/assets/Game/scripts/game/BigWinUI.ts b/assets/Game/scripts/game/BigWinUI.ts index f71972f..374d82a 100644 --- a/assets/Game/scripts/game/BigWinUI.ts +++ b/assets/Game/scripts/game/BigWinUI.ts @@ -42,11 +42,6 @@ export class BigWinUI extends Component { bigwinLabelSprite: Sprite | null = null; megawinLabelSprite: Sprite | null = null; supermegawinLabelSprite: Sprite | null = null; - // 添加金币特效节点引用 - // bwEffectNode: Node | null = null; - // mewEffectNode: Node | null = null; - // smwEffectNode: Node | null = null; - // currentEffectNode: Node | null = null; currentWinType: WIN_TYPE = WIN_TYPE.BIG_WIN; // 当前播放的动画类型 @@ -66,15 +61,6 @@ export class BigWinUI extends Component { this.megawinLabelSprite = this.bigWinUINode.getChildByName('megawinLabel').getComponent(Sprite); this.supermegawinLabelSprite = this.bigWinUINode.getChildByName('supermegawinLabel').getComponent(Sprite); - // let winGoldParticle = this.bigWinUINode.getChildByName('particle'); - // // 获取各个等级的特效节点 - // this.bwEffectNode = winGoldParticle.getChildByName('BIGWIN'); - // this.mewEffectNode = winGoldParticle.getChildByName('MEGAWIN'); - // this.smwEffectNode = winGoldParticle.getChildByName('SUPERMEGAWIN'); - - // 初始时隐藏所有特效 - // this.hideAllEffects(); - this.resetState(); @@ -97,48 +83,6 @@ export class BigWinUI extends Component { this.startScoreAni(); } - // 隐藏所有特效节点 - // private hideAllEffects() { - // if (this.bwEffectNode) this.bwEffectNode.active = false; - // if (this.mewEffectNode) this.mewEffectNode.active = false; - // if (this.smwEffectNode) this.smwEffectNode.active = false; - // this.currentEffectNode = null; - // } - - - // 根据大奖类型显示对应特效 - // private showEffectByType(winType: WIN_TYPE) { - // // 先隐藏当前显示的特效 - // this.hideAllEffects(); - - // // 根据类型显示对应特效 - // let targetNode: Node | null = null; - // switch (winType) { - // case WIN_TYPE.SUPER_MEGA_WIN: - // targetNode = this.smwEffectNode; - // break; - // case WIN_TYPE.MEGA_WIN: - // targetNode = this.mewEffectNode; - // break; - // case WIN_TYPE.BIG_WIN: - // targetNode = this.bwEffectNode; - // break; - // } - - // if (targetNode) { - // targetNode.active = true; - // this.currentEffectNode = targetNode; - - // // 播放该节点下的所有粒子系统 - // const particles = targetNode.getComponentsInChildren(ParticleSystem); - // particles.forEach(particle => { - // particle.stop(); - // particle.clear(); - // particle.play(); - // }); - // } - // } - calculateDynamicTargets() { this.dynamicTargets = []; @@ -189,12 +133,8 @@ export class BigWinUI extends Component { startTime += dt; let progress = Math.min(startTime / this.scrollTime, 1); - // if (this.dynamicTargets.length == 0 && this.winType >= WIN_TYPE.MEGA_WIN) { - // this.currentScore = targetScore; - // } else { let easedProgress = this.easeOutQuad(progress); this.currentScore = startScore + (targetScore - startScore) * easedProgress; - // } this.checkAndPlaySpineAnim(this.currentScore); this.updateScoreLabel(); @@ -304,15 +244,6 @@ export class BigWinUI extends Component { this.currentSpin.setCompleteListener(null); this.currentSpin.setAnimation(0, animName, false); this.playWinLabelAnimation(prefix, state) - // 停止并隐藏特效 - // if (this.currentEffectNode) { - // const particles = this.currentEffectNode.getComponentsInChildren(ParticleSystem); - // particles.forEach(particle => { - // particle.stop(); - // particle.clear(); - // }); - // } - // this.hideAllEffects(); } } @@ -521,16 +452,6 @@ export class BigWinUI extends Component { this.onCloseCallBack(); } - // 停止所有特效 - // if (this.currentEffectNode) { - // const particles = this.currentEffectNode.getComponentsInChildren(ParticleSystem); - // particles.forEach(particle => { - // particle.stop(); - // particle.clear(); - // }); - // } - // this.hideAllEffects(); - this.unscheduleAllCallbacks(); // 清理spine监听器 if (this.bigwinMainSpine) { diff --git a/assets/Game/scripts/game/Define.ts b/assets/Game/scripts/game/Define.ts index 5c52ce6..8d925d4 100644 --- a/assets/Game/scripts/game/Define.ts +++ b/assets/Game/scripts/game/Define.ts @@ -1,45 +1,17 @@ import { ExtrapolationMode } from "cc"; - -export let GAME_STATE = { - IDLE: 0, - ROTATE: 1, - WINNING: 2, - FREE_SPIN: 3, -} - - -export let ROWS = [3, 4, 3]; -export let COL = 4; - export let ICON_WIDTH = 165; export let ICON_HEIGHT = 145; -export let ICON_MAP = { - 0: "WILD", - 1: "SCATTER", - 2: "黄色云朵", - 3: "紫色星球", - 4: "红色星球", - 5: "蓝色火山", - 6: "紫色水母", - 7: "绿色章鱼", - 8: "A", - 9: "K", - 10: "Q", - 11: "J", - 12: "10", -} - // 图标赔率 export let ICON_RATE = { 0: [0, 0, 0, 0], // Wild 1: [0, 0, 0, 0], // Scatter - 2: [80, 60, 40, 30], // 黄色云朵 - 3: [70, 50, 25, 20], // 紫色星球 - 4: [60, 40, 25, 10], // 红色星球 - 5: [30, 20, 15, 8], // 蓝色火山 - 6: [15, 12, 10, 6], // 紫色水母 - 7: [15, 12, 10, 6], // 绿色章鱼 + 2: [80, 50, 40, 30], // 肉卷 + 3: [60, 50, 25, 20], // 虾 + 4: [40, 30, 25, 10], // 鱼丸 + 5: [30, 20, 15, 8], // 香菇 + 6: [15, 12, 10, 6], // 玉米 + 7: [15, 12, 10, 6], // 白菜 8: [10, 8, 6, 4], // A 9: [10, 8, 6, 4], // K 10: [4, 3, 2, 1], // Q @@ -135,13 +107,6 @@ export interface FreeSpin { MaxCount: number, // 总共次数 } -export interface CrossSymbol { - FrameType: number; // 框类型 - PosFirst: number; // 起始位置 - PosLast: number; // 结束位置 - Color: number; // iconIndex -} - export interface GameInfo { // 当前余额 Balance: number; @@ -223,620 +188,6 @@ export interface GameData { export interface SpinData { -} - -export let gameInfo: any = { - "Balance": 512887215700, - "BetGrade": [ - 10000, - 20000, - 30000, - 40000, - 50000, - 60000, - 70000, - 80000, - 90000, - 100000, - 200000, - 300000, - 400000, - 500000, - 600000, - 700000, - 800000, - 900000, - 1000000, - 2000000, - 3000000, - 4000000, - 5000000, - 6000000, - 7000000, - 8000000, - 9000000, - 10000000, - 15000000, - 20000000, - 25000000, - 30000000, - 35000000, - 40000000, - 45000000, - 50000000 - ], - "Data": { - "AllScore": 0, - "Score": 0, - "SpinScore": 0, - "Data": null, - "Remove": null, - "HitLine": null, - "HitBlock": null, - "DataType": null, - "Mode": 0, - "FreeSpin": null, - "Bet": 10000, - "Balance": 0, - "WinMultiPlier": 1, - "CroSymbols": { - "1": { - "FrameType": 1, - "PosFirst": 5, - "PosLast": 6, - "Color": 4 - }, - "2": { - "FrameType": 0, - "PosFirst": 8, - "PosLast": 9, - "Color": 3 - }, - "3": { - "FrameType": 0, - "PosFirst": 11, - "PosLast": 12, - "Color": 7 - }, - "4": { - "FrameType": 0, - "PosFirst": 13, - "PosLast": 14, - "Color": 9 - }, - "5": { - "FrameType": 0, - "PosFirst": 15, - "PosLast": 16, - "Color": 1 - }, - "6": { - "FrameType": 1, - "PosFirst": 17, - "PosLast": 18, - "Color": 10 - }, - "7": { - "FrameType": 1, - "PosFirst": 20, - "PosLast": 21, - "Color": 3 - }, - "8": { - "FrameType": 0, - "PosFirst": 22, - "PosLast": 23, - "Color": 9 - } - }, - "WaysNum": 6400, - "SymbolNumOfReels": [ - 5, - 4, - 4, - 4, - 4, - 5 - ], - "IsEnd": true, - "SymbolWinInfos": null, - "WinPosition": null, - "PanColor": { - "Top": [ - 3, - 6, - 8, - 2 - ], - "Bottom": [ - 5, - 12, - 4, - 9, - 11, - 4, - 4, - 12, - 3, - 3, - 5, - 7, - 7, - 9, - 9, - 1, - 1, - 10, - 10, - 12, - 3, - 3, - 9, - 9, - 11, - 8, - 6, - 10, - 6, - 12 - ] - }, - "PanChanges": null, - "RoundInfo": null, - "ScNum": 0, - "GetGamesTimes": 0, - "ProfitScore": 0, - "Scores": null - } -} - - -// -export let winData: any = { - "Balance": 51602584500, //余额 - "Data": { - "AllScore": 76000, //累积赢分 - "Score": 24000,//本盘赢分 - "SpinScore": 0, //忽略 - "Data": null,//忽略 - "Remove": null,//忽略 - "HitLine": null,//忽略 - "HitBlock": null,//忽略 - "DataType": null,//忽略 - "Mode": 1, //0普通模式 1购买模式 - "FreeSpin": { - "MaxCount": 10, //小游戏总次数 - "LeftCount": 7 //小游戏剩余次数 - }, - "Bet": 10000, //下注 - "Balance": 51602584500, //余额 - "WinMultiPlier": 6, //当前算分的倍率 界面显示的X6倍 - "CroSymbols": {//跨行的符号集 - "1": { - "FrameType": 0, //0:普通框 1:银框 2:金框 3:百搭框 - "PosFirst": 6, - "PosLast": 7, - "Color": 12 - }, - "2": { - "FrameType": 1, - "PosFirst": 8, - "PosLast": 9, - "Color": 6 - }, - "3": { - "FrameType": 1, - "PosFirst": 11, - "PosLast": 12, - "Color": 6 - }, - "4": { - "FrameType": 1, - "PosFirst": 13, - "PosLast": 14, - "Color": 9 - }, - "5": { - "FrameType": 0, - "PosFirst": 18, - "PosLast": 19, - "Color": 6 - }, - "6": { - "FrameType": 1, - "PosFirst": 22, - "PosLast": 23, - "Color": 6 - } - }, - "WaysNum": 10000, - "SymbolNumOfReels": [ //每一根轴上有几个符号,跨行的符号算一个 - 5, - 4, - 4, - 5, - 5, - 5 - ], - "IsEnd": false, //是否为最后一盘 - "SymbolWinInfos": {//赢分信息 - "9": {//9作为key代表symbol的color - "Score": 4000, //中奖分数 - "Ways": 1, //中奖路数 - "SymbolPayoutValue": 8,//赢分对应的符号值,3个多少分,4个多少分,5个多少分 - "BottomSymbols": [ //2维数组,代表赢分的块 - [ - 0 - ], - [ - 5 - ], - [ - 13, - 14 - ] - ], - "BottomPos": [//1维数组,底部代表赢分的块的占领的块索引值 - 0, - 5, - 13, - 14 - ], - "TopPos": [//1维数组,顶部代表赢分的块的占领的块索引值 - 2, - 3 - ], - "Formula": "0.07 x 6",//下注历史使用 - "FormulaDetail": "1.00 / 20 x 8 x 1 x 6",//下注历史使用 - "WinAxisNum": 5//下注历史使用 - } - }, - "WinPosition": {//赢分位置 - "BottomNormal": [//没有变百搭的赢分符号的位置 - 0, - 5 - ], - "BottomSilver": [//变为百搭的赢分符号的位置 - 13, - 14 - ], - }, - "PanColor": {//盘面 - "Top": [//盘面顶部 - 2, - 11, - 9, - 9 - ], - "Bottom": [//盘面底部 - 9, - 8, - 3, - 3, - 3, - 9, - 12, - 12, - 6, - 6, - 11, - 6, - 6, - 9, - 9, - 2, - 10, - 10, - 6, - 6, - 1, - 5, - 6, - 6, - 5, - 11, - 8, - 3, - 3, - 3 - ] - }, - "PanChanges": {//当前盘面相对于上一把盘面的变化 - "CrossSymbolFrameTypeChange": {//crossSymbol符号 银框金框等之间的变化 - "FrameType": 2,//变成金框了 - "PosFirst": 0,//crossSymbol的起始位置 - "PosLast": 3, - },//crossSymbol的结束位置 - "CrossSymbolPosChange": {//crossSymbol符号的位置发生了变化 - "1": { //1的key对应于CroSymbols字段中的key - "OldPos": [//CroSymbols的变化之前的位置 - 5, - 6 - ], - "NewPos": [//CroSymbols的变化之后的位置 - 6, - 7 - ] - }, - "2": { - "OldPos": [ - 7, - 8 - ], - "NewPos": [ - 8, - 9 - ] - } - }, - "CrossSymbolColorChange": {},//crossSymbol符号的color发生了变化 - "BottomNewSymbols": [//此盘每一列新增加的symbol 数据中的值代表color - [ - 9 - ], - [ - 9 - ], - [ - 11 - ], - [], - [], - [] - ], - "TopNewSymbols": []//此局头部新增加的symbol 数据中的值代表color - }, - "RoundInfo": {//回合信息 //下注历史用 - "Current": 2, - "Total": 3 - }, - "ScNum": 1,//下注历史用 - "GetGamesTimes": 0,//下注历史用 - "ProfitScore": 24000,//下注历史用 - "Scores": null//下注历史用 - } -} - -export let TestData = { - "Balance": 512890548700, - "Data": { - "Rid": "67da7b0e3fb9bd4878ff44d2_7_21", - "AllScore": 56000, - "Score": 42000, - "SpinScore": 0, - "Data": null, - "Remove": null, - "HitLine": null, - "HitBlock": null, - "DataType": null, - "Mode": 1, - "FreeSpin": { - "MaxCount": 12, - "LeftCount": 8, - "SpinScore": 0 - }, - "Bet": 10000, - "Balance": 512890548700, - "IsFree": true, - "WinMultiPlier": 6, - "CroSymbols": { - "1": { - "FrameType": 0, - "PosFirst": 7, - "PosLast": 9, - "Color": 8 - }, - "2": { - "FrameType": 1, - "PosFirst": 10, - "PosLast": 12, - "Color": 10 - }, - "3": { - "FrameType": 1, - "PosFirst": 17, - "PosLast": 18, - "Color": 4 - }, - "4": { - "FrameType": 0, - "PosFirst": 20, - "PosLast": 21, - "Color": 3 - }, - "5": { - "FrameType": 1, - "PosFirst": 22, - "PosLast": 23, - "Color": 11 - } - }, - "WaysNum": 8000, - "SymbolNumOfReels": [ - 5, - 4, - 4, - 5, - 4, - 5 - ], - "IsEnd": false, - "SymbolWinInfos": { - "10": { - "Score": 1000, - "Ways": 1, - "SymbolPayoutValue": 2, - "BottomSymbols": [ - [ - 3 - ], - [ - 5 - ], - [ - 10, - 11, - 12 - ], - [ - 15 - ] - ], - "BottomPos": [ - 3, - 5, - 10, - 11, - 12, - 15 - ], - "TopPos": null, - "Formula": "0.02 x 6", - "FormulaDetail": "1.00 / 20 x 2 x 1 x 6", - "WinAxisNum": 4 - }, - "8": { - "Score": 6000, - "Ways": 2, - "SymbolPayoutValue": 6, - "BottomSymbols": [ - [ - 1 - ], - [ - 7, - 8, - 9 - ], - [ - 13 - ], - [ - 14 - ], - [ - 19 - ] - ], - "BottomPos": [ - 1, - 7, - 8, - 9, - 13, - 14, - 19 - ], - "TopPos": null, - "Formula": "0.10 x 6", - "FormulaDetail": "1.00 / 20 x 6 x 2 x 6", - "WinAxisNum": 4 - } - }, - "WinPosition": { - "BottomNormal": [ - 1, - 7, - 8, - 9, - 13, - 14, - 19, - 3, - 5, - 15 - ], - "BottomSpecial": [ - 10, - 11, - 12 - ], - "TopNormal": null - }, - "PanColor": { - "Top": [ - 1, - 9, - 4, - 4 - ], - "Bottom": [ - 5, - 8, - 9, - 10, - 9, - 10, - 6, - 8, - 8, - 8, - 10, - 10, - 10, - 8, - 8, - 10, - 11, - 4, - 4, - 8, - 3, - 3, - 11, - 11, - 4, - 6, - 6, - 5, - 5, - 5 - ] - }, - "PanChanges": { - "CrossSymbolFrameTypeChange": {}, - "CrossSymbolPosChange": { - "1": { - "OldPos": [ - 6, - 7, - 8 - ], - "NewPos": [ - 7, - 8, - 9 - ] - } - }, - "CrossSymbolColorChange": {}, - "BottomNewSymbols": [ - [ - 5, - 8 - ], - [ - 10 - ], - [], - [ - 10 - ], - [], - [] - ], - "TopNewSymbols": [ - 4 - ] - }, - "RoundInfo": { - "Current": 2, - "Total": 3 - }, - "ScNum": 1, - "GetGamesTimes": 0, - "ProfitScore": 42000, - "Scores": null - } + } diff --git a/assets/Game/scripts/game/FeatureBuy.ts b/assets/Game/scripts/game/FeatureBuy.ts index 696e0c7..d5fd913 100644 --- a/assets/Game/scripts/game/FeatureBuy.ts +++ b/assets/Game/scripts/game/FeatureBuy.ts @@ -7,9 +7,6 @@ const { ccclass, property } = _decorator; @ccclass('FeatureBuy') export class FeatureBuy extends Component { - // @property(sp.Skeleton) - // spine: sp.Skeleton = null; - @property(Label) private costLabel: Label = null; @@ -18,11 +15,6 @@ export class FeatureBuy extends Component { show(cost: number, buyMul: number, closeCallback: Function): void { this.isClick = false; - // this.spine.clearTracks(); - // this.spine.setAnimation(0, 'in', false); - // this.spine.setCompleteListener(() => { - // this.spine.setAnimation(0, 'loop', true); - // }) this.costLabel.string = gold2cash(cost * buyMul) this.closeCallBack = closeCallback; @@ -32,23 +24,15 @@ export class FeatureBuy extends Component { if (this.isClick) return; AudioManager.instance.playSFX('Feature_Buy_Start_Sound'); this.isClick = true; - // this.spine.clearTracks(); - // this.spine.setAnimation(0, 'out', true); - // this.spine.setCompleteListener(() => { NodePoolManager.instance.putNodeToPool("FeatureBuy", this.node); this.closeCallBack && this.closeCallBack(); - // }) } onBtnCancel() { if (this.isClick) return; AudioManager.instance.playSFX('Feature_Buy_Cancel_Sound'); this.isClick = true; - // this.spine.clearTracks(); - // this.spine.setAnimation(0, 'out', true); - // this.spine.setCompleteListener(() => { NodePoolManager.instance.putNodeToPool("FeatureBuy", this.node); - // }) } } diff --git a/assets/Game/scripts/game/FreeSpinEnter.ts b/assets/Game/scripts/game/FreeSpinEnter.ts index 132fd60..ace68d4 100644 --- a/assets/Game/scripts/game/FreeSpinEnter.ts +++ b/assets/Game/scripts/game/FreeSpinEnter.ts @@ -75,9 +75,6 @@ export class FreeSpinEnter extends Component { // 加入回调 onClose(isClick: boolean = true) { - // if (isClick) { - // AudioManager.instance.playSFX('Total_Settle_Collect_Click'); - // } this.btn.node.off(Button.EventType.CLICK, this.onClose, this); this.btn.node.active = false; this.unscheduleAllCallbacks(); @@ -94,20 +91,6 @@ export class FreeSpinEnter extends Component { .to(0.5, { opacity: 0 }) .start() } - // } - - // fadeOutScoreLabel(delay: number, duration: number) { - // // 先停止可能正在进行的动画 - // Tween.stopAllByTarget(this.NumNodeOpacityCom.node); - - // // 确保标签是可见的 - // this.NumNodeOpacityCom.opacity = 255; - - // // 创建并执行渐隐动画 - // tween(this.NumNodeOpacityCom) - // .delay(delay) - // .to(duration, { opacity: 0 }) - // .start(); } diff --git a/assets/Game/scripts/game/HRoller.ts b/assets/Game/scripts/game/HRoller.ts deleted file mode 100644 index 2c43946..0000000 --- a/assets/Game/scripts/game/HRoller.ts +++ /dev/null @@ -1,799 +0,0 @@ -// /** -// * 负责单个滚轮的创建、滚动、停止等逻辑 -// */ -// import { -// _decorator, -// Node, -// UITransform, -// Vec2, -// v2, -// Vec3, -// v3, -// tween, -// Tween, -// Mask, -// } from 'cc'; -// import { IconFactory } from './IconFactory'; -// import { Icon } from './Icon'; -// import { BaseRoller, ROLLER_STATE } from './BaseRoller'; -// import { ROLLER_EVENT } from './Define'; -// import { callGameApi } from 'db://assets/Loading/scripts/comm'; - -// let { ccclass, property, executeInEditMode } = _decorator; - -// /** -// * 滚轮组件类 -// */ -// @ccclass('HRoller') -// @executeInEditMode -// export class HRoller extends BaseRoller { - -// // 编辑器属性 -// @property({ tooltip: '列数' }) -// col: number = 3; - -// // 本地格式化相关 -// @property -// _format = false; -// @property({ tooltip: '本地格式化' }) -// get format(): boolean { -// return this._format; -// } -// set format(b: boolean) { -// this._format = b; -// this.resizeContentSize(); - -// if (!this.iconFactory) { -// console.error('IconFactory没有设置'); -// return; -// } - -// // 重新创建图标 -// this._content.removeAllChildren(); -// this._info.icons = []; -// this._allIcons.clear(); -// this._posToIconKey.clear(); -// // 清除位置缓存 - 添加这一行 -// this._positionCache.clear(); - -// for (let i = 0; i < this.col; i++) { -// let randomIndex = Math.floor(Math.random() * this.iconFactory.getIconNum()); -// this.createNormalIcon(i, randomIndex); -// } -// } - -// _cachedContentWidth: number = 0; -// _cachedAnchorX: number = 0; - -// /** -// * 创建滚轮实例 -// * @param id 滚轮ID -// * @param row 行数 -// * @param iconWidth 图标宽度 -// * @param iconHeight 图标高度 -// * @param iconFactory 图标工厂实例 -// * @param anchor 锚点位置 -// * @returns 新创建的滚轮实例 -// */ -// static create( -// id: number, -// col: number, -// iconWidth: number, -// iconHeight: number, -// iconFactory: IconFactory, -// anchor: Vec2 = v2(0.5, 0.5) -// ): HRoller { -// let rollerNode = new Node(`Roller${id}`); -// rollerNode.addComponent(UITransform); - -// let roller = rollerNode.addComponent(HRoller); -// roller._rollerId = id; -// roller.col = col; -// roller.iconWidth = iconWidth; -// roller.iconHeight = iconHeight; -// roller.iconFactory = iconFactory; - -// rollerNode.getComponent(UITransform).setAnchorPoint(anchor); -// roller.resizeContentSize(); -// roller.initRoller(id); -// return roller; -// } - -// /** -// * 设置节点尺寸和位置 -// */ -// setupNodesSizeAndPosition() { -// let totalWidth = this.iconWidth * this.col; -// let anchorPoint = this.node.getComponent(UITransform).anchorPoint; - -// // 设置主节点尺寸 -// this.node.getComponent(UITransform).setContentSize(totalWidth, this.iconHeight); - -// // 设置view节点 -// this._view.setPosition(0, 0); -// this._view.getComponent(UITransform).setContentSize(totalWidth, this.iconHeight); -// this._view.getComponent(UITransform).setAnchorPoint(anchorPoint); -// this._view.getComponent(UITransform).height *= 2; - -// // 设置content节点 -// this._content.setPosition(0, 0); -// this._content.getComponent(UITransform).setContentSize(totalWidth, this.iconHeight); -// this._content.getComponent(UITransform).setAnchorPoint(anchorPoint); -// this._content.removeAllChildren(); -// } - -// /** -// * 获取图标的实际坐标 -// * @param pos 图标位置索引 -// * @param height 图标高度 -// * @returns 图标的世界坐标 -// */ -// getIconPosition(pos: number, size: number = 1): Vec3 { -// // 创建缓存键 -// let cacheKey = size > 1 ? (pos + 1) * 1000 + size : pos; - -// if (this._positionCache.has(cacheKey)) { -// return this._positionCache.get(cacheKey).clone(); -// } - -// // 确保缓存数据已初始化 -// if (!this._cachedContentWidth) { -// this._cachedContentWidth = this._content.getComponent(UITransform).width; -// this._cachedAnchorX = this._content.getComponent(UITransform).anchorX; -// } - -// // 计算基准位置 -// let contentWidth = this._cachedContentWidth; -// let anchorX = this._cachedAnchorX; - -// // 计算最左边位置 -// let leftX = -contentWidth * (1 - anchorX); - -// // 计算第一个位置的中心x坐标 -// let firstCenterX = leftX + this.iconWidth / 2; - -// // 计算当前位置的中心X坐标 -// let centerX = firstCenterX + pos * this.iconWidth; - -// // 对于大图标,需要调整位置 -// let finalX = centerX; -// if (size > 1) { -// // 大图标的中心点应该下移,使其顶部对齐格子 -// // 对于高度为3的图标,中心点应该下移1个格子高度 -// finalX = centerX + (size - 1) * this.iconWidth / 2; -// } - -// // 创建最终位置 -// let position = v3(finalX, 0, 0); - -// // 缓存结果 -// this._positionCache.set(cacheKey, position.clone()); -// return position; -// } - -// /** -// * 初始化性能优化相关的缓存 -// */ -// initCache() { -// this._cachedUITransform = this._content.getComponent(UITransform); -// this._cachedContentWidth = this._cachedUITransform.width; -// this._cachedAnchorX = this._cachedUITransform.anchorX; -// } - -// /** -// * 收集现有图标 -// */ -// collectExistingIcons() { -// for (let i = 0; i < this.col; i++) { -// let icon = this._allIcons.get(this._posToIconKey.get(i)); -// if (icon) { -// this._allIcons.delete(this._posToIconKey.get(i)); -// this._posToIconKey.delete(i); -// this._info.icons.push(icon); -// } -// } -// } - -// /** -// * 手动停止滚动 -// * @param data 停止时的图标数据 -// */ -// async manualStopScroll(data: number[]) { -// if (this._info.isManualStop || -// this._info.state === ROLLER_STATE.STOP) { -// return; -// } - -// this.changeState(ROLLER_STATE.STOP); -// this._info.resetLxInfo(); -// this._stopData = data; -// this._info.isManualStop = true; -// Tween.stopAllByTarget(this._info.speedNode); - -// // 直接回收所有动态图标 -// while (this._info.icons.length > 0) { -// let icon = this._info.icons.pop(); -// this.iconFactory.recycleIcon(icon); -// } - -// // 回收固定位置图标 -// for (let i = 0; i < this.col; i++) { -// let icon = this._allIcons.get(this._posToIconKey.get(i)); -// if (icon) { -// this._allIcons.delete(this._posToIconKey.get(i)); -// this._posToIconKey.delete(i); -// this.iconFactory.recycleIcon(icon); -// } -// } -// this._allIcons.clear(); -// this._posToIconKey.clear(); - -// this.createInitIcons(data); -// // 为所有创建的图标播放动画 -// for (let icon of this._allIcons.values()) { -// icon.getComponent(Icon).playSpawnAni(); -// } -// } - -// /** -// * 创建最后一页图标 -// */ -// createLastPage() { -// let data = this._stopData; -// if (!data) return; - -// // 计算最右边icon基准位置 -// let rightX = this.getIconPosition(this.col - 1).x; -// let icons = this._info.icons; -// if (icons.length > 0) { -// rightX = Math.max(rightX, this.findHighestIconXorY(icons)); -// } - -// // 清除已有的位置映射,准备重新创建 -// this._allIcons.clear(); -// this._posToIconKey.clear(); - -// // 从左到右依次创建图标(从位置0开始) -// for (let i = 0; i < data.length; i++) { -// // 如果当前位置已被特殊图标占用,跳过 -// if (this._posToIconKey.has(i)) continue; - -// // 生成图标ID -// let pos = i; -// let iconIndex = data[i]; -// let iconKey = this.generateIconKey(pos, 1, pos); - -// // 创建图标节点 -// let icon = this.iconFactory.icfactoryCreateIcon(iconIndex); -// icon.getComponent(Icon).initIcon(iconIndex, 1, iconKey, 0, this._rollerId); - -// // 计算位置 -// let x = rightX + (pos + 1) * this.iconWidth; -// icon.setPosition(x, 0, 0); - -// this._content.addChild(icon); - -// // 存储图标节点 -// this._allIcons.set(iconKey, icon); -// this._posToIconKey.set(pos, iconKey); - -// } -// this.node.emit(ROLLER_EVENT.LAST_PAGE_CREATE, this._rollerId); -// } - - -// /** -// * 检查图标是否超出显示范围 -// */ -// checkDeadLine(icon: Node): boolean { -// if (!this._cachedContentWidth) { -// this._cachedContentWidth = this._content.getComponent(UITransform).width; -// this._cachedAnchorX = this._content.getComponent(UITransform).anchorX; -// } - -// let iconComponent = icon.getComponent(Icon); -// let lheight = iconComponent.lHeight; -// let iconBody = (lheight - 1) * this.iconWidth + this.iconWidth / 2; -// let deadLine = -(this._cachedContentWidth * this._cachedAnchorX) - iconBody; - -// return icon.position.x <= deadLine; -// } - -// /** -// * 补充新的图标 -// */ -// suppleIcon() { -// let bornLine = this.getIconPosition(this.col - 1).x; -// let icons = this._info.icons; - -// // 找到最右边的的图标X坐标 -// let rightX = this.findHighestIconXorY(icons); - -// // 如果最右边的图标低于出生线,创建新图标 -// if (rightX < bornLine) { -// this.createRandomIcon(); -// } -// } - - -// /** -// * 创建随机图标 -// */ -// createRandomIcon() { -// let iconIndex = this.getRandomIconIndex(); -// let newX = this.computeNewIconXorY(); -// let icon = this.iconFactory.icfactoryCreateIcon(iconIndex); - -// // 设置快速图标效果 -// if (this.shouldShowFastIcon()) { -// icon.getComponent(Icon).showFastIcon(true); -// } -// icon.setPosition(newX, 0, 0); -// this._content.addChild(icon); - - -// this._info.icons.push(icon); -// this.node.emit(ROLLER_EVENT.ON_R_ICON_CREATE, this._rollerId, icon); -// } - - -// /** -// * 找到最右边的图标X坐标 -// * @param icons 图标数组 -// * @returns 最右边的X坐标 -// */ -// findHighestIconXorY(icons: Node[]): number { -// return icons.reduce((maxX, icon) => { -// if (!icon || !icon.active) return maxX; - -// let iconComponent = icon.getComponent(Icon); -// if (!iconComponent) return maxX; - -// let lHeight = iconComponent.lHeight || 1; -// let iconX = icon.position.x; - -// // 对于高度大于1的图标,考虑其顶部位置 -// if (lHeight > 1) { -// // 计算图标顶部位置:当前位置 + 高度差 * 图标高度 / 2 -// return Math.max(maxX, iconX + (lHeight - 1) * this.iconWidth / 2); -// } else { -// return Math.max(maxX, iconX); -// } -// }, -999); -// } - - - -// /** -// * 计算新图标的X坐标 -// */ -// computeNewIconXorY(): number { -// let icons = this._info.icons; - -// // 如果没有图标,使用初始位置 -// if (!icons.length) { -// return this.getIconPosition(this.col - 1).x + this.iconWidth; -// } - -// // 找到最右边的图标X坐标 -// let rightX = this.findHighestIconXorY(icons); - -// // 新图标位置 = 最高图标位置 + 图标高度 -// return rightX + this.iconWidth; -// } - -// /** -// * 清理资源 -// */ -// onDestroy() { -// this._cachedUITransform = null; -// this._cachedContentWidth = 0; -// this._cachedAnchorX = 0; -// this._positionCache.clear(); -// } - -// /** -// * 滚轮移动 -// * @param dt 时间增量 -// */ -// rollerMove(dt: number) { -// // 计算移动向量 -// let speed = this._info.speed; -// let move = speed * dt; -// let moveVec = v3(move, 0, 0); - - - -// // 更新动态图标位置 -// this._info.icons.forEach(icon => { -// if (!icon || !icon.isValid) return; - -// if (icon.active) { -// let newPosition = icon.position.clone().subtract(moveVec); -// icon.setPosition(newPosition); -// } -// }); -// // 获取所有图标 -// let allIcons = Array.from(this._allIcons.values()); -// allIcons.forEach(icon => { -// if (!icon || !icon.isValid) return; -// let newPosition = icon.position.clone().subtract(moveVec); -// icon.setPosition(newPosition); -// }); - - -// } - -// /** -// * 回收滚轮图标 -// */ -// recycleRollerIcon() { -// // 回收动态图标 -// let icons = this._info.icons; -// for (let i = icons.length - 1; i >= 0; i--) { -// let icon = icons[i]; -// if (!icon || !icon.isValid) { -// icons.splice(i, 1); -// continue; -// } - -// if (this.checkDeadLine(icon)) { -// // 从数组中移除 -// icons.splice(i, 1); -// // 回收图标 -// this.iconFactory.recycleIcon(icon); -// } -// } - -// // 回收固定位置图标(非最后一页创建状态) -// if (this._info.state !== ROLLER_STATE.LAST_PAGE_CREATE) { -// for (let i = 0; i < this.col; i++) { -// let iconKey = this._posToIconKey.get(i); -// if (!iconKey) continue; - -// let icon = this._allIcons.get(iconKey); -// if (!icon || !icon.isValid) { -// this._posToIconKey.delete(i); -// this._allIcons.delete(iconKey); -// continue; -// } - -// if (this.checkDeadLine(icon)) { -// // 从映射中移除 -// this._allIcons.delete(iconKey); -// this._posToIconKey.delete(i); -// // 回收图标 -// this.iconFactory.recycleIcon(icon); -// } -// } -// } - -// // 处理特殊图标(n*1图标) -// if (this._info.state !== ROLLER_STATE.LAST_PAGE_CREATE) { -// // 获取所有特殊图标的key -// let specialIconKeys = Array.from(this._allIcons.keys()) -// .filter(key => key.startsWith('large_')); - -// for (let iconKey of specialIconKeys) { -// let icon = this._allIcons.get(iconKey); -// if (!icon || !icon.isValid) { -// this._allIcons.delete(iconKey); -// continue; -// } - -// if (this.checkDeadLine(icon)) { -// // 从映射中移除 -// this._allIcons.delete(iconKey); - -// // 移除所有关联的位置映射 -// for (let [pos, key] of this._posToIconKey.entries()) { -// if (key === iconKey) { -// this._posToIconKey.delete(pos); -// } -// } - -// // 回收图标 -// this.iconFactory.recycleIcon(icon); -// } -// } -// } -// } - - - -// /** -// * 停止处理 -// */ -// stopProcess() { -// let rightIcon = this.getIconPosition(this.col - 1); -// let stopline = rightIcon.x - 100; // 偏移量100 -// let topX = this.findHighestIconXorY(Array.from(this._allIcons.values())); - -// if (topX <= stopline) { -// this.changeState(ROLLER_STATE.BOUNCE); -// this.playBounceAnimation(); -// } -// } - -// /** -// * 播放回弹动画 -// */ -// playBounceAnimation() { -// let time = 0.1; -// let offset = 50; - -// // 获取所有图标 -// let allIcons = Array.from(this._allIcons.values()); - -// allIcons.forEach(icon => { - -// if (!icon || !icon.isValid) return; - -// let iconComponent = icon.getComponent(Icon); -// if (!iconComponent) return; - -// // 获取图标的起始位置和高度 -// let startPos = iconComponent.startPos; -// let lHeight = iconComponent.lHeight || 1; - -// // 获取图标应该在的位置 -// let position = this.getIconPosition(startPos, lHeight); - -// // 设置初始位置(向下偏移) -// // icon.setPosition(position.add(v3(-offset, 0, 0))); -// icon.setPosition(position); -// iconComponent.playSpawnAni(); - -// // 创建回弹动画 -// // tween(icon) -// // .by(time, { position: v3(offset, 0, 0) }) -// // .start(); -// }); - -// // 延迟切换到停止状态 -// this.scheduleOnce(() => { -// this.changeState(ROLLER_STATE.STOP); -// }, time); -// } - -// /** -// * 消除逻辑 -// * 一定是在静止状态消除的 -// * @param deleteMsg 删除信息 -// * */ -// deleteIconNode(positions: number[]) { -// // 记录被处理过的图标键 -// let processedPos = new Set(); - -// // 处理每个位置 -// for (let pos of positions) { -// // 如果此图标已处理过,跳过 -// if (processedPos.has(pos)) { -// continue; -// } -// let iconKey = this._posToIconKey.get(pos); -// if (!iconKey) { -// console.error('deleteIconNode iconKey is null', pos); -// continue; -// } - - - -// let iconNode = this._allIcons.get(iconKey); -// if (!iconNode || !iconNode.isValid) { -// console.error('deleteIconNode iconNode is null', pos); -// continue; -// } - -// let iconComponent = iconNode.getComponent(Icon); -// if (!iconComponent) { -// console.error('deleteIconNode iconComponent is null', pos); -// continue; -// } - - -// let startPos = iconComponent.startPos; -// // 从allIcons中删除图标 -// this._allIcons.delete(iconKey); - -// let height = iconComponent.lHeight || 1; -// // 移除所有关联的位置映射 -// if (height > 1) { -// // 对于n*1图标,需要清除所有占用的位置 -// for (let i = 0; i < height; i++) { -// this._posToIconKey.delete(startPos + i); -// // 标记此图标已处理 -// processedPos.add(startPos + i); -// } -// } else { -// this._posToIconKey.delete(pos); -// // 标记此图标已处理 -// processedPos.add(pos); - -// } -// iconComponent.playWinAni(true); -// iconComponent.playDeleteAni(); -// this.scheduleOnce(() => { -// this.iconFactory.recycleIcon(iconNode); -// }, 1.2) -// } - -// this.node.emit(ROLLER_EVENT.ICON_DELETED, this._rollerId); -// } - -// playFrameTypeChangeAni(positions: number[]): void { -// for (let pos of positions) { - -// let iconKey = this._posToIconKey.get(pos); -// if (!iconKey) continue; - -// let iconNode = this._allIcons.get(iconKey); -// if (!iconNode || !iconNode.isValid) continue; - -// let iconComponent = iconNode.getComponent(Icon); -// if (!iconComponent) continue; - -// iconComponent.playWinAni(true); -// } -// } - -// chanegeIconAndFrameType(data: any[]): void { -// return; -// } - -// /** -// * 创建新icon -// * @param createMsg 信息 -// */ -// createNewIconTop(createDatas: number[]) { -// // 获取所有图标 -// let rightX = this.getIconPosition(this.col - 1, 1).x; -// for (let i = 0; i < createDatas.length; i++) { -// let pos = this.col + i + 1; -// let iconIndex = createDatas[i]; -// let iconKey = this.generateIconKey(pos, 1, pos); -// let icon = this.iconFactory.icfactoryCreateIcon(iconIndex); -// icon.getComponent(Icon).initIcon(iconIndex, 1, iconKey, 0, this._rollerId); - -// let x = rightX + (i + 1) * this.iconWidth; -// icon.setPosition(x, 0, 0); -// this._content.addChild(icon); - -// this._allIcons.set(iconKey, icon); -// this._posToIconKey.set(pos, iconKey); -// } -// this.node.emit(ROLLER_EVENT.ICON_CREATE, this._rollerId); -// } - - -// /** icon进行掉落移动 */ -// iconFallDown(data: number[], CroSymbols: any) { -// // 更新所有icon的iconKey和posToIconKey - -// let updates = []; -// let sortNewIconStartPos = this.getNewIconsStartPos(data, CroSymbols); -// let sortIcons = this.getSortIcons(); -// for (let i = 0; i < sortNewIconStartPos.length; i++) { -// let newStartPos = sortNewIconStartPos[i]; -// let oldIcon = sortIcons[i]; -// let oldIconStartPos = oldIcon.startPos; - - -// if (oldIconStartPos === newStartPos) { -// continue; -// } -// let oldIconNode = oldIcon.icon; -// let oldIconComponent = oldIcon.component; -// let oldIconkey = oldIconComponent.iconKey; -// let lHeight = oldIconComponent.lHeight || 1; -// let newIconkey = this.generateIconKey(newStartPos, 1, newStartPos); -// let newX = this.getIconPosition(newStartPos, lHeight).x; -// let oldX = oldIconNode.position.x; - -// updates.push({ -// node: oldIconNode, -// component: oldIconComponent, -// oldKey: oldIconkey, -// oldStartPos: oldIconStartPos, -// newStartPos: newStartPos, -// newKey: newIconkey, -// height: lHeight -// }) - - -// let time = 0.3; -// tween(oldIconNode) -// .to(time, { position: v3(newX, 0, 0) }) -// .start(); -// } - -// for (let update of updates) { -// this._allIcons.delete(update.oldKey); -// for (let i = 0; i < update.height; i++) { -// this._posToIconKey.delete(update.oldStartPos + i); -// } -// } - -// // 再添加所有新映射 -// for (let update of updates) { -// // 添加新的映射 -// update.component.iconKey = update.newKey; -// this._allIcons.set(update.newKey, update.node); -// for (let i = 0; i < update.height; i++) { -// this._posToIconKey.set(update.newStartPos + i, update.newKey); -// } -// } -// this.scheduleOnce(() => { -// this.node.emit(ROLLER_EVENT.ICON_FALLEN, this._rollerId); -// }, 0.5) -// } - - -// getSortIcons() { -// let iconInfos: { icon: Node, component: Icon, startPos: number }[] = []; - -// // 收集所有图标信息 -// for (let [iconKey, iconNode] of this._allIcons.entries()) { -// if (!iconNode || !iconNode.isValid) continue; - -// let iconComponent = iconNode.getComponent(Icon); -// if (!iconComponent) continue; - -// // 记录图标信息 -// iconInfos.push({ -// icon: iconNode, -// component: iconComponent, -// startPos: iconComponent.startPos -// }); -// } - -// // 按startPos从小到大排序 -// iconInfos.sort((a, b) => a.startPos - b.startPos); - -// return iconInfos; -// } - - - -// getNewIconsStartPos(data: number[], CroSymbols: any) { -// // 存储所有图标的startPos -// let startPositions: number[] = []; - -// // 记录已处理的位置 -// let processedPositions = new Set(); -// // 记录已经处理的pos -// let processedPos = new Set(); -// // 首先处理不规则图标(n*1图标) -// if (CroSymbols) { -// for (let pos in CroSymbols) { -// let id = CroSymbols[pos].id; -// if (processedPos.has(id)) continue; -// processedPos.add(id); -// let iconSpecialMsg = CroSymbols[pos]; -// let startPos = iconSpecialMsg.startPos; -// let endPos = iconSpecialMsg.endPos; - -// // 添加不规则图标的startPos -// startPositions.push(startPos); - -// // 标记所有被占用的位置 -// for (let i = startPos; i <= endPos; i++) { -// processedPositions.add(i); -// } -// } -// } - -// // 然后处理常规图标 -// for (let i = 0; i < data.length; i++) { -// // 如果该位置未被处理(不是不规则图标的一部分) -// if (!processedPositions.has(i)) { -// startPositions.push(i); -// } -// } - -// // 从小到大排序 -// startPositions.sort((a, b) => a - b); -// return startPositions; -// } - -// } diff --git a/assets/Game/scripts/game/HRoller.ts.meta b/assets/Game/scripts/game/HRoller.ts.meta deleted file mode 100644 index 40e112e..0000000 --- a/assets/Game/scripts/game/HRoller.ts.meta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "ver": "4.0.24", - "importer": "typescript", - "imported": true, - "uuid": "5fc10665-ee55-4ef7-bfeb-af6275bb1587", - "files": [], - "subMetas": {}, - "userData": {} -} diff --git a/assets/Game/scripts/game/Icon.ts b/assets/Game/scripts/game/Icon.ts index 9f636dd..706943e 100644 --- a/assets/Game/scripts/game/Icon.ts +++ b/assets/Game/scripts/game/Icon.ts @@ -434,8 +434,6 @@ export class Icon extends Component { this.iconSpine.node.active = true; this._normalSpriteNode && (this._normalSpriteNode.active = false); - // this.iconSpine.clearTracks(); - // 使用计时器回调而不是匿名函数,减少闭包 this.playSpawnAnimation() } @@ -450,11 +448,6 @@ export class Icon extends Component { if (this._isWildOrScatter) { this.iconSpine.setAnimation(0, `${this.lHeight}_1`, true); - // this.iconSpine.setCompleteListener(() => { - // if (!this.iconSpine) return; - // this.iconSpine.setAnimation(0, "1_1", true); - // this.iconSpine.setCompleteListener(null); - // }); } else if (this._isQKJ) { this.iconSpine.setAnimation(0, "animation", false); } else { @@ -483,9 +476,6 @@ export class Icon extends Component { } else if (this.iconSpine) { this.iconSpine.node.active = false; this.iconSpine.clearTracks(); - // if (!this._isQKJ) { - // this.iconSpine.setAnimation(0, "idle", true); - // } this.iconSpine.setCompleteListener(null); this._normalSpriteNode && (this._normalSpriteNode.active = true); } @@ -501,7 +491,6 @@ export class Icon extends Component { // 1.2s playDeleteAni() { // 从对象池获取或重用winSpine节点 - // let winSpine = NodePoolManager.instance.getNodeFromPoolStatic('winSpine', this.winSpinePrefab); let winSpine = instantiate(this.winSpinePrefab) winSpine.setParent(this.node); @@ -522,48 +511,15 @@ export class Icon extends Component { children[i].active = false; } winSpine.removeFromParent(); - // NodePoolManager.instance.putNodeToPool('winSpine', winSpine); }, 0.6) } playChangeAni(isChange: boolean) { if (isChange) { - // let winSpine = NodePoolManager.instance.getNodeFromPoolStatic('winSpine', this.winSpinePrefab); - - // winSpine.setParent(this.node); - // winSpine.setPosition(0, 0, 0); - // winSpine.setScale(1, 1, 1); - - // let ascendWin = winSpine.getChildByName('Ascend_win'); - // let ascendSwitch = winSpine.getChildByName('Ascend_switch'); - // let skeleton1 = ascendWin.getComponent(sp.Skeleton); - // let skeleton2 = ascendSwitch.getComponent(sp.Skeleton); - - // ascendWin.active = true; - // skeleton1.setAnimation(0, `Sw_${this.lHeight}`, false); this.scheduleOnce(() => { - // skeleton1.setCompleteListener(null); - // ascendWin.active = false; - // ascendSwitch.active = true; - // skeleton2.setAnimation(0, `Sw_${this.lHeight}`, true); this.playChangeSprite(true); }, 0.1) } else { - // 清理winSpine节点 - // let winSpine = this.node.getChildByName('winSpine'); - // if (winSpine) { - // // 停用所有子节点 - // let children = winSpine.children; - // for (let i = 0; i < children.length; i++) { - // children[i].active = false; - // } - - // // 回收节点 - // winSpine.removeFromParent(); - // NodePoolManager.instance.putNodeToPool('winSpine', winSpine); - // } - - // 停止精灵切换动画 this.playChangeSprite(false); } } @@ -606,8 +562,6 @@ export class Icon extends Component { } } - // this._iconChangeCallback = this.updateChangeSpriteFrame; - // this.schedule(this._iconChangeCallback, 0.1); } else { // 停止动画并清理 if (this._iconChangeCallback) { diff --git a/assets/Game/scripts/game/Roller.ts b/assets/Game/scripts/game/Roller.ts index 99b8653..936b85f 100644 --- a/assets/Game/scripts/game/Roller.ts +++ b/assets/Game/scripts/game/Roller.ts @@ -15,7 +15,7 @@ import { import { IconFactory } from './IconFactory'; import { Icon } from './Icon'; import { BaseRoller, ROLLER_STATE } from './BaseRoller'; -import { ICON_MAP, ICON_STATE, ROLLER_COMBINE_EVENT, ROLLER_EVENT } from './Define'; +import { ICON_STATE, ROLLER_COMBINE_EVENT, ROLLER_EVENT } from './Define'; import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager'; let { ccclass, property, executeInEditMode } = _decorator; @@ -884,7 +884,7 @@ export class Roller extends BaseRoller { // 根据最长的动画时间调整音效和事件触发时间 let totalFallTime = updates.length > 0 ? - (updates.length - 1) * delayBetweenIcons + 0.1: 0.1; + (updates.length - 1) * delayBetweenIcons + 0.1 : 0.1; diff --git a/assets/Game/scripts/game/RollerManager.ts b/assets/Game/scripts/game/RollerManager.ts index 884d8ac..5999ee3 100644 --- a/assets/Game/scripts/game/RollerManager.ts +++ b/assets/Game/scripts/game/RollerManager.ts @@ -4,7 +4,6 @@ import { Roller } from './Roller'; import { GameData, ICON_HEIGHT, ICON_WIDTH, ROLLER_COMBINE_EVENT, ROLLER_EVENT } from './Define'; import { AudioManager } from '../../../Loading/scripts/manager/AudioManager'; import { BaseRoller } from './BaseRoller'; -// import { HRoller } from './HRoller'; let { ccclass, property, executeInEditMode } = _decorator; @ccclass('RollerManager') @@ -78,20 +77,6 @@ export class RollerManager extends Component { let rollerLength = this.rollerMsg.length; for (let i = 0; i < rollerLength; i++) { let rollerMsg = this.rollerMsg[i]; - - // if (rollerMsg.isHorizontal) { - // let hRoller = HRoller.create(i, rollerMsg.col, this.iconWidth, this.iconHeight, this.iconFactory); - // hRoller.format = true; - - // this.hMaskNode.addChild(hRoller.node); - - // let rollerPosition = new Vec3(0, 3 * this.iconHeight + 43, 0); - // this.hMaskNode.setPosition(rollerPosition); - // // hRoller.node.setPosition(rollerPosition); - // // 保存引用 - // this.hRollers.push(hRoller); - // this.allRollers.push(hRoller); - // } else { let roller = Roller.create(i, rollerMsg.row, this.iconWidth, this.iconHeight, this.iconFactory); roller.format = true; @@ -115,10 +100,6 @@ export class RollerManager extends Component { comp.type = Mask.Type.GRAPHICS_RECT; UIComponent.setContentSize(1040, 840) - // let spriteCom = maskNode.getComponent(Sprite); - // spriteCom.spriteFrame = spriteFrame; - // spriteCom.sizeMode = Sprite.SizeMode.CUSTOM; - // spriteCom.trim = true; return maskNode; } @@ -212,13 +193,6 @@ export class RollerManager extends Component { checkNextRollerExpect(rollerId: number, needScatterCount: number = 3) { let curScatterCount = 0; this.scatterPos = []; - // let topData = this._resultStopData[0]; - // topData.forEach((iconIndex, index) => { - // if (iconIndex == 1) { - // curScatterCount++; - // this.scatterPos.push(index); - // } - // }) // 检查所有已经停止的垂直滚轮(包括当前滚轮) for (let i = 0; i <= rollerId; i++) { diff --git a/assets/Game/scripts/game/Rules.ts b/assets/Game/scripts/game/Rules.ts index c835ef5..9d439a6 100644 --- a/assets/Game/scripts/game/Rules.ts +++ b/assets/Game/scripts/game/Rules.ts @@ -76,8 +76,6 @@ export class Rules extends Component { onMouseWheel(event: EventMouse) { - // console.log("鼠标滚动") - // deltaY > 0:向下滚;deltaY < 0:向上滚 const delta = event.getScrollY() * this.scrollSpeed; diff --git a/assets/Game/scripts/game/SpinAni.ts b/assets/Game/scripts/game/SpinAni.ts index c0072ba..7885500 100644 --- a/assets/Game/scripts/game/SpinAni.ts +++ b/assets/Game/scripts/game/SpinAni.ts @@ -4,24 +4,19 @@ const { ccclass, property } = _decorator; @ccclass('SpinAni') export class SpinAni extends Component { - @property(sp.Skeleton) - private rotateSpine: sp.Skeleton = null; + @property(Node) + private rotateNode: Node = null; onLoad() { this.playIdleSpin() } private playIdleSpin() { - this.rotateSpine.timeScale = 1 - this.rotateSpine.clearTracks() - this.rotateSpine.setAnimation(0, 'idle', true) + this.rotateNode.getComponent(sp.Skeleton).setAnimation(0, '1', true) } - public startSpin(isFastSpin: boolean) { - this.rotateSpine.timeScale = isFastSpin ? 2 : 1 - - this.rotateSpine.setAnimation(0, 'Click', true) - + public startSpin() { + this.rotateNode.getComponent(sp.Skeleton).setAnimation(0, '2', true) } public stopSpin() { diff --git a/assets/Game/scripts/game/TipPanel.ts b/assets/Game/scripts/game/TipPanel.ts index 3cd6852..d94ea97 100644 --- a/assets/Game/scripts/game/TipPanel.ts +++ b/assets/Game/scripts/game/TipPanel.ts @@ -129,14 +129,6 @@ export class TipPanel extends Component { .start(); }); } - - // // 添加关闭按钮点击事件 - // let closeBtn = message.getChildByName('Btn_Close_A'); - // closeBtn.on(Node.EventType.TOUCH_END, () => { - // if (this.isAnimating) return; - // AudioManager.instance.playSFX('Common_Button_Click'); - // this.closeTip(); - // }); } // 回收节点 diff --git a/assets/Game/scripts/game/TotalWin.ts b/assets/Game/scripts/game/TotalWin.ts index 25f1654..bdb15b2 100644 --- a/assets/Game/scripts/game/TotalWin.ts +++ b/assets/Game/scripts/game/TotalWin.ts @@ -77,12 +77,10 @@ export class TotalWin extends Component { // 加入回调 onClose() { this.btn.node.off(Button.EventType.CLICK, this.onClose, this); - // AudioManager.instance.playSFX('Total_Settle_Collect_Click'); this.scheduleOnce(() => { AudioManager.instance.playSFX('Total_Settle_Sound_End'); }, 0.5) - // this.fadeOutScoreLabel(1.7, 0.6); this.btn.node.active = false; this.unscheduleAllCallbacks(); tween(this.totalWinSpine.node) @@ -98,37 +96,6 @@ export class TotalWin extends Component { .to(0.5, { opacity: 0 }) .start() } - - - - // fadeOutScoreLabel(delay: number, duration: number) { - // // 先停止可能正在进行的动画 - // Tween.stopAllByTarget(this.NumNodeOpacityCom.node); - - // // 确保标签是可见的 - // this.NumNodeOpacityCom.opacity = 255; - - // // 创建并执行渐隐动画 - // tween(this.NumNodeOpacityCom) - // .delay(delay) - // .to(duration, { opacity: 0 }) - // .start(); - - - // // 先停止可能正在进行的动画 - // Tween.stopAllByTarget(this.totalWinNodeOpacity.node); - - // // 确保标签是可见的 - // this.totalWinNodeOpacity.opacity = 255; - - // // 创建并执行渐隐动画 - // tween(this.totalWinNodeOpacity) - // .delay(delay) - // .to(duration, { opacity: 0 }) - // .start(); - - - // } } diff --git a/assets/Game/scripts/game/WinLayer.ts b/assets/Game/scripts/game/WinLayer.ts deleted file mode 100644 index 568d685..0000000 --- a/assets/Game/scripts/game/WinLayer.ts +++ /dev/null @@ -1,368 +0,0 @@ -// import { _decorator, color, Color, Component, Graphics, instantiate, Label, Node, Prefab, sp, UIOpacity, UITransform, v3, Vec3 } from 'cc'; -// import { Icon } from './Icon'; -// import { RollerManager } from './RollerManager'; -// import { gold2cash } from '../../../Loading/scripts/comm'; -// import { NodePoolManager } from '../../../Loading/scripts/manager/NodePoolManager'; -// import { AudioManager } from '../../../Loading/scripts/manager/AudioManager'; - -// const { ccclass, property } = _decorator; - -// @ccclass('WinLayer') -// export class WinLayer extends Component { - -// // 灰色节点 -// @property(Node) -// grayNode: Node = null; - -// // 方框动画父节点 -// @property(Node) -// winEffectParent: Node = null; - -// // 方框动画 -// @property(Prefab) -// winEffectPre: Prefab = null; - -// // 线的父节点 -// @property(Node) -// lineParentNode: Node = null; - -// @property(Prefab) -// lineSpinePre: Prefab = null; - -// // icon父节点 -// @property(Node) -// iconLayer: Node = null; - -// // rollerManager -// @property(RollerManager) -// rollerManager: RollerManager = null; - -// // 左右两边光效节点 -// @property(Node) -// lineNum: Node = null; - -// // 分数节点 -// @property(Label) -// score: Label = null; - -// iconPosArray: Vec3[] = []; // 图标位置数组 -// hitLineData: HitLineMap; // 中奖数据 -// hitBlockData: HitBlockInfo[] = []; -// aniTime: number = 2; // 动画间隔 - -// columnGroups: number[][][] = []; // 服务器数据转本地需要的数据 -// drawLineData: number[] = []; -// winningIconPos: number[] = []; -// private winIconNodeMap: Map = new Map; // 保存本地的icon - -// start() { -// for (let i = 0; i < 10; i++) { -// let worldPos = this.rollerManager.getIconWorldPosition(i); -// let localPos = this.iconLayer.getComponent(UITransform).convertToNodeSpaceAR(worldPos); -// this.iconPosArray.push(localPos) -// } -// } - - -// processHitLineData(hitLineData: HitLineMap) { -// if (!hitLineData || Object.keys(hitLineData).length === 0) { -// return []; -// } - -// let keys: number[] = Object.keys(hitLineData) -// .filter(key => hitLineData[key] !== null) // 过滤 null 的条目 -// .map(key => parseInt(key)); - -// let lines: number[][] = keys.map(key => hitLineData[key]?.Line || []); - -// // 获取 [[1,2,5,6,8],[1,5,8],[2,6,8]],去重后的所有中奖图标集合 -// let lineGroups = [ -// lines.reduce((acc, curr) => acc.concat(curr), []) // 展开所有 Line 数据 -// .filter((value, index, self) => self.indexOf(value) === index), // 去重 -// ...lines, // 每个 Line 数据单独作为一个分组 -// ]; - -// // 映射 -// let mappedLineGroups = lineGroups.map(lineGroup => -// lineGroup.map(iconIndex => ICON_POSITION[iconIndex] !== undefined ? ICON_POSITION[iconIndex] : iconIndex) -// ); - -// // 按列划分 mappedLineGroups -// let columns = [ -// [0, 1, 2], -// [3, 4, 5, 6], -// [7, 8, 9], -// // 如果列数更多,可以继续添加更多的列 -// ]; - -// let columnGroups = mappedLineGroups.map(lineGroup => -// columns.map(column => -// lineGroup.filter(iconIndex => column.indexOf(iconIndex) !== -1) // 用 indexOf 代替 includes -// ) -// ); - -// return columnGroups; - -// // columnGroups: [ -// // [[1, 2], [3, 5, 6], [7, 8]], // 基于 lineGroups[0]: [1,2,3,5,6,7,8] -// // [[1], [5], [8]], // 基于 lineGroups[1]: [1,5,8] -// // [[2], [6], [8]], // 基于 lineGroups[2]: [2,6,8] -// // [[1], [3], [7]], // 基于 lineGroups[3]: [1,3,7] -// // ] - -// } - -// getLines(hitLineData: HitLineMap): number[] { -// if (hitLineData == null) return []; -// if (Object.keys(hitLineData) == null) return []; -// this.drawLineData = []; -// for (let key of Object.keys(hitLineData)) { -// this.drawLineData.push(+key); -// } -// return this.drawLineData; -// } - -// playAni(bol: boolean, spinData?: SpinData, isFreeSpin: boolean = false) { -// if (bol) { -// // 处理数据 -// this.grayNode.active = true; -// if (spinData.HitLine != null && spinData.HitBlock.length < 5) { -// this.hitLineData = spinData.HitLine; -// this.columnGroups = this.processHitLineData(spinData.HitLine); -// this.drawLineData = this.getLines(spinData.HitLine); -// this.loopAnimations(); -// } else if (spinData.HitLine == null && spinData.HitBlock.length >= 5) { -// this.hitBlockData = spinData.HitBlock; -// if (isFreeSpin) { - -// } else { -// this.playBoxAni(bol); -// } -// } - -// } else { -// this.grayNode.active = false; -// this.playScore(false, 0); -// this.stopAnimations(); -// this.lineParentNode.removeAllChildren(); - -// } -// } - -// payLineOn(lines: number[]) { -// lines.forEach(line => { -// let left = this.lineNum.getChildByName(`payline_on_left_${line}`); -// let right = this.lineNum.getChildByName(`payline_on_right_${line}`); - -// left.getComponent(UIOpacity).opacity = 255; -// right.getComponent(UIOpacity).opacity = 255; -// }) -// } - -// payAllLineOff() { -// this.lineNum.children.forEach(child => { -// child.getComponent(UIOpacity).opacity = 0; -// }) -// } - -// playScore(bol: boolean, score: number) { -// this.score.node.active = bol; -// if (bol) -// this.score.string = gold2cash(score); -// } - -// loopAnimations() { - -// let playAllAnimations = (onComplete: () => void) => { -// // 线 -// this.payLineOn(this.drawLineData); -// this.recycleAniNode(); -// this.playScore(false, 0); -// AudioManager.instance.playSFX('Win_Score_Sound', 0.5); -// //按顺序播放动画 -// let allIconsPos = this.columnGroups[0]; -// this.winningIconPos = []; -// for (let i = 0; i < allIconsPos.length; i++) { -// this.scheduleOnce(() => { -// let posArr = allIconsPos[i]; -// this.playAnimationAtPosition(posArr); -// this.playWinIconSpine(true, posArr); -// this.winningIconPos.push(...posArr); -// }, i * 0.15) -// } - -// // 画线 -// this.drawLines(); - -// // 假设每个动画时长 2 秒,延时后回调完成事件 -// if (Object.keys(this.hitLineData).length == 1) { -// return; -// } -// this.scheduleOnce(() => { -// this.playWinIconSpine(false, this.winningIconPos); -// this.recycleAniNode(); -// this.payAllLineOff(); -// this.lineParentNode.removeAllChildren(); -// onComplete(); -// }, this.aniTime); -// }; - -// let playLineAnimations = (lineIndex: number, onComplete: () => void) => { -// if (lineIndex >= this.columnGroups.length) { -// onComplete(); -// return; -// } - - -// // 播放中奖线 -// let keysNum = Object.keys(this.hitLineData).map(Number); // 获取并转换为数字 - -// this.payLineOn([keysNum[lineIndex - 1]]); -// AudioManager.instance.playSFX('Win_Line_Sound', 0.5); -// let allIconsPos = this.columnGroups[lineIndex]; -// this.winningIconPos = []; -// for (let i = 0; i < allIconsPos.length; i++) { - -// this.scheduleOnce(() => { -// let posArr = allIconsPos[i]; -// this.playAnimationAtPosition(posArr); -// this.playWinIconSpine(true, posArr); -// this.winningIconPos.push(...posArr); -// }, i * 0.15) -// } - -// // 播放分数 -// this.drawOneLine(this.drawLineData[lineIndex - 1]); -// this.playScore(true, this.hitLineData[keysNum[lineIndex - 1]].Score); -// let worldPos = this.rollerManager.getIconWorldPosition(allIconsPos[1][0]); -// let localPos = this.score.node.parent.getComponent(UITransform).convertToNodeSpaceAR(worldPos); -// localPos.y -= 50; -// this.score.node.setPosition(localPos); -// // // 每组动画播放完后延时 2 秒播放下一组 -// this.scheduleOnce(() => { -// this.playWinIconSpine(false, this.winningIconPos); -// this.recycleAniNode(); -// this.payAllLineOff(); -// this.lineParentNode.removeAllChildren(); -// playLineAnimations(lineIndex + 1, onComplete); -// }, this.aniTime); -// }; - - -// let loop = () => { -// playAllAnimations(() => { -// playLineAnimations(1, () => { -// // 循环播放 -// loop(); -// }); -// }); -// }; - -// loop(); -// } - -// playAnimationAtPosition(posArr: number[]) { -// posArr.forEach(pos => { -// let position = this.iconPosArray[pos]; -// let animNode = NodePoolManager.instance.getNodeFromPoolStatic('winEffect', this.winEffectPre); -// animNode.parent = this.winEffectParent; // 将动画节点挂载到当前节点 -// animNode.setPosition(position); // 设置位置 -// }); -// } - -// playWinIconSpine(bol: boolean, posArr: number[]) { -// posArr.sort(); -// posArr.forEach(pos => { -// let icon = this.rollerManager.getIconNode(pos); -// if (icon != null) { -// let iconScp = icon.getComponent(Icon); -// iconScp.playWinAni(bol); -// } -// }) -// this.moveWinIconToLayer(posArr, bol); -// } - -// moveWinIconToLayer(posArray: number[], bol: boolean) { -// if (bol) { -// posArray.forEach(pos => { -// let iconNode = this.rollerManager.getIconNode(pos); -// if (iconNode) { -// iconNode.parent = this.iconLayer; -// this.winIconNodeMap.set(pos, iconNode); -// let worldPos = this.rollerManager.getIconWorldPosition(pos); -// let localPos = this.iconLayer.getComponent(UITransform).convertToNodeSpaceAR(worldPos); -// iconNode.setPosition(localPos); -// } -// }) -// } else { -// posArray.forEach(pos => { -// let iconNode = this.winIconNodeMap.get(pos); -// if (iconNode) { -// iconNode.parent = this.rollerManager.getContentNode(pos); -// this.winIconNodeMap.delete(pos); -// let worldPos = this.rollerManager.getIconWorldPosition(pos); -// let rollerContentNode = this.rollerManager.getContentNode(pos); -// let localPos = rollerContentNode.getComponent(UITransform).convertToNodeSpaceAR(worldPos); -// iconNode.setPosition(localPos); -// } -// }) -// } -// } - -// // 画所有线 -// drawLines() { -// this.lineParentNode.removeAllChildren(); - -// this.drawLineData.forEach(lineIndex => { -// this.drawOneLine(lineIndex); -// }) -// } - - -// drawOneLine(index: number) { -// let lineNode = NodePoolManager.instance.getNodeFromPoolStatic('lineNode', this.lineSpinePre); -// this.lineParentNode.addChild(lineNode); -// let spine = lineNode.getChildByName('spine').getComponent(sp.Skeleton); -// spine.setAnimation(0, `${index}`, true); - -// } - -// stopAnimations() { -// this.playWinIconSpine(false, this.winningIconPos); -// this.playBoxAni(false); -// this.winningIconPos = []; -// this.hitBlockData = []; -// this.payAllLineOff(); -// this.recycleAniNode(); -// this.unscheduleAllCallbacks(); // 停止所有定时任务 -// } - -// recycleAniNode() { -// while (this.winEffectParent.children.length > 0) { -// let node = this.winEffectParent.children[0]; -// NodePoolManager.instance.putNodeToPool('winEffect', node); -// } - -// while (this.lineParentNode.children.length > 0) { -// let node = this.lineParentNode.children[0]; -// NodePoolManager.instance.putNodeToPool('lineNode', node); -// } -// } - -// onDestroy() { -// this.stopAnimations(); // 确保销毁时停止动画 -// } - - - -// // 加入非空判断 -// playBoxAni(bol: boolean) { -// if (this.hitBlockData.length == 0 || this.hitBlockData == null) return; -// this.hitBlockData.forEach(hitBlock => { -// this.playWinIconSpine(bol, [ICON_POSITION[hitBlock.Position]]); -// }) -// } - - -// } - diff --git a/assets/Game/scripts/game/WinLayer.ts.meta b/assets/Game/scripts/game/WinLayer.ts.meta deleted file mode 100644 index f6ff915..0000000 --- a/assets/Game/scripts/game/WinLayer.ts.meta +++ /dev/null @@ -1,9 +0,0 @@ -{ - "ver": "4.0.24", - "importer": "typescript", - "imported": true, - "uuid": "a07dd3af-4f42-4bfa-bc2d-9ed7ed2f8553", - "files": [], - "subMetas": {}, - "userData": {} -}