Updated Inputs for some minigames
First Contact & DJ School has their inputs methods updated
This commit is contained in:
parent
b1a491b50a
commit
614059a4d3
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
|
@ -3,5 +3,5 @@ guid: 8f935c3cf25b69746819a94756411f28
|
|||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName: ntrdj/common
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
|
@ -15,10 +15,48 @@ AudioMixerGroupController:
|
|||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: -3827691611382659438}
|
||||
- {fileID: -7417416911555589299}
|
||||
- {fileID: -4864457926502934139}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &-7417416911555589299
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 5b8f1b47430c37f4aa6afd61b4f32eec
|
||||
m_EffectName: Highpass
|
||||
m_MixLevel: c5fb06afbdfde63429bee2da9ea91189
|
||||
m_Parameters:
|
||||
- m_ParameterName: Cutoff freq
|
||||
m_GUID: 34d86eacd61c28340b115290d5f25b76
|
||||
- m_ParameterName: Resonance
|
||||
m_GUID: 10bb5a0f2787ab54db70b685b5d01d0b
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!244 &-4864457926502934139
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 5739ec919cbf73c429b7bfd3d5c17692
|
||||
m_EffectName: Lowpass
|
||||
m_MixLevel: bf479ffff7901754b93db8cd04a5b69b
|
||||
m_Parameters:
|
||||
- m_ParameterName: Cutoff freq
|
||||
m_GUID: 89e57fda42bbd884c9b50b8cfffb46f6
|
||||
- m_ParameterName: Resonance
|
||||
m_GUID: 1505a38b6ed3ac044b1b27d1e026ee10
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!244 &-3827691611382659438
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
|
@ -104,13 +142,32 @@ AudioMixerSnapshotController:
|
|||
m_SnapshotID: cbd5c1fb10b276940af4ad86481f0172
|
||||
m_FloatValues:
|
||||
9dd04840cf4676047b2e26e659ca4069: 1661
|
||||
65da18c00dad8f642a1f04b10bc4d3fa: -9.8
|
||||
2b8f30d01b6887a4a9a1c346efb59529: 0.96
|
||||
152a0691009a459488775726d7da2a76: 0
|
||||
b32285822a3582a46bc02ae0bb31edd0: 0
|
||||
16419c92ecf0c4743a61bae82f0cd39d: 0.96
|
||||
3537f1d2761ea514aad24adbde59814c: 0.5
|
||||
9cca3334388db1b4cb9a564a2d81e1d9: 2909
|
||||
44f9a634893e4074e976e9bbdd1798de: 2909
|
||||
43b77be4dcaecc64dad266d1ce7ec63b: 0
|
||||
4bc95d762bab08f4397b7609394e744d: 0
|
||||
df5d5286217f286439c16cde82518c34: 0
|
||||
3efb01d650e14ea499166db104c3fef0: 1661
|
||||
03f31c284979509419018c8192731634: 2064
|
||||
9032eb9801098ed4eaa00396d75cac0c: -9.8
|
||||
5236511a7a103314ba1c738dd5b09f64: 2064
|
||||
994ac19a5841d5747a8d4e85c1068fb2: 10
|
||||
89e57fda42bbd884c9b50b8cfffb46f6: 22000
|
||||
97da122bdf1007b4dbcb38293f8ad4ce: 6983
|
||||
46ae8f9b0a8b2c94da3f936b6675c718: 4
|
||||
1b5e174cdc33a544cb4195a5aba09219: 4
|
||||
34d86eacd61c28340b115290d5f25b76: 10
|
||||
74a2868d38bb05a40b9f820d98dfc3a9: -10000
|
||||
8170201e04f44b44fa0a6811cbd98865: 0.1
|
||||
7392d42e828461d4fbea16ee69eecec3: 0.06
|
||||
3549d05eae7b26c42ba4beb170a39a43: 0.96
|
||||
4963fceebf3ef7c499597c1c62bdc06b: 0.96
|
||||
0d54293f1eb308e4f9eb23e744bae623: 1
|
||||
911cb1bf4bb1b624ab3a68e1eb57ba29: 10
|
||||
m_TransitionOverrides: {}
|
||||
|
@ -124,15 +181,19 @@ AudioMixerSnapshotController:
|
|||
m_AudioMixer: {fileID: 24100000}
|
||||
m_SnapshotID: 63d5780e5b890af43a13ba2a5e7fd23d
|
||||
m_FloatValues:
|
||||
8ac1b110f403261418b718a0a6962426: -9.8
|
||||
9dd04840cf4676047b2e26e659ca4069: 1661
|
||||
152a0691009a459488775726d7da2a76: 0
|
||||
152a0691009a459488775726d7da2a76: 16
|
||||
b32285822a3582a46bc02ae0bb31edd0: 0
|
||||
3537f1d2761ea514aad24adbde59814c: 0.5
|
||||
1f89dac5f0e643c4ab8774d8ad05e968: 2.79
|
||||
4bc95d762bab08f4397b7609394e744d: 0
|
||||
3efb01d650e14ea499166db104c3fef0: 1661
|
||||
994ac19a5841d5747a8d4e85c1068fb2: 1121
|
||||
89e57fda42bbd884c9b50b8cfffb46f6: 2064
|
||||
97da122bdf1007b4dbcb38293f8ad4ce: 6983
|
||||
34d86eacd61c28340b115290d5f25b76: 2909
|
||||
3890ccbecfbaacd42a9fda6a955eeab8: 4
|
||||
0d54293f1eb308e4f9eb23e744bae623: 3.99
|
||||
911cb1bf4bb1b624ab3a68e1eb57ba29: 7184
|
||||
m_TransitionOverrides: {}
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: TextboxSDFMaterial
|
||||
m_Shader: {fileID: 4800000, guid: 777678d31f953e04e8f15812003b9c27, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _BumpScale: 1
|
||||
- _ColorMask: 15
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _OutSmoothness: 0.025
|
||||
- _OutThickness: 0.9
|
||||
- _Parallax: 0.02
|
||||
- _SDFThreshold: 0.5
|
||||
- _Smoothness: 0.025
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Stencil: 0
|
||||
- _StencilComp: 8
|
||||
- _StencilOp: 0
|
||||
- _StencilReadMask: 255
|
||||
- _StencilWriteMask: 255
|
||||
- _Thickness: 0.8
|
||||
- _UVSec: 0
|
||||
- _UseUIAlphaClip: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _OutColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_BuildTextureStacks: []
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8bf75b500692c234daf2d17ad891f66b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,135 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 82c4853aee62f094682396664577c631
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 1280609944595656088
|
||||
second: interpreterTextbox0_0
|
||||
- first:
|
||||
213: 3351327113491225332
|
||||
second: interpreterTextbox0_1
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 0
|
||||
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: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 0
|
||||
alignment: 9
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 87, y: 197, z: 98, w: 203}
|
||||
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: 64
|
||||
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: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: interpreterTextbox0_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 512
|
||||
height: 512
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 73, y: 239, z: 186, w: 203}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 89de47ba5f3a5c110800000000000000
|
||||
internalID: 1280609944595656088
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -5,6 +5,15 @@ TextureImporter:
|
|||
- first:
|
||||
213: 484124400209634000
|
||||
second: interpreterTextboxes_0
|
||||
- first:
|
||||
213: -7876428232389808301
|
||||
second: interpreterTextboxes_1
|
||||
- first:
|
||||
213: -2508620102671554880
|
||||
second: interpreterTextboxes_2
|
||||
- first:
|
||||
213: 4953631840317161205
|
||||
second: interpreterTextboxes_3
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
|
@ -99,7 +108,7 @@ TextureImporter:
|
|||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 513
|
||||
width: 510
|
||||
width: 511
|
||||
height: 511
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
|
@ -114,6 +123,48 @@ TextureImporter:
|
|||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: interpreterTextboxes_1
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 513
|
||||
y: 513
|
||||
width: 511
|
||||
height: 511
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 35f2c85f04e41b290800000000000000
|
||||
internalID: -7876428232389808301
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: interpreterTextboxes_2
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 511
|
||||
height: 511
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0c6abdfce479f2dd0800000000000000
|
||||
internalID: -2508620102671554880
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
|
|
BIN
Assets/Resources/Sprites/Games/FirstContact/textboxSDF.png
Normal file
BIN
Assets/Resources/Sprites/Games/FirstContact/textboxSDF.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 839 B |
108
Assets/Resources/Sprites/Games/FirstContact/textboxSDF.png.meta
Normal file
108
Assets/Resources/Sprites/Games/FirstContact/textboxSDF.png.meta
Normal file
|
@ -0,0 +1,108 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f844d9227d1dcc14399e9691e760481d
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 0
|
||||
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: 3
|
||||
wrapV: 3
|
||||
wrapW: 3
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 0
|
||||
alignment: 8
|
||||
spritePivot: {x: 1, y: 0}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 57, y: 0, z: 0, w: 57}
|
||||
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: 64
|
||||
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: 64
|
||||
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:
|
File diff suppressed because it is too large
Load diff
|
@ -20,6 +20,7 @@ namespace HeavenStudio
|
|||
|
||||
public List<Entity> entities = new List<Entity>();
|
||||
public List<TempoChange> tempoChanges = new List<TempoChange>();
|
||||
public List<VolumeChange> volumeChanges = new List<VolumeChange>();
|
||||
public float firstBeatOffset;
|
||||
|
||||
[Serializable]
|
||||
|
@ -53,6 +54,12 @@ namespace HeavenStudio
|
|||
return this.MemberwiseClone();
|
||||
}
|
||||
|
||||
public Entity DeepCopy()
|
||||
{
|
||||
//lol the AI generated this
|
||||
return JsonConvert.DeserializeObject<Entity>(JsonConvert.SerializeObject(this));
|
||||
}
|
||||
|
||||
public object this[string propertyName]
|
||||
{
|
||||
get
|
||||
|
@ -85,5 +92,18 @@ namespace HeavenStudio
|
|||
return this.MemberwiseClone();
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class VolumeChange : ICloneable
|
||||
{
|
||||
public float beat;
|
||||
public float length;
|
||||
public float volume;
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return this.MemberwiseClone();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,7 +11,11 @@ namespace HeavenStudio.Games.Loaders
|
|||
public static Minigame AddGame(EventCaller eventCaller) {
|
||||
return new Minigame("djSchool", "DJ School", "008c97", false, false, new List<GameAction>()
|
||||
{
|
||||
new GameAction("bop", delegate { DJSchool.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 0.5f, true),
|
||||
//new GameAction("bop", delegate { DJSchool.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 0.5f, true),
|
||||
new GameAction("bop", delegate { DJSchool.instance.Bop(eventCaller.currentEntity.toggle); }, 0.5f, false, new List<Param>()
|
||||
{
|
||||
new Param("toggle", true, "Bop", "Whether both will bop to the beat or not")
|
||||
}),
|
||||
new GameAction("and stop ooh", delegate { var e = eventCaller.currentEntity; DJSchool.instance.AndStop(e.beat, e.toggle); }, 2.5f, false, new List<Param>()
|
||||
{
|
||||
new Param("toggle", true, "Ooh", "Whether or not the \"ooh\" sound should be played")
|
||||
|
@ -25,6 +29,14 @@ namespace HeavenStudio.Games.Loaders
|
|||
{
|
||||
new Param("type", DJSchool.DJVoice.Standard, "Voice", "The voice line to play"),
|
||||
}),
|
||||
new GameAction("dj voice lines", delegate { DJSchool.instance.voiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, 2f, false, new List<Param>()
|
||||
{
|
||||
new Param("type", DJSchool.DJVoiceLines.CheckItOut, "Voice Lines", "The voice line to play"),
|
||||
}),
|
||||
new GameAction("sound FX", delegate { DJSchool.instance.soundFX(eventCaller.currentEntity.toggle); }, .5f, false, new List<Param>()
|
||||
{
|
||||
new Param("toggle", false, "Radio FX", "Toggle on and off for Radio Effects")
|
||||
})
|
||||
},
|
||||
new List<string>() {"ntr", "normal"},
|
||||
"ntrdj", "en",
|
||||
|
@ -47,16 +59,31 @@ namespace HeavenStudio.Games
|
|||
Hyped
|
||||
}
|
||||
|
||||
public enum DJVoiceLines
|
||||
{
|
||||
CheckItOut,
|
||||
LetsGo,
|
||||
OhYeah,
|
||||
OhYeahAlt,
|
||||
Yay
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Header("Components")]
|
||||
[SerializeField] private Student student;
|
||||
[SerializeField] private GameObject djYellow;
|
||||
private Animator djYellowAnim;
|
||||
[SerializeField] private SpriteRenderer headSprite;
|
||||
[SerializeField] private Sprite[] headSprites;
|
||||
private float lastReportedBeat = 0f;
|
||||
|
||||
[Header("Properties")]
|
||||
public GameEvent bop = new GameEvent();
|
||||
private bool djYellowHolding;
|
||||
public bool andStop;
|
||||
public bool goBop;
|
||||
public float beatOfInstance;
|
||||
|
||||
public static DJSchool instance { get; private set; }
|
||||
|
||||
|
@ -65,53 +92,117 @@ namespace HeavenStudio.Games
|
|||
instance = this;
|
||||
djYellowAnim = djYellow.GetComponent<Animator>();
|
||||
student.Init();
|
||||
goBop = true;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
var cond = Conductor.instance;
|
||||
#region old script
|
||||
//var cond = Conductor.instance;
|
||||
|
||||
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
||||
//if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
|
||||
//{
|
||||
// if (cond.songPositionInBeats >= bop.startBeat && cond.songPositionInBeats < bop.startBeat + bop.length)
|
||||
// {
|
||||
// if (student.anim.IsAnimationNotPlaying())
|
||||
// {
|
||||
// if (student.isHolding)
|
||||
// {
|
||||
// student.anim.Play("HoldBop", 0, 0);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// student.anim.Play("IdleBop", 0, 0);
|
||||
// }
|
||||
// }
|
||||
// if (djYellowAnim.IsAnimationNotPlaying())
|
||||
// {
|
||||
// var yellowState = djYellowAnim.GetCurrentAnimatorStateInfo(0);
|
||||
// if (yellowState.IsName("Hey"))
|
||||
// {
|
||||
// PostScratchoFace();
|
||||
// }
|
||||
|
||||
// if (djYellowHolding)
|
||||
// {
|
||||
// djYellowAnim.Play("HoldBop", 0, 0);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // todo: split between left and right bop based on beat
|
||||
// djYellowAnim.Play("IdleBop", 0, 0);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
#endregion
|
||||
|
||||
if (Conductor.instance.ReportBeat(ref lastReportedBeat))
|
||||
{
|
||||
if (cond.songPositionInBeats >= bop.startBeat && cond.songPositionInBeats < bop.startBeat + bop.length)
|
||||
if (goBop)
|
||||
{
|
||||
if (student.anim.IsAnimationNotPlaying())
|
||||
if (student.isHolding)
|
||||
{
|
||||
if (student.isHolding)
|
||||
{
|
||||
student.anim.Play("HoldBop", 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
student.anim.Play("IdleBop", 0, 0);
|
||||
}
|
||||
student.anim.Play("HoldBop", 0, 0);
|
||||
}
|
||||
if (djYellowAnim.IsAnimationNotPlaying())
|
||||
else if (!student.swiping && student.anim.IsAnimationNotPlaying())
|
||||
{
|
||||
var yellowState = djYellowAnim.GetCurrentAnimatorStateInfo(0);
|
||||
if (yellowState.IsName("Hey"))
|
||||
{
|
||||
PostScratchoFace();
|
||||
}
|
||||
student.anim.Play("IdleBop", 0, 0);
|
||||
}
|
||||
|
||||
if (djYellowHolding)
|
||||
{
|
||||
djYellowAnim.Play("HoldBop", 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// todo: split between left and right bop based on beat
|
||||
djYellowAnim.Play("IdleBop", 0, 0);
|
||||
}
|
||||
var yellowState = djYellowAnim.GetCurrentAnimatorStateInfo(0);
|
||||
if (yellowState.IsName("Hey"))
|
||||
{
|
||||
PostScratchoFace();
|
||||
}
|
||||
if (!andStop && !djYellowHolding)
|
||||
{
|
||||
djYellowAnim.Play("IdleBop", 0, 0);
|
||||
|
||||
}
|
||||
else if (djYellowHolding)
|
||||
{
|
||||
djYellowAnim.Play("HoldBop", 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else if (Conductor.instance.songPositionInBeats < lastReportedBeat)
|
||||
{
|
||||
lastReportedBeat = Mathf.Round(Conductor.instance.songPositionInBeats);
|
||||
}
|
||||
|
||||
if(PlayerInput.Pressed() && !IsExpectingInputNow() && !student.isHolding) //Start hold miss
|
||||
{
|
||||
student.OnMissHoldForPlayerInput();
|
||||
student.isHolding = true;
|
||||
}
|
||||
else if(PlayerInput.PressedUp() && !IsExpectingInputNow() && student.isHolding) //Let go during hold
|
||||
{
|
||||
student.UnHold();
|
||||
}
|
||||
//else if(PlayerInput.PressedUp() && !IsExpectingInputNow() && !student.isHolding)
|
||||
//{
|
||||
// student.OnMissSwipeForPlayerInput();
|
||||
//}
|
||||
}
|
||||
|
||||
public void Bop(float beat, float length)
|
||||
//public void Bop(float beat, float length)
|
||||
//{
|
||||
// bop.startBeat = beat;
|
||||
// bop.length = length;
|
||||
//}
|
||||
|
||||
public void Bop(bool isBopping)
|
||||
{
|
||||
bop.startBeat = beat;
|
||||
bop.length = length;
|
||||
if (isBopping)
|
||||
{
|
||||
goBop = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
goBop = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void BreakCmon(float beat, int type, bool ooh)
|
||||
|
@ -148,19 +239,20 @@ namespace HeavenStudio.Games
|
|||
BeatAction.New(djYellow, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { djYellow.GetComponent<Animator>().Play("BreakCmon", 0, 0); }),
|
||||
new BeatAction.Action(beat + 1f, delegate { djYellow.GetComponent<Animator>().Play("BreakCmon", 0, 0); SetupCue(beat, false); }),
|
||||
new BeatAction.Action(beat + 1f, delegate { djYellow.GetComponent<Animator>().Play("BreakCmon", 0, 0); }),
|
||||
new BeatAction.Action(beat + 2f, delegate
|
||||
{
|
||||
djYellow.GetComponent<Animator>().Play("Hold", 0, 0);
|
||||
djYellowHolding = true;
|
||||
}),
|
||||
});
|
||||
|
||||
ScheduleInput(beat, 2f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
||||
}
|
||||
|
||||
public void AndStop(float beat, bool ooh)
|
||||
{
|
||||
if (djYellowHolding) return;
|
||||
|
||||
var sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound("djSchool/andStop1", beat),
|
||||
|
@ -175,13 +267,16 @@ namespace HeavenStudio.Games
|
|||
|
||||
BeatAction.New(djYellow, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat + 0.5f, delegate { djYellow.GetComponent<Animator>().Play("BreakCmon", 0, 0); SetupCue(beat - 0.5f, false); }),
|
||||
new BeatAction.Action(beat + 0.5f, delegate { djYellow.GetComponent<Animator>().Play("BreakCmon", 0, 0); }),
|
||||
new BeatAction.Action(beat + 1.5f, delegate
|
||||
{
|
||||
djYellow.GetComponent<Animator>().Play("Hold", 0, 0);
|
||||
djYellowHolding = true;
|
||||
}),
|
||||
});
|
||||
andStop = true;
|
||||
|
||||
ScheduleInput(beat, 1.5f, InputType.STANDARD_DOWN, student.OnHitHold, student.OnMissHold, student.OnEmpty);
|
||||
}
|
||||
|
||||
public void ScratchoHey(float beat, int type)
|
||||
|
@ -213,25 +308,34 @@ namespace HeavenStudio.Games
|
|||
BeatAction.New(djYellow, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { djYellow.GetComponent<Animator>().Play("Scratcho", 0, 0); }),
|
||||
new BeatAction.Action(beat + 1f, delegate { djYellow.GetComponent<Animator>().Play("Scratcho2", 0, 0); SetupCue(beat, true); }),
|
||||
new BeatAction.Action(beat + .5f, delegate { djYellow.GetComponent<Animator>().Play("Scratcho2", 0, 0); }),
|
||||
//new BeatAction.Action(beat + 1f, delegate { djYellow.GetComponent<Animator>().Play("Scratcho", 0, 0); SetupCue(beat, true); }),
|
||||
new BeatAction.Action(beat + 1f, delegate { djYellow.GetComponent<Animator>().Play("Scratcho", 0, 0); }),
|
||||
new BeatAction.Action(beat + 2.05f, delegate
|
||||
{
|
||||
djYellow.GetComponent<Animator>().Play("Hey", 0, 0);
|
||||
djYellowHolding = false;
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
beatOfInstance = beat;
|
||||
|
||||
|
||||
ScheduleInput(beat, 2f, InputType.STANDARD_UP, student.OnHitSwipe, student.OnMissSwipe, student.OnEmpty);
|
||||
andStop = false;
|
||||
}
|
||||
|
||||
void SetupCue(float beat, bool swipe)
|
||||
{
|
||||
if (swipe)
|
||||
student.swipeBeat = beat;
|
||||
else
|
||||
student.holdBeat = beat;
|
||||
//void SetupCue(float beat, bool swipe)
|
||||
//{
|
||||
// if (swipe)
|
||||
// student.swipeBeat = beat;
|
||||
// else
|
||||
// student.holdBeat = beat;
|
||||
|
||||
student.eligible = true;
|
||||
student.ResetState();
|
||||
}
|
||||
// student.eligible = true;
|
||||
// student.ResetState();
|
||||
//}
|
||||
|
||||
public void SetDJYellowHead(int type, bool resetAfterBeats = false)
|
||||
{
|
||||
|
@ -268,5 +372,67 @@ namespace HeavenStudio.Games
|
|||
SetDJYellowHead(2, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void soundFX(bool toggle)
|
||||
{
|
||||
student.soundFX = toggle;
|
||||
}
|
||||
public void voiceLines(float beat, int type)
|
||||
{
|
||||
string[] sounds;
|
||||
var sound = new MultiSound.Sound[] { };
|
||||
switch (type)
|
||||
{
|
||||
case 0:
|
||||
sounds = new string[] { "djSchool/checkItOut1", "djSchool/checkItOut2", "djSchool/checkItOut3" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .25f),
|
||||
new MultiSound.Sound(sounds[2], beat + .5f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
sounds = new string[] { "djSchool/letsGo1", "djSchool/letsGo2" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
sounds = new string[] { "djSchool/ohYeah1", "djSchool/ohYeah2" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
sounds = new string[] { "djSchool/ohYeahAlt1", "djSchool/ohYeahAlt2", "djSchool/ohYeahAlt3" };
|
||||
sound = new MultiSound.Sound[]
|
||||
{
|
||||
new MultiSound.Sound(sounds[0], beat),
|
||||
new MultiSound.Sound(sounds[1], beat + .5f),
|
||||
new MultiSound.Sound(sounds[2], beat + 1f),
|
||||
};
|
||||
|
||||
MultiSound.Play(sound);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
Jukebox.PlayOneShotGame("djSchool/yay");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
|
||||
using DG.Tweening;
|
||||
using HeavenStudio.Util;
|
||||
|
@ -19,6 +20,8 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
|||
public bool shouldBeHolding;
|
||||
public bool eligible;
|
||||
public bool missed;
|
||||
public bool swiping;
|
||||
public bool soundFX;
|
||||
|
||||
[Header("Components")]
|
||||
[SerializeField] private SpriteRenderer flash;
|
||||
|
@ -26,6 +29,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
|||
[SerializeField] private GameObject flashFXInverse;
|
||||
[SerializeField] private GameObject TurnTable;
|
||||
[SerializeField] private GameObject slamFX;
|
||||
AudioMixerGroup mixer;
|
||||
|
||||
private Animator tableAnim;
|
||||
|
||||
|
@ -37,103 +41,91 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
|||
anim = GetComponent<Animator>();
|
||||
tableAnim = TurnTable.GetComponent<Animator>();
|
||||
tableAnim.speed = 0;
|
||||
mixer = Resources.Load<AudioMixer>("MainMixer").FindMatchingGroups("Music")[0];
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
float beatToUse = shouldBeHolding ? swipeBeat : holdBeat;
|
||||
float normalizedBeat = Conductor.instance.GetPositionFromMargin(beatToUse + 2, 1);
|
||||
|
||||
if (eligible)
|
||||
{
|
||||
StateCheck(normalizedBeat);
|
||||
|
||||
if (normalizedBeat > Minigame.LateTime())
|
||||
{
|
||||
eligible = false;
|
||||
missed = true;
|
||||
|
||||
if (shouldBeHolding)
|
||||
{
|
||||
shouldBeHolding = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
shouldBeHolding = true;
|
||||
game.SetDJYellowHead(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isHolding)
|
||||
{
|
||||
if (PlayerInput.Pressed())
|
||||
{
|
||||
if (!shouldBeHolding && state.perfect && eligible)
|
||||
{
|
||||
Hold(true);
|
||||
eligible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!shouldBeHolding)
|
||||
eligible = false;
|
||||
|
||||
Hold(false);
|
||||
|
||||
missed = true;
|
||||
game.SetDJYellowHead(3, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (PlayerInput.PressedUp())
|
||||
{
|
||||
if (shouldBeHolding && state.perfect && eligible)
|
||||
{
|
||||
Swipe(true);
|
||||
eligible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (shouldBeHolding)
|
||||
{
|
||||
Swipe(false);
|
||||
eligible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
UnHold();
|
||||
}
|
||||
|
||||
missed = true;
|
||||
game.SetDJYellowHead(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Hold(bool ace)
|
||||
#region old hold
|
||||
//public void Hold(bool ace)
|
||||
//{
|
||||
// isHolding = true;
|
||||
|
||||
// if (ace)
|
||||
// {
|
||||
// missed = false;
|
||||
// shouldBeHolding = true;
|
||||
// game.SetDJYellowHead(1);
|
||||
// }
|
||||
|
||||
// Jukebox.PlayOneShotGame("djSchool/recordStop");
|
||||
|
||||
// anim.Play("Hold", 0, 0);
|
||||
// tableAnim.Play("Student_Turntable_Hold", 0, 0);
|
||||
// if (ace)
|
||||
// {
|
||||
// if (soundFX)
|
||||
// {
|
||||
// Conductor.instance.djSchoolHold.TransitionTo(.01f);
|
||||
// }
|
||||
|
||||
// FlashFX(true);
|
||||
// }
|
||||
|
||||
// // Settings.GetMusicMixer().audioMixer.FindSnapshot("DJSchool_Hold").TransitionTo(0.15f);
|
||||
//}
|
||||
#endregion
|
||||
|
||||
#region onHold
|
||||
public void OnHitHold(PlayerActionEvent caller, float beat)
|
||||
{
|
||||
isHolding = true;
|
||||
|
||||
if (ace)
|
||||
{
|
||||
missed = false;
|
||||
shouldBeHolding = true;
|
||||
game.SetDJYellowHead(1);
|
||||
}
|
||||
missed = false;
|
||||
shouldBeHolding = true;
|
||||
game.SetDJYellowHead(1);
|
||||
|
||||
Jukebox.PlayOneShotGame("djSchool/recordStop");
|
||||
|
||||
anim.Play("Hold", 0, 0);
|
||||
//tableAnim.Play("Student_Turntable_Hold", 0, 0);
|
||||
|
||||
if (ace)
|
||||
if (soundFX)
|
||||
{
|
||||
FlashFX(true);
|
||||
mixer.audioMixer.FindSnapshot("DJSchool_Hold").TransitionTo(.01f);
|
||||
}
|
||||
FlashFX(true);
|
||||
}
|
||||
|
||||
// Settings.GetMusicMixer().audioMixer.FindSnapshot("DJSchool_Hold").TransitionTo(0.15f);
|
||||
public void OnMissHold(PlayerActionEvent caller)
|
||||
{
|
||||
//isHolding = true;
|
||||
|
||||
missed = true;
|
||||
game.SetDJYellowHead(3, true);
|
||||
}
|
||||
|
||||
public void OnMissHoldForPlayerInput()
|
||||
{
|
||||
isHolding = true;
|
||||
|
||||
missed = true;
|
||||
game.SetDJYellowHead(3, true);
|
||||
|
||||
Jukebox.PlayOneShotGame("djSchool/recordStop");
|
||||
|
||||
anim.Play("Hold", 0, 0);
|
||||
//tableAnim.Play("Student_Turntable_Hold", 0, 0);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public void OnEmpty(PlayerActionEvent caller)
|
||||
{
|
||||
//empty
|
||||
}
|
||||
|
||||
public void UnHold()
|
||||
|
@ -141,50 +133,125 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
|||
isHolding = false;
|
||||
|
||||
anim.Play("Unhold", 0, 0);
|
||||
|
||||
// Settings.GetMusicMixer().audioMixer.FindSnapshot("Main").TransitionTo(0.15f);
|
||||
missed = true;
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
}
|
||||
|
||||
public void Swipe(bool ace)
|
||||
#region onSwipe
|
||||
public void OnHitSwipe(PlayerActionEvent caller, float beat)
|
||||
{
|
||||
isHolding = false;
|
||||
|
||||
if (ace)
|
||||
if (!missed)
|
||||
{
|
||||
isHolding = false;
|
||||
|
||||
missed = false;
|
||||
shouldBeHolding = false;
|
||||
Jukebox.PlayOneShotGame("djSchool/recordSwipe");
|
||||
FlashFX(false);
|
||||
swiping = true;
|
||||
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { anim.Play("Swipe", 0, 0); }),
|
||||
new BeatAction.Action(beat + 4f, delegate { swiping = false; }),
|
||||
});
|
||||
//anim.Play("Swipe", 0, 0);
|
||||
|
||||
tableAnim.speed = 1;
|
||||
tableAnim.Play("Student_Turntable_Swipe", 0, 0);
|
||||
|
||||
Instantiate(slamFX).SetActive(true);
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Missed record swipe sound should play here.
|
||||
OnMissSwipeForPlayerInput();
|
||||
Jukebox.PlayOneShotGame("djSchool/recordSwipe");
|
||||
BeatAction.New(gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { anim.Play("Swipe", 0, 0); }),
|
||||
new BeatAction.Action(beat + 4f, delegate { swiping = false; }),
|
||||
});
|
||||
//anim.Play("Swipe", 0, 0);
|
||||
|
||||
tableAnim.speed = 1;
|
||||
tableAnim.Play("Student_Turntable_Swipe", 0, 0);
|
||||
|
||||
Instantiate(slamFX).SetActive(true);
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
}
|
||||
|
||||
anim.Play("Swipe", 0, 0);
|
||||
|
||||
tableAnim.speed = 1;
|
||||
tableAnim.Play("Student_Turntable_Swipe", 0, 0);
|
||||
|
||||
Instantiate(slamFX).SetActive(true);
|
||||
|
||||
// Settings.GetMusicMixer().audioMixer.FindSnapshot("Main").TransitionTo(0.15f);
|
||||
}
|
||||
|
||||
public override void OnAce()
|
||||
public void OnMissSwipe(PlayerActionEvent caller)
|
||||
{
|
||||
if (!shouldBeHolding)
|
||||
{
|
||||
Hold(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Swipe(true);
|
||||
}
|
||||
|
||||
eligible = false;
|
||||
isHolding = false;
|
||||
//swiping = false;
|
||||
missed = true;
|
||||
game.SetDJYellowHead(3);
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
}
|
||||
|
||||
public void OnMissSwipeForPlayerInput()
|
||||
{
|
||||
isHolding = false;
|
||||
|
||||
missed = true;
|
||||
game.SetDJYellowHead(3);
|
||||
//swiping = false;
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region old swipe
|
||||
//public void Swipe(bool ace)
|
||||
//{
|
||||
// isHolding = false;
|
||||
|
||||
// if (ace)
|
||||
// {
|
||||
// missed = false;
|
||||
// shouldBeHolding = false;
|
||||
// Jukebox.PlayOneShotGame("djSchool/recordSwipe");
|
||||
// FlashFX(false);
|
||||
// swiping = true;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // Missed record swipe sound should play here.
|
||||
// }
|
||||
|
||||
// anim.Play("Swipe", 0, 0);
|
||||
|
||||
// tableAnim.speed = 1;
|
||||
// tableAnim.Play("Student_Turntable_Swipe", 0, 0);
|
||||
|
||||
// Instantiate(slamFX).SetActive(true);
|
||||
// Conductor.instance.normal.TransitionTo(.01f);
|
||||
// // Settings.GetMusicMixer().audioMixer.FindSnapshot("Main").TransitionTo(0.15f);
|
||||
// swiping = false;
|
||||
|
||||
//}
|
||||
|
||||
//public override void OnAce()
|
||||
//{
|
||||
// if (!shouldBeHolding)
|
||||
// {
|
||||
// //Hold(true);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Conductor.instance.normal.TransitionTo(.01f);
|
||||
// //Swipe(true);
|
||||
// }
|
||||
|
||||
// eligible = false;
|
||||
//}
|
||||
|
||||
#endregion
|
||||
|
||||
private void FlashFX(bool inverse)
|
||||
{
|
||||
GameObject prefab = flashFX;
|
||||
|
@ -194,11 +261,10 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
|||
|
||||
GameObject flashFX_ = Instantiate(prefab, this.transform.parent);
|
||||
flashFX_.SetActive(true);
|
||||
Destroy(flashFX_, 0.5f);
|
||||
|
||||
flash.color = "D0FBFF".Hex2RGB();
|
||||
flash.color = new Color(flash.color.r, flash.color.g, flash.color.b, 0.85f);
|
||||
flash.DOColor(new Color(flash.color.r, flash.color.g, flash.color.b, 0), 0.15f);
|
||||
Destroy(flashFX_, 0.5f);
|
||||
}
|
||||
|
||||
public void TransitionBackToIdle()
|
||||
|
@ -210,5 +276,12 @@ namespace HeavenStudio.Games.Scripts_DJSchool
|
|||
anim.Play("Idle", 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Not sure but will do?
|
||||
private void OnDestroy()
|
||||
{
|
||||
mixer.audioMixer.FindSnapshot("Main").TransitionTo(.01f);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,7 +5,6 @@ using HeavenStudio.Util;
|
|||
namespace HeavenStudio.Games.Loaders
|
||||
{
|
||||
using static Minigames;
|
||||
|
||||
public static class CtrFirstContact
|
||||
{
|
||||
public static Minigame AddGame(EventCaller eventCaller)
|
||||
|
@ -13,7 +12,10 @@ namespace HeavenStudio.Games.Loaders
|
|||
return new Minigame("firstContact", "First Contact", "008c97", false, false, new List<GameAction>()
|
||||
{
|
||||
new GameAction("beat intervals", delegate { FirstContact.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 4f, true),
|
||||
new GameAction("alien speak", delegate { FirstContact.instance.alienSpeak(eventCaller.currentEntity.beat); }, 0.5f, false),
|
||||
new GameAction("alien speak", delegate { FirstContact.instance.alienSpeak(eventCaller.currentEntity.beat, eventCaller.currentEntity.valA); }, 0.5f, false, new List<Param>()
|
||||
{
|
||||
new Param("valA", new EntityTypes.Float(.8f, 1.5f, 1f), "Pitch")
|
||||
}),
|
||||
new GameAction("alien turnover", delegate { FirstContact.instance.alienTurnOver(eventCaller.currentEntity.beat); }, 0.5f, false),
|
||||
new GameAction("alien success", delegate { FirstContact.instance.alienSuccess(eventCaller.currentEntity.beat); }, 1f, false),
|
||||
new GameAction("mission control", delegate { FirstContact.instance.missionControlDisplay(eventCaller.currentEntity.beat, eventCaller.currentEntity.toggle); }, 1f, false, new List<Param>
|
||||
|
@ -103,7 +105,6 @@ namespace HeavenStudio.Games
|
|||
beatInterval = interval;
|
||||
}
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
//This is taken from the conductor script
|
||||
|
@ -116,7 +117,7 @@ namespace HeavenStudio.Games
|
|||
lastReportedBeat = Mathf.Round(Conductor.instance.songPositionInBeats);
|
||||
}
|
||||
|
||||
if(PlayerInput.Pressed() && !IsExpectingInputNow() && !noHitOnce && !isSpeaking)
|
||||
if (PlayerInput.Pressed() && !IsExpectingInputNow() && !noHitOnce && !isSpeaking)
|
||||
{
|
||||
Jukebox.PlayOneShotGame("firstContact/" + randomizerLines());
|
||||
BeatAction.New(this.gameObject, new List<BeatAction.Action>()
|
||||
|
@ -124,7 +125,7 @@ namespace HeavenStudio.Games
|
|||
new BeatAction.Action(.5f, delegate { translator.GetComponent<Animator>().Play("translator_speak", 0, 0);}),
|
||||
});
|
||||
}
|
||||
if((PlayerInput.Pressed() && !IsExpectingInputNow() && isSpeaking))
|
||||
if ((PlayerInput.Pressed() && !IsExpectingInputNow() && isSpeaking))
|
||||
{
|
||||
hasMissed = true;
|
||||
}
|
||||
|
@ -159,14 +160,14 @@ namespace HeavenStudio.Games
|
|||
|
||||
}
|
||||
|
||||
public void alienSpeak(float beat)
|
||||
public void alienSpeak(float beat, float pitch)
|
||||
{
|
||||
//if (!intervalStarted)
|
||||
//{
|
||||
// SetIntervalStart(beat, beatInterval);
|
||||
//}
|
||||
//missionControl.SetActive(false);
|
||||
Jukebox.PlayOneShotGame("firstContact/alien");
|
||||
Jukebox.PlayOneShotGame("firstContact/alien", beat, pitch);
|
||||
++alienSpeakCount;
|
||||
var random = Random.Range(0, 2);
|
||||
string textToPut = "";
|
||||
|
@ -184,7 +185,13 @@ namespace HeavenStudio.Games
|
|||
BeatAction.New(alien, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { alien.GetComponent<Animator>().Play("alien_talk", 0, 0); }),
|
||||
new BeatAction.Action(beat, delegate { translator.GetComponent<Animator>().Play(textToPut, 0, 0); }),
|
||||
new BeatAction.Action(beat, delegate
|
||||
{
|
||||
if (!isSpeaking)
|
||||
{
|
||||
translator.GetComponent<Animator>().Play(textToPut, 0, 0);
|
||||
}
|
||||
}),
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -206,7 +213,14 @@ namespace HeavenStudio.Games
|
|||
{
|
||||
new BeatAction.Action(beat, delegate { alien.GetComponent<Animator>().Play("alien_point", 0, 0); }),
|
||||
new BeatAction.Action(beat + .5f, delegate { alien.GetComponent<Animator>().Play("alien_idle", 0, 0); }),
|
||||
new BeatAction.Action(beat + .5f, delegate { translator.GetComponent<Animator>().Play("translator_idle", 0, 0); })
|
||||
new BeatAction.Action(beat + .5f,
|
||||
delegate
|
||||
{
|
||||
if (!isSpeaking)
|
||||
{
|
||||
translator.GetComponent<Animator>().Play("translator_idle", 0, 0);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
isSpeaking = true;
|
||||
|
@ -234,7 +248,7 @@ namespace HeavenStudio.Games
|
|||
|
||||
BeatAction.New(translator.gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { translator.GetComponent<Animator>().Play("translator_idle", 0, 0); }),
|
||||
new BeatAction.Action(beat + .5f, delegate { translator.GetComponent<Animator>().Play("translator_idle", 0, 0); }),
|
||||
});
|
||||
}
|
||||
else if (alienSpeakCount != translatorSpeakCount)
|
||||
|
@ -256,7 +270,7 @@ namespace HeavenStudio.Games
|
|||
|
||||
BeatAction.New(translator.gameObject, new List<BeatAction.Action>()
|
||||
{
|
||||
new BeatAction.Action(beat, delegate { translator.GetComponent<Animator>().Play("translator_idle", 0, 0); }),
|
||||
new BeatAction.Action(beat + .5f, delegate { translator.GetComponent<Animator>().Play("translator_idle", 0, 0); }),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public class WhiteLines : MonoBehaviour
|
|||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
void FixedUpdate()
|
||||
{
|
||||
if(transform.position.y > endAt && !isRandomLineMiddle)
|
||||
{
|
||||
|
|
|
@ -48,12 +48,13 @@ namespace HeavenStudio.Editor
|
|||
[SerializeField] private Button UndoBTN;
|
||||
[SerializeField] private Button RedoBTN;
|
||||
[SerializeField] private Button MusicSelectBTN;
|
||||
[SerializeField] private Button EditorSettingsBTN;
|
||||
[SerializeField] private Button EditorThemeBTN;
|
||||
[SerializeField] private Button FullScreenBTN;
|
||||
[SerializeField] private Button TempoFinderBTN;
|
||||
[SerializeField] private Button SnapDiagBTN;
|
||||
|
||||
[SerializeField] private Button EditorThemeBTN;
|
||||
[SerializeField] private Button EditorSettingsBTN;
|
||||
|
||||
[Header("Tooltip")]
|
||||
public TMP_Text tooltipText;
|
||||
|
||||
|
@ -102,12 +103,12 @@ namespace HeavenStudio.Editor
|
|||
Tooltip.AddTooltip(UndoBTN.gameObject, "Undo <color=#adadad>[Ctrl+Z]</color>");
|
||||
Tooltip.AddTooltip(RedoBTN.gameObject, "Redo <color=#adadad>[Ctrl+Y or Ctrl+Shift+Z]</color>");
|
||||
Tooltip.AddTooltip(MusicSelectBTN.gameObject, "Music Select");
|
||||
Tooltip.AddTooltip(EditorSettingsBTN.gameObject, "Editor Settings <color=#adadad>[Ctrl+Shift+O]</color>");
|
||||
Tooltip.AddTooltip(EditorThemeBTN.gameObject, "Editor Theme");
|
||||
Tooltip.AddTooltip(FullScreenBTN.gameObject, "Preview <color=#adadad>[Tab]</color>");
|
||||
Tooltip.AddTooltip(TempoFinderBTN.gameObject, "Tempo Finder");
|
||||
Tooltip.AddTooltip(SnapDiagBTN.gameObject, "Snap Settings");
|
||||
|
||||
Tooltip.AddTooltip(EditorSettingsBTN.gameObject, "Editor Settings <color=#adadad>[Ctrl+Shift+O]</color>");
|
||||
UpdateEditorStatus(true);
|
||||
}
|
||||
|
||||
|
|
8
Assets/Scripts/LevelEditor/SettingsDialog.meta
Normal file
8
Assets/Scripts/LevelEditor/SettingsDialog.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 907f7d1eb5d90af408aa531ea366e63e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
27
Assets/Scripts/LevelEditor/SettingsDialog/SettingsDialog.cs
Normal file
27
Assets/Scripts/LevelEditor/SettingsDialog/SettingsDialog.cs
Normal file
|
@ -0,0 +1,27 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using HeavenStudio.Editor.Track;
|
||||
|
||||
using TMPro;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
public class SettingsDialog : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject settingsMenu;
|
||||
|
||||
private void Start() {}
|
||||
|
||||
public void SwitchSettingsDialog()
|
||||
{
|
||||
if(settingsMenu.activeSelf) {
|
||||
settingsMenu.SetActive(false);
|
||||
} else {
|
||||
settingsMenu.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void Update() {}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d82cc04699de2e54483ca0e0468d9ed2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Scripts/LevelEditor/SnapDialog.meta
Normal file
8
Assets/Scripts/LevelEditor/SnapDialog.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 537580972fcefa548bd9ee5e8254cbfc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
22
Assets/Scripts/LevelEditor/SnapDialog/SnapChangeButton.cs
Normal file
22
Assets/Scripts/LevelEditor/SnapDialog/SnapChangeButton.cs
Normal file
|
@ -0,0 +1,22 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
public class SnapChangeButton : Button, IPointerDownHandler
|
||||
{
|
||||
public SnapDialog SnapDialog;
|
||||
public bool isDown;
|
||||
|
||||
public override void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
SnapDialog.ChangeCommon(isDown);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7e0cac45de7228a4c8f7bc6adb0751a2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
52
Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs
Normal file
52
Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using HeavenStudio.Editor.Track;
|
||||
|
||||
using TMPro;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
public class SnapDialog : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject snapSetter;
|
||||
[SerializeField] private TMP_Text snapText;
|
||||
private Timeline timeline;
|
||||
|
||||
private static float[] CommonDenominators = { 1, 2, 3, 4, 6, 8, 12, 16};
|
||||
private int currentCommon = 3;
|
||||
private void Start()
|
||||
{
|
||||
timeline = Timeline.instance;
|
||||
}
|
||||
|
||||
public void SwitchSnapDialog()
|
||||
{
|
||||
if(snapSetter.activeSelf) {
|
||||
snapSetter.SetActive(false);
|
||||
} else {
|
||||
snapSetter.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void ChangeCommon(bool down = false)
|
||||
{
|
||||
if(down) {
|
||||
currentCommon--;
|
||||
} else {
|
||||
currentCommon++;
|
||||
}
|
||||
if(currentCommon < 0) {
|
||||
currentCommon = 0;
|
||||
} else if(currentCommon >= CommonDenominators.Length) {
|
||||
currentCommon = CommonDenominators.Length - 1;
|
||||
}
|
||||
timeline.SetSnap(1f / CommonDenominators[currentCommon]);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
snapText.text = $"1/{CommonDenominators[currentCommon]}";
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs.meta
Normal file
11
Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f32d53b1d58c64e41b71bd7520435169
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Scripts/LevelEditor/TempoFinder.meta
Normal file
8
Assets/Scripts/LevelEditor/TempoFinder.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 36b14c8563ea37442aa7a2f0342549b5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
43
Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs
Normal file
43
Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs
Normal file
|
@ -0,0 +1,43 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
public class TempoFinder : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject tempoFinder;
|
||||
private bool pressed;
|
||||
private float timePressed;
|
||||
[SerializeField] private BPMText bpmText;
|
||||
private void Awake()
|
||||
{
|
||||
pressed = false;
|
||||
timePressed = 0f;
|
||||
}
|
||||
public void SwitchTempoDialog()
|
||||
{
|
||||
if(tempoFinder.activeSelf) {
|
||||
tempoFinder.SetActive(false);
|
||||
timePressed = 0;
|
||||
bpmText.ResetText();
|
||||
} else {
|
||||
tempoFinder.SetActive(true);
|
||||
}
|
||||
}
|
||||
public void TapBPM()
|
||||
{
|
||||
pressed = true;
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
timePressed += Time.deltaTime;
|
||||
if(pressed)
|
||||
{
|
||||
pressed = false;
|
||||
bpmText.ChangeText(timePressed);
|
||||
timePressed = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs.meta
Normal file
11
Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1b489f3aef16a65499f9596abda39c35
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
20
Assets/Scripts/LevelEditor/TempoFinder/TempoFinderButton.cs
Normal file
20
Assets/Scripts/LevelEditor/TempoFinder/TempoFinderButton.cs
Normal file
|
@ -0,0 +1,20 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace HeavenStudio.Editor
|
||||
{
|
||||
public class TempoFinderButton : Button, IPointerDownHandler
|
||||
{
|
||||
public TempoFinder tempoFinder;
|
||||
public override void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (eventData.button == PointerEventData.InputButton.Left)
|
||||
{
|
||||
tempoFinder.TapBPM();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9557e460670800e458d7bb141135de55
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -131,7 +131,16 @@ namespace HeavenStudio.Editor.Track
|
|||
UpdateOffsetText();
|
||||
}
|
||||
|
||||
private void AddTempoChange(bool create, Beatmap.TempoChange tempoChange_ = null)
|
||||
public void ClearTempoTimeline()
|
||||
{
|
||||
foreach (TempoTimelineObj tempoTimelineObj in tempoTimelineObjs)
|
||||
{
|
||||
Destroy(tempoTimelineObj.gameObject);
|
||||
}
|
||||
tempoTimelineObjs.Clear();
|
||||
}
|
||||
|
||||
public void AddTempoChange(bool create, Beatmap.TempoChange tempoChange_ = null)
|
||||
{
|
||||
GameObject tempoChange = Instantiate(RefTempoChange.gameObject, this.transform);
|
||||
|
||||
|
|
|
@ -30,6 +30,8 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public static float SnapInterval() { return instance.snapInterval; }
|
||||
|
||||
public void SetSnap(float snap) { snapInterval = snap; }
|
||||
|
||||
public class CurrentTimelineState
|
||||
{
|
||||
public bool selected;
|
||||
|
@ -101,6 +103,7 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
public void LoadRemix()
|
||||
{
|
||||
// beatmap entities
|
||||
for (int i = 0; i < eventObjs.Count; i++)
|
||||
{
|
||||
Destroy(eventObjs[i].gameObject);
|
||||
|
@ -109,11 +112,21 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
for (int i = 0; i < GameManager.instance.Beatmap.entities.Count; i++)
|
||||
{
|
||||
var entity = GameManager.instance.Beatmap.entities[i];
|
||||
var e = GameManager.instance.Beatmap.entities[i];
|
||||
|
||||
AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * LayerHeight()), e, false, RandomID());
|
||||
}
|
||||
|
||||
//tempo changes
|
||||
TempoInfo.ClearTempoTimeline();
|
||||
for (int i = 0; i < GameManager.instance.Beatmap.tempoChanges.Count; i++)
|
||||
{
|
||||
var t = GameManager.instance.Beatmap.tempoChanges[i];
|
||||
|
||||
TempoInfo.AddTempoChange(false, t);
|
||||
}
|
||||
|
||||
//volume changes
|
||||
}
|
||||
|
||||
public void Init()
|
||||
|
@ -559,36 +572,36 @@ namespace HeavenStudio.Editor.Track
|
|||
GameManager.instance.SortEventsList();
|
||||
|
||||
tempEntity = en;
|
||||
|
||||
// default param value
|
||||
var game = EventCaller.instance.GetMinigame(eventName.Split(0));
|
||||
var ep = EventCaller.instance.GetGameAction(game, eventName.Split(1)).parameters;
|
||||
|
||||
if (ep != null)
|
||||
{
|
||||
for (int i = 0; i < ep.Count; i++)
|
||||
{
|
||||
object returnVal = ep[i].parameter;
|
||||
|
||||
var propertyType = returnVal.GetType();
|
||||
if (propertyType == typeof(EntityTypes.Integer))
|
||||
{
|
||||
returnVal = ((EntityTypes.Integer)ep[i].parameter).val;
|
||||
}
|
||||
else if (propertyType == typeof(EntityTypes.Float))
|
||||
{
|
||||
returnVal = ((EntityTypes.Float)ep[i].parameter).val;
|
||||
}
|
||||
|
||||
tempEntity[ep[i].propertyName] = returnVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
GameManager.instance.Beatmap.entities.Add(entity);
|
||||
GameManager.instance.SortEventsList();
|
||||
}
|
||||
|
||||
// default param value
|
||||
var game = EventCaller.instance.GetMinigame(eventName.Split(0));
|
||||
var ep = EventCaller.instance.GetGameAction(game, eventName.Split(1)).parameters;
|
||||
|
||||
if (ep != null)
|
||||
{
|
||||
for (int i = 0; i < ep.Count; i++)
|
||||
{
|
||||
object returnVal = ep[i].parameter;
|
||||
|
||||
var propertyType = returnVal.GetType();
|
||||
if (propertyType == typeof(EntityTypes.Integer))
|
||||
{
|
||||
returnVal = ((EntityTypes.Integer)ep[i].parameter).val;
|
||||
}
|
||||
else if (propertyType == typeof(EntityTypes.Float))
|
||||
{
|
||||
returnVal = ((EntityTypes.Float)ep[i].parameter).val;
|
||||
}
|
||||
|
||||
tempEntity[ep[i].propertyName] = returnVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
eventObjs.Add(eventObj);
|
||||
|
@ -598,6 +611,14 @@ namespace HeavenStudio.Editor.Track
|
|||
return eventObj;
|
||||
}
|
||||
|
||||
public TimelineEventObj CopyEventObject(Beatmap.Entity e)
|
||||
{
|
||||
Beatmap.Entity clone = e.DeepCopy();
|
||||
TimelineEventObj dup = AddEventObject(clone.datamodel, false, new Vector3(clone.beat, -clone.track * Timeline.instance.LayerHeight()), clone, true, RandomID());
|
||||
|
||||
return dup;
|
||||
}
|
||||
|
||||
public void DestroyEventObject(Beatmap.Entity entity)
|
||||
{
|
||||
if (EventParameterManager.instance.entity == entity)
|
||||
|
|
|
@ -41,6 +41,7 @@ namespace HeavenStudio.Editor.Track
|
|||
private bool resizingLeft;
|
||||
private bool resizingRight;
|
||||
private bool inResizeRegion;
|
||||
private bool wasDuplicated;
|
||||
public Vector2 lastMovePos;
|
||||
public bool isCreating;
|
||||
public string eventObjID;
|
||||
|
@ -167,6 +168,13 @@ namespace HeavenStudio.Editor.Track
|
|||
|
||||
if (Timeline.instance.eventObjs.FindAll(c => c.moving).Count > 0 && selected)
|
||||
{
|
||||
//duplicate the entity if holding alt or r-click
|
||||
if ((!wasDuplicated) && (Input.GetKey(KeyCode.LeftAlt) || Input.GetMouseButton(1)))
|
||||
{
|
||||
wasDuplicated = true;
|
||||
var te = Timeline.instance.CopyEventObject(entity);
|
||||
}
|
||||
|
||||
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
|
||||
|
||||
lastPos_ = transform.localPosition;
|
||||
|
@ -291,6 +299,7 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
|
||||
moving = false;
|
||||
wasDuplicated = false;
|
||||
|
||||
Cancel();
|
||||
if (isCreating == true)
|
||||
|
|
|
@ -16,6 +16,8 @@ namespace HeavenStudio.Editor.Track
|
|||
public TMP_InputField StartingVolume;
|
||||
private RectTransform StartingVolumeRect;
|
||||
|
||||
public List<VolumeTimelineObj> volumeTimelineObjs = new List<VolumeTimelineObj>();
|
||||
|
||||
private bool firstUpdate;
|
||||
|
||||
void Start()
|
||||
|
@ -74,8 +76,8 @@ namespace HeavenStudio.Editor.Track
|
|||
}
|
||||
else if (newVol < 0)
|
||||
{
|
||||
StartingVolume.text = "1";
|
||||
newVol = 1;
|
||||
StartingVolume.text = "0";
|
||||
newVol = 0;
|
||||
}
|
||||
|
||||
GameManager.instance.Beatmap.musicVolume = newVol;
|
||||
|
|
105
Assets/Scripts/LevelEditor/Timeline/VolumeTimelineObj.cs
Normal file
105
Assets/Scripts/LevelEditor/Timeline/VolumeTimelineObj.cs
Normal file
|
@ -0,0 +1,105 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
using TMPro;
|
||||
|
||||
using DG.Tweening;
|
||||
|
||||
namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
public class VolumeTimelineObj : MonoBehaviour
|
||||
{
|
||||
[Header("Components")]
|
||||
[SerializeField] private RectTransform rectTransform;
|
||||
[SerializeField] private TMP_Text volumeTXT;
|
||||
[SerializeField] private RectTransform raycastRect;
|
||||
|
||||
public Beatmap.VolumeChange volumeChange;
|
||||
|
||||
private float startPosX;
|
||||
private bool moving = false;
|
||||
|
||||
public bool hovering;
|
||||
|
||||
private float lastPosX;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
rectTransform = GetComponent<RectTransform>();
|
||||
volumeTXT = transform.GetChild(2).GetComponent<TMP_Text>();
|
||||
UpdateVolume();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Timeline.instance.timelineState.musicVolume && !Conductor.instance.NotStopped())
|
||||
{
|
||||
if (RectTransformUtility.RectangleContainsScreenPoint(raycastRect, Input.mousePosition, Editor.instance.EditorCamera))
|
||||
{
|
||||
float newVolume = Input.mouseScrollDelta.y;
|
||||
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
newVolume *= 5f;
|
||||
if (Input.GetKey(KeyCode.LeftControl))
|
||||
newVolume /= 100f;
|
||||
|
||||
volumeChange.volume += newVolume;
|
||||
|
||||
//make sure volume is positive
|
||||
volumeChange.volume = Mathf.Clamp(volumeChange.volume, 0, 100);
|
||||
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
|
||||
startPosX = mousePos.x - transform.position.x;
|
||||
moving = true;
|
||||
lastPosX = transform.localPosition.x;
|
||||
}
|
||||
else if (Input.GetMouseButtonDown(1))
|
||||
{
|
||||
GameManager.instance.Beatmap.volumeChanges.Remove(volumeChange);
|
||||
transform.parent.GetComponent<VolumeTimeline>().volumeTimelineObjs.Remove(this);
|
||||
Destroy(this.gameObject);
|
||||
}
|
||||
|
||||
hovering = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
hovering = false;
|
||||
}
|
||||
|
||||
if (moving)
|
||||
{
|
||||
Vector3 mousePos = Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition);
|
||||
|
||||
transform.position = new Vector3(mousePos.x - startPosX, transform.position.y, 0);
|
||||
transform.localPosition = new Vector3(Mathf.Clamp(Starpelly.Mathp.Round2Nearest(transform.localPosition.x, Timeline.SnapInterval()), 0, Mathf.Infinity), transform.localPosition.y);
|
||||
}
|
||||
if (Input.GetMouseButtonUp(0))
|
||||
{
|
||||
if (transform.parent.GetComponent<VolumeTimeline>().volumeTimelineObjs.Find(c => c.gameObject.transform.localPosition.x == this.transform.localPosition.x && c != this) != null)
|
||||
{
|
||||
transform.localPosition = new Vector3(lastPosX, transform.localPosition.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
volumeChange.beat = transform.localPosition.x;
|
||||
}
|
||||
|
||||
moving = false;
|
||||
lastPosX = transform.localPosition.x;
|
||||
}
|
||||
|
||||
UpdateVolume();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateVolume()
|
||||
{
|
||||
volumeTXT.text = $"{volumeChange.volume}%";
|
||||
Timeline.instance.FitToSong();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 86bb8f2f290876a4387f1ea6fedf332b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in a new issue