diff --git a/Assets/Resources/Sprites/UI/Common/StudioDance/Anime/PoseR.anim b/Assets/Resources/Sprites/UI/Common/StudioDance/Anime/PoseR.anim index dd2f4a823..835fafa7b 100644 --- a/Assets/Resources/Sprites/UI/Common/StudioDance/Anime/PoseR.anim +++ b/Assets/Resources/Sprites/UI/Common/StudioDance/Anime/PoseR.anim @@ -1401,11 +1401,13 @@ AnimationClip: script: {fileID: 0} - curve: - time: 0 - value: {fileID: 5779691927641761196, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + value: {fileID: 8686924115327304628, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - time: 0.05 - value: {fileID: 3882487003558339588, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + value: {fileID: 8686924115327304628, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + - time: 0.1 + value: {fileID: 1086597860007614453, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - time: 0.15 - value: {fileID: 3882487003558339588, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + value: {fileID: 1086597860007614453, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} attribute: m_Sprite path: Head classID: 212 @@ -1955,9 +1957,10 @@ AnimationClip: - {fileID: 5850673630285665839, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - {fileID: 2848929583589385298, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - {fileID: -9219228821748572251, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - - {fileID: 5779691927641761196, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - - {fileID: 3882487003558339588, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - - {fileID: 3882487003558339588, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + - {fileID: 8686924115327304628, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + - {fileID: 8686924115327304628, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + - {fileID: 1086597860007614453, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + - {fileID: 1086597860007614453, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - {fileID: -7448459852879131668, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - {fileID: 6653196610736110185, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} - {fileID: 925825240639634137, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} diff --git a/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png b/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png index 60678a960..ddad203f5 100644 Binary files a/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png and b/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png differ diff --git a/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png.meta b/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png.meta index 905508f14..b7b1e4182 100644 --- a/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png.meta +++ b/Assets/Resources/Sprites/UI/Common/StudioDance/arisaDance.png.meta @@ -155,6 +155,15 @@ TextureImporter: - first: 213: -7448459852879131668 second: arisaDance_50 + - first: + 213: 6703875778577109625 + second: icon + - first: + 213: 1086597860007614453 + second: arisaDance_52 + - first: + 213: -1473077032702836631 + second: arisaDance_53 externalObjects: {} serializedVersion: 11 mipmaps: @@ -199,7 +208,7 @@ TextureImporter: spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 + spritePixelsToUnits: 300 spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 0 alphaUsage: 1 @@ -218,7 +227,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 + maxTextureSize: 4096 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -230,7 +239,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 2048 + maxTextureSize: 4096 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -247,16 +256,16 @@ TextureImporter: name: arisaDance_0 rect: serializedVersion: 2 - x: 39 - y: 1850 - width: 161 - height: 177 - alignment: 0 + x: 85 + y: 5518 + width: 547 + height: 595 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 4b3cbd425772e8870800000000000000 internalID: 8686924115327304628 @@ -268,16 +277,16 @@ TextureImporter: name: arisaDance_1 rect: serializedVersion: 2 - x: 278 - y: 1853 - width: 160 - height: 176 - alignment: 0 + x: 802 + y: 5527 + width: 544 + height: 592 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 5937b4d87004ddcf0800000000000000 internalID: -225954005119175787 @@ -289,16 +298,16 @@ TextureImporter: name: arisaDance_2 rect: serializedVersion: 2 - x: 518 - y: 1852 - width: 160 - height: 177 - alignment: 0 + x: 1522 + y: 5524 + width: 544 + height: 595 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 0952896c753d8e7a0800000000000000 internalID: -6347591300831238768 @@ -310,16 +319,16 @@ TextureImporter: name: arisaDance_3 rect: serializedVersion: 2 - x: 761 - y: 1850 - width: 161 - height: 177 - alignment: 0 + x: 2251 + y: 5518 + width: 547 + height: 595 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 781e125502dfaf8a0800000000000000 internalID: -6270421215850929785 @@ -331,16 +340,16 @@ TextureImporter: name: arisaDance_4 rect: serializedVersion: 2 - x: 999 - y: 1848 - width: 161 - height: 177 - alignment: 0 + x: 2965 + y: 5512 + width: 547 + height: 595 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 4046a240c5d51e530800000000000000 internalID: 3882487003558339588 @@ -352,16 +361,16 @@ TextureImporter: name: arisaDance_5 rect: serializedVersion: 2 - x: 1239 - y: 1848 - width: 161 - height: 177 - alignment: 0 + x: 3685 + y: 5512 + width: 547 + height: 595 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: ca5a742af27953050800000000000000 internalID: 5779691927641761196 @@ -373,16 +382,16 @@ TextureImporter: name: arisaDance_6 rect: serializedVersion: 2 - x: 1479 - y: 1850 - width: 161 - height: 176 - alignment: 0 + x: 4405 + y: 5518 + width: 547 + height: 592 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 7a33900d8707882e0800000000000000 internalID: -2123323560116538457 @@ -394,16 +403,16 @@ TextureImporter: name: arisaDance_7 rect: serializedVersion: 2 - x: 1718 - y: 1850 - width: 160 - height: 179 - alignment: 0 + x: 5122 + y: 5518 + width: 544 + height: 601 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: e87429cb7eee690a0800000000000000 internalID: -6875045102065924210 @@ -415,16 +424,16 @@ TextureImporter: name: arisaDance_8 rect: serializedVersion: 2 - x: 47 - y: 1682 - width: 81 - height: 105 - alignment: 0 + x: 109 + y: 5014 + width: 307 + height: 379 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 98d7527fdf4f409c0800000000000000 internalID: -3961772400568861303 @@ -436,16 +445,16 @@ TextureImporter: name: arisaDance_9 rect: serializedVersion: 2 - x: 199 - y: 1681 - width: 81 - height: 53 - alignment: 0 + x: 565 + y: 5011 + width: 307 + height: 223 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 36ab343342be6d890800000000000000 internalID: -7433495594216998301 @@ -457,16 +466,16 @@ TextureImporter: name: arisaDance_10 rect: serializedVersion: 2 - x: 356 - y: 1672 - width: 65 - height: 67 - alignment: 0 + x: 1036 + y: 4984 + width: 259 + height: 265 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 53db73a084b3e27f0800000000000000 internalID: -635505316817552075 @@ -478,16 +487,16 @@ TextureImporter: name: arisaDance_11 rect: serializedVersion: 2 - x: 531 - y: 1681 - width: 66 - height: 53 - alignment: 0 + x: 1561 + y: 5011 + width: 262 + height: 223 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: eb923c79ccb55f540800000000000000 internalID: 5041036292188744126 @@ -499,16 +508,16 @@ TextureImporter: name: arisaDance_12 rect: serializedVersion: 2 - x: 700 - y: 1692 - width: 80 - height: 50 - alignment: 0 + x: 2068 + y: 5044 + width: 304 + height: 214 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 73b568839fe259f70800000000000000 internalID: 9193305862276799287 @@ -520,16 +529,16 @@ TextureImporter: name: arisaDance_13 rect: serializedVersion: 2 - x: 837 - y: 1683 - width: 80 - height: 53 - alignment: 0 + x: 2479 + y: 5017 + width: 304 + height: 223 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 25462fbac5e698720800000000000000 internalID: 2848929583589385298 @@ -541,16 +550,16 @@ TextureImporter: name: arisaDance_14 rect: serializedVersion: 2 - x: 956 - y: 1685 - width: 78 - height: 53 - alignment: 0 + x: 2836 + y: 5023 + width: 298 + height: 223 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: b29d63796036a7ea0800000000000000 internalID: -5874273883993482965 @@ -562,16 +571,16 @@ TextureImporter: name: arisaDance_15 rect: serializedVersion: 2 - x: 1086 - y: 1683 - width: 48 - height: 66 - alignment: 0 + x: 3226 + y: 5017 + width: 208 + height: 262 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 5af12a07b38be0080800000000000000 internalID: -9219228821748572251 @@ -583,16 +592,16 @@ TextureImporter: name: arisaDance_16 rect: serializedVersion: 2 - x: 241 - y: 1508 - width: 59 - height: 45 - alignment: 0 + x: 691 + y: 4492 + width: 241 + height: 199 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: fdc22bee70fbebcf0800000000000000 internalID: -234540089786356513 @@ -604,16 +613,16 @@ TextureImporter: name: arisaDance_17 rect: serializedVersion: 2 - x: 369 - y: 1492 - width: 67 - height: 69 - alignment: 0 + x: 1075 + y: 4444 + width: 265 + height: 271 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 80e90a7044ee63f80800000000000000 internalID: -8127046501590327800 @@ -625,16 +634,16 @@ TextureImporter: name: arisaDance_18 rect: serializedVersion: 2 - x: 33 - y: 1278 - width: 47 - height: 137 - alignment: 0 + x: 67 + y: 3802 + width: 205 + height: 475 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 5db44c59dc2461550800000000000000 internalID: 6131161393459907541 @@ -646,16 +655,16 @@ TextureImporter: name: arisaDance_19 rect: serializedVersion: 2 - x: 149 - y: 1280 - width: 41 - height: 135 - alignment: 0 + x: 415 + y: 3808 + width: 187 + height: 469 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 61707c35c2a468340800000000000000 internalID: 4865658001664968470 @@ -667,16 +676,16 @@ TextureImporter: name: arisaDance_20 rect: serializedVersion: 2 - x: 253 - y: 1280 - width: 35 - height: 145 - alignment: 0 + x: 727 + y: 3808 + width: 169 + height: 499 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 798034473d7d99b10800000000000000 internalID: 1988858013649406103 @@ -688,16 +697,16 @@ TextureImporter: name: arisaDance_21 rect: serializedVersion: 2 - x: 349 - y: 1280 - width: 75 - height: 139 - alignment: 0 + x: 1015 + y: 3808 + width: 289 + height: 481 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 96a32cb3117e45c50800000000000000 internalID: 6653196610736110185 @@ -709,16 +718,16 @@ TextureImporter: name: arisaDance_22 rect: serializedVersion: 2 - x: 509 - y: 1280 - width: 55 - height: 137 - alignment: 0 + x: 1495 + y: 3808 + width: 229 + height: 475 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 9da7a60b62139dc00800000000000000 internalID: 925825240639634137 @@ -730,16 +739,16 @@ TextureImporter: name: arisaDance_23 rect: serializedVersion: 2 - x: 647 - y: 1280 - width: 63 - height: 133 - alignment: 0 + x: 1909 + y: 3808 + width: 253 + height: 463 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 82b1e6e5d6c3b0cc0800000000000000 internalID: -3743832224795059416 @@ -751,16 +760,16 @@ TextureImporter: name: arisaDance_24 rect: serializedVersion: 2 - x: 791 - y: 1280 - width: 61 - height: 127 - alignment: 0 + x: 2341 + y: 3808 + width: 247 + height: 445 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: bb13646841ddc8760800000000000000 internalID: 7461581762867900859 @@ -772,16 +781,16 @@ TextureImporter: name: arisaDance_25 rect: serializedVersion: 2 - x: 938 - y: 1278 - width: 54 - height: 123 - alignment: 0 + x: 2782 + y: 3802 + width: 226 + height: 433 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 38e9e8e6aba665ba0800000000000000 internalID: -6100571296275456381 @@ -793,16 +802,16 @@ TextureImporter: name: arisaDance_26 rect: serializedVersion: 2 - x: 1087 - y: 1278 - width: 47 - height: 135 - alignment: 0 + x: 3229 + y: 3802 + width: 205 + height: 469 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: e51c2dc6c22199ca0800000000000000 internalID: -6009752245735603874 @@ -814,16 +823,16 @@ TextureImporter: name: arisaDance_27 rect: serializedVersion: 2 - x: 1235 - y: 1278 - width: 43 - height: 149 - alignment: 0 + x: 3673 + y: 3802 + width: 193 + height: 511 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 940c82be9c86057f0800000000000000 internalID: -625885131761467319 @@ -835,16 +844,16 @@ TextureImporter: name: arisaDance_28 rect: serializedVersion: 2 - x: 1359 - y: 1282 - width: 45 - height: 111 - alignment: 0 + x: 4045 + y: 3814 + width: 199 + height: 397 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: e1d5468797ca84320800000000000000 internalID: 2542471627361508638 @@ -856,16 +865,16 @@ TextureImporter: name: arisaDance_29 rect: serializedVersion: 2 - x: 1469 - y: 1310 - width: 49 - height: 95 - alignment: 0 + x: 4375 + y: 3898 + width: 211 + height: 349 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 5b8e682968d3cb4d0800000000000000 internalID: -3117549193853998923 @@ -877,16 +886,16 @@ TextureImporter: name: arisaDance_30 rect: serializedVersion: 2 - x: 1425 - y: 1154 - width: 27 - height: 63 - alignment: 0 + x: 4243 + y: 3430 + width: 145 + height: 253 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 375c587fbf7bca970800000000000000 internalID: 8767584867400926579 @@ -898,16 +907,16 @@ TextureImporter: name: arisaDance_31 rect: serializedVersion: 2 - x: 1301 - y: 1152 - width: 53 - height: 69 - alignment: 0 + x: 3871 + y: 3424 + width: 223 + height: 271 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 1688215b77cf8cfb0800000000000000 internalID: -4627171026053986207 @@ -919,16 +928,16 @@ TextureImporter: name: arisaDance_32 rect: serializedVersion: 2 - x: 1183 - y: 1152 - width: 47 - height: 67 - alignment: 0 + x: 3517 + y: 3424 + width: 205 + height: 265 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 6475cef71dad85200800000000000000 internalID: 169125579355608902 @@ -940,16 +949,16 @@ TextureImporter: name: arisaDance_33 rect: serializedVersion: 2 - x: 1047 - y: 1152 - width: 67 - height: 61 - alignment: 0 + x: 3109 + y: 3424 + width: 265 + height: 247 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 4cde4f4dc981587c0800000000000000 internalID: -4069819626392588860 @@ -961,16 +970,16 @@ TextureImporter: name: arisaDance_34 rect: serializedVersion: 2 - x: 923 - y: 1170 - width: 45 - height: 45 - alignment: 0 + x: 2737 + y: 3478 + width: 199 + height: 199 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 179d2a7810c231e40800000000000000 internalID: 5625888744598067569 @@ -982,16 +991,16 @@ TextureImporter: name: arisaDance_35 rect: serializedVersion: 2 - x: 703 - y: 1160 - width: 161 - height: 49 - alignment: 0 + x: 2077 + y: 3448 + width: 547 + height: 211 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 7ede0ed90560eb130800000000000000 internalID: 3584309296749407719 @@ -1003,16 +1012,16 @@ TextureImporter: name: arisaDance_36 rect: serializedVersion: 2 - x: 561 - y: 1166 - width: 69 - height: 41 - alignment: 0 + x: 1651 + y: 3466 + width: 271 + height: 187 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 35b2e1d8c8f3f06e0800000000000000 internalID: -1869205447439930541 @@ -1024,16 +1033,16 @@ TextureImporter: name: arisaDance_37 rect: serializedVersion: 2 - x: 435 - y: 1158 - width: 57 - height: 51 - alignment: 0 + x: 1273 + y: 3442 + width: 235 + height: 217 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 0550488169829b680800000000000000 internalID: -8738908976814226096 @@ -1045,16 +1054,16 @@ TextureImporter: name: arisaDance_38 rect: serializedVersion: 2 - x: 291 - y: 1078 - width: 73 - height: 135 - alignment: 0 + x: 841 + y: 3202 + width: 283 + height: 469 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: cf31b6fc5a8a62e70800000000000000 internalID: 9090138327996896252 @@ -1066,16 +1075,16 @@ TextureImporter: name: arisaDance_39 rect: serializedVersion: 2 - x: 171 - y: 1154 - width: 41 - height: 59 - alignment: 0 + x: 481 + y: 3430 + width: 187 + height: 241 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 529a35096220267f0800000000000000 internalID: -620931433970292443 @@ -1087,16 +1096,16 @@ TextureImporter: name: arisaDance_40 rect: serializedVersion: 2 - x: 35 - y: 1160 - width: 57 - height: 47 - alignment: 0 + x: 73 + y: 3448 + width: 235 + height: 205 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 87395565fe3d2b690800000000000000 internalID: -7587769397266771080 @@ -1108,16 +1117,16 @@ TextureImporter: name: arisaDance_41 rect: serializedVersion: 2 - x: 33 - y: 1032 - width: 61 - height: 47 - alignment: 0 + x: 67 + y: 3064 + width: 247 + height: 205 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: dffdf4ea63f479f70800000000000000 internalID: 9193904260571455485 @@ -1129,16 +1138,16 @@ TextureImporter: name: arisaDance_42 rect: serializedVersion: 2 - x: 291 - y: 946 - width: 71 - height: 61 - alignment: 0 + x: 841 + y: 2806 + width: 277 + height: 247 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 355acccf53d154dc0800000000000000 internalID: -3655483404829547181 @@ -1150,16 +1159,16 @@ TextureImporter: name: arisaDance_43 rect: serializedVersion: 2 - x: 443 - y: 1016 - width: 57 - height: 69 - alignment: 0 + x: 1297 + y: 3016 + width: 235 + height: 271 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: a96acb98f0294c210800000000000000 internalID: 1352366383550998170 @@ -1171,16 +1180,16 @@ TextureImporter: name: arisaDance_44 rect: serializedVersion: 2 - x: 585 - y: 1014 - width: 59 - height: 71 - alignment: 0 + x: 1723 + y: 3010 + width: 241 + height: 277 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: ef5152f2c850a57f0800000000000000 internalID: -623179498792872450 @@ -1192,16 +1201,16 @@ TextureImporter: name: arisaDance_45 rect: serializedVersion: 2 - x: 725 - y: 1012 - width: 69 - height: 69 - alignment: 0 + x: 2143 + y: 3004 + width: 271 + height: 271 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 142b798b16c8787f0800000000000000 internalID: -610364873148747199 @@ -1213,16 +1222,16 @@ TextureImporter: name: arisaDance_46 rect: serializedVersion: 2 - x: 871 - y: 1016 - width: 63 - height: 63 - alignment: 0 + x: 2581 + y: 3016 + width: 253 + height: 253 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: da55ea89ae12d1f20800000000000000 internalID: 3394906985574847917 @@ -1234,16 +1243,16 @@ TextureImporter: name: arisaDance_47 rect: serializedVersion: 2 - x: 1021 - y: 1018 - width: 53 - height: 59 - alignment: 0 + x: 3031 + y: 3022 + width: 223 + height: 241 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: 454b7bdb7880e3310800000000000000 internalID: 1386555114373231700 @@ -1255,16 +1264,16 @@ TextureImporter: name: arisaDance_48 rect: serializedVersion: 2 - x: 1167 - y: 1024 - width: 51 - height: 53 - alignment: 0 + x: 3469 + y: 3040 + width: 217 + height: 223 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: c723f66b77e22bff0800000000000000 internalID: -21903956486704516 @@ -1276,16 +1285,16 @@ TextureImporter: name: arisaDance_49 rect: serializedVersion: 2 - x: 33 - y: 918 - width: 63 - height: 29 - alignment: 0 + x: 67 + y: 2722 + width: 253 + height: 151 + alignment: 9 pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: f261ce52ba4c13150800000000000000 internalID: 5850673630285665839 @@ -1297,16 +1306,16 @@ TextureImporter: name: arisaDance_50 rect: serializedVersion: 2 - x: 35 - y: 500 - width: 169 - height: 217 + x: 73 + y: 1468 + width: 571 + height: 715 alignment: 9 - pivot: {x: 0.24, y: 0.64} + pivot: {x: 0.26914185, y: 0.6274685} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] - tessellationDetail: 0 + tessellationDetail: -1 bones: [] spriteID: ceb81693a31c1a890800000000000000 internalID: -7448459852879131668 @@ -1314,6 +1323,69 @@ TextureImporter: indices: edges: [] weights: [] + - serializedVersion: 2 + name: icon + rect: + serializedVersion: 2 + x: 238 + y: 99 + width: 805 + height: 785 + alignment: 9 + pivot: {x: 0.039751552, y: 0.04076433} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 9721f608083f80d50800000000000000 + internalID: 6703875778577109625 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: arisaDance_52 + rect: + serializedVersion: 2 + x: 3726 + y: 4884 + width: 541 + height: 588 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 5f714732ffe541f00800000000000000 + internalID: 1086597860007614453 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: arisaDance_53 + rect: + serializedVersion: 2 + x: 4446 + y: 4898 + width: 541 + height: 586 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 96006f25e349e8be0800000000000000 + internalID: -1473077032702836631 + vertices: [] + indices: + edges: [] + weights: [] outline: [] physicsShape: [] bones: [] diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 141529bcc..4fd53783a 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -7634,8 +7634,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 602.5, y: -3164.16} - m_SizeDelta: {x: 1165, y: 64} + m_AnchoredPosition: {x: 602.5, y: -3382.16} + m_SizeDelta: {x: 1165, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &344042805 CanvasRenderer: @@ -19238,8 +19238,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 1 - m_Size: 0.9972352 + m_Value: 0 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -24820,7 +24820,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.91093} + m_AnchoredPosition: {x: 0, y: 129.9111} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -28006,7 +28006,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0.000026703} - m_SizeDelta: {x: 64, y: 64} + m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1294339011 MonoBehaviour: @@ -35580,9 +35580,9 @@ MonoBehaviour: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1423699437} - m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.Editor, Assembly-CSharp - m_MethodName: LoadRemix - m_Mode: 5 + m_TargetAssemblyTypeName: HeavenStudio.Editor.Editor, Assembly-CSharp + m_MethodName: NewRemix + m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine @@ -40746,7 +40746,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0.000026703} - m_SizeDelta: {x: 64, y: 64} + m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1973314442 MonoBehaviour: @@ -40768,7 +40768,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 3882487003558339588, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} + m_Sprite: {fileID: 6703875778577109625, guid: 62713d17eb1e1404bbafeb45c8b4b5b8, type: 3} m_Type: 0 m_PreserveAspect: 1 m_FillCenter: 1 diff --git a/Assets/Scripts/GameCamera.cs b/Assets/Scripts/GameCamera.cs index b6082697e..45aa8f738 100644 --- a/Assets/Scripts/GameCamera.cs +++ b/Assets/Scripts/GameCamera.cs @@ -15,6 +15,7 @@ namespace HeavenStudio private List positionEvents = new List(); private List rotationEvents = new List(); private List scaleEvents = new List(); + private List shakeEvents = new List(); /** default cam position, for quick-resetting @@ -22,6 +23,7 @@ namespace HeavenStudio public static Vector3 defaultPosition = new Vector3(0, 0, -10); public static Vector3 defaultRotEluer = new Vector3(0, 0, 0); public static Vector3 defaultScale = new Vector3(16, 9, 1); + public static Vector3 defaultShake = new Vector3(0, 0, 0); /** camera's current transformation @@ -30,6 +32,7 @@ namespace HeavenStudio private static Vector3 position; private static Vector3 rotEluer; private static Vector3 scale; + private static Vector3 shakeResult; /** camera's last transformation @@ -38,6 +41,7 @@ namespace HeavenStudio private static Vector3 positionLast; private static Vector3 rotEluerLast; private static Vector3 scaleLast; + private static Vector3 shakeLast; /** transformations to apply *after* the global transform, @@ -89,20 +93,27 @@ namespace HeavenStudio rotationEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "rotate camera" }); positionEvents.AddRange(EventCaller.GetAllInGameManagerList("gameManager", new string[] { "rotate camera" })); + //screen shake time baybee + + shakeEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "screen shake" }); + + //scale (TODO) // scaleEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale camera" }); UpdateCameraTranslate(); UpdateCameraRotate(); + SetShakeIntensity(); } private void Update() { UpdateCameraTranslate(); UpdateCameraRotate(); + SetShakeIntensity(); Camera cam = GetCamera(); - cam.transform.localPosition = position + additionalPosition; + cam.transform.localPosition = position + additionalPosition + shakeResult; cam.transform.eulerAngles = rotEluer + additionalRotEluer; cam.transform.localScale = Vector3.Scale(scale, additionalScale); } @@ -137,8 +148,9 @@ namespace HeavenStudio EasingFunction.Function func = EasingFunction.GetEasingFunction(e.ease); float dx = func(rotEluerLast.x, e.valA, Mathf.Min(prog, 1f)); float dy = func(rotEluerLast.y, e.valB, Mathf.Min(prog, 1f)); - float dz = func(rotEluerLast.z, e.valC, Mathf.Min(prog, 1f)); - rotEluer = new Vector3(dx, dy, dz); + float dz = func(-rotEluerLast.z, e.valC, Mathf.Min(prog, 1f)); + rotEluer = new Vector3(dx, dy, dz); //I'm stupid and forgot to negate the rotation gfd 😢 + } if (prog > 1f) { @@ -147,11 +159,29 @@ namespace HeavenStudio } } + private void SetShakeIntensity() + { + foreach (var e in shakeEvents) + { + float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (prog >= 0f) + { + float fac = Mathf.Cos(Time.time * 80f) * 0.5f; + shakeResult = new Vector3(fac * e.valA, fac * e.valB); + } + if (prog > 1f) + { + shakeResult = new Vector3(0, 0); + } + } + } + public static void ResetTransforms() { position = defaultPosition; rotEluer = defaultRotEluer; scale = defaultScale; + shakeResult = defaultShake; } public static void ResetAdditionalTransforms() diff --git a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs index 06d8812c9..9555292fe 100644 --- a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs +++ b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs @@ -12,7 +12,7 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("clappyTrio", "The Clappy Trio", "29E7FF", false, false, new List() { - new GameAction("clap", delegate { ClappyTrio.instance.Clap(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 3, true), + new GameAction("clap", delegate { ClappyTrio.instance.Clap(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 1, true), new GameAction("bop", delegate { ClappyTrio.instance.Bop(eventCaller.currentEntity.beat); } ), new GameAction("prepare", delegate { ClappyTrio.instance.Prepare(eventCaller.currentEntity.toggle ? 3 : 0); }, parameters: new List() { @@ -20,7 +20,7 @@ namespace HeavenStudio.Games.Loaders }), new GameAction("change lion count", delegate { ClappyTrio.instance.ChangeLionCount((int)eventCaller.currentEntity.valA); }, 0.5f, false, new List() { - new Param("valA", new EntityTypes.Integer(1, 8, 3), "Lion Count", "The amount of lions") + new Param("valA", new EntityTypes.Integer(3, 8, 3), "Lion Count", "The amount of lions") }), // This is still here for backwards-compatibility but is hidden in the editor new GameAction("prepare_alt", delegate { ClappyTrio.instance.Prepare(3); }, hidden: true), diff --git a/Assets/Scripts/Games/FanClub/FanClub.cs b/Assets/Scripts/Games/FanClub/FanClub.cs index b759e4c30..0998b081b 100644 --- a/Assets/Scripts/Games/FanClub/FanClub.cs +++ b/Assets/Scripts/Games/FanClub/FanClub.cs @@ -151,7 +151,7 @@ namespace HeavenStudio.Games public static FanClub instance; const int FAN_COUNT = 12; - const float RADIUS = 1.3f; + const float RADIUS = 1.5f; private void Awake() { instance = this; @@ -732,7 +732,7 @@ namespace HeavenStudio.Games { if (Spectators[i].GetComponent().IsJumping()) continue; - Spectators[i].GetComponent().Play("FanPrepare"); + Spectators[i].GetComponent().Play("FanPrepare", -1, 0); } } @@ -741,7 +741,7 @@ namespace HeavenStudio.Games BeatAction.New(this.gameObject, new List() { new BeatAction.Action(beat, delegate { PlayAnimationAll("FanClap", true, true);}), - new BeatAction.Action(beat + 0.25f, delegate { PlayAnimationAll("FanFree", true);}), + new BeatAction.Action(beat + 0.1f, delegate { PlayAnimationAll("FanFree", true, true);}), }); } @@ -750,7 +750,7 @@ namespace HeavenStudio.Games BeatAction.New(this.gameObject, new List() { new BeatAction.Action(beat, delegate { PlayAnimationAll("FanClap", true, true);}), - new BeatAction.Action(beat + 1f, delegate { PlayAnimationAll("FanFree", true);}), + new BeatAction.Action(beat + 1f, delegate { PlayAnimationAll("FanFree", true, true);}), }); } diff --git a/Assets/Scripts/Games/FanClub/NtrIdolFan.cs b/Assets/Scripts/Games/FanClub/NtrIdolFan.cs index 23b20a1bb..b29ddb523 100644 --- a/Assets/Scripts/Games/FanClub/NtrIdolFan.cs +++ b/Assets/Scripts/Games/FanClub/NtrIdolFan.cs @@ -53,7 +53,7 @@ namespace HeavenStudio.Games.Scripts_FanClub public void ClapJust(PlayerActionEvent caller, float state) { bool auto = GameManager.instance.autoplay; - ClapStart(true, false, auto ? 0.25f : 0f); + ClapStart(true, false, auto ? 0.1f : 0f); } public void ChargeClapJust(PlayerActionEvent caller, float state) diff --git a/Assets/Scripts/Games/KarateMan/KarateMan.cs b/Assets/Scripts/Games/KarateMan/KarateMan.cs index 2e08328ba..2e1547e2a 100644 --- a/Assets/Scripts/Games/KarateMan/KarateMan.cs +++ b/Assets/Scripts/Games/KarateMan/KarateMan.cs @@ -81,9 +81,9 @@ namespace HeavenStudio.Games.Loaders ), new GameAction("set object colors", delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); }, 0.5f, false, new List() { - new Param("colorA", new Color(), "Joe Body Color", "The color to use for Karate Joe's body"), - new Param("colorB", new Color(), "Joe Highlight Color", "The color to use for Karate Joe's highlights"), - new Param("colorC", new Color(), "Item Color", "The color to use for the thrown items"), + new Param("colorA", new Color(1,1,1,1), "Joe Body Color", "The color to use for Karate Joe's body"), + new Param("colorB", new Color(0.81f,0.81f,0.81f,1), "Joe Highlight Color", "The color to use for Karate Joe's highlights"), + new Param("colorC", new Color(1,1,1,1), "Item Color", "The color to use for the thrown items"), }, inactiveFunction: delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); } ), @@ -705,14 +705,15 @@ namespace HeavenStudio.Games if (e.beat > beat) break; SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3); + SetBgTexture(e.type4, e.type5, e.colorC, e.colorD); } - var bgtex = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/set background texture"); - for (int i = 0; i < bgtex.Count; i++) + var camfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/special camera"); + for (int i = 0; i < camfx.Count; i++) { - var e = bgtex[i]; + var e = camfx[i]; if (e.beat > beat) break; - SetBgTexture(e.type, e.type2, e.colorA, e.colorB); + DoSpecialCamera(e.beat, e.length, e.toggle); } // has issues when creating a new hitx entity so this is deactivated for now // var hitx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/hitX"); @@ -756,7 +757,10 @@ namespace HeavenStudio.Games //😢 if (fx != (int) BackgroundFXType.Fade) + { + bgColourLast = bgColour; oldShadowColour = GetShadowColor(true); + } if (textureFilterType == (int) ShadowType.Tinted) filterColour = Color.LerpUnclamped(bgColour, ShadowBlendColor, 0.45f); diff --git a/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs b/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs index 99a5644ff..49c208d24 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs @@ -117,6 +117,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan public void DoHit() { if (noriMode == (int) KarateMan.NoriMode.None) return; + if (MaxNori <= 0) return; float oldNori = Nori; if (noriMode == (int) KarateMan.NoriMode.Tengoku) { @@ -135,7 +136,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan NoriHeartAnimators[i].Play("NoriFull", -1, (Time.time * PeriodHigh) % 1f); } } - if (KarateMan.instance.NoriPerformance >= 0.6 && oldNori / MaxNori < 0.6) + if (KarateMan.instance.NoriPerformance >= 0.6f && oldNori / MaxNori < 0.6f) { Jukebox.PlayOneShotGame("karateman/nori_just"); } @@ -145,6 +146,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan public void DoNG() { if (noriMode == (int) KarateMan.NoriMode.None) return; + if (MaxNori <= 0) return; float oldNori = Nori; if (noriMode == (int) KarateMan.NoriMode.Tengoku) { @@ -172,7 +174,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan } } } - if (KarateMan.instance.NoriPerformance < 0.6 && oldNori / MaxNori >= 0.6) + if (KarateMan.instance.NoriPerformance < 0.6f && oldNori / MaxNori >= 0.6f) { Jukebox.PlayOneShotGame("karateman/nori_ng"); } @@ -182,6 +184,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan public void DoThrough() { if (noriMode == (int) KarateMan.NoriMode.None) return; + if (MaxNori <= 0) return; if (noriMode == (int) KarateMan.NoriMode.Tengoku) { if (Nori >= MaxNori) @@ -219,6 +222,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan { var cond = Conductor.instance; if (noriMode == (int) KarateMan.NoriMode.None) return; + if (MaxNori <= 0) return; float flashPeriod; for (int i = 0; i < NoriHeartMaterials.Length; i++) { diff --git a/Assets/Scripts/Games/KarateMan/KarateManPot.cs b/Assets/Scripts/Games/KarateMan/KarateManPot.cs index a9bb521aa..60670a923 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManPot.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManPot.cs @@ -287,8 +287,17 @@ namespace HeavenStudio.Games.Scripts_KarateMan prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat); transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f)); } + + if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 2f) + { + ParticleSystem p = Instantiate(HitParticles[7], transform.position, Quaternion.identity, KarateMan.instance.ItemHolder); + p.Play(); - if (prog >= 2f || (ItemKickable() && prog >= 1f)) { + GameObject.Destroy(ShadowInstance.gameObject); + GameObject.Destroy(gameObject); + return; + } + else if (prog >= 2f || (ItemKickable() && prog >= 1f)) { if (type == ItemType.KickBomb) { ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[6].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); @@ -347,7 +356,18 @@ namespace HeavenStudio.Games.Scripts_KarateMan break; case FlyStatus.NG: prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat); - if (cond.songPositionInBeats >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) { + + if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + curveTargetBeat) + { + KarateMan.instance.Joe.RemoveBombGlow(startBeat + curveTargetBeat, 1f); + ParticleSystem p = Instantiate(HitParticles[7], CurrentCurve.GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); + p.Play(); + + GameObject.Destroy(ShadowInstance.gameObject); + GameObject.Destroy(gameObject); + return; + } + else if (cond.songPositionInBeats >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) { if (type == ItemType.KickBomb) { ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder); @@ -371,13 +391,25 @@ namespace HeavenStudio.Games.Scripts_KarateMan break; case FlyStatus.HitWeak: prog = cond.GetPositionFromBeat(startBeat, 1f); - if (cond.songPositionInBeats >= startBeat + 3f) + + Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z); + if (type == ItemType.Bomb && cond.songPositionInBeats >= startBeat + 1f) + { + KarateMan.instance.Joe.RemoveBombGlow(startBeat + 1f, 1f); + + ParticleSystem p = Instantiate(HitParticles[7], pos, Quaternion.identity, KarateMan.instance.ItemHolder); + p.Play(); + + GameObject.Destroy(ShadowInstance.gameObject); + GameObject.Destroy(gameObject); + return; + } + else if (cond.songPositionInBeats >= startBeat + 3f) { GameObject.Destroy(ShadowInstance.gameObject); GameObject.Destroy(gameObject); return; } - Vector3 pos = new Vector3(HitPosition[1].position.x + 0.25f, HitPosition[0].position.y, HitPosition[1].position.z); if (prog <= 1f) { pos.y = EasingFunction.EaseInCubic(HitPosition[1].position.y, HitPosition[0].position.y, prog); @@ -439,6 +471,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan Jukebox.PlayOneShotGame("karateman/rockHit", forcePlay: true); p = Instantiate(HitParticles[4], HitPosition[1].position, Quaternion.identity, game.ItemHolder); p.Play(); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.Ball: CurrentCurve = ItemCurves[1]; @@ -455,6 +490,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan p.Play(); game.CreateItemInstance(startBeat + 1f, "Item09", 0, ItemType.CookingLid); GetComponent().Play("Item08", -1, 0); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.Alien: CurrentCurve = ItemCurves[1]; @@ -462,6 +500,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan Jukebox.PlayOneShotGame("karateman/alienHit", forcePlay: true); p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder); p.Play(); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.Bomb: CurrentCurve = ItemCurves[1]; @@ -470,6 +511,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan p = Instantiate(HitParticles[2], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder); p.Play(); game.Joe.RemoveBombGlow(startBeat + 1f, 1f); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.TacoBell: CurrentCurve = ItemCurves[1]; @@ -478,6 +522,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan Jukebox.PlayOneShotGame("karateman/tacobell", forcePlay: true); p = Instantiate(HitParticles[1], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder); p.Play(); + + if (game.IsNoriActive && game.NoriPerformance >= 1f) + Jukebox.PlayOneShotGame("karateman/rockHit_fullNori", forcePlay: true); break; case ItemType.ComboPot1: CurrentCurve = ItemCurves[straight ? 1 : 0]; @@ -551,9 +598,16 @@ namespace HeavenStudio.Games.Scripts_KarateMan default: CurrentCurve = ItemCurves[straight ? 1 : 0]; curveTargetBeat = straight ? 1f : 1.5f; - Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true); + if (game.IsNoriActive && game.NoriPerformance < 0.6f) + { + Jukebox.PlayOneShotGame("karateman/potHit_lowNori", forcePlay: true); + Jukebox.PlayOneShotGame("karateman/potHit", volume: 0.66f, forcePlay: true); + } + else + Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true); p = Instantiate(HitParticles[3], HitPosition[1].position, Quaternion.identity, game.ItemHolder); p.Play(); + break; } @@ -590,6 +644,21 @@ namespace HeavenStudio.Games.Scripts_KarateMan } } + bool ItemNeedNori() + { + switch (type) + { + case ItemType.Rock: + case ItemType.Cooking: + case ItemType.Alien: + case ItemType.Bomb: + case ItemType.TacoBell: + return true; + default: + return false; + } + } + void JoeComboSequence() { if (GameManager.instance.currentGame != "karateman") return; @@ -683,8 +752,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan else { if (KarateMan.instance.IsNoriActive) { - if ((type == ItemType.Rock || type == ItemType.Cooking || type == ItemType.Alien || type == ItemType.TacoBell) - && KarateMan.instance.NoriPerformance < 0.6f) + if (ItemNeedNori() && KarateMan.instance.NoriPerformance < 0.6f) { CreateHitMark(false); startBeat = Conductor.instance.songPositionInBeats; diff --git a/Assets/Scripts/Games/SamuraiSliceNtr/NtrSamuraiObject.cs b/Assets/Scripts/Games/SamuraiSliceNtr/NtrSamuraiObject.cs index 6e3098cc8..71a8e8917 100644 --- a/Assets/Scripts/Games/SamuraiSliceNtr/NtrSamuraiObject.cs +++ b/Assets/Scripts/Games/SamuraiSliceNtr/NtrSamuraiObject.cs @@ -11,6 +11,7 @@ namespace HeavenStudio.Games.Scripts_NtrSamurai { [Header("Objects")] public ParticleSystem moneyBurst; + public ParticleSystem pickelBurst; public Animator anim; public NtrSamuraiObject secondHalf; @@ -44,6 +45,9 @@ namespace HeavenStudio.Games.Scripts_NtrSamurai case (int) SamuraiSliceNtr.ObjectType.Demon: anim.Play("ObjDemonDebris02"); break; + case (int) SamuraiSliceNtr.ObjectType.Melon2B2T: + anim.Play("ObjMelonPickelDebris02"); + break; default: anim.Play("ObjMelonDebris"); break; @@ -70,6 +74,9 @@ namespace HeavenStudio.Games.Scripts_NtrSamurai new MultiSound.Sound("samuraiSliceNtr/ntrSamurai_in01", startBeat + 2f), }); break; + case (int) SamuraiSliceNtr.ObjectType.Melon2B2T: + anim.Play("ObjMelonPickel"); + break; default: anim.Play("ObjMelon"); break; @@ -280,8 +287,12 @@ namespace HeavenStudio.Games.Scripts_NtrSamurai this.startBeat = caller.startBeat + caller.timer; if (type == (int) SamuraiSliceNtr.ObjectType.Demon) - { anim.Play("ObjDemonDebris01"); + else if (type == (int) SamuraiSliceNtr.ObjectType.Melon2B2T) + { + Jukebox.PlayOneShotGame("samuraiSliceNtr/melon_dig"); + pickelBurst.Play(); + anim.Play("ObjMelonPickelDebris01"); } if (holdingCash > 0) diff --git a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs index f01cc41f4..f45d9694c 100644 --- a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs +++ b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs @@ -41,7 +41,8 @@ namespace HeavenStudio.Games public enum ObjectType { Melon, Fish, - Demon + Demon, + Melon2B2T, } [Header("References")] diff --git a/Assets/Scripts/Games/SpaceSoccer/Kicker.cs b/Assets/Scripts/Games/SpaceSoccer/Kicker.cs index 8e023f034..5023918fb 100644 --- a/Assets/Scripts/Games/SpaceSoccer/Kicker.cs +++ b/Assets/Scripts/Games/SpaceSoccer/Kicker.cs @@ -9,7 +9,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer public class Kicker : PlayerActionObject { [Header("Properties")] - public bool canKick; + public bool canKick = true; //why was this false by default??? public bool canHighKick; private bool kickPrepare = false; public bool kickLeft; @@ -168,21 +168,22 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer kickLeft = true; } - List keepUps = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/keep-up"); + // List keepUps = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/keep-up"); + // for (int i = 0; i < keepUps.Count; i++) + // { + // if ((keepUps[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && (keepUps[i].beat + keepUps[i].length) - 0.15f > Conductor.instance.songPositionInBeats) + // { + // canKick = true; + // canHighKick = false; + // break; + // } + // else + // { + // canKick = false; + // } + // } + List highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!"); - for (int i = 0; i < keepUps.Count; i++) - { - if ((keepUps[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && (keepUps[i].beat + keepUps[i].length) - 0.15f > Conductor.instance.songPositionInBeats) - { - canKick = true; - canHighKick = false; - break; - } - else - { - canKick = false; - } - } for (int i = 0; i < highKicks.Count; i++) { if ((highKicks[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && highKicks[i].beat + 1f > Conductor.instance.songPositionInBeats) @@ -200,6 +201,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer } else { + canKick = true; canHighKick = false; } } diff --git a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs index ae322a546..59c3e546a 100644 --- a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs +++ b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs @@ -18,11 +18,11 @@ namespace HeavenStudio.Games.Loaders new Param("toggle", false, "Disable Sound", "Disables the dispense sound") }, inactiveFunction: delegate { if (!eventCaller.currentEntity.toggle) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat); } }), - new GameAction("keep-up", delegate { }, 4f, true), new GameAction("high kick-toe!", delegate { }, 3f, false, new List() { new Param("swing", new EntityTypes.Float(0, 1, 0.5f), "Swing", "The amount of swing") }), + new GameAction("keep-up", delegate { }, 4f, true, hidden: true), }); } } @@ -102,6 +102,8 @@ namespace HeavenStudio.Games { DispenseSound(beat); } + + kicker.canKick = true; } } diff --git a/Assets/Scripts/Games/Spaceball/Spaceball.cs b/Assets/Scripts/Games/Spaceball/Spaceball.cs index 48ef78638..4b6cd9d03 100644 --- a/Assets/Scripts/Games/Spaceball/Spaceball.cs +++ b/Assets/Scripts/Games/Spaceball/Spaceball.cs @@ -12,9 +12,15 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("spaceball", "Spaceball", "00A518", false, false, new List() { - new GameAction("shoot", delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, false, eventCaller.currentEntity.type); }, 2, false), - new GameAction("shootHigh", delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, true, eventCaller.currentEntity.type); }, 3), - new GameAction("costume", delegate { Spaceball.instance.Costume(eventCaller.currentEntity.type); }, 1f, false, new List() + new GameAction("shoot", delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, false, eventCaller.currentEntity.type); }, 2, false, new List() + { + new Param("type", Spaceball.BallType.Baseball, "Type", "The type of ball/object to shoot") + } ), + new GameAction("shootHigh", delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, true, eventCaller.currentEntity.type); }, 3, false, new List() + { + new Param("type", Spaceball.BallType.Baseball, "Type", "The type of ball/object to shoot") + } ), + new GameAction("costume", delegate { Spaceball.instance.Costume(eventCaller.currentEntity.type); }, 1f, false, new List() { new Param("type", Spaceball.CostumeType.Standard, "Type", "The costume to change to") } ), @@ -36,6 +42,11 @@ namespace HeavenStudio.Games public class Spaceball : Minigame { + public enum BallType { + Baseball, + Onigiri + } + public enum CostumeType { Standard, Bunny, diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 203cd65c0..dc345fea6 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -70,6 +70,8 @@ namespace HeavenStudio.Editor public bool editingInputField = false; public bool isCursorEnabled = true; + private byte[] MusicBytes; + public static Editor instance { get; private set; } private void Start() @@ -158,7 +160,7 @@ namespace HeavenStudio.Editor { if (Input.GetKeyDown(KeyCode.N)) { - LoadRemix(""); + NewRemix(); } else if (Input.GetKeyDown(KeyCode.O)) { @@ -294,6 +296,22 @@ namespace HeavenStudio.Editor } } + try + { + if (clip != null) + MusicBytes = OggVorbis.VorbisPlugin.GetOggVorbis(Conductor.instance.musicSource.clip, 1); + else + { + MusicBytes = null; + Debug.LogWarning("Failed to load music file! The stream is currently empty."); + } + } + catch (System.Exception) + { + MusicBytes = null; + Debug.LogWarning("Failed to load music file! The stream is currently empty."); + } + return clip; } @@ -343,15 +361,12 @@ namespace HeavenStudio.Editor using (var zipStream = levelFile.Open()) zipStream.Write(Encoding.UTF8.GetBytes(GetJson()), 0, Encoding.UTF8.GetBytes(GetJson()).Length); - if (changedMusic || currentRemixPath != path) + if (MusicBytes != null) { - // this gets rid of the music file for some reason, someone remind me to find a fix for this soon + var musicFile = archive.CreateEntry("song.ogg", System.IO.Compression.CompressionLevel.NoCompression); + using (var zipStream = musicFile.Open()) + zipStream.Write(MusicBytes, 0, MusicBytes.Length); } - - byte[] bytes = OggVorbis.VorbisPlugin.GetOggVorbis(Conductor.instance.musicSource.clip, 1); - var musicFile = archive.CreateEntry("song.ogg", System.IO.Compression.CompressionLevel.NoCompression); - using (var zipStream = musicFile.Open()) - zipStream.Write(bytes, 0, bytes.Length); } currentRemixPath = path; @@ -359,6 +374,12 @@ namespace HeavenStudio.Editor } } + public void NewRemix() + { + MusicBytes = null; + LoadRemix(""); + } + public void LoadRemix(string json = "") { GameManager.instance.LoadRemix(json); @@ -367,6 +388,8 @@ namespace HeavenStudio.Editor Timeline.instance.VolumeInfo.UpdateStartingVolumeText(); Timeline.instance.TempoInfo.UpdateOffsetText(); Timeline.FitToSong(); + + currentRemixPath = string.Empty; } public void OpenRemix() @@ -380,58 +403,45 @@ namespace HeavenStudio.Editor { var path = Path.Combine(paths); - if (path != String.Empty) - { - loadedMusic = false; + if (path == string.Empty) return; + loadedMusic = false; - using (FileStream zipFile = File.Open(path, FileMode.Open)) + using var zipFile = File.Open(path, FileMode.Open); + using var archive = new ZipArchive(zipFile, ZipArchiveMode.Read); + + foreach (var entry in archive.Entries) + switch (entry.Name) { - using (var archive = new ZipArchive(zipFile, ZipArchiveMode.Read)) + case "remix.json": { - foreach (ZipArchiveEntry entry in archive.Entries) - { - if (entry.Name == "remix.json") - { - using (var stream = entry.Open()) - { - byte[] bytes; - using (var ms = new MemoryStream()) - { - stream.CopyTo(ms); - bytes = ms.ToArray(); - string json = Encoding.UTF8.GetString(bytes); - LoadRemix(json); - } - } - } - else if (entry.Name == "song.ogg") - { - using (var stream = entry.Open()) - { - byte[] bytes; - using (var ms = new MemoryStream()) - { - stream.CopyTo(ms); - bytes = ms.ToArray(); - Conductor.instance.musicSource.clip = OggVorbis.VorbisPlugin.ToAudioClip(bytes, "music"); - loadedMusic = true; - Timeline.FitToSong(); - } - } - } - } + using var stream = entry.Open(); + using var reader = new StreamReader(stream); + LoadRemix(reader.ReadToEnd()); + + break; + } + case "song.ogg": + { + using var stream = entry.Open(); + using var memoryStream = new MemoryStream(); + stream.CopyTo(memoryStream); + MusicBytes = memoryStream.ToArray(); + Conductor.instance.musicSource.clip = OggVorbis.VorbisPlugin.ToAudioClip(MusicBytes, "music"); + loadedMusic = true; + Timeline.FitToSong(); + + break; } } - if (!loadedMusic) - Conductor.instance.musicSource.clip = null; + if (!loadedMusic) + Conductor.instance.musicSource.clip = null; - currentRemixPath = path; - remixName = Path.GetFileName(path); - UpdateEditorStatus(false); - CommandManager.instance.Clear(); - Timeline.FitToSong(); - } + currentRemixPath = path; + remixName = Path.GetFileName(path); + UpdateEditorStatus(false); + CommandManager.instance.Clear(); + Timeline.FitToSong(); }); } @@ -473,7 +483,7 @@ namespace HeavenStudio.Editor private void UpdateEditorStatus(bool updateTime) { if (discordDuringTesting || !Application.isEditor) - DiscordRPC.DiscordRPC.UpdateActivity("In Editor", $"{remixName}", updateTime); + DiscordRPC.DiscordRPC.UpdateActivity("In Editor", $"{remixName}", updateTime); } public string GetJson() diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs index 0204bcf19..99ef48e47 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; - +using System.Linq; using TMPro; using Starpelly; @@ -47,135 +47,139 @@ namespace HeavenStudio.Editor this.propertyName = propertyName; this.caption.text = caption; - var objType = type.GetType(); - - if (objType == typeof(EntityTypes.Integer)) + switch (type) { - var integer = ((EntityTypes.Integer)type); + case EntityTypes.Integer integer: + slider.minValue = integer.min; + slider.maxValue = integer.max; - slider.minValue = integer.min; - slider.maxValue = integer.max; - - slider.value = Mathf.RoundToInt(System.Convert.ToSingle(parameterManager.entity[propertyName])); - inputField.text = slider.value.ToString(); - - slider.onValueChanged.AddListener(delegate - { + slider.wholeNumbers = true; + slider.value = Convert.ToSingle(parameterManager.entity[propertyName]); inputField.text = slider.value.ToString(); - parameterManager.entity[propertyName] = (int)slider.value; - }); - inputField.onSelect.AddListener(delegate - { - Editor.instance.editingInputField = true; - }); + slider.onValueChanged.AddListener( + _ => + { + inputField.text = slider.value.ToString(); + parameterManager.entity[propertyName] = (int) slider.value; + } + ); - inputField.onEndEdit.AddListener(delegate - { - slider.value = Mathf.RoundToInt(System.Convert.ToSingle(System.Convert.ToSingle(inputField.text))); - parameterManager.entity[propertyName] = (int)slider.value; - Editor.instance.editingInputField = false; - }); - } - else if (objType == typeof(EntityTypes.Float)) - { - var fl = ((EntityTypes.Float)type); + inputField.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); - slider.minValue = fl.min; - slider.maxValue = fl.max; + inputField.onEndEdit.AddListener( + _ => + { + slider.value = Convert.ToSingle(inputField.text); + parameterManager.entity[propertyName] = (int) slider.value; + Editor.instance.editingInputField = false; + } + ); + break; - slider.value = System.Convert.ToSingle(parameterManager.entity[propertyName]); - inputField.text = slider.value.ToString("G"); + case EntityTypes.Float fl: + slider.minValue = fl.min; + slider.maxValue = fl.max; - slider.onValueChanged.AddListener(delegate - { - var newValue = (float)System.Math.Round(slider.value, 4); - inputField.text = newValue.ToString("G"); - parameterManager.entity[propertyName] = newValue; - }); + slider.value = Convert.ToSingle(parameterManager.entity[propertyName]); + inputField.text = slider.value.ToString("G"); - inputField.onSelect.AddListener(delegate - { - Editor.instance.editingInputField = true; - }); + slider.onValueChanged.AddListener( + _ => + { + var newValue = (float) Math.Round(slider.value, 4); + inputField.text = newValue.ToString("G"); + parameterManager.entity[propertyName] = newValue; + } + ); - inputField.onEndEdit.AddListener(delegate - { - slider.value = (float)System.Math.Round(System.Convert.ToSingle(inputField.text), 4); - parameterManager.entity[propertyName] = slider.value; - Editor.instance.editingInputField = false; - }); - } - else if(type is bool) - { - toggle.isOn = System.Convert.ToBoolean(parameterManager.entity[propertyName]); // ' (bool)type ' always results in false + inputField.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); - toggle.onValueChanged.AddListener(delegate - { - parameterManager.entity[propertyName] = toggle.isOn; - }); - } - else if (objType.IsEnum) - { - List dropDownData = new List(); - var vals = Enum.GetValues(objType); - var selected = 0; - for (int i = 0; i < vals.Length; i++) - { - string name = Enum.GetNames(objType)[i]; - TMP_Dropdown.OptionData optionData = new TMP_Dropdown.OptionData(); + inputField.onEndEdit.AddListener( + _ => + { + slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4); + parameterManager.entity[propertyName] = slider.value; + Editor.instance.editingInputField = false; + } + ); + break; - optionData.text = name; + case bool _: + // ' (bool)type ' always results in false + toggle.isOn = Convert.ToBoolean(parameterManager.entity[propertyName]); - dropDownData.Add(optionData); + toggle.onValueChanged.AddListener( + _ => parameterManager.entity[propertyName] = toggle.isOn + ); + break; - if ((int)vals.GetValue(i) == (int)parameterManager.entity[propertyName]) - selected = i; - } - dropdown.AddOptions(dropDownData); - dropdown.value = selected; - - dropdown.onValueChanged.AddListener(delegate - { - parameterManager.entity[propertyName] = (int)Enum.GetValues(objType).GetValue(dropdown.value); - }); - } - else if (objType == typeof(Color)) - { - colorPreview.colorPicker.onColorChanged += delegate - { - parameterManager.entity[propertyName] = (Color)colorPreview.colorPicker.color; - }; + case Color _: + colorPreview.colorPicker.onColorChanged += _ => + parameterManager.entity[propertyName] = colorPreview.colorPicker.color; - Color paramCol = (Color)parameterManager.entity[propertyName]; + var paramCol = (Color) parameterManager.entity[propertyName]; + + ColorBTN.onClick.AddListener( + () => + { + ColorTable.gameObject.SetActive(true); + colorTableActive = true; + colorPreview.ChangeColor(paramCol); + } + ); - ColorBTN.onClick.AddListener(delegate - { - ColorTable.gameObject.SetActive(true); - colorTableActive = true; colorPreview.ChangeColor(paramCol); - }); + ColorTable.gameObject.SetActive(false); + break; - colorPreview.ChangeColor(paramCol); - ColorTable.gameObject.SetActive(false); - } - //why the FUCK wasn't this a thing before lmao - else if(objType == typeof(string)) - { - // Debug.Log("entity " + propertyName + " is: " + (string)(parameterManager.entity[propertyName])); - inputFieldString.text = (string)(parameterManager.entity[propertyName]); + case string _: + inputFieldString.text = (string) parameterManager.entity[propertyName]; - inputFieldString.onSelect.AddListener(delegate - { - Editor.instance.editingInputField = true; - }); + inputFieldString.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + inputFieldString.onEndEdit.AddListener( + _ => + {; + parameterManager.entity[propertyName] = inputFieldString.text; + Editor.instance.editingInputField = false; + } + ); + break; - inputFieldString.onEndEdit.AddListener(delegate - { - // Debug.Log("setting " + propertyName + " to: " + inputFieldString.text); - parameterManager.entity[propertyName] = inputFieldString.text; - Editor.instance.editingInputField = false; - }); + case Enum enumKind: + var enumType = enumKind.GetType(); + var enumVals = Enum.GetValues(enumType); + var enumNames = Enum.GetNames(enumType).ToList(); + + // Can we assume non-holey enum? + // If we can we can simplify to dropdown.value = (int) parameterManager.entity[propertyName] + var currentlySelected = (int) parameterManager.entity[propertyName]; + var selected = enumVals + .Cast() + .ToList() + .FindIndex(val => (int) val == currentlySelected); + + dropdown.AddOptions(enumNames); + dropdown.value = selected; + + dropdown.onValueChanged.AddListener(_ => + parameterManager.entity[propertyName] = (int) enumVals.GetValue(dropdown.value) + ); + break; + + default: + throw new ArgumentOutOfRangeException( + nameof(type), type, "I don't know how to make a property of this type!" + ); } } diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index cdb9132ef..61fc1455c 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -217,7 +217,13 @@ namespace HeavenStudio new Minigame("gameManager", "Game Manager", "", false, true, new List() { new GameAction("switchGame", delegate { GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat); }, 0.5f, inactiveFunction: delegate { GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat); }), - new GameAction("end", delegate { Debug.Log("end"); GameManager.instance.Stop(0); Timeline.instance?.SetTimeButtonColors(true, false, false);}), + new GameAction("end", delegate { + Debug.Log("end"); + if (Timeline.instance != null) + Timeline.instance?.Stop(0); + else + GameManager.instance.Stop(0); + }), new GameAction("skill star", delegate { }, 1f, true), new GameAction("toggle inputs", delegate @@ -332,10 +338,7 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease") }, hidden: false ), - new GameAction("move camera", delegate - { - //TODO: move cam - }, 1f, true, new List() + new GameAction("move camera", delegate {}, 1f, true, new List() { new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left"), new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down"), @@ -343,10 +346,7 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease Type") } ), - new GameAction("rotate camera", delegate - { - //TODO: rot cam - }, 1f, true, new List() + new GameAction("rotate camera", delegate {}, 1f, true, new List() { new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch"), new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw"), @@ -354,6 +354,12 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease Type") } ), + new GameAction("screen shake", delegate {}, 1f, true, new List() + { + new Param("valA", new EntityTypes.Float(0, 10, 0), "Horizontal Intensity"), + new Param("valB", new EntityTypes.Float(0, 10, 1), "Vertical Intensity") + } ), + new GameAction("display textbox", delegate { }, 1f, true, new List() diff --git a/Assets/StreamingAssets/StreamingAssets b/Assets/StreamingAssets/StreamingAssets index bb52ace7c..16c75032a 100644 Binary files a/Assets/StreamingAssets/StreamingAssets and b/Assets/StreamingAssets/StreamingAssets differ diff --git a/Assets/StreamingAssets/StreamingAssets.manifest b/Assets/StreamingAssets/StreamingAssets.manifest index 47c2611f6..01a4f57ed 100644 --- a/Assets/StreamingAssets/StreamingAssets.manifest +++ b/Assets/StreamingAssets/StreamingAssets.manifest @@ -1,5 +1,5 @@ ManifestFileVersion: 0 -CRC: 3987467636 +CRC: 1516953164 AssetBundleManifest: AssetBundleInfos: Info_0: diff --git a/Assets/StreamingAssets/karate/common b/Assets/StreamingAssets/karate/common index a6196c15e..63f06ec45 100644 Binary files a/Assets/StreamingAssets/karate/common and b/Assets/StreamingAssets/karate/common differ diff --git a/Assets/StreamingAssets/karate/common.manifest b/Assets/StreamingAssets/karate/common.manifest index 2368d854d..d1dbd8e6f 100644 --- a/Assets/StreamingAssets/karate/common.manifest +++ b/Assets/StreamingAssets/karate/common.manifest @@ -1,12 +1,12 @@ ManifestFileVersion: 0 -CRC: 3318721259 +CRC: 1091441775 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 4cfac5e8dc99494dc00682c7557b48a9 + Hash: f85b652eadac4ff300c579adfa67313b TypeTreeHash: serializedVersion: 2 - Hash: b85016ff9dcfb2997245f008dd1f64b6 + Hash: 2b92e6f111bbb24dabe3a2c56ea02b28 HashAppended: 0 ClassTypes: - Class: 1 @@ -29,10 +29,10 @@ ClassTypes: Script: {instanceID: 0} - Class: 95 Script: {instanceID: 0} -- Class: 114 - Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - Class: 114 Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} +- Class: 114 + Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - Class: 114 Script: {fileID: 11500000, guid: 3f1678e3fe1b7c94f9a1558cfd247853, type: 3} - Class: 114 @@ -91,11 +91,13 @@ Assets: - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item03.anim - Assets/Resources/Sprites/Games/KarateMan/effect/barrelWoodRecolorable.png - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item09.anim +- Assets/Resources/Sfx/games/karateman/gogoSwitch.ogg - Assets/Resources/Sfx/games/karateman/nori_ng.wav - Assets/Resources/Sprites/Games/KarateMan/effect/potStar.png - Assets/Resources/Sprites/Games/KarateMan/effect/kickFragment.png - Assets/Resources/Sfx/games/karateman/swingKick.wav - Assets/Resources/Sprites/Games/KarateMan/effect/barrelWood.png +- Assets/Resources/Sfx/games/karateman/gogo.ogg - Assets/Resources/Sfx/games/karateman/offbeatLightbulbOut.wav - Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_1.png - Assets/Resources/Sprites/Games/KarateMan/anime/karateman/JabNoNuri.anim @@ -134,6 +136,7 @@ Assets: - Assets/Resources/Sprites/Games/KarateMan/anime/word/Word04.anim - Assets/Resources/Sprites/Games/KarateMan/karate_bg_sunburst_2.png - Assets/Resources/Sprites/Games/KarateMan/karateman_nonurijab.mat +- Assets/Resources/Sfx/games/karateman/rockHit_fullNori.wav - Assets/Resources/Sfx/games/karateman/lightbulbOut.ogg - Assets/Resources/Sprites/Games/KarateMan/anime/word/Word06.anim - Assets/Resources/Sprites/Games/KarateMan/anime/item/Item08.anim @@ -166,6 +169,7 @@ Assets: - Assets/Resources/Sprites/Games/KarateMan/effect/karateman_bulbhit_fx_1.png - Assets/Resources/Sprites/Games/KarateMan/karateman_norimapping.mat - Assets/Resources/Sprites/Games/KarateMan/anime/karateman/UpperCut.anim +- Assets/Resources/Sfx/games/karateman/potHit_lowNori.wav - Assets/Resources/Sprites/Games/KarateMan/anime/item/HitMark.controller - Assets/Resources/Sfx/games/karateman/lightbulbHit.ogg - Assets/Resources/Sprites/Games/KarateMan/effect/krt_pot.mat diff --git a/Assets/StreamingAssets/ntridol/common b/Assets/StreamingAssets/ntridol/common index ce692347d..7867e03f7 100644 Binary files a/Assets/StreamingAssets/ntridol/common and b/Assets/StreamingAssets/ntridol/common differ diff --git a/Assets/StreamingAssets/ntridol/common.manifest b/Assets/StreamingAssets/ntridol/common.manifest index 5fa62182c..a70f82838 100644 --- a/Assets/StreamingAssets/ntridol/common.manifest +++ b/Assets/StreamingAssets/ntridol/common.manifest @@ -1,9 +1,9 @@ ManifestFileVersion: 0 -CRC: 848712941 +CRC: 2094393231 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 0ef2ef396a224bdafb47a87a3665071f + Hash: a425cbbebe1a8006a4fc4fe6127c84fa TypeTreeHash: serializedVersion: 2 Hash: 6f0c5ebd30d7d3be8aad1c86837b5cc9 diff --git a/Assets/StreamingAssets/ntrsamurai/common b/Assets/StreamingAssets/ntrsamurai/common index 8917b6ede..302ce5e2b 100644 Binary files a/Assets/StreamingAssets/ntrsamurai/common and b/Assets/StreamingAssets/ntrsamurai/common differ diff --git a/Assets/StreamingAssets/ntrsamurai/common.manifest b/Assets/StreamingAssets/ntrsamurai/common.manifest index 60e1980e2..e7156ddcf 100644 --- a/Assets/StreamingAssets/ntrsamurai/common.manifest +++ b/Assets/StreamingAssets/ntrsamurai/common.manifest @@ -1,12 +1,12 @@ ManifestFileVersion: 0 -CRC: 1510917746 +CRC: 3054716629 Hashes: AssetFileHash: serializedVersion: 2 - Hash: c8d19e801b0e1477237100154f79ddc7 + Hash: 7de7ed1ceb30a914c04951332a09f02e TypeTreeHash: serializedVersion: 2 - Hash: 50cf51288f63e2caccd9f845d8454555 + Hash: 788d5843115df613774b9a4b273d2334 HashAppended: 0 ClassTypes: - Class: 1 @@ -72,6 +72,7 @@ Assets: - Assets/Resources/Sfx/games/samuraiSliceNtr/ntrSamurai_catch.wav - Assets/Resources/Sfx/games/samuraiSliceNtr/holy_mackerel1.wav - Assets/Resources/Sprites/Games/SamuraiSliceNtr/Anime/Object/ObjDemon.anim +- Assets/Resources/Sfx/games/samuraiSliceNtr/melon_dig.wav - Assets/Resources/Sprites/Games/SamuraiSliceNtr/ntr_samurai_obj.png - Assets/Resources/Sprites/Games/SamuraiSliceNtr/Anime/Launcher/UnStep.anim - Assets/Resources/Sprites/Games/SamuraiSliceNtr/Anime/Object/ObjDemonDebris01.anim