Merge branch 'megaminerjenny:master' into master
|
@ -1351,7 +1351,7 @@ SpriteRenderer:
|
|||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 20
|
||||
m_Sprite: {fileID: 21300000, guid: 9cd3b6e1f65b8924cb61f2bff440c703, type: 3}
|
||||
m_Sprite: {fileID: 21300000, guid: 9a0b0e8ac9906194b855397e01ca63f9, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.5254902}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
|
|
BIN
Assets/Resources/Sfx/games/marchingOrders/faceTurnOther.ogg
Normal file
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 072598f0f25ee574098a1c1a912d02b0
|
||||
guid: 216fb1053a001094682f72154e4c5b74
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
BIN
Assets/Resources/Sfx/games/marchingOrders/faceTurnPlayer.ogg
Normal file
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 68bc11fbde502954bac98356e27ebf0a
|
||||
guid: 3d783a872d3761248b36d824b1e55d88
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
BIN
Assets/Resources/Sfx/games/marchingOrders/stepOther.ogg
Normal file
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a309c402deb4cec409b80f448812886f
|
||||
guid: 501dcb9853aa30e4090a8084b37b1db5
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
BIN
Assets/Resources/Sfx/games/marchingOrders/stepPlayer.ogg
Normal file
|
@ -0,0 +1,22 @@
|
|||
fileFormatVersion: 2
|
||||
guid: dff60d5367d760c4ea0f4d492a5a0748
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 259 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 490 KiB |
|
@ -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
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/countIn_mask.png
Normal file
After Width: | Height: | Size: 23 KiB |
|
@ -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
|
Before Width: | Height: | Size: 15 KiB |
BIN
Assets/Resources/Sprites/Editor/GameIcons/doubleDate.png
Normal file
After Width: | Height: | Size: 294 KiB |
108
Assets/Resources/Sprites/Editor/GameIcons/doubleDate.png.meta
Normal file
|
@ -0,0 +1,108 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c2f7c3c1d7cf40147917fcaefc77dd91
|
||||
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:
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/doubleDate_mask.png
Normal file
After Width: | Height: | Size: 14 KiB |
|
@ -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:
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 554 KiB |
|
@ -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
|
||||
|
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 496 KiB |
|
@ -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
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/gameManager_mask.png
Normal file
After Width: | Height: | Size: 136 KiB |
|
@ -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:
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/kitties.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
108
Assets/Resources/Sprites/Editor/GameIcons/kitties.png.meta
Normal file
|
@ -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:
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/kitties_mask.png
Normal file
After Width: | Height: | Size: 60 KiB |
108
Assets/Resources/Sprites/Editor/GameIcons/kitties_mask.png.meta
Normal file
|
@ -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:
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 500 KiB |
|
@ -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
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/rhythmRally_mask.png
Normal file
After Width: | Height: | Size: 22 KiB |
|
@ -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:
|
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 100 KiB |
|
@ -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
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/sneakySpirits_mask.png
Normal file
After Width: | Height: | Size: 16 KiB |
|
@ -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:
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 602 KiB |
|
@ -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
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/vfx_mask.png
Normal file
After Width: | Height: | Size: 12 KiB |
108
Assets/Resources/Sprites/Editor/GameIcons/vfx_mask.png.meta
Normal file
|
@ -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:
|
|
@ -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
|
||||
|
|
BIN
Assets/Resources/Sprites/Editor/GameIcons/wizardsWaltz_mask.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
|
@ -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:
|
|
@ -1510,13 +1510,7 @@ AnimationClip:
|
|||
- time: 0
|
||||
value: {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.033333335
|
||||
value: {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.06666667
|
||||
value: {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.8333333
|
||||
value: {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.8666667
|
||||
value: {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.9
|
||||
value: {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
attribute: m_Sprite
|
||||
|
@ -1757,10 +1751,7 @@ AnimationClip:
|
|||
- {fileID: -7998149598989480986, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: -7998149598989480986, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: -854871192670245052, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
|
|
|
@ -1806,16 +1806,6 @@ AnimationClip:
|
|||
value: {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.033333335
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.06666667
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.1
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.8333333
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.8666667
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.9
|
||||
value: {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- time: 0.93333334
|
||||
value: {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
attribute: m_Sprite
|
||||
|
@ -2072,11 +2062,6 @@ AnimationClip:
|
|||
- {fileID: -7998149598989480986, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 3603139382469830057, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
- {fileID: 9063607464200046497, guid: 07a712fc3a8592248b24d4108837306c, type: 3}
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<BeatAction.Action>()
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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<ClappyTrioPlayer>();
|
||||
}
|
||||
|
||||
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<Animator>().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<MultiSound.Sound> sounds = new List<MultiSound.Sound>();
|
||||
List<BeatAction.Action> actions = new List<BeatAction.Action>();
|
||||
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<Animator>().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)
|
||||
|
|
|
@ -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<Animator>().Play("Clap", 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ namespace HeavenStudio.Games
|
|||
var entities = GameManager.instance.Beatmap.entities;
|
||||
|
||||
float startBeat = cond.songPositionInBeats;
|
||||
float endBeat = Single.MaxValue;
|
||||
|
||||
if (inactiveStart == -1f)
|
||||
{
|
||||
|
@ -130,12 +131,27 @@ namespace HeavenStudio.Games
|
|||
// Cue the marching proper to begin when applicable.
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(startBeat, delegate { StartMarching(startBeat); })
|
||||
new BeatAction.Action(startBeat - 0.25f, delegate { StartMarching(startBeat); })
|
||||
});
|
||||
|
||||
inactiveStart = -1f;
|
||||
}
|
||||
|
||||
// find out when the next game switch (or remix end) happens
|
||||
var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" });
|
||||
allEnds.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||
|
||||
//get the beat of the closest end event
|
||||
foreach (var end in allEnds)
|
||||
{
|
||||
if (end.datamodel.Split(2) == "cropStomp") continue;
|
||||
if (end.beat > startBeat)
|
||||
{
|
||||
endBeat = end.beat;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Veggie and mole events.
|
||||
var vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies");
|
||||
var moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole");
|
||||
|
@ -154,7 +170,7 @@ namespace HeavenStudio.Games
|
|||
for (int b = 0; b < veggiesInEvent; b++)
|
||||
{
|
||||
var targetVeggieBeat = vegBeat + 2f * b;
|
||||
if (startBeat <= targetVeggieBeat)
|
||||
if (startBeat <= targetVeggieBeat && targetVeggieBeat < endBeat)
|
||||
{
|
||||
SpawnVeggie(targetVeggieBeat, startBeat, false);
|
||||
}
|
||||
|
@ -167,7 +183,7 @@ namespace HeavenStudio.Games
|
|||
{
|
||||
var moleBeat = moleEvents[i].beat;
|
||||
|
||||
if (startBeat <= moleBeat)
|
||||
if (startBeat <= moleBeat && moleBeat < endBeat)
|
||||
{
|
||||
SpawnVeggie(moleBeat, startBeat, true);
|
||||
}
|
||||
|
@ -208,7 +224,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)});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.SecsToBeats(Minigame.EndTime()-1, cond.GetBpmAtBeat(targetBeat));
|
||||
|
||||
if (autoTriggered)
|
||||
{
|
||||
|
@ -219,10 +233,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
|||
|
||||
if (!isMole)
|
||||
{
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Sprite> 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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<BeatAction.Action>()
|
||||
{
|
||||
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<BeatAction.Action>()
|
||||
{
|
||||
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<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(startBeat+2f, delegate {
|
||||
game.SetFaces(0);
|
||||
}),
|
||||
});
|
||||
}
|
||||
CleanUp();
|
||||
}
|
||||
|
||||
public void CleanUp()
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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<Animator>();
|
||||
|
||||
// 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<SpriteRenderer>().sprite = ForkLifter.instance.peaSprites[type];
|
||||
GetComponentInChildren<SpriteRenderer>().sprite = game.peaSprites[type];
|
||||
|
||||
for (int i = 0; i < transform.GetChild(0).childCount; i++)
|
||||
{
|
||||
transform.GetChild(0).GetChild(i).GetComponent<SpriteRenderer>().sprite = transform.GetChild(0).GetComponent<SpriteRenderer>().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<SpriteRenderer>();
|
||||
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<SpriteRenderer>();
|
||||
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<SpriteRenderer>();
|
||||
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<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(startBeat+ 2.45f, delegate {
|
||||
Destroy(this.gameObject);
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
private void Out(PlayerActionEvent caller) {}
|
||||
}
|
||||
}
|
|
@ -1,15 +1,13 @@
|
|||
//notes:
|
||||
// BEFORE NEW PROPS
|
||||
// - minenice will also use this to test out randomly named parameters so coding has to rest until the new props update [DONE]
|
||||
// - see fan club for separate prefabs (cadets) [DONE]
|
||||
// - temporarily take sounds from rhre, wait until someone records the full code, including misses, or record it myself (unlikely) [IN PROGRESS]
|
||||
// AFTER NEW PROPS
|
||||
// - testmod marching orders using speed
|
||||
// CURRENT STATE
|
||||
// - rework on the marching cadet code (it sucks)
|
||||
// - see space soccer, mr upbeat, tunnel for keep-the-beat codes
|
||||
// - figure how to do custom bg changes when the upscaled textures are finished (see karate man, launch party once it releases)
|
||||
// - will use a textbox without going through the visual options but i wonder how..?? (see first contact if ever textboxes are implemented in said minigame)
|
||||
// AFTER FEATURE COMPLETION
|
||||
// - delete all notes once the minigame is considered feature-complete
|
||||
// - polish. like a lot of polish
|
||||
// - of course, assetbundles!
|
||||
|
||||
using HeavenStudio.Util;
|
||||
using System;
|
||||
|
@ -144,7 +142,7 @@ namespace HeavenStudio.Games
|
|||
marchOtherCount += 1;
|
||||
var marchOtherAnim = (marchOtherCount % 2 != 0 ? "MarchR" : "MarchL");
|
||||
|
||||
Jukebox.PlayOneShotGame("marchingOrders/step1");
|
||||
Jukebox.PlayOneShotGame("marchingOrders/stepOther");
|
||||
Cadet1.DoScaledAnimationAsync(marchOtherAnim, 0.5f);
|
||||
Cadet2.DoScaledAnimationAsync(marchOtherAnim, 0.5f);
|
||||
Cadet3.DoScaledAnimationAsync(marchOtherAnim, 0.5f);
|
||||
|
@ -160,7 +158,7 @@ namespace HeavenStudio.Games
|
|||
marchPlayerCount += 1;
|
||||
var marchPlayerAnim = (marchPlayerCount % 2 != 0 ? "MarchR" : "MarchL");
|
||||
|
||||
Jukebox.PlayOneShotGame("marchingOrders/step1");
|
||||
Jukebox.PlayOneShotGame("marchingOrders/stepOther");
|
||||
CadetPlayer.DoScaledAnimationAsync(marchPlayerAnim, 0.5f);
|
||||
}
|
||||
}
|
||||
|
@ -216,7 +214,7 @@ namespace HeavenStudio.Games
|
|||
MultiSound.Play(new MultiSound.Sound[] {
|
||||
new MultiSound.Sound("marchingOrders/halt1", beat),
|
||||
new MultiSound.Sound("marchingOrders/halt2", beat + 1f),
|
||||
new MultiSound.Sound("marchingOrders/step1", beat + 1f),
|
||||
new MultiSound.Sound("marchingOrders/stepOther", beat + 1f),
|
||||
}, forcePlay:true);
|
||||
|
||||
BeatAction.New(Player, new List<BeatAction.Action>()
|
||||
|
@ -244,12 +242,12 @@ namespace HeavenStudio.Games
|
|||
switch (type)
|
||||
{
|
||||
case (int) MarchingOrders.DirectionFaceTurn.Left:
|
||||
//ScheduleInput(beat, turnLength + 2f, InputType.DIRECTION_RIGHT_DOWN, LeftSuccess, LeftMiss, LeftEmpty);
|
||||
ScheduleInput(beat, turnLength + 2f, InputType.DIRECTION_LEFT_DOWN, LeftSuccess, LeftMiss, LeftThrough);
|
||||
MultiSound.Play(new MultiSound.Sound[] {
|
||||
new MultiSound.Sound("marchingOrders/leftFaceTurn1", beat),
|
||||
new MultiSound.Sound("marchingOrders/leftFaceTurn2", beat + 0.5f),
|
||||
new MultiSound.Sound("marchingOrders/leftFaceTurn3", beat + turnLength + 1f),
|
||||
new MultiSound.Sound("marchingOrders/leftFaceTurn4", beat + turnLength + 2f),
|
||||
new MultiSound.Sound("marchingOrders/faceTurnOther", beat + turnLength + 2f),
|
||||
}, forcePlay:true);
|
||||
|
||||
BeatAction.New(Player, new List<BeatAction.Action>()
|
||||
|
@ -260,11 +258,12 @@ namespace HeavenStudio.Games
|
|||
});
|
||||
break;
|
||||
default:
|
||||
ScheduleInput(beat, turnLength + 2f, InputType.DIRECTION_RIGHT_DOWN, RightSuccess, RightMiss, RightThrough);
|
||||
MultiSound.Play(new MultiSound.Sound[] {
|
||||
new MultiSound.Sound("marchingOrders/rightFaceTurn1", beat),
|
||||
new MultiSound.Sound("marchingOrders/rightFaceTurn2", beat + 0.5f),
|
||||
new MultiSound.Sound("marchingOrders/rightFaceTurn3", beat + turnLength + 1f),
|
||||
new MultiSound.Sound("marchingOrders/rightFaceTurn4", beat + turnLength + 2f),
|
||||
new MultiSound.Sound("marchingOrders/faceTurnOther", beat + turnLength + 2f),
|
||||
}, forcePlay:true);
|
||||
|
||||
BeatAction.New(Player, new List<BeatAction.Action>()
|
||||
|
@ -284,6 +283,7 @@ namespace HeavenStudio.Games
|
|||
}
|
||||
|
||||
|
||||
|
||||
public static void AttentionSound(float beat)
|
||||
{
|
||||
MultiSound.Play(new MultiSound.Sound[] {
|
||||
|
@ -308,6 +308,42 @@ namespace HeavenStudio.Games
|
|||
new MultiSound.Sound("marchingOrders/halt2", beat + 1f),
|
||||
}, forcePlay:true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void LeftSuccess(PlayerActionEvent caller, float state)
|
||||
{
|
||||
Jukebox.PlayOneShotGame("marchingOrders/faceTurnPlayer");
|
||||
CadetHeadPlayer.DoScaledAnimationAsync("FaceL", 0.5f);
|
||||
}
|
||||
|
||||
public void LeftMiss(PlayerActionEvent caller)
|
||||
{
|
||||
//Jukebox.PlayOneShotGame("spaceDance/inputBad2");
|
||||
}
|
||||
|
||||
public void LeftThrough(PlayerActionEvent caller)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void RightSuccess(PlayerActionEvent caller, float state)
|
||||
{
|
||||
Jukebox.PlayOneShotGame("marchingOrders/faceTurnPlayer");
|
||||
CadetHeadPlayer.DoScaledAnimationAsync("FaceR", 0.5f);
|
||||
}
|
||||
|
||||
public void RightMiss(PlayerActionEvent caller)
|
||||
{
|
||||
//Jukebox.PlayOneShotGame("spaceDance/inputBad2");
|
||||
}
|
||||
|
||||
public void RightThrough(PlayerActionEvent caller)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
@ -246,5 +249,12 @@ namespace HeavenStudio.Games
|
|||
Debug.LogWarning($"Sound sequence {name} not found in game {game} (did you build AssetBundles?)");
|
||||
return null;
|
||||
}
|
||||
|
||||
private void OnDestroy() {
|
||||
foreach (var evt in scheduledInputs)
|
||||
{
|
||||
evt.Disable();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,38 +27,10 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
|
|||
{
|
||||
if (!game.served || game.missed || !game.started) return;
|
||||
|
||||
var cond = Conductor.instance;
|
||||
|
||||
float stateBeat = cond.GetPositionFromMargin(game.targetBeat, 1f);
|
||||
StateCheck(stateBeat);
|
||||
|
||||
if (PlayerInput.Pressed())
|
||||
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN))
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Ace();
|
||||
}
|
||||
else if (state.notPerfect())
|
||||
{
|
||||
Miss();
|
||||
Jukebox.PlayOneShot("miss");
|
||||
playerAnim.Play("Swing", 0, 0);
|
||||
|
||||
game.missCurve.KeyPoints[0].Position = game.ball.transform.position;
|
||||
game.missCurve.transform.localScale = new Vector3(state.early ? 1f : -1f, 1f, 1f);
|
||||
game.missBeat = cond.songPositionInBeats;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Play "whoosh" sound here
|
||||
playerAnim.Play("Swing", 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (stateBeat > Minigame.EndTime())
|
||||
{
|
||||
Miss();
|
||||
game.ball.SetActive(false);
|
||||
// Play "whoosh" sound here
|
||||
playerAnim.Play("Swing", 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,36 +40,49 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
|
|||
|
||||
var hitBeat = cond.songPositionInBeats;
|
||||
|
||||
var bounceBeat = game.targetBeat + 1f;
|
||||
var bounceBeat = game.serveBeat + game.targetBeat + 1f;
|
||||
|
||||
if (game.rallySpeed == RhythmRally.RallySpeed.Slow)
|
||||
{
|
||||
bounceBeat = game.targetBeat + 2f;
|
||||
bounceBeat = game.serveBeat + game.targetBeat + 2f;
|
||||
}
|
||||
else if (game.rallySpeed == RhythmRally.RallySpeed.SuperFast)
|
||||
{
|
||||
bounceBeat = game.targetBeat + 0.5f;
|
||||
bounceBeat = game.serveBeat + game.targetBeat + 0.5f;
|
||||
}
|
||||
|
||||
playerAnim.Play("Swing", 0, 0);
|
||||
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("rhythmRally/Return", hitBeat), new MultiSound.Sound("rhythmRally/ReturnBounce", bounceBeat) });
|
||||
BounceFX(bounceBeat);
|
||||
game.ball.SetActive(true);
|
||||
}
|
||||
|
||||
void Miss()
|
||||
void NearMiss(float state)
|
||||
{
|
||||
MissBall();
|
||||
Jukebox.PlayOneShot("miss");
|
||||
playerAnim.Play("Swing", 0, 0);
|
||||
|
||||
game.missCurve.KeyPoints[0].Position = game.ball.transform.position;
|
||||
game.missCurve.transform.localScale = new Vector3(-state, 1f, 1f);
|
||||
game.missBeat = cond.songPositionInBeats;
|
||||
game.ball.SetActive(true);
|
||||
}
|
||||
|
||||
void MissBall()
|
||||
{
|
||||
game.served = false;
|
||||
game.missed = true;
|
||||
|
||||
var whistleBeat = game.targetBeat + 1f;
|
||||
var whistleBeat = game.serveBeat + game.targetBeat + 1f;
|
||||
|
||||
if (game.rallySpeed == RhythmRally.RallySpeed.Slow)
|
||||
{
|
||||
whistleBeat = game.targetBeat + 2f;
|
||||
whistleBeat = game.serveBeat + game.targetBeat + 2f;
|
||||
}
|
||||
else if (game.rallySpeed == RhythmRally.RallySpeed.SuperFast)
|
||||
{
|
||||
whistleBeat = game.targetBeat + 0.5f;
|
||||
whistleBeat = game.serveBeat + game.targetBeat + 0.5f;
|
||||
}
|
||||
|
||||
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("rhythmRally/Whistle", whistleBeat) });
|
||||
|
@ -117,9 +102,20 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
|
|||
});
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
public void Just(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (state >= 1f || state <= -1f) {
|
||||
NearMiss(state);
|
||||
return;
|
||||
}
|
||||
Ace();
|
||||
}
|
||||
|
||||
public void Miss(PlayerActionEvent caller)
|
||||
{
|
||||
MissBall();
|
||||
}
|
||||
|
||||
public void Out(PlayerActionEvent caller) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,8 @@ namespace HeavenStudio.Games.Loaders
|
|||
new GameAction("toss ball", "Toss Ball")
|
||||
{
|
||||
function = delegate { RhythmRally.instance.Toss(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, 6f, true); },
|
||||
defaultLength = 2f
|
||||
defaultLength = 2f,
|
||||
resizable = true
|
||||
},
|
||||
new GameAction("rally", "Rally")
|
||||
{
|
||||
|
@ -375,16 +376,16 @@ namespace HeavenStudio.Games
|
|||
switch (rallySpeed)
|
||||
{
|
||||
case RallySpeed.Normal:
|
||||
targetBeat = serveBeat + 2f;
|
||||
targetBeat = 2f;
|
||||
bounceBeat = serveBeat + 1f;
|
||||
break;
|
||||
case RallySpeed.Fast:
|
||||
case RallySpeed.SuperFast:
|
||||
targetBeat = serveBeat + 1f;
|
||||
targetBeat = 1f;
|
||||
bounceBeat = serveBeat + 0.5f;
|
||||
break;
|
||||
case RallySpeed.Slow:
|
||||
targetBeat = serveBeat + 4f;
|
||||
targetBeat = 4f;
|
||||
bounceBeat = serveBeat + 2f;
|
||||
break;
|
||||
}
|
||||
|
@ -393,7 +394,7 @@ namespace HeavenStudio.Games
|
|||
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("rhythmRally/Serve", serveBeat), new MultiSound.Sound("rhythmRally/ServeBounce", bounceBeat) });
|
||||
paddlers.BounceFX(bounceBeat);
|
||||
|
||||
paddlers.ResetState();
|
||||
ScheduleInput(serveBeat, targetBeat, InputType.STANDARD_DOWN, paddlers.Just, paddlers.Miss, paddlers.Out);
|
||||
}
|
||||
|
||||
public void Toss(float beat, float length, float height, bool firstToss = false)
|
||||
|
@ -401,6 +402,9 @@ namespace HeavenStudio.Games
|
|||
// Hide trail while tossing to prevent weirdness while teleporting ball.
|
||||
ballTrail.gameObject.SetActive(false);
|
||||
|
||||
if (firstToss)
|
||||
height *= length/2f;
|
||||
|
||||
tossCurve.transform.localScale = new Vector3(1f, height, 1f);
|
||||
tossBeat = beat;
|
||||
tossLength = length;
|
||||
|
|
|
@ -21,24 +21,12 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
|||
tweezers = game.Tweezers;
|
||||
}
|
||||
|
||||
private void Start() {
|
||||
game.ScheduleInput(createBeat, game.tweezerBeatOffset + game.beatInterval, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, Just, Miss, Out);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (plucked) return;
|
||||
|
||||
float stateBeat = Conductor.instance.GetPositionFromMargin(createBeat + game.tweezerBeatOffset + game.beatInterval, 1f);
|
||||
StateCheck(stateBeat);
|
||||
|
||||
if (PlayerInput.Pressed(true))
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Ace();
|
||||
}
|
||||
else if (state.notPerfect())
|
||||
{
|
||||
Miss();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Ace()
|
||||
|
@ -48,16 +36,27 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
|||
plucked = true;
|
||||
}
|
||||
|
||||
public void Miss()
|
||||
public void NearMiss()
|
||||
{
|
||||
tweezers.Pluck(false, this);
|
||||
tweezers.hitOnFrame++;
|
||||
plucked = true;
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
private void Just(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (state >= 1f || state <= -1f) {
|
||||
NearMiss();
|
||||
return;
|
||||
}
|
||||
Ace();
|
||||
}
|
||||
|
||||
private void Miss(PlayerActionEvent caller)
|
||||
{
|
||||
// this is where perfect challenge breaks
|
||||
}
|
||||
|
||||
private void Out(PlayerActionEvent caller) {}
|
||||
}
|
||||
}
|
|
@ -21,6 +21,9 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
|||
|
||||
private Sound pullSound;
|
||||
|
||||
PlayerActionEvent endEvent;
|
||||
InputType endInput;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
game = RhythmTweezers.instance;
|
||||
|
@ -28,70 +31,23 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
|||
tweezers = game.Tweezers;
|
||||
}
|
||||
|
||||
private void Start() {
|
||||
game.ScheduleInput(createBeat, game.tweezerBeatOffset + game.beatInterval, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, StartJust, StartMiss, Out);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
float stateBeat;
|
||||
|
||||
switch (pluckState)
|
||||
{
|
||||
// Able to be held.
|
||||
case 0:
|
||||
stateBeat = Conductor.instance.GetPositionFromMargin(createBeat + game.tweezerBeatOffset + game.beatInterval, 1f);
|
||||
StateCheck(stateBeat);
|
||||
|
||||
if (PlayerInput.Pressed(true))
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
pullSound = Jukebox.PlayOneShotGame($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}");
|
||||
pluckState = 1;
|
||||
ResetState();
|
||||
}
|
||||
else if (state.notPerfect())
|
||||
{
|
||||
// I don't know what happens if you mess up here.
|
||||
pluckState = -1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// In held state. Able to be released.
|
||||
case 1:
|
||||
stateBeat = Conductor.instance.GetPositionFromMargin(createBeat + game.tweezerBeatOffset + game.beatInterval + 0.5f, 1f);
|
||||
StateCheck(stateBeat);
|
||||
|
||||
if (PlayerInput.PressedUp(true))
|
||||
{
|
||||
// It's possible to release earlier than earlyTime,
|
||||
// and the hair will automatically be released before lateTime,
|
||||
// so standard state checking isn't applied here
|
||||
// (though StateCheck is still used for autoplay).
|
||||
if (stateBeat >= Minigame.perfectTime)
|
||||
{
|
||||
Ace();
|
||||
}
|
||||
else
|
||||
{
|
||||
var normalized = Conductor.instance.GetPositionFromBeat(createBeat + game.tweezerBeatOffset + game.beatInterval, 0.5f);
|
||||
// Hair gets released early and returns whoops.
|
||||
anim.Play("LoopPullReverse", 0, normalized);
|
||||
tweezers.anim.Play("Idle", 0, 0);
|
||||
|
||||
if (pullSound != null)
|
||||
pullSound.Stop();
|
||||
|
||||
pluckState = -1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// Released or missed. Can't be held or released.
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (pluckState == 1)
|
||||
{
|
||||
bool input = PlayerInput.PressedUp();
|
||||
if (endInput == InputType.DIRECTION_UP) input = PlayerInput.GetAnyDirectionUp();
|
||||
if (input && !game.IsExpectingInputNow(endInput))
|
||||
{
|
||||
endEvent.MakeInEligible();
|
||||
EndEarly();
|
||||
return;
|
||||
}
|
||||
|
||||
Vector3 tst = tweezers.tweezerSpriteTrans.position;
|
||||
var hairDirection = new Vector3(tst.x + 0.173f, tst.y) - holder.transform.position;
|
||||
holder.transform.rotation = Quaternion.FromToRotation(Vector3.down, hairDirection);
|
||||
|
@ -102,13 +58,13 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
|||
|
||||
// Auto-release if holding at release time.
|
||||
if (normalizedBeat >= 1f)
|
||||
Ace();
|
||||
endEvent.Hit(0f);
|
||||
}
|
||||
|
||||
loop.transform.localScale = Vector2.one / holder.transform.localScale;
|
||||
}
|
||||
|
||||
public void Ace()
|
||||
public void EndAce()
|
||||
{
|
||||
tweezers.LongPluck(true, this);
|
||||
tweezers.hitOnFrame++;
|
||||
|
@ -119,18 +75,52 @@ namespace HeavenStudio.Games.Scripts_RhythmTweezers
|
|||
pluckState = -1;
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
public void EndEarly()
|
||||
{
|
||||
if (pluckState == 0)
|
||||
{
|
||||
pullSound = Jukebox.PlayOneShotGame($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}");
|
||||
pluckState = 1;
|
||||
ResetState();
|
||||
var normalized = Conductor.instance.GetPositionFromBeat(createBeat + game.tweezerBeatOffset + game.beatInterval, 0.5f);
|
||||
anim.Play("LoopPullReverse", 0, normalized);
|
||||
tweezers.anim.Play("Idle", 0, 0);
|
||||
|
||||
if (pullSound != null)
|
||||
pullSound.Stop();
|
||||
|
||||
pluckState = -1;
|
||||
}
|
||||
|
||||
private void StartJust(PlayerActionEvent caller, float state)
|
||||
{
|
||||
// don't count near misses
|
||||
if (state >= 1f || state <= -1f) {
|
||||
pluckState = -1;
|
||||
return;
|
||||
}
|
||||
else if (pluckState == 1)
|
||||
if (PlayerInput.GetAnyDirectionDown())
|
||||
{
|
||||
Ace();
|
||||
endInput = InputType.DIRECTION_UP;
|
||||
}
|
||||
else
|
||||
{
|
||||
endInput = InputType.STANDARD_UP;
|
||||
}
|
||||
pullSound = Jukebox.PlayOneShotGame($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}");
|
||||
pluckState = 1;
|
||||
endEvent = game.ScheduleInput(createBeat, game.tweezerBeatOffset + game.beatInterval + 0.5f, endInput, EndJust, Out, Out);
|
||||
}
|
||||
|
||||
private void StartMiss(PlayerActionEvent caller)
|
||||
{
|
||||
// this is where perfect challenge breaks
|
||||
}
|
||||
|
||||
private void Out(PlayerActionEvent caller) {}
|
||||
|
||||
private void EndJust(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (state <= -1f) {
|
||||
EndEarly();
|
||||
return;
|
||||
}
|
||||
EndAce();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -27,7 +27,8 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
public float nextAnimBeat;
|
||||
public float highKickSwing = 0f;
|
||||
private float lastSpriteRot;
|
||||
public bool canKick; //unused
|
||||
public bool canKick;
|
||||
public bool waitKickRelease;
|
||||
private bool lastKickLeft;
|
||||
|
||||
public void Init(Kicker kicker, float dispensedBeat)
|
||||
|
@ -182,14 +183,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
|
||||
holder.transform.localPosition = dispenseCurve.GetPoint(normalizedBeatAnim);
|
||||
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(0f, -1440f, normalizedBeatAnim));
|
||||
|
||||
/*if (PlayerInput.Pressed())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Kick();
|
||||
}
|
||||
}*/
|
||||
break;
|
||||
}
|
||||
case State.Kicked:
|
||||
|
@ -208,22 +201,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
}
|
||||
|
||||
holder.transform.localPosition = kickCurve.GetPoint(normalizedBeatAnim);
|
||||
|
||||
/*if (PlayerInput.Pressed())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
if (kicker.canHighKick)
|
||||
{
|
||||
HighKick();
|
||||
}
|
||||
else if (kicker.canKick)
|
||||
{
|
||||
Kick();
|
||||
}
|
||||
// print(normalizedBeat);
|
||||
}
|
||||
}*/
|
||||
break;
|
||||
}
|
||||
case State.HighKicked:
|
||||
|
@ -234,24 +211,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
|
||||
holder.transform.localPosition = highKickCurve.GetPoint(normalizedBeatAnim);
|
||||
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, lastSpriteRot + 360f, normalizedBeatAnim));
|
||||
|
||||
// if (state.perfect) Debug.Break();
|
||||
|
||||
/*if (PlayerInput.Pressed())
|
||||
{
|
||||
kickPrepare = true;
|
||||
kicker.Kick(this);
|
||||
}
|
||||
if (kickPrepare)
|
||||
{
|
||||
if (PlayerInput.PressedUp())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Toe();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
break;
|
||||
}
|
||||
case State.Toe:
|
||||
|
|
|
@ -8,6 +8,8 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
{
|
||||
public class Kicker : PlayerActionObject
|
||||
{
|
||||
SpaceSoccer game;
|
||||
|
||||
[Header("Properties")]
|
||||
public bool canKick = true; //why was this false by default???
|
||||
public bool canHighKick;
|
||||
|
@ -21,40 +23,25 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
private Animator anim;
|
||||
public Ball ball;
|
||||
|
||||
PlayerActionEvent nextHit;
|
||||
PlayerActionEvent nextAutoKick;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
game = SpaceSoccer.instance;
|
||||
anim = GetComponent<Animator>();
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
public void DispenseBall(float beat)
|
||||
{
|
||||
if (ball.state == Ball.State.HighKicked)
|
||||
if (player)
|
||||
{
|
||||
if (!kickPrepare)
|
||||
{
|
||||
Kick(false, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Toe(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (canHighKick)
|
||||
{
|
||||
HighKick(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Kick(true);
|
||||
}
|
||||
nextHit = game.ScheduleInput(beat, ball.GetAnimLength(Ball.State.Dispensing), InputType.STANDARD_DOWN, KickJust, Miss, Out);
|
||||
}
|
||||
}
|
||||
|
||||
public void Kick(bool hit, bool highKick = false)
|
||||
{
|
||||
kickTimes++;
|
||||
aceTimes = 0;
|
||||
|
||||
if (player)
|
||||
|
@ -87,6 +74,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
|
||||
if (highKick == false)
|
||||
{
|
||||
kickTimes++;
|
||||
if (ball != null && hit)
|
||||
ball.Kick(player);
|
||||
}
|
||||
|
@ -94,8 +82,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
{
|
||||
kickPrepare = true;
|
||||
}
|
||||
|
||||
ResetState();
|
||||
}
|
||||
|
||||
public void HighKick(bool hit)
|
||||
|
@ -123,8 +109,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
if (player)
|
||||
Jukebox.PlayOneShotGame("spaceSoccer/highkicktoe1");
|
||||
}
|
||||
|
||||
ResetState();
|
||||
}
|
||||
|
||||
public void Toe(bool hit)
|
||||
|
@ -153,8 +137,8 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
if (hit && ball)
|
||||
ball.Toe();
|
||||
|
||||
kickTimes++;
|
||||
kickPrepare = false;
|
||||
ResetState();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
|
@ -168,21 +152,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
kickLeft = true;
|
||||
}
|
||||
|
||||
// List<Beatmap.Entity> 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;
|
||||
// }
|
||||
// }
|
||||
|
||||
var highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!");
|
||||
for (int i = 0; i < highKicks.Count; i++)
|
||||
{
|
||||
|
@ -206,128 +175,29 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
}
|
||||
}
|
||||
|
||||
if (ball)
|
||||
if (player)
|
||||
{
|
||||
switch (ball.state)
|
||||
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN))
|
||||
{
|
||||
case Ball.State.Dispensing:
|
||||
{
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromBeat(ball.startBeat, ball.GetAnimLength(Ball.State.Dispensing));
|
||||
StateCheck(normalizedBeat, !player);
|
||||
CheckIfFall(normalizedBeat);
|
||||
|
||||
if (player)
|
||||
{
|
||||
if (PlayerInput.Pressed())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
KickCheck(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
KickCheck(false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Ball.State.Kicked:
|
||||
{
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromBeat(ball.startBeat, ball.GetAnimLength(Ball.State.Kicked));
|
||||
StateCheck(normalizedBeat, !player);
|
||||
CheckIfFall(normalizedBeat);
|
||||
|
||||
if (player)
|
||||
{
|
||||
if (PlayerInput.Pressed())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
KickCheck(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
KickCheck(false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Ball.State.HighKicked:
|
||||
{
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromMargin(ball.startBeat + ball.GetAnimLength(Ball.State.HighKicked), 1f);
|
||||
if (!kickPrepare)
|
||||
{
|
||||
float normalizedBeatPrepare = Conductor.instance.GetPositionFromBeat(ball.startBeat, 1f);
|
||||
StateCheck(normalizedBeatPrepare, !player);
|
||||
CheckIfFall(normalizedBeat);
|
||||
|
||||
if (player)
|
||||
{
|
||||
if (PlayerInput.Pressed() || PlayerInput.AltPressed())
|
||||
{
|
||||
Kick(false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
StateCheck(normalizedBeat, !player);
|
||||
CheckIfFall(normalizedBeat);
|
||||
|
||||
if (player)
|
||||
{
|
||||
if (PlayerInput.PressedUp() || PlayerInput.AltPressedUp())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Toe(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Toe(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Ball.State.Toe:
|
||||
{
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromMargin(ball.startBeat + ball.GetAnimLength(Ball.State.Toe), 1f);
|
||||
StateCheck(normalizedBeat, !player);
|
||||
CheckIfFall(normalizedBeat);
|
||||
|
||||
if (player)
|
||||
{
|
||||
if (PlayerInput.Pressed())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
KickCheck(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
KickCheck(false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (player)
|
||||
{
|
||||
if (PlayerInput.Pressed())
|
||||
{
|
||||
if (ball == null)
|
||||
KickCheck(false, true);
|
||||
else
|
||||
Kick(false, ball.canKick);
|
||||
|
||||
}
|
||||
if (PlayerInput.PressedUp() && ball != null)
|
||||
{
|
||||
if (ball.waitKickRelease)
|
||||
{
|
||||
ball.waitKickRelease = false;
|
||||
}
|
||||
else if (ball.canKick && !game.IsExpectingInputNow(InputType.STANDARD_UP))
|
||||
{
|
||||
ball.canKick = false;
|
||||
Kick(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void KickCheck(bool hit, bool overrideState = false)
|
||||
|
@ -346,14 +216,71 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
|||
}
|
||||
}
|
||||
|
||||
private void CheckIfFall(float normalizedBeat)
|
||||
void MissBall(float targetBeat)
|
||||
{
|
||||
if (normalizedBeat > Minigame.LateTime() && (!GameManager.instance.autoplay || !GameManager.instance.canInput))
|
||||
{
|
||||
Jukebox.PlayOneShotGame("spaceSoccer/missNeutral");
|
||||
ball = null;
|
||||
ResetState();
|
||||
var cond = Conductor.instance;
|
||||
ball = null;
|
||||
// queue the miss sound
|
||||
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("spaceSoccer/missNeutral", targetBeat + (float)cond.SecsToBeats(Minigame.EndTime()-1, cond.GetBpmAtBeat(targetBeat))) });
|
||||
}
|
||||
|
||||
private void KickJust(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (ball == null || state >= 1f || state <= -1f) { //todo: proper near miss feedback
|
||||
KickCheck(false, true);
|
||||
MissBall(caller.startBeat + caller.timer);
|
||||
return;
|
||||
}
|
||||
KickCheck(true);
|
||||
if (canHighKick)
|
||||
{
|
||||
// queue high kick inputs
|
||||
nextHit = game.ScheduleInput(caller.startBeat + caller.timer, ball.GetAnimLength(Ball.State.Toe), InputType.STANDARD_UP, ToeJust, Miss, Out);
|
||||
nextAutoKick = game.ScheduleAutoplayInput(caller.startBeat + caller.timer, ball.GetAnimLength(Ball.State.Kicked), InputType.STANDARD_DOWN, ToePrepareJust, Out, Out);
|
||||
ball.canKick = true;
|
||||
ball.waitKickRelease = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
// queue normal kick input
|
||||
nextHit = game.ScheduleInput(caller.startBeat + caller.timer, ball.GetAnimLength(Ball.State.Kicked), InputType.STANDARD_DOWN, KickJust, Miss, Out);
|
||||
}
|
||||
}
|
||||
|
||||
private void Miss(PlayerActionEvent caller)
|
||||
{
|
||||
if (ball != null)
|
||||
MissBall(caller.startBeat + caller.timer);
|
||||
|
||||
// if this were any other keep the beat game you'd cue the next input here
|
||||
}
|
||||
|
||||
private void ToeJust(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (ball == null || (!ball.canKick) || state >= 1f || state <= -1f) { //todo: proper near miss feedback
|
||||
Toe(false);
|
||||
MissBall(caller.startBeat + caller.timer);
|
||||
return;
|
||||
}
|
||||
Toe(true);
|
||||
nextHit = game.ScheduleInput(caller.startBeat, 3f, InputType.STANDARD_DOWN, KickJust, Miss, Out);
|
||||
ball.canKick = false;
|
||||
}
|
||||
|
||||
private void ToePrepareJust(PlayerActionEvent caller, float state)
|
||||
{
|
||||
//autoplay only
|
||||
Kick(true, true);
|
||||
}
|
||||
|
||||
private void Out(PlayerActionEvent caller) {}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
if (nextHit != null)
|
||||
nextHit.Disable();
|
||||
if (nextAutoKick != null)
|
||||
nextAutoKick.Disable();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -116,6 +116,7 @@ namespace HeavenStudio.Games
|
|||
{
|
||||
DispenseSound(beat);
|
||||
}
|
||||
kicker.DispenseBall(beat);
|
||||
|
||||
kicker.canKick = true;
|
||||
}
|
||||
|
|
|
@ -35,15 +35,12 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
|||
float rot = Random.Range(0, 360);
|
||||
Sprite.gameObject.transform.eulerAngles = new Vector3(0, 0, rot);
|
||||
|
||||
|
||||
// PlayerActionInit(this.gameObject, startBeat, Spaceball.instance.EligibleHits);
|
||||
|
||||
isEligible = true;
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
private void Start()
|
||||
{
|
||||
this.Hit();
|
||||
Spaceball.instance.ScheduleInput(startBeat, high ? 2f : 1f, InputType.STANDARD_DOWN, Just, Miss, Out);
|
||||
}
|
||||
|
||||
private void Hit()
|
||||
|
@ -67,7 +64,7 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
|||
SpaceballPlayer.instance.Swing(this);
|
||||
}
|
||||
|
||||
private void Miss()
|
||||
private void NearMiss()
|
||||
{
|
||||
Holder.transform.GetChild(0).gameObject.AddComponent<Rotate>().rotateSpeed = -55;
|
||||
|
||||
|
@ -85,9 +82,10 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
|||
|
||||
private void Update()
|
||||
{
|
||||
var cond = Conductor.instance;
|
||||
if (hit)
|
||||
{
|
||||
float nba = Conductor.instance.GetPositionFromBeat(hitBeat, 14);
|
||||
float nba = cond.GetPositionFromBeat(hitBeat, 14);
|
||||
Holder.transform.localPosition = Vector3.Lerp(hitPos, new Vector3(randomEndPosX, 0f, -600f), nba);
|
||||
Holder.transform.eulerAngles = Vector3.Lerp(new Vector3(0, 0, hitRot), new Vector3(0, 0, -2260), nba);
|
||||
}
|
||||
|
@ -96,8 +94,7 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
|||
float beatLength = 1f;
|
||||
if (high) beatLength = 2f;
|
||||
|
||||
float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(startBeat, beatLength + 0.15f);
|
||||
// print(normalizedBeatAnim + " " + Time.frameCount);
|
||||
float normalizedBeatAnim = cond.GetPositionFromBeat(startBeat, beatLength + (float)cond.SecsToBeats(Minigame.EndTime()-1, cond.GetBpmAtBeat(startBeat + beatLength)));
|
||||
|
||||
if (high)
|
||||
{
|
||||
|
@ -109,35 +106,25 @@ namespace HeavenStudio.Games.Scripts_Spaceball
|
|||
}
|
||||
|
||||
anim.speed = 0;
|
||||
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, beatLength);
|
||||
|
||||
StateCheck(normalizedBeat);
|
||||
|
||||
if (PlayerInput.Pressed())
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Hit();
|
||||
}
|
||||
else if (state.notPerfect())
|
||||
{
|
||||
Miss();
|
||||
}
|
||||
}
|
||||
|
||||
// too lazy to make a proper fix for this
|
||||
float endTime = 1.2f;
|
||||
if (high) endTime = 1.1f;
|
||||
|
||||
if (normalizedBeat > endTime)
|
||||
{
|
||||
Jukebox.PlayOneShotGame("spaceball/fall");
|
||||
Instantiate(Spaceball.instance.Dust, Spaceball.instance.Dust.transform.parent).SetActive(true);
|
||||
Destroy(this.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Just(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (state >= 1f || state <= -1f) {
|
||||
NearMiss();
|
||||
return;
|
||||
}
|
||||
Hit();
|
||||
}
|
||||
|
||||
private void Miss(PlayerActionEvent caller)
|
||||
{
|
||||
Jukebox.PlayOneShotGame("spaceball/fall");
|
||||
Instantiate(Spaceball.instance.Dust, Spaceball.instance.Dust.transform.parent).SetActive(true);
|
||||
Destroy(this.gameObject);
|
||||
}
|
||||
|
||||
private void Out(PlayerActionEvent caller) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,10 @@ namespace HeavenStudio.Games.Scripts_WizardsWaltz
|
|||
animator.Play("Appear", 0, 0);
|
||||
}
|
||||
|
||||
private void Start() {
|
||||
game.ScheduleInput(createBeat, game.beatInterval, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, Just, Miss, Out);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!passed && Conductor.instance.songPositionInBeats > createBeat + game.beatInterval)
|
||||
|
@ -31,23 +35,6 @@ namespace HeavenStudio.Games.Scripts_WizardsWaltz
|
|||
StartCoroutine(FadeOut());
|
||||
passed = true;
|
||||
}
|
||||
|
||||
if (hit) return;
|
||||
|
||||
float stateBeat = Conductor.instance.GetPositionFromMargin(createBeat + game.beatInterval, 1f);
|
||||
StateCheck(stateBeat);
|
||||
|
||||
if (PlayerInput.Pressed(true))
|
||||
{
|
||||
if (state.perfect)
|
||||
{
|
||||
Ace();
|
||||
} else if (state.notPerfect())
|
||||
{
|
||||
Miss();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void Bloom()
|
||||
|
@ -81,17 +68,28 @@ namespace HeavenStudio.Games.Scripts_WizardsWaltz
|
|||
hit = true;
|
||||
}
|
||||
|
||||
public void Miss()
|
||||
public void NearMiss()
|
||||
{
|
||||
game.wizard.Magic(this, false);
|
||||
hit = true;
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
private void Just(PlayerActionEvent caller, float state)
|
||||
{
|
||||
if (state >= 1f || state <= -1f) {
|
||||
NearMiss();
|
||||
return;
|
||||
}
|
||||
Ace();
|
||||
}
|
||||
|
||||
private void Miss(PlayerActionEvent caller)
|
||||
{
|
||||
// this is where perfect challenge breaks
|
||||
}
|
||||
|
||||
private void Out(PlayerActionEvent caller) {}
|
||||
|
||||
public IEnumerator FadeOut()
|
||||
{
|
||||
yield return new WaitForSeconds(Conductor.instance.secPerBeat * game.beatInterval / 2f);
|
||||
|
|
|
@ -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<Action> actions)
|
||||
public static BeatAction New(GameObject prefab, List<Action> actions)
|
||||
{
|
||||
BeatAction beatAction = prefab.AddComponent<BeatAction>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
ManifestFileVersion: 0
|
||||
CRC: 67804883
|
||||
CRC: 3583203723
|
||||
Hashes:
|
||||
AssetFileHash:
|
||||
serializedVersion: 2
|
||||
Hash: 12b838a94c79042ad1655edbf842a8f6
|
||||
Hash: 590369c115e99f9279a3225b566e911b
|
||||
TypeTreeHash:
|
||||
serializedVersion: 2
|
||||
Hash: 9a2ca7bdbd1871f7131daf57de908e0c
|
||||
|
@ -13,21 +13,21 @@ ClassTypes:
|
|||
Script: {instanceID: 0}
|
||||
SerializeReferenceClassIdentifiers: []
|
||||
Assets:
|
||||
- Assets/Resources/Sfx/games/karateman/punchKick4.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/one.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchy2.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/threeAlt.wav
|
||||
- Assets/Resources/Sfx/games/karateman/hitAlt.wav
|
||||
- Assets/Resources/Sfx/games/karateman/two.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchKick3.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/four.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchKick1.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/pow.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchy3.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/ko.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchy1.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchy4.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/hit.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/three.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/punchKick2.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchKick4.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/one.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchy2.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/threeAlt.wav
|
||||
- Assets/Resources/Sfx/games/karateman/en/hitAlt.wav
|
||||
- Assets/Resources/Sfx/games/karateman/en/two.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchKick3.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/four.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchKick1.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/pow.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchy3.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/ko.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchy1.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchy4.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/hit.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/three.ogg
|
||||
- Assets/Resources/Sfx/games/karateman/en/punchKick2.ogg
|
||||
Dependencies: []
|
||||
|
|
|
@ -51,7 +51,7 @@ PlayerSettings:
|
|||
m_MTRendering: 1
|
||||
mipStripping: 0
|
||||
numberOfMipsStripped: 0
|
||||
m_StackTraceTypes: 020000000200000002000000020000000200000001000000
|
||||
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
|
||||
iosShowActivityIndicatorOnLoading: -1
|
||||
androidShowActivityIndicatorOnLoading: -1
|
||||
iosUseCustomAppBackgroundBehavior: 0
|
||||
|
|