From 825c4728d6e18b85d271da89a2b9de9dec37506c Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 14 Jan 2023 23:33:37 -0500 Subject: [PATCH] First PlayerActionEvent Pass (#202) * update blue bear to use PlayerActionEvent * update built to scale DS to use PlayerActionEvent * update clappy trio to use PlayerActionEvent * update crop stomp to use PlayerActionEvent * update drumming practice to use PlayerActionEvent * update fork lifter to use PlayerActionEvent * update minigame icons * update wizard waltz' icon --- .../Sprites/Editor/GameIcons/countIn.png.meta | 4 +- ...bleDate.jpg.meta => countIn_mask.png.meta} | 18 ++- .../{kitties.jpg.meta => doubleDate.png.meta} | 18 ++- .../Editor/GameIcons/doubleDate_mask.png.meta | 108 +++++++++++++ .../Sprites/Editor/GameIcons/fanClub.png.meta | 4 +- .../Editor/GameIcons/gameManager.png.meta | 4 +- .../GameIcons/gameManager_mask.png.meta | 108 +++++++++++++ .../Sprites/Editor/GameIcons/kitties.png.meta | 108 +++++++++++++ .../Editor/GameIcons/kitties_mask.png.meta | 108 +++++++++++++ .../Editor/GameIcons/rhythmRally.png.meta | 4 +- .../GameIcons/rhythmRally_mask.png.meta | 108 +++++++++++++ .../Editor/GameIcons/sneakySpirits.png.meta | 4 +- .../GameIcons/sneakySpirits_mask.png.meta | 108 +++++++++++++ .../Sprites/Editor/GameIcons/vfx.png.meta | 8 +- .../Editor/GameIcons/vfx_mask.png.meta | 108 +++++++++++++ .../Editor/GameIcons/wizardsWaltz.png.meta | 4 +- .../GameIcons/wizardsWaltz_mask.png.meta | 108 +++++++++++++ Assets/Scripts/Conductor.cs | 21 ++- Assets/Scripts/Games/BlueBear/BlueBear.cs | 4 +- Assets/Scripts/Games/BlueBear/Treat.cs | 63 +++----- Assets/Scripts/Games/BuiltToScaleDS/Blocks.cs | 91 ++++++----- .../Games/BuiltToScaleDS/BuiltToScaleDS.cs | 9 +- Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs | 67 +++----- .../Games/ClappyTrio/ClappyTrioPlayer.cs | 69 ++++---- Assets/Scripts/Games/CropStomp/CropStomp.cs | 4 +- Assets/Scripts/Games/CropStomp/Farmer.cs | 72 ++++++--- Assets/Scripts/Games/CropStomp/Veggie.cs | 153 +++++++++--------- .../Scripts/Games/DrummingPractice/Drummer.cs | 9 +- .../Games/DrummingPractice/DrummerHit.cs | 86 +++++----- .../Games/ForkLifter/ForkLifterPlayer.cs | 9 +- Assets/Scripts/Games/ForkLifter/Pea.cs | 66 ++++---- Assets/Scripts/Games/Minigame.cs | 3 + Assets/Scripts/Util/BeatAction.cs | 15 +- 33 files changed, 1295 insertions(+), 378 deletions(-) rename Assets/Resources/Sprites/Editor/GameIcons/{doubleDate.jpg.meta => countIn_mask.png.meta} (83%) rename Assets/Resources/Sprites/Editor/GameIcons/{kitties.jpg.meta => doubleDate.png.meta} (83%) create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/doubleDate_mask.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/gameManager_mask.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/kitties.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/kitties_mask.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/rhythmRally_mask.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits_mask.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/vfx_mask.png.meta create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz_mask.png.meta diff --git a/Assets/Resources/Sprites/Editor/GameIcons/countIn.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/countIn.png.meta index d4ec1bbb..53ae1e9c 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/countIn.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/countIn.png.meta @@ -65,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 @@ -77,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/doubleDate.jpg.meta b/Assets/Resources/Sprites/Editor/GameIcons/countIn_mask.png.meta similarity index 83% rename from Assets/Resources/Sprites/Editor/GameIcons/doubleDate.jpg.meta rename to Assets/Resources/Sprites/Editor/GameIcons/countIn_mask.png.meta index 9eaaeee5..525c2ab5 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/doubleDate.jpg.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/countIn_mask.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cae460600d16be4408fc25403e34a9d8 +guid: 894e99a28a66992488bc27246c7bf042 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -65,10 +65,22 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/kitties.jpg.meta b/Assets/Resources/Sprites/Editor/GameIcons/doubleDate.png.meta similarity index 83% rename from Assets/Resources/Sprites/Editor/GameIcons/kitties.jpg.meta rename to Assets/Resources/Sprites/Editor/GameIcons/doubleDate.png.meta index d52b4741..ae4c64a0 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/kitties.jpg.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/doubleDate.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e27e2aae1f847a747be04f97ea823899 +guid: c2f7c3c1d7cf40147917fcaefc77dd91 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -65,10 +65,22 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/doubleDate_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/doubleDate_mask.png.meta new file mode 100644 index 00000000..0fa70b09 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/doubleDate_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: cdee2276cf3cb364eb1c5ee0f0e38573 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/fanClub.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/fanClub.png.meta index 53e374a8..7d79e3a1 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/fanClub.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/fanClub.png.meta @@ -68,7 +68,7 @@ TextureImporter: maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -80,7 +80,7 @@ TextureImporter: maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/gameManager.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/gameManager.png.meta index 377e651d..4b57bb90 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/gameManager.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/gameManager.png.meta @@ -65,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 @@ -77,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/gameManager_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/gameManager_mask.png.meta new file mode 100644 index 00000000..810640bf --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/gameManager_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 0080a91e5366c334da5a829fda89c32e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/kitties.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/kitties.png.meta new file mode 100644 index 00000000..a0ac4efd --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/kitties.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 9542c3385961e8340bd082c10f739211 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/kitties_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/kitties_mask.png.meta new file mode 100644 index 00000000..49767ed7 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/kitties_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 2343af644f3d99840967a6c0a320488c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally.png.meta index a0c02993..69e1d9d0 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally.png.meta @@ -65,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 @@ -77,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally_mask.png.meta new file mode 100644 index 00000000..30b4f937 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/rhythmRally_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 55959685c1d851240bbd5f754908fb3d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits.png.meta index 4fedaedd..d9ac0505 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits.png.meta @@ -65,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 @@ -77,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits_mask.png.meta new file mode 100644 index 00000000..487daa06 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 842b97bd52929304d9ac3d098b5dda5e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/vfx.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/vfx.png.meta index cb6a180a..b5b98fe7 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/vfx.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/vfx.png.meta @@ -65,10 +65,10 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 128 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -77,10 +77,10 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 128 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/vfx_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/vfx_mask.png.meta new file mode 100644 index 00000000..915d9014 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/vfx_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: b7c0c13501cdaf347824e75bff542878 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz.png.meta index 548ee454..4e6a1fe5 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz.png.meta @@ -65,7 +65,7 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 @@ -77,7 +77,7 @@ TextureImporter: forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 buildTarget: Standalone - maxTextureSize: 64 + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz_mask.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz_mask.png.meta new file mode 100644 index 00000000..cc5d3578 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz_mask.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 148e6f16103322d4e9f6f9be1cad50ea +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Conductor.cs b/Assets/Scripts/Conductor.cs index f9f1724e..fa389802 100644 --- a/Assets/Scripts/Conductor.cs +++ b/Assets/Scripts/Conductor.cs @@ -265,6 +265,23 @@ namespace HeavenStudio return GameManager.instance.Beatmap.tempoChanges; } + public float GetBpmAtBeat(float beat) + { + var chart = GameManager.instance.Beatmap; + float bpm = chart.bpm; + + foreach (DynamicBeatmap.TempoChange t in GameManager.instance.Beatmap.tempoChanges) + { + if (t.beat > beat) + { + break; + } + bpm = t.tempo; + } + + return bpm; + } + public double GetSongPosFromBeat(double beat) { var chart = GameManager.instance.Beatmap; @@ -292,11 +309,11 @@ namespace HeavenStudio } //thank you @wooningcharithri#7419 for the psuedo-code - private double BeatsToSecs(double beats, float bpm) + public double BeatsToSecs(double beats, float bpm) { return beats / bpm * 60f; } - private double SecsToBeats(double s, float bpm) + public double SecsToBeats(double s, float bpm) { return s / 60f * bpm; } diff --git a/Assets/Scripts/Games/BlueBear/BlueBear.cs b/Assets/Scripts/Games/BlueBear/BlueBear.cs index 6ffee5cd..67d8597c 100644 --- a/Assets/Scripts/Games/BlueBear/BlueBear.cs +++ b/Assets/Scripts/Games/BlueBear/BlueBear.cs @@ -68,11 +68,11 @@ namespace HeavenStudio.Games { headAndBodyAnim.SetBool("ShouldOpenMouth", foodHolder.childCount != 0); - if (PlayerInput.GetAnyDirectionDown()) + if (PlayerInput.GetAnyDirectionDown() && !IsExpectingInputNow(InputType.DIRECTION_DOWN)) { headAndBodyAnim.Play("BiteL", 0, 0); } - else if (PlayerInput.Pressed()) + else if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN)) { headAndBodyAnim.Play("BiteR", 0, 0); } diff --git a/Assets/Scripts/Games/BlueBear/Treat.cs b/Assets/Scripts/Games/BlueBear/Treat.cs index f338c00e..f528032a 100644 --- a/Assets/Scripts/Games/BlueBear/Treat.cs +++ b/Assets/Scripts/Games/BlueBear/Treat.cs @@ -25,8 +25,12 @@ namespace HeavenStudio.Games.Scripts_BlueBear private void Awake() { game = BlueBear.instance; + } + private void Start() + { flyBeats = isCake ? 3f : 2f; + game.ScheduleInput(startBeat, flyBeats, isCake ? InputType.DIRECTION_DOWN : InputType.STANDARD_DOWN, Just, Out, Out); } private void Update() @@ -47,46 +51,9 @@ namespace HeavenStudio.Games.Scripts_BlueBear float rot = isCake ? rotSpeed : -rotSpeed; transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (rot * Time.deltaTime)); - - float normalizedBeat = cond.GetPositionFromMargin(startBeat + flyBeats, 1f); - StateCheck(normalizedBeat); - - if (PlayerInput.Pressed()) - { - if (!isCake) - { - if (state.perfect) - { - flying = false; - - Jukebox.PlayOneShotGame("blueBear/chompDonut"); - - SpawnCrumbs(); - - GameObject.Destroy(gameObject); - } - } - } - else if (PlayerInput.GetAnyDirection()) - { - if (isCake) - { - if (state.perfect) - { - flying = false; - - Jukebox.PlayOneShotGame("blueBear/chompCake"); - - SpawnCrumbs(); - - GameObject.Destroy(gameObject); - } - } - } } } - - public override void OnAce() + void EatFood() { flying = false; @@ -106,6 +73,26 @@ namespace HeavenStudio.Games.Scripts_BlueBear GameObject.Destroy(gameObject); } + private void Just(PlayerActionEvent caller, float state) + { + if (state >= 1f || state <= -1f) { //todo: proper near miss feedback + if (isCake) + { + game.headAndBodyAnim.Play("BiteL", 0, 0); + } + else + { + game.headAndBodyAnim.Play("BiteR", 0, 0); + } + return; + } + EatFood(); + } + + private void Miss(PlayerActionEvent caller) {} + + private void Out(PlayerActionEvent caller) {} + void SpawnCrumbs() { var crumbsGO = GameObject.Instantiate(game.crumbsBase, game.crumbsHolder); diff --git a/Assets/Scripts/Games/BuiltToScaleDS/Blocks.cs b/Assets/Scripts/Games/BuiltToScaleDS/Blocks.cs index 7f821a7b..6e9d81dd 100644 --- a/Assets/Scripts/Games/BuiltToScaleDS/Blocks.cs +++ b/Assets/Scripts/Games/BuiltToScaleDS/Blocks.cs @@ -14,60 +14,74 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS private bool moving = true; private BuiltToScaleDS game; + float windupBeat; + float hitBeat; + float sinkBeat; private void Awake() { game = BuiltToScaleDS.instance; + + } + + private void Start() + { + windupBeat = createBeat + (createLength * 4f); + hitBeat = windupBeat + createLength; + sinkBeat = hitBeat + (createLength * 2f); + + game.ScheduleInput(windupBeat, createLength, InputType.STANDARD_DOWN, Just, Miss, Out); } private void Update() { if (!moving) return; - - var windupBeat = createBeat + (createLength * 4f); - var hitBeat = windupBeat + createLength; - var currentBeat = Conductor.instance.songPositionInBeats; + float currentBeat = Conductor.instance.songPositionInBeats; var shooterState = game.shooterAnim.GetCurrentAnimatorStateInfo(0); if (currentBeat > windupBeat && currentBeat < hitBeat && !shooterState.IsName("Windup") - && game.shooterAnim.IsAnimationNotPlaying()) + && !game.lastShotOut) { game.shooterAnim.Play("Windup", 0, 0); } - float stateBeat = Conductor.instance.GetPositionFromMargin(hitBeat, 2f); - StateCheck(stateBeat); - - if (PlayerInput.Pressed()) - { - if (state.perfect) - { - Ace(); - } - else if (state.notPerfect()) - { - Miss(); - } - } - - if (moving) - { - var sinkBeat = hitBeat + (createLength * 2f); - - if (currentBeat < sinkBeat) - { - game.SetBlockTime(this, createBeat, createLength); - } - else - { - moving = false; - Jukebox.PlayOneShotGame("builtToScaleDS/Sink"); - } - } + if (moving && currentBeat < sinkBeat) + game.SetBlockTime(this, createBeat, createLength); } - void Ace() + private void Just(PlayerActionEvent caller, float state) + { + var shooterState = game.shooterAnim.GetCurrentAnimatorStateInfo(0); + if (!shooterState.IsName("Windup")) return; + + // near miss + if (state >= 1f || state <= -1f) { + NearMiss(); + return; + } + // hit + Hit(); + } + + private void Miss(PlayerActionEvent caller) + { + float sinkBeat = hitBeat + (createLength * 2f); + MultiSound.Play( + new MultiSound.Sound[] { + new MultiSound.Sound("builtToScaleDS/Sink", sinkBeat), + }, forcePlay: true + ); + + BeatAction.New(this.gameObject, new List() + { + new BeatAction.Action(sinkBeat, delegate { moving = false; }), + }); + } + + private void Out(PlayerActionEvent caller) {} + + void Hit() { moving = false; game.shootingThisFrame = true; @@ -79,7 +93,7 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS Jukebox.PlayOneShotGame("builtToScaleDS/Hit"); } - void Miss() + void NearMiss() { moving = false; game.shootingThisFrame = true; @@ -90,10 +104,5 @@ namespace HeavenStudio.Games.Scripts_BuiltToScaleDS Jukebox.PlayOneShotGame("builtToScaleDS/Crumble"); } - - public override void OnAce() - { - Ace(); - } } } \ No newline at end of file diff --git a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs index eca6583c..fae48ae6 100644 --- a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs +++ b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs @@ -65,6 +65,7 @@ namespace HeavenStudio.Games private float currentBeltOffset; [NonSerialized] public bool shootingThisFrame; + [NonSerialized] public bool lastShotOut = false; public static BuiltToScaleDS instance; @@ -118,10 +119,14 @@ namespace HeavenStudio.Games void LateUpdate() { var shooterState = shooterAnim.GetCurrentAnimatorStateInfo(0); - bool canShoot = !shooterState.IsName("Shoot") || shooterAnim.IsAnimationNotPlaying(); + bool canShoot = (!shooterState.IsName("Shoot") || shooterAnim.IsAnimationNotPlaying()) && !shootingThisFrame; - if (canShoot && PlayerInput.Pressed() && !shootingThisFrame) + if (canShoot && lastShotOut) + lastShotOut = false; + + if (canShoot && !lastShotOut && PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN)) { + lastShotOut = true; shootingThisFrame = true; Shoot(); SpawnObject(BTSObject.FlyingRod); diff --git a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs index 2e1d94ad..b43cea3b 100644 --- a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs +++ b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs @@ -72,9 +72,13 @@ namespace HeavenStudio.Games public static ClappyTrio instance { get; set; } + MultiSound clapSounds = null; + BeatAction clapAction = null; + private void Awake() { instance = this; + clapSounds = null; InitLions(); } public override void OnGameSwitch(float beat) @@ -108,52 +112,16 @@ namespace HeavenStudio.Games ClappyTrioPlayer = lion.AddComponent(); } + if (clapSounds != null) + clapSounds.Delete(); + + if (clapAction != null) + clapAction.Delete(); } private void Update() { - if (isClapping) - { - float songPosBeat = Conductor.instance.songPositionInBeats; - for (int i = 0; i < Lion.Count; i++) - { - float length = currentClappingLength * (i); - float lengthplusone = (currentClappingLength * (i + 1)); - - // i spent like 25 minutes trying to figure out what was wrong with this when i forgot to subtract the currentClapLength :( - if (i == Lion.Count - 1) - { - length = 0; - } - - if (songPosBeat > lastClapStart + length && songPosBeat < lastClapStart + lengthplusone && clapIndex == i) - { - if (i == Lion.Count - 1) - { - ClappyTrioPlayer.SetClapAvailability(lastClapStart + (currentClappingLength * (i - 1)), currentClappingLength); - - clapIndex = 0; - isClapping = false; - currentClappingLength = 0; - ClappyTrioPlayer.clapStarted = false; - } else - { - SetFace(i, 4); - Lion[i].GetComponent().Play("Clap", 0, 0); - - // lazy fix rn - if (i > 0) - Jukebox.PlayOneShotGame("clappyTrio/middleClap"); - else - Jukebox.PlayOneShotGame("clappyTrio/leftClap"); - - clapIndex++; - } - break; - } - } - } } public void Clap(float beat, float length) @@ -163,8 +131,21 @@ namespace HeavenStudio.Games playerHitLast = false; isClapping = true; - lastClapStart = beat; - currentClappingLength = length; + + // makes the other lions clap + List sounds = new List(); + List actions = new List(); + for (int i = 0; i < Lion.Count - 1; i++) + { + int idx = i; + sounds.Add(new MultiSound.Sound((i > 0) ? "clappyTrio/middleClap" : "clappyTrio/leftClap", beat + (length * i))); + actions.Add(new BeatAction.Action(beat + (length * i), delegate { SetFace(idx, 4); Lion[idx].GetComponent().Play("Clap", 0, 0);})); + } + clapSounds = MultiSound.Play(sounds.ToArray()); + clapAction = BeatAction.New(this.gameObject, actions); + + // prepare player input + ClappyTrioPlayer.QueueClap(beat, length * (Lion.Count - 1)); } public void Prepare(int type) diff --git a/Assets/Scripts/Games/ClappyTrio/ClappyTrioPlayer.cs b/Assets/Scripts/Games/ClappyTrio/ClappyTrioPlayer.cs index 0b7a27b4..f4466c28 100644 --- a/Assets/Scripts/Games/ClappyTrio/ClappyTrioPlayer.cs +++ b/Assets/Scripts/Games/ClappyTrio/ClappyTrioPlayer.cs @@ -8,84 +8,81 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio { public class ClappyTrioPlayer : PlayerActionObject { + ClappyTrio game; private float lastClapBeat; private float lastClapLength; - [SerializeField] private bool clapVacant; public bool clapStarted = false; public bool canHit; private GameObject clapEffect; - new int aceTimes = 0; private void Awake() { + game = ClappyTrio.instance; clapEffect = transform.GetChild(4).GetChild(3).gameObject; } - public override void OnAce() - { - if (aceTimes == 0) - { - Clap(true); - aceTimes++; - } - } - private void Update() { - if (clapVacant == true) - { - float normalizedBeat = (Conductor.instance.GetPositionFromBeat(lastClapBeat, lastClapLength)); - - StateCheck(normalizedBeat); - - if (normalizedBeat > Minigame.EndTime()) - { - clapVacant = false; - lastClapLength = 0; - lastClapBeat = 0; - } - } - - if (PlayerInput.Pressed()) + if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN)) { Clap(false); } - } - public void SetClapAvailability(float startBeat, float length) + public void QueueClap(float startBeat, float length) { - aceTimes = 0; lastClapBeat = startBeat; - clapVacant = true; lastClapLength = length; - ResetState(); + game.ScheduleInput(startBeat, length, InputType.STANDARD_DOWN, Just, Miss, Out); } - private void Clap(bool overrideCanHit) + private void Just(PlayerActionEvent caller, float state) { - if (state.early || state.perfect || overrideCanHit) + if (!canHit) { + Clap(false); + return; + } + if (state >= 1f || state <= -1f) { //todo: proper near miss feedback + Clap(false); + return; + } + Clap(true); + } + + private void Miss(PlayerActionEvent caller) { + game.playerHitLast = false; + + if (clapStarted) + this.canHit = false; + } + + private void Out(PlayerActionEvent caller) {} + + private void Clap(bool just) + { + if (just) { clapEffect.SetActive(true); Jukebox.PlayOneShotGame("clappyTrio/rightClap"); if (this.canHit) - ClappyTrio.instance.playerHitLast = true; + game.playerHitLast = true; } else { clapEffect.SetActive(false); Jukebox.PlayOneShot("miss"); - ClappyTrio.instance.playerHitLast = false; + game.playerHitLast = false; if (clapStarted) this.canHit = false; } - ClappyTrio.instance.SetFace(ClappyTrio.instance.Lion.Count - 1, 4); + clapStarted = false; + game.SetFace(game.Lion.Count - 1, 4); this.GetComponent().Play("Clap", 0, 0); } } diff --git a/Assets/Scripts/Games/CropStomp/CropStomp.cs b/Assets/Scripts/Games/CropStomp/CropStomp.cs index 7b00ed7d..37694adf 100644 --- a/Assets/Scripts/Games/CropStomp/CropStomp.cs +++ b/Assets/Scripts/Games/CropStomp/CropStomp.cs @@ -130,7 +130,7 @@ namespace HeavenStudio.Games // Cue the marching proper to begin when applicable. BeatAction.New(gameObject, new List() { - new BeatAction.Action(startBeat, delegate { StartMarching(startBeat); }) + new BeatAction.Action(startBeat - 0.25f, delegate { StartMarching(startBeat); }) }); inactiveStart = -1f; @@ -208,7 +208,7 @@ namespace HeavenStudio.Games PlayAnims(); if (currentMarchBeat % 2 != 0) //step sound { - Jukebox.PlayOneShotGame("cropStomp/hmm"); + MultiSound.Play(new MultiSound.Sound[] {new MultiSound.Sound("cropStomp/hmm", newBeat + marchOffset)}); } } diff --git a/Assets/Scripts/Games/CropStomp/Farmer.cs b/Assets/Scripts/Games/CropStomp/Farmer.cs index a8f82403..37e3938f 100644 --- a/Assets/Scripts/Games/CropStomp/Farmer.cs +++ b/Assets/Scripts/Games/CropStomp/Farmer.cs @@ -12,6 +12,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp private CropStomp game; + PlayerActionEvent stomp; + public void Init() { game = CropStomp.instance; @@ -21,38 +23,56 @@ namespace HeavenStudio.Games.Scripts_CropStomp { if (!game.isMarching) return; - - float normalizedBeat = Conductor.instance.GetPositionFromMargin(nextStompBeat, 1f); + Conductor cond = Conductor.instance; - StateCheck(normalizedBeat); - - if (normalizedBeat > Minigame.LateTime()) + if (stomp == null) { - nextStompBeat += 2f; - ResetState(); + if (GameManager.instance.currentGame == "cropStomp") + stomp = game.ScheduleUserInput(nextStompBeat - 1f, 1f, InputType.STANDARD_DOWN, Just, Miss, Out); + } + + if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN)) + { + game.bodyAnim.Play("Crouch", 0, 0); + } + } + + private void Just(PlayerActionEvent caller, float state) + { + // REMARK: does not count for performance + Stomp(state >= 1f || state <= -1f); + } + + private void Miss(PlayerActionEvent caller) + { + if (GameManager.instance.currentGame != "cropStomp") return; + if (!game.isMarching) return; - } + // REMARK: does not count for performance + nextStompBeat += 2f; + stomp?.Disable(); + stomp = game.ScheduleUserInput(nextStompBeat - 1f, 1f, InputType.STANDARD_DOWN, Just, Miss, Out); + } - if (PlayerInput.Pressed()) + private void Out(PlayerActionEvent caller) {} + + void Stomp(bool ng) + { + if (GameManager.instance.currentGame != "cropStomp") return; + if (!game.isMarching) + return; + if (ng) { - if (state.perfect) - { - game.Stomp(); - game.bodyAnim.Play("Stomp", 0, 0); - nextStompBeat += 2f; - ResetState(); - } - else if (state.notPerfect()) - { - game.bodyAnim.Play("Crouch", 0, 0); - nextStompBeat += 2f; - ResetState(); - } - else - { - game.bodyAnim.Play("Crouch", 0, 0); - } + game.bodyAnim.Play("Crouch", 0, 0); } + else + { + game.Stomp(); + game.bodyAnim.Play("Stomp", 0, 0); + } + nextStompBeat += 2f; + stomp?.Disable(); + stomp = game.ScheduleUserInput(nextStompBeat - 1f, 1f, InputType.STANDARD_DOWN, Just, Miss, Out); } } } diff --git a/Assets/Scripts/Games/CropStomp/Veggie.cs b/Assets/Scripts/Games/CropStomp/Veggie.cs index bfbec80d..aa35dfe6 100644 --- a/Assets/Scripts/Games/CropStomp/Veggie.cs +++ b/Assets/Scripts/Games/CropStomp/Veggie.cs @@ -26,6 +26,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp private float pickTime = 1f; private int veggieState = 0; private bool boinked; // Player got barely when trying to pick. + private bool pickEligible = true; private float landBeat; @@ -36,6 +37,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp public void Init() { game = CropStomp.instance; + game.ScheduleInput(targetBeat - 1, 1f, InputType.STANDARD_DOWN, StompJust, StompMiss, Out); if (!isMole) { @@ -68,30 +70,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp } var cond = Conductor.instance; - - float normalizedBeat = cond.GetPositionFromMargin(targetBeat, 1f); - StateCheck(normalizedBeat); - // In ground. if (veggieState == 0) { - if (normalizedBeat > Minigame.LateTime()) - { - veggieState = -1; - return; - } - - if (PlayerInput.Pressed()) - { - if (state.perfect) - { - StompVeggie(false); - } - else if (state.notPerfect()) - { - veggieState = -1; - } - } } // In air. else if (veggieState == 1) @@ -99,50 +80,82 @@ namespace HeavenStudio.Games.Scripts_CropStomp float airPosition = cond.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat); veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1)); - if (normalizedBeat > Minigame.EndTime()) + if (PlayerInput.PressedUp() && !game.IsExpectingInputNow(InputType.STANDARD_UP)) { - veggieState = -1; - - if (!isMole) - Jukebox.PlayOneShotGame("cropStomp/veggieMiss"); - - return; - } - - if (PlayerInput.PressedUp()) - { - if (state.perfect) - { - PickVeggie(false); - } - else if (state.notPerfect()) - { - veggieState = -1; - boinked = true; - - curve.transform.localScale = Vector3.one; // Return curve to normal size in the case of mole curves. - - var key1 = curve.KeyPoints[0]; - var key1Pos = key1.Position; - key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z); - - var key2 = curve.KeyPoints[1]; - var key2Pos = key2.Position; - key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z); - - pickedBeat = cond.songPositionInBeats; - - Jukebox.PlayOneShot("miss"); - - MissedUpdate(); - } - - game.bodyAnim.Play("Pick", 0, 0); - game.isFlicking = true; + pickEligible = false; } } } + private void StompJust(PlayerActionEvent caller, float state) + { + if (GameManager.instance.autoplay) + { + StompVeggie(true); + return; + } + + if (state >= 1f) + veggieState = -1; + else if (state > -1f) + StompVeggie(false); + } + + private void StompMiss(PlayerActionEvent caller) + { + veggieState = -1; + caller.Disable(); + } + + private void Out(PlayerActionEvent caller) {} + + private void PickJust(PlayerActionEvent caller, float state) + { + game.bodyAnim.Play("Pick", 0, 0); + game.isFlicking = true; + if (!pickEligible) return; + if (GameManager.instance.autoplay) + { + PickVeggie(true); + return; + } + + if (state <= -1f || state >= 1f) + { + veggieState = -1; + boinked = true; + + curve.transform.localScale = Vector3.one; // Return curve to normal size in the case of mole curves. + + var key1 = curve.KeyPoints[0]; + var key1Pos = key1.Position; + key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z); + + var key2 = curve.KeyPoints[1]; + var key2Pos = key2.Position; + key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z); + + pickedBeat = Conductor.instance.songPositionInBeats; + + Jukebox.PlayOneShot("miss"); + + MissedUpdate(); + } + else + { + PickVeggie(false); + } + } + + private void PickMiss(PlayerActionEvent caller) + { + veggieState = -1; + + if (!isMole) + Jukebox.PlayOneShotGame("cropStomp/veggieMiss"); + caller.Disable(); + } + bool moleLaughing; private void MissedUpdate() { @@ -205,11 +218,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp var cond = Conductor.instance; veggieState = 1; + game.ScheduleInput(targetBeat, isMole ? 0.5f : 1f, InputType.STANDARD_UP, PickJust, PickMiss, Out); targetBeat = targetBeat + (isMole ? 0.5f : 1f); stompedBeat = cond.songPositionInBeats; - landBeat = cond.GetBeatFromPositionAndMargin(Minigame.EndTime(), targetBeat, 1f); + landBeat = targetBeat + (float)cond.BeatsToSecs(Minigame.EndTime()-1, cond.GetBpmAtBeat(targetBeat)); if (autoTriggered) { @@ -219,10 +233,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp if (!isMole) { - BeatAction.New(gameObject, new List() - { - new BeatAction.Action(targetBeat - 0.5f, delegate { Jukebox.PlayOneShotGame("cropStomp/veggieOh"); }) - }); + MultiSound.Play( + new MultiSound.Sound[] { new MultiSound.Sound("cropStomp/veggieOh", targetBeat - 0.5f) } + ); } else { @@ -233,8 +246,6 @@ namespace HeavenStudio.Games.Scripts_CropStomp veggieTrans.localScale = new Vector3(veggieScale.x * 0.5f, veggieScale.y, veggieScale.z); squashTween = veggieTrans.DOScaleX(veggieScale.x, cond.pitchedSecPerBeat * 0.5f); - ResetState(); - Update(); // Update flying veggie state immediately. } @@ -283,13 +294,5 @@ namespace HeavenStudio.Games.Scripts_CropStomp PickedUpdate(); } - - public override void OnAce() - { - if (veggieState == 0) - StompVeggie(true); - else - PickVeggie(true); - } } } diff --git a/Assets/Scripts/Games/DrummingPractice/Drummer.cs b/Assets/Scripts/Games/DrummingPractice/Drummer.cs index a8f47d66..b13fa836 100644 --- a/Assets/Scripts/Games/DrummingPractice/Drummer.cs +++ b/Assets/Scripts/Games/DrummingPractice/Drummer.cs @@ -10,6 +10,7 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice { public class Drummer : MonoBehaviour { + DrummingPractice game; [Header("References")] public Animator animator; @@ -32,9 +33,14 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice public List Sprites; } + void Awake() + { + game = DrummingPractice.instance; + } + private void Update() { - if (player && PlayerInput.Pressed()) + if (player && PlayerInput.Pressed() && !DrummingPractice.instance.IsExpectingInputNow(InputType.STANDARD_DOWN)) { Hit(false, false); } @@ -107,6 +113,5 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice { hitting = false; } - } } \ No newline at end of file diff --git a/Assets/Scripts/Games/DrummingPractice/DrummerHit.cs b/Assets/Scripts/Games/DrummingPractice/DrummerHit.cs index 6e5905c6..7b2c3e77 100644 --- a/Assets/Scripts/Games/DrummingPractice/DrummerHit.cs +++ b/Assets/Scripts/Games/DrummingPractice/DrummerHit.cs @@ -8,66 +8,70 @@ namespace HeavenStudio.Games.Scripts_DrummingPractice { public class DrummerHit : PlayerActionObject { + DrummingPractice game; public float startBeat; public bool applause = true; - private bool hit = false; - private bool hasHit = false; // Start is called before the first frame update void Awake() { - PlayerActionInit(gameObject, startBeat); + game = DrummingPractice.instance; } - public override void OnAce() - { - Hit(true); + void Start() + { + game.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN, Just, Miss, Out); + + BeatAction.New(game.gameObject, new List() + { + new BeatAction.Action(startBeat+1f, delegate { + Jukebox.PlayOneShotGame("drummingPractice/drum"); + game.leftDrummer.Hit(true, false); + game.rightDrummer.Hit(true, false); + }), + }); } // Update is called once per frame - void Update() + void Update() { } + + private void Just(PlayerActionEvent caller, float state) { - if (Conductor.instance.GetPositionFromBeat(startBeat, 2) >= 1) - { - DrummingPractice.instance.SetFaces(0); - CleanUp(); - } - - if (!hit && Conductor.instance.GetPositionFromBeat(startBeat, 1) >= 1) - { - Jukebox.PlayOneShotGame("drummingPractice/drum"); - DrummingPractice.instance.leftDrummer.Hit(true, false); - DrummingPractice.instance.rightDrummer.Hit(true, false); - hit = true; - if (hasHit) CleanUp(); - } - - float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, 1f); - StateCheck(normalizedBeat); - - if (PlayerInput.Pressed()) - { - if (state.perfect) - { - Hit(true); - } else if (state.notPerfect()) - { - Hit(false); - } + if (state >= 1f || state <= -1f) { + Hit(false); } + Hit(true); } + private void Miss(PlayerActionEvent caller) + { + game.SetFaces(2); + BeatAction.New(game.gameObject, new List() + { + new BeatAction.Action(startBeat+2f, delegate { + game.SetFaces(0); + }) + }); + CleanUp(); + } + + private void Out(PlayerActionEvent caller) {} + public void Hit(bool _hit) { - if (!hasHit) + game.player.Hit(_hit, applause, true); + game.SetFaces(_hit ? 1 : 2); + + if (!_hit) { - DrummingPractice.instance.player.Hit(_hit, applause, true); - DrummingPractice.instance.SetFaces(_hit ? 1 : 2); - - hasHit = true; - - if (hit) CleanUp(); + BeatAction.New(game.gameObject, new List() + { + new BeatAction.Action(startBeat+2f, delegate { + game.SetFaces(0); + }), + }); } + CleanUp(); } public void CleanUp() diff --git a/Assets/Scripts/Games/ForkLifter/ForkLifterPlayer.cs b/Assets/Scripts/Games/ForkLifter/ForkLifterPlayer.cs index 83547c45..9440ba4e 100644 --- a/Assets/Scripts/Games/ForkLifter/ForkLifterPlayer.cs +++ b/Assets/Scripts/Games/ForkLifter/ForkLifterPlayer.cs @@ -34,8 +34,6 @@ namespace HeavenStudio.Games.Scripts_ForkLifter private bool isEating = false; - public int hitOnFrame; - // Burger shit public bool topbun, middleburger, bottombun; @@ -50,14 +48,11 @@ namespace HeavenStudio.Games.Scripts_ForkLifter private void LateUpdate() { - if (PlayerInput.Pressed()) + if (PlayerInput.Pressed() && !ForkLifter.instance.IsExpectingInputNow(InputType.STANDARD_DOWN)) { - hitOnFrame = 0; Stab(null); } - // print(hitOnFrame); - if (ForkLifter.instance.EligibleHits.Count == 0) { currentHitInList = 0; @@ -119,7 +114,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter public void Stab(Pea p) { - if (isEating || hitOnFrame > 0) return; + if (isEating) return; if (p == null) { diff --git a/Assets/Scripts/Games/ForkLifter/Pea.cs b/Assets/Scripts/Games/ForkLifter/Pea.cs index e315c931..293e9ab7 100644 --- a/Assets/Scripts/Games/ForkLifter/Pea.cs +++ b/Assets/Scripts/Games/ForkLifter/Pea.cs @@ -10,6 +10,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter { public class Pea : PlayerActionObject { + ForkLifter game; private Animator anim; public float startBeat; @@ -18,6 +19,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter private void Awake() { + game = ForkLifter.instance; anim = GetComponent(); // SCHEDULING zoom sound so it lines up with when it meets the fork. @@ -26,21 +28,14 @@ namespace HeavenStudio.Games.Scripts_ForkLifter var zoomStartTime = currentDspTime + (double)(cond.pitchedSecPerBeat * 2) - 0.317; Jukebox.PlayOneShotScheduledGame("forkLifter/zoomFast", (double)zoomStartTime); - GetComponentInChildren().sprite = ForkLifter.instance.peaSprites[type]; + GetComponentInChildren().sprite = game.peaSprites[type]; for (int i = 0; i < transform.GetChild(0).childCount; i++) { transform.GetChild(0).GetChild(i).GetComponent().sprite = transform.GetChild(0).GetComponent().sprite; } - // PlayerActionInit(this.gameObject, startBeat, ForkLifter.instance.EligibleHits); - - isEligible = true; - } - - public override void OnAce() - { - this.Hit(); + game.ScheduleInput(startBeat, 2f, InputType.STANDARD_DOWN, Just, Miss, Out); } public void Hit() @@ -63,7 +58,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter } SpriteRenderer psprite = pea.AddComponent(); - psprite.sprite = ForkLifter.instance.peaHitSprites[type]; + psprite.sprite = game.peaHitSprites[type]; psprite.sortingOrder = 20; switch (type) { @@ -128,7 +123,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter } SpriteRenderer psprite = pea.AddComponent(); - psprite.sprite = ForkLifter.instance.peaHitSprites[type]; + psprite.sprite = game.peaHitSprites[type]; psprite.sortingOrder = 20; ForkLifterPlayer.instance.HitFXMiss(new Vector2(1.0424f, -4.032f), new Vector2(1.129612f, 1.129612f)); ForkLifterPlayer.instance.HitFXMiss(new Vector2(0.771f, -3.016f), new Vector2(1.71701f, 1.71701f)); @@ -159,7 +154,7 @@ namespace HeavenStudio.Games.Scripts_ForkLifter } SpriteRenderer psprite = pea.AddComponent(); - psprite.sprite = ForkLifter.instance.peaHitSprites[type]; + psprite.sprite = game.peaHitSprites[type]; psprite.sortingOrder = 20; ForkLifterPlayer.instance.HitFXMiss(new Vector2(1.0424f, -4.032f), new Vector2(1.129612f, 1.129612f)); ForkLifterPlayer.instance.HitFXMiss(new Vector2(0.771f, -3.016f), new Vector2(1.71701f, 1.71701f)); @@ -179,34 +174,35 @@ namespace HeavenStudio.Games.Scripts_ForkLifter float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(startBeat, 2.45f); anim.Play("Flicked_Object", -1, normalizedBeatAnim); anim.speed = 0; + } - float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, 2f); - - StateCheck(normalizedBeat); - - if (PlayerInput.Pressed() && ForkLifterPlayer.instance.hitOnFrame == 0) + private void Just(PlayerActionEvent caller, float state) + { + if (state >= 1f) { - if (state.perfect) - { - Hit(); - } - else if (state.early) - { - Early(); - } - else if (state.late) - { - Late(); - } - - ForkLifterPlayer.instance.hitOnFrame++; + Late(); + } + else if (state <= -1f) + { + Early(); } - - if (normalizedBeat > Minigame.EndTime()) + else { - Jukebox.PlayOneShot("audience/disappointed"); - Destroy(this.gameObject); + Hit(); } } + + private void Miss(PlayerActionEvent caller) + { + Jukebox.PlayOneShot("audience/disappointed"); + BeatAction.New(game.gameObject, new List() + { + new BeatAction.Action(startBeat+ 2.45f, delegate { + Destroy(this.gameObject); + }), + }); + } + + private void Out(PlayerActionEvent caller) {} } } \ No newline at end of file diff --git a/Assets/Scripts/Games/Minigame.cs b/Assets/Scripts/Games/Minigame.cs index 9842e318..82d5a8a8 100644 --- a/Assets/Scripts/Games/Minigame.cs +++ b/Assets/Scripts/Games/Minigame.cs @@ -113,6 +113,9 @@ namespace HeavenStudio.Games foreach(PlayerActionEvent toCompare in scheduledInputs) { + // ignore inputs that are for sequencing in autoplay + if (toCompare.autoplayOnly) continue; + if(closest == null) { if (input == InputType.ANY || toCompare.inputType.HasFlag(input)) diff --git a/Assets/Scripts/Util/BeatAction.cs b/Assets/Scripts/Util/BeatAction.cs index 60d81c8f..a45b1798 100644 --- a/Assets/Scripts/Util/BeatAction.cs +++ b/Assets/Scripts/Util/BeatAction.cs @@ -13,25 +13,27 @@ namespace HeavenStudio.Util public class Action { - public float beat { get; set; } + public double beat { get; set; } public EventCallback function { get; set; } - public Action(float beat, EventCallback function) + public Action(double beat, EventCallback function) { this.beat = beat; this.function = function; } } - public static void New(GameObject prefab, List actions) + public static BeatAction New(GameObject prefab, List actions) { BeatAction beatAction = prefab.AddComponent(); beatAction.actions = actions; + + return beatAction; } private void Update() { - float songPositionInBeats = Conductor.instance.songPositionInBeats; + double songPositionInBeats = Conductor.instance.songPositionInBeatsAsDouble; for (int i = 0; i < actions.Count; i++) { @@ -42,6 +44,11 @@ namespace HeavenStudio.Util } } } + + public void Delete() + { + Destroy(this); + } } } \ No newline at end of file