Merge branch 'release_1' into pr/458

This commit is contained in:
minenice55 2023-06-13 17:22:01 -04:00
commit 118cd4993d
159 changed files with 2368 additions and 4479 deletions

File diff suppressed because it is too large Load diff

View file

@ -17,7 +17,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!4 &8898776425258279798 --- !u!4 &8898776425258279798
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -28,7 +28,9 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 4.49, y: 0.602, z: 0} m_LocalPosition: {x: 4.49, y: 0.602, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1} m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: [] m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3429292909572810764}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,6 +45,7 @@ SpriteRenderer:
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_DynamicOccludee: 1 m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1 m_MotionVectors: 1
m_LightProbeUsage: 1 m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
@ -95,19 +98,89 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3} m_Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0 offset: {x: 0, y: 0, z: 0}
state: gandw: {fileID: 6300713999374807912}
gameObject: {fileID: 0} --- !u!1 &6300713999374807912
early: 0 GameObject:
perfect: 0 m_ObjectHideFlags: 0
late: 0 m_CorrespondingSourceObject: {fileID: 0}
createBeat: 0 m_PrefabInstance: {fileID: 0}
eligibleHitsList: [] m_PrefabAsset: {fileID: 0}
aceTimes: 0 serializedVersion: 6
isEligible: 0 m_Component:
triggersAutoplay: 1 - component: {fileID: 3429292909572810764}
startBeat: 0 - component: {fileID: 4284967863880477732}
firstBeatsToTravel: 8 m_Layer: 0
secondBeatsToTravel: 2 m_Name: GANDWPanic
thirdBeatsToTravel: 1 m_TagString: Untagged
currentCurveStage: 0 m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &3429292909572810764
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6300713999374807912}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.4, y: 0.4, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8898776425258279798}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4284967863880477732
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6300713999374807912}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: -9
m_Sprite: {fileID: -3765899449427408438, guid: 7d485aead8578964591aaea2653dec14, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 2.24, y: 2.26}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View file

@ -17,7 +17,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!4 &1939846946620489509 --- !u!4 &1939846946620489509
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -28,6 +28,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 4.49, y: 0.602, z: 0} m_LocalPosition: {x: 4.49, y: 0.602, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1} m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -43,6 +44,7 @@ SpriteRenderer:
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_DynamicOccludee: 1 m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1 m_MotionVectors: 1
m_LightProbeUsage: 1 m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
@ -95,19 +97,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3} m_Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0 offset: {x: 0, y: -0.1, z: 0}
state:
gameObject: {fileID: 0}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0
firstBeatsToTravel: 8
secondBeatsToTravel: 2
thirdBeatsToTravel: 1
currentCurveStage: 0

View file

@ -1,5 +1,89 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &127416993571198491
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8343967659989156093}
- component: {fileID: 4830388796752552816}
m_Layer: 0
m_Name: GANDWPanic
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8343967659989156093
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 127416993571198491}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9118664775683828045}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4830388796752552816
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 127416993571198491}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: -3765899449427408438, guid: 7d485aead8578964591aaea2653dec14, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 2.24, y: 2.26}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &6968929825102689508 --- !u!1 &6968929825102689508
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -28,7 +112,9 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -2.25, y: 1.23, z: 0} m_LocalPosition: {x: -2.25, y: 1.23, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1} m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: [] m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8343967659989156093}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,6 +129,7 @@ SpriteRenderer:
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_DynamicOccludee: 1 m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1 m_MotionVectors: 1
m_LightProbeUsage: 1 m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
@ -95,16 +182,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f589a35cd43c5a146b78729182754157, type: 3} m_Script: {fileID: 11500000, guid: f589a35cd43c5a146b78729182754157, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0 offset: {x: 0, y: 0, z: 0}
state: gandw: {fileID: 127416993571198491}
gameObject: {fileID: 0}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0
currentFlyingStage: 0

View file

@ -28,7 +28,9 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.22084074, y: -0.63551337, z: 0} m_LocalPosition: {x: -0.22084074, y: -0.63551337, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1} m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: [] m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6137996491949804115}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,6 +45,7 @@ SpriteRenderer:
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_DynamicOccludee: 1 m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1 m_MotionVectors: 1
m_LightProbeUsage: 1 m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
@ -95,19 +98,89 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6334d8b26ef6dcc4b9a03aa49dfa2d70, type: 3} m_Script: {fileID: 11500000, guid: 6334d8b26ef6dcc4b9a03aa49dfa2d70, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
inList: 0 offset: {x: 0, y: 0, z: 0}
state: gandw: {fileID: 5437919248584760982}
gameObject: {fileID: 0} --- !u!1 &5437919248584760982
early: 0 GameObject:
perfect: 0 m_ObjectHideFlags: 0
late: 0 m_CorrespondingSourceObject: {fileID: 0}
createBeat: 0 m_PrefabInstance: {fileID: 0}
eligibleHitsList: [] m_PrefabAsset: {fileID: 0}
aceTimes: 0 serializedVersion: 6
isEligible: 0 m_Component:
triggersAutoplay: 1 - component: {fileID: 6137996491949804115}
startBeat: 0 - component: {fileID: 481947469191582981}
firstBeatsToTravel: 0.5 m_Layer: 0
secondBeatsToTravel: 0.5 m_Name: GANDWPanic
goingDown: 0 m_TagString: Untagged
deletingAutomatically: 1 m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &6137996491949804115
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5437919248584760982}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4007886148120237324}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &481947469191582981
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5437919248584760982}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: -3765899449427408438, guid: 7d485aead8578964591aaea2653dec14, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 2.24, y: 2.26}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View file

@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: rvldough/common assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: f4c9958bf9ed5364d925ad5e235185bf
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 2cd9ec8dd2b89594b937fd43a63302fd
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 7411c79f186f7d1489b08c617dd94cd2
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: a92162eef3960c843bf8cf6ebf7b3cc4
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: rvldough/common
assetBundleVariant:

View file

@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: rvldough/common assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 0c1d7ff81ef5e5145b8411955802836f
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: a3d70d1ee0a56d143acf492fbdda0733
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: b98e01e9184c9c94ba69a5eda9182abe
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: a0cbaa7ba5b83f64b9cdade5829f6d8b
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 710f3d28f3d8304498461cb2f659019b
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 2bb873e7e909315469485b7873cc24fe
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: e0d74c59ec5b943409f83854ca7426f8
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 4e7c6ef79e0656941a31900143cfd76b
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: f8866ad03514a254bbc7f57b7b9f8250
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: rvldough/common
assetBundleVariant:

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 6f663de6b1d9fdf4c830a185c770a626 guid: 336b46599f2c6b84ba7f63c279286308
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6
@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: rvldough/common assetBundleName:
assetBundleVariant: assetBundleVariant:

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 0b9e88c13727472458ee17e02959f7ae guid: 9710e1262fd3ce74dadf56c39bc9bb49
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6
@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: rvldough/common assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 8e093e5d923d6eb40baf690943492453 guid: f04673511d9d5db46a235de8280cfd5f
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6
@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: rvldough/common assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 11e4ffd422e5041449bb6a649dc75d1e guid: a6753eb2b7364a0489f6ae13142a7ef7
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6
@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: rvldough/common assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 3110a762cd68fcb43b3ccf2e607d3138
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:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 3a01bc4e197a31c4a9e9fe6ec7b303bb
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:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: caf6c9c8208b6b8429cfa3e235241d92
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: rvldough/common
assetBundleVariant:

View file

@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 84d932e4dd5969942b37d426f51eea22
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: rvldough/common
assetBundleVariant:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 252d6e694d6d293468721a99e02c1e78
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:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 23e111b023ff9da4ca2d0c9b3af391f2
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:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 792db2e6c12558a42abccdd3f8ba0d8b
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:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: a66ab30b3a0a1b54e8f3ffa670664cd8
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:

Binary file not shown.

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: e7067d623dcb6984f80fb1b187aae122
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:

View file

@ -188,6 +188,11 @@ namespace HeavenStudio
} }
current = load.Current; current = load.Current;
} }
catch (System.IO.FileNotFoundException f)
{
Debug.LogWarning("chart has no music: " + f.Message);
Conductor.instance.musicSource.clip = null;
}
catch (Exception e) catch (Exception e)
{ {
Debug.LogError($"Failed to load music: {e.Message}"); Debug.LogError($"Failed to load music: {e.Message}");

View file

@ -160,16 +160,23 @@ namespace HeavenStudio.Games
// find out when the next game switch (or remix end) happens // find out when the next game switch (or remix end) happens
var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }); var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" });
allEnds.Sort((x, y) => x.beat.CompareTo(y.beat)); if (allEnds.Count == 0)
//get the beat of the closest end event
foreach (var end in allEnds)
{ {
if (end.datamodel.Split(2) == "cropStomp") continue; endBeat = double.MaxValue;
if (end.beat > startBeat) }
else
{
allEnds.Sort((x, y) => x.beat.CompareTo(y.beat));
//get the beat of the closest end event
foreach (var end in allEnds)
{ {
endBeat = end.beat; if (end.datamodel.Split(2) == "cropStomp") continue;
break; if (end.beat > startBeat)
{
endBeat = end.beat;
break;
}
} }
} }

View file

@ -37,9 +37,7 @@ namespace HeavenStudio.Games.Loaders
}, },
new GameAction("passTurn", "Pass Turn") new GameAction("passTurn", "Pass Turn")
{ {
function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.PassTurn(e.beat, e.length); }, preFunction = delegate { var e = eventCaller.currentEntity; RhythmTweezers.PrePassTurn(e.beat); },
resizable = true,
preFunction = delegate { var e = eventCaller.currentEntity; RhythmTweezers.PrePassTurn(e.beat, e.length); }
}, },
new GameAction("next vegetable", "Swap Vegetable") new GameAction("next vegetable", "Swap Vegetable")
{ {
@ -349,44 +347,72 @@ namespace HeavenStudio.Games
crHandlerInstance.StartInterval(beat, interval); crHandlerInstance.StartInterval(beat, interval);
} }
public void PassTurn(double beat, float length) public void PassTurn(double beat)
{ {
if (crHandlerInstance.queuedEvents.Count > 0) if (crHandlerInstance.queuedEvents.Count > 0)
{ {
hairsLeft = crHandlerInstance.queuedEvents.Count; BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
foreach (var crEvent in crHandlerInstance.queuedEvents)
{ {
if (crEvent.tag == "Hair") new BeatAction.Action(beat - 1, delegate
{ {
Hair hairToInput = spawnedHairs.Find(x => x.createBeat == crEvent.beat); hairsLeft = crHandlerInstance.queuedEvents.Count;
hairToInput.StartInput(beat + length, crEvent.relativeBeat); foreach (var crEvent in crHandlerInstance.queuedEvents)
} {
else if (crEvent.tag == "Long") if (crEvent.tag == "Hair")
{
Hair hairToInput = spawnedHairs.Find(x => x.createBeat == crEvent.beat);
hairToInput.StartInput(beat, crEvent.relativeBeat);
}
else if (crEvent.tag == "Long")
{
LongHair hairToInput = spawnedLongs.Find(x => x.createBeat == crEvent.beat);
hairToInput.StartInput(beat, crEvent.relativeBeat);
}
}
crHandlerInstance.queuedEvents.Clear();
}),
new BeatAction.Action(beat, delegate
{ {
LongHair hairToInput = spawnedLongs.Find(x => x.createBeat == crEvent.beat); if (crHandlerInstance.queuedEvents.Count > 0)
hairToInput.StartInput(beat + length, crEvent.relativeBeat); {
} hairsLeft += crHandlerInstance.queuedEvents.Count;
} foreach (var crEvent in crHandlerInstance.queuedEvents)
crHandlerInstance.queuedEvents.Clear(); {
if (crEvent.tag == "Hair")
{
Hair hairToInput = spawnedHairs.Find(x => x.createBeat == crEvent.beat);
hairToInput.StartInput(beat, crEvent.relativeBeat);
}
else if (crEvent.tag == "Long")
{
LongHair hairToInput = spawnedLongs.Find(x => x.createBeat == crEvent.beat);
hairToInput.StartInput(beat, crEvent.relativeBeat);
}
}
crHandlerInstance.queuedEvents.Clear();
}
})
});
} }
} }
public static void PrePassTurn(double beat, float length) public static void PrePassTurn(double beat)
{ {
if (GameManager.instance.currentGame == "rhythmTweezers") if (GameManager.instance.currentGame == "rhythmTweezers")
{ {
instance.SetPassTurnValues(beat + length); instance.SetPassTurnValues(beat);
instance.PassTurn(beat);
} }
else else
{ {
passedTurns.Add(beat + length); passedTurns.Add(beat);
} }
} }
private void SetPassTurnValues(double startBeat) private void SetPassTurnValues(double startBeat)
{ {
if (crHandlerInstance.intervalLength <= 0) return; if (crHandlerInstance.intervalLength <= 0) return;
passTurnBeat = startBeat - 1f; passTurnBeat = startBeat - 1;
passTurnEndBeat = startBeat + crHandlerInstance.intervalLength; passTurnEndBeat = startBeat + crHandlerInstance.intervalLength;
} }
@ -489,6 +515,7 @@ namespace HeavenStudio.Games
foreach (var turn in passedTurns) foreach (var turn in passedTurns)
{ {
SetPassTurnValues(turn); SetPassTurnValues(turn);
PassTurn(turn);
} }
passedTurns.Clear(); passedTurns.Clear();
} }

View file

@ -113,12 +113,12 @@ namespace HeavenStudio.Games.Loaders
}, },
new GameAction("passTurn", "Pass Turn") new GameAction("passTurn", "Pass Turn")
{ {
function = delegate { var e = eventCaller.currentEntity; Rockers.instance.PassTurn(e.beat, e.length, e["moveCamera"]); }, preFunction = delegate { var e = eventCaller.currentEntity; Rockers.PrePassTurn(e.beat, e["moveCamera"]); },
resizable = true,
parameters = new List<Param> parameters = new List<Param>
{ {
new Param("moveCamera", true, "Move Camera", "Should the camera move?") new Param("moveCamera", true, "Move Camera", "Should the camera move?")
} },
preFunctionLength = 1
}, },
new GameAction("cmon", "C'mon!") new GameAction("cmon", "C'mon!")
{ {
@ -322,6 +322,7 @@ namespace HeavenStudio.Games
using Scripts_Rockers; using Scripts_Rockers;
using Starpelly; using Starpelly;
using System; using System;
using UnityEngine.UIElements;
public class Rockers : Minigame public class Rockers : Minigame
{ {
@ -529,6 +530,14 @@ namespace HeavenStudio.Games
return tempEvents; return tempEvents;
} }
struct QueuedPassTurn
{
public double beat;
public bool moveCamera;
}
private static List<QueuedPassTurn> passedTurns = new List<QueuedPassTurn>();
private void Start() private void Start()
{ {
if (PlayerInput.Pressing()) if (PlayerInput.Pressing())
@ -593,6 +602,15 @@ namespace HeavenStudio.Games
queuedPreInterval.Clear(); queuedPreInterval.Clear();
} }
if (passedTurns.Count > 0)
{
foreach (var turn in passedTurns)
{
PassTurn(turn.beat, turn.moveCamera);
}
passedTurns.Clear();
}
float normalizedBeat = cond.GetPositionFromBeat(cameraMoveBeat, 1f); float normalizedBeat = cond.GetPositionFromBeat(cameraMoveBeat, 1f);
if (normalizedBeat >= 0f && normalizedBeat <= 1f) if (normalizedBeat >= 0f && normalizedBeat <= 1f)
@ -972,14 +990,29 @@ namespace HeavenStudio.Games
} }
} }
public void PassTurn(double beat, float length, bool moveCamera) public static void PrePassTurn(double beat, bool moveCamera)
{
if (GameManager.instance.currentGame == "rockers")
{
instance.PassTurn(beat, moveCamera);
}
else
{
passedTurns.Add(new QueuedPassTurn
{
beat = beat,
moveCamera = moveCamera
});
}
}
private void PassTurn(double beat, bool moveCamera)
{ {
if (crHandlerInstance.queuedEvents.Count > 0) if (crHandlerInstance.queuedEvents.Count > 0)
{ {
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{ {
new BeatAction.Action(beat + (length / 2), delegate new BeatAction.Action(beat -1, delegate
{ {
List<CallAndResponseHandler.CallAndResponseEvent> crEvents = crHandlerInstance.queuedEvents; List<CallAndResponseHandler.CallAndResponseEvent> crEvents = crHandlerInstance.queuedEvents;
@ -988,26 +1021,51 @@ namespace HeavenStudio.Games
if (crEvent.tag == "riff") if (crEvent.tag == "riff")
{ {
RockersInput riffComp = Instantiate(rockerInputRef, transform); RockersInput riffComp = Instantiate(rockerInputRef, transform);
riffComp.Init(crEvent["gleeClub"], new int[6] { crEvent["1"], crEvent["2"], crEvent["3"], crEvent["4"], crEvent["5"], crEvent["6"] }, beat, length + crEvent.relativeBeat, riffComp.Init(crEvent["gleeClub"], new int[6] { crEvent["1"], crEvent["2"], crEvent["3"], crEvent["4"], crEvent["5"], crEvent["6"] }, beat, crEvent.relativeBeat,
(PremadeSamples)crEvent["sample"], crEvent["sampleTones"]); (PremadeSamples)crEvent["sample"], crEvent["sampleTones"]);
ScheduleInput(beat, length + crEvent.relativeBeat + crEvent.length, InputType.STANDARD_DOWN, JustMute, MuteMiss, Empty); ScheduleInput(beat, crEvent.relativeBeat + crEvent.length, InputType.STANDARD_DOWN, JustMute, MuteMiss, Empty);
} }
else if (crEvent.tag == "bend") else if (crEvent.tag == "bend")
{ {
RockerBendInput bendComp = Instantiate(rockerBendInputRef, transform); RockerBendInput bendComp = Instantiate(rockerBendInputRef, transform);
bendComp.Init(crEvent["Pitch"], beat, length + crEvent.relativeBeat); bendComp.Init(crEvent["Pitch"], beat, crEvent.relativeBeat);
ScheduleInput(beat, length + crEvent.relativeBeat + crEvent.length, InputType.DIRECTION_UP, JustUnBend, UnBendMiss, Empty); ScheduleInput(beat, crEvent.relativeBeat + crEvent.length, InputType.DIRECTION_UP, JustUnBend, UnBendMiss, Empty);
} }
} }
crHandlerInstance.queuedEvents.Clear(); crHandlerInstance.queuedEvents.Clear();
}), }),
new BeatAction.Action(beat + length, delegate { JJ.UnHold(); }) new BeatAction.Action(beat, delegate
{
JJ.UnHold();
if (crHandlerInstance.queuedEvents.Count > 0)
{
List<CallAndResponseHandler.CallAndResponseEvent> crEvents = crHandlerInstance.queuedEvents;
foreach (var crEvent in crEvents)
{
if (crEvent.tag == "riff")
{
RockersInput riffComp = Instantiate(rockerInputRef, transform);
riffComp.Init(crEvent["gleeClub"], new int[6] { crEvent["1"], crEvent["2"], crEvent["3"], crEvent["4"], crEvent["5"], crEvent["6"] }, beat, crEvent.relativeBeat,
(PremadeSamples)crEvent["sample"], crEvent["sampleTones"]);
ScheduleInput(beat, crEvent.relativeBeat + crEvent.length, InputType.STANDARD_DOWN, JustMute, MuteMiss, Empty);
}
else if (crEvent.tag == "bend")
{
RockerBendInput bendComp = Instantiate(rockerBendInputRef, transform);
bendComp.Init(crEvent["Pitch"], beat, crEvent.relativeBeat);
ScheduleInput(beat, crEvent.relativeBeat + crEvent.length, InputType.DIRECTION_UP, JustUnBend, UnBendMiss, Empty);
}
}
crHandlerInstance.queuedEvents.Clear();
}
})
}); });
if (moveCamera) if (moveCamera)
{ {
lastTargetCameraX = GameCamera.additionalPosition.x; lastTargetCameraX = GameCamera.additionalPosition.x;
targetCameraX = Soshi.transform.localPosition.x; targetCameraX = Soshi.transform.localPosition.x;
cameraMoveBeat = beat; cameraMoveBeat = beat - 1;
} }
} }
} }

View file

@ -7,50 +7,34 @@ using HeavenStudio.Util;
namespace HeavenStudio.Games.Scripts_WorkingDough namespace HeavenStudio.Games.Scripts_WorkingDough
{ {
public class BGBall : MonoBehaviour public class BGBall : SuperCurveObject
{ {
public double startBeat; private double startBeat = double.MinValue;
public float firstBeatsToTravel = 3f; private Path path;
public float secondBeatsToTravel = 1f; [SerializeField] private GameObject gandw;
public float thirdBeatsToTravel = 3f;
public enum CurveStage public void Init(double beat, bool hasGandw)
{ {
Conveyer = 0, startBeat = beat;
StartFall = 1, path = WorkingDough.instance.GetPath("BGBall");
Fall = 2 if (gandw != null) gandw.SetActive(hasGandw);
Update();
} }
public CurveStage currentCurveStage;
[NonSerialized] public BezierCurve3D firstCurve;
[NonSerialized] public BezierCurve3D secondCurve;
[NonSerialized] public BezierCurve3D thirdCurve;
private void Update() private void Update()
{ {
var cond = Conductor.instance; var cond = Conductor.instance;
float flyPos = 0f; if (cond.isPlaying && !cond.isPaused)
switch (currentCurveStage)
{ {
case CurveStage.Conveyer: double beat = cond.songPositionInBeats;
flyPos = cond.GetPositionFromBeat(startBeat, firstBeatsToTravel); if (startBeat != double.MinValue)
transform.position = firstCurve.GetPoint(flyPos); {
if (flyPos > 1f) Vector3 pos = GetPathPositionFromBeat(path, Math.Max(startBeat, beat), startBeat);
{ transform.position = pos;
currentCurveStage = CurveStage.StartFall; transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (-90 * Time.deltaTime * (1f / Conductor.instance.pitchedSecPerBeat)));
} if (beat >= startBeat + 9) Destroy(gameObject);
break; }
case CurveStage.StartFall:
flyPos = cond.GetPositionFromBeat(startBeat + firstBeatsToTravel, secondBeatsToTravel);
transform.position = secondCurve.GetPoint(flyPos);
if (flyPos > 1f) currentCurveStage = CurveStage.Fall;
break;
case CurveStage.Fall:
flyPos = cond.GetPositionFromBeat(startBeat + secondBeatsToTravel + firstBeatsToTravel, thirdBeatsToTravel);
transform.position = thirdCurve.GetPoint(flyPos);
if (flyPos > 1f) GameObject.Destroy(gameObject);
break;
} }
} }
} }

View file

@ -7,55 +7,33 @@ using HeavenStudio.Util;
namespace HeavenStudio.Games.Scripts_WorkingDough namespace HeavenStudio.Games.Scripts_WorkingDough
{ {
public enum FlyingStage public class NPCDoughBall : SuperCurveObject
{ {
EnteringUp = 0, private double startBeat = double.MinValue;
EnteringDown = 1, private Path path;
ExitingUp = 2, [SerializeField] private GameObject gandw;
ExitingDown = 3
}
public class NPCDoughBall : MonoBehaviour
{
public double startBeat;
public FlyingStage currentFlyingStage = FlyingStage.EnteringUp; public void Init(double beat, bool hasGandw)
{
startBeat = beat;
[NonSerialized] public BezierCurve3D enterUpCurve; path = WorkingDough.instance.GetPath("NPCBall");
[NonSerialized] public BezierCurve3D enterDownCurve; if (gandw != null) gandw.SetActive(hasGandw);
[NonSerialized] public BezierCurve3D exitUpCurve; Update();
[NonSerialized] public BezierCurve3D exitDownCurve; }
private void Update() private void Update()
{ {
var cond = Conductor.instance; var cond = Conductor.instance;
float flyPos = 0f; if (cond.isPlaying && !cond.isPaused)
{
switch (currentFlyingStage) { double beat = cond.songPositionInBeats;
case FlyingStage.EnteringUp: if (startBeat > double.MinValue)
flyPos = cond.GetPositionFromBeat(startBeat, 0.5f); {
transform.position = enterUpCurve.GetPoint(flyPos); Vector3 pos = GetPathPositionFromBeat(path, Math.Max(beat, startBeat), startBeat);
if (flyPos > 1f) currentFlyingStage = FlyingStage.EnteringDown; transform.position = pos;
break; if (beat >= startBeat + 2) Destroy(gameObject);
case FlyingStage.EnteringDown: }
flyPos = cond.GetPositionFromBeat(startBeat + 0.5f, 0.5f);
transform.position = enterDownCurve.GetPoint(flyPos);
if (flyPos > 1f) currentFlyingStage = FlyingStage.ExitingUp;
break;
case FlyingStage.ExitingUp:
flyPos = cond.GetPositionFromBeat(startBeat + 1f, 0.5f);
transform.position = exitUpCurve.GetPoint(flyPos);
if (flyPos > 1f) currentFlyingStage = FlyingStage.ExitingDown;
break;
case FlyingStage.ExitingDown:
flyPos = cond.GetPositionFromBeat(startBeat + 1.5f, 0.5f);
transform.position = exitDownCurve.GetPoint(flyPos);
if (flyPos > 1f) GameObject.Destroy(gameObject);
break;
} }
} }
} }

View file

@ -7,36 +7,200 @@ using HeavenStudio.Util;
namespace HeavenStudio.Games.Scripts_WorkingDough namespace HeavenStudio.Games.Scripts_WorkingDough
{ {
public class PlayerEnterDoughBall : MonoBehaviour public class PlayerEnterDoughBall : SuperCurveObject
{ {
public double startBeat; private enum State
public float firstBeatsToTravel = 0.5f; {
public float secondBeatsToTravel = 0.5f; None,
public bool goingDown = false; Entering,
public bool deletingAutomatically = true; Hit,
[NonSerialized] public BezierCurve3D firstCurve; Barely,
[NonSerialized] public BezierCurve3D secondCurve; Miss,
Weak
}
private State currentState;
private double startBeat;
private bool big;
private Path enterPath;
private Path hitPath;
private Path barelyPath;
private Path missPath;
private Path weakPath;
private WorkingDough game;
private PlayerActionEvent wrongInput;
private PlayerActionEvent rightInput;
[SerializeField] private GameObject gandw;
private void Awake()
{
game = WorkingDough.instance;
}
public void Init(double beat, bool isBig, bool hasGandw)
{
startBeat = beat;
big = isBig;
enterPath = game.GetPath("PlayerEnter");
hitPath = game.GetPath("PlayerHit");
barelyPath = game.GetPath("PlayerBarely");
missPath = game.GetPath("PlayerMiss");
weakPath = game.GetPath("PlayerWeak");
rightInput = game.ScheduleInput(beat, 1, isBig ? InputType.STANDARD_ALT_DOWN : InputType.STANDARD_DOWN, Just, Miss, Empty);
wrongInput = game.ScheduleUserInput(beat, 1, isBig ? InputType.STANDARD_DOWN : InputType.STANDARD_ALT_DOWN, WrongInput, Empty, Empty);
currentState = State.Entering;
if (gandw != null) gandw.SetActive(hasGandw);
Update();
}
private void Update() private void Update()
{ {
var cond = Conductor.instance; var cond = Conductor.instance;
float flyPos = 0f; if (cond.isPlaying && !cond.isPaused)
if (goingDown)
{ {
flyPos = cond.GetPositionFromBeat(startBeat + firstBeatsToTravel, secondBeatsToTravel); Vector3 pos = new Vector3();
double beat = cond.songPositionInBeats;
switch (currentState)
{
case State.None:
break;
case State.Entering:
pos = GetPathPositionFromBeat(enterPath, Math.Max(beat, startBeat), startBeat);
break;
case State.Hit:
pos = GetPathPositionFromBeat(hitPath, Math.Max(beat, startBeat), startBeat);
if (beat >= startBeat + 1)
{
Destroy(gameObject);
}
break;
case State.Miss:
pos = GetPathPositionFromBeat(missPath, Math.Max(beat, startBeat), startBeat);
if (beat >= startBeat + 1)
{
Destroy(gameObject);
}
break;
case State.Weak:
pos = GetPathPositionFromBeat(weakPath, Math.Max(beat, startBeat), startBeat);
if (beat >= startBeat + 1)
{
Destroy(gameObject);
}
break;
case State.Barely:
pos = GetPathPositionFromBeat(barelyPath, Math.Max(beat, startBeat), startBeat);
if (beat >= startBeat + 2)
{
Destroy(gameObject);
}
break;
}
transform.position = pos;
}
}
transform.position = secondCurve.GetPoint(flyPos); private void Just(PlayerActionEvent caller, float state)
if (flyPos > 1f) if (deletingAutomatically) GameObject.Destroy(gameObject); {
wrongInput.Disable();
double beat = Conductor.instance.songPositionInBeats;
startBeat = beat;
game.playerImpact.SetActive(true);
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { game.playerImpact.SetActive(false); }),
});
if (state >= 1f || state <= -1f)
{
currentState = State.Barely;
SoundByte.PlayOneShot("miss");
if (big)
{
SoundByte.PlayOneShotGame("workingDough/bigPlayer");
game.doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
}
else
{
SoundByte.PlayOneShotGame("workingDough/smallPlayer");
game.doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
}
Update();
return;
}
currentState = State.Hit;
if (big)
{
SoundByte.PlayOneShotGame("workingDough/bigPlayer");
SoundByte.PlayOneShotGame("workingDough/hitBigPlayer");
game.doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
game.backgroundAnimator.Play("BackgroundFlash", 0, 0);
} }
else else
{ {
flyPos = cond.GetPositionFromBeat(startBeat, firstBeatsToTravel); SoundByte.PlayOneShotGame("workingDough/smallPlayer");
transform.position = firstCurve.GetPoint(flyPos); SoundByte.PlayOneShotGame("workingDough/hitSmallPlayer");
if (flyPos > 1f) goingDown = true; game.doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
}
bool hasGandw = false;
if (gandw != null) hasGandw = gandw.activeSelf;
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.9f, delegate { game.arrowSRRightPlayer.sprite = game.redArrowSprite; }),
new BeatAction.Action(beat + 1f, delegate { game.arrowSRRightPlayer.sprite = game.whiteArrowSprite; }),
new BeatAction.Action(beat + 2f, delegate { game.SpawnBGBall(beat + 2f, big, hasGandw); }),
});
Update();
}
private void WrongInput(PlayerActionEvent caller, float state)
{
double beat = Conductor.instance.songPositionInBeats;
rightInput.Disable();
game.playerImpact.SetActive(true);
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { game.playerImpact.SetActive(false); }),
});
if (big)
{
currentState = State.Weak;
startBeat = beat;
game.doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/smallPlayer");
SoundByte.PlayOneShotGame("workingDough/tooBig");
Update();
}
else
{
GameObject.Instantiate(game.breakParticleEffect, game.breakParticleHolder);
game.doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/bigPlayer");
SoundByte.PlayOneShotGame("workingDough/tooSmall");
Destroy(gameObject);
} }
} }
private void Miss(PlayerActionEvent caller)
{
double beat = caller.timer + caller.startBeat;
currentState = State.Miss;
startBeat = beat;
Update();
BeatAction.New(game.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.25f, delegate { game.missImpact.SetActive(true); }),
new BeatAction.Action(beat + 0.25f, delegate { SoundByte.PlayOneShotGame("workingDough/BallMiss"); }),
new BeatAction.Action(beat + 0.35f, delegate { game.missImpact.SetActive(false); }),
});
}
private void Empty(PlayerActionEvent caller) { }
} }
} }

View file

@ -15,25 +15,35 @@ namespace HeavenStudio.Games.Loaders
{ {
new GameAction("beat intervals", "Start Interval") new GameAction("beat intervals", "Start Interval")
{ {
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.SetIntervalStart(e.beat, e.length); },
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSetIntervalStart(e.beat, e.length); }, preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSetIntervalStart(e.beat, e.length); },
defaultLength = 8f, defaultLength = 8f,
resizable = true, resizable = true,
priority = 2 priority = 2,
}, },
new GameAction("small ball", "Small Ball") new GameAction("small ball", "Small Ball")
{ {
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, false); }, preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, false, false); },
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, false); },
defaultLength = 0.5f, defaultLength = 0.5f,
priority = 1 priority = 1,
inactiveFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.OnSpawnBallInactive(e.beat, false, false); },
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, false, false); }
}, },
new GameAction("big ball", "Big Ball") new GameAction("big ball", "Big Ball")
{ {
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, true); }, preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, true, e["hasGandw"]); },
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, true); },
defaultLength = 0.5f, defaultLength = 0.5f,
priority = 1 priority = 1,
inactiveFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.OnSpawnBallInactive(e.beat, true, e["hasGandw"]); },
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, true, e["hasGandw"]); },
parameters = new List<Param>()
{
new Param("hasGandw", false, "Has Mr. Game & Watch")
}
},
new GameAction("passTurn", "Pass Turn")
{
preFunction = delegate { WorkingDough.PrePassTurn(eventCaller.currentEntity.beat); },
preFunctionLength = 1
}, },
new GameAction("launch spaceship", "Launch Spaceship") new GameAction("launch spaceship", "Launch Spaceship")
{ {
@ -91,6 +101,11 @@ namespace HeavenStudio.Games.Loaders
defaultLength = 0.5f, defaultLength = 0.5f,
priority = 0 priority = 0
}, },
new GameAction("disableBG", "Toggle Background")
{
function = delegate { WorkingDough.instance.DisableBG(); },
defaultLength = 0.5f
}
}, },
new List<string>() {"rvl", "repeat"}, new List<string>() {"rvl", "repeat"},
"rvldough", "en", "rvldough", "en",
@ -103,6 +118,7 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games namespace HeavenStudio.Games
{ {
using Scripts_WorkingDough; using Scripts_WorkingDough;
public class WorkingDough : Minigame public class WorkingDough : Minigame
{ {
[Header("Components")] [Header("Components")]
@ -113,22 +129,22 @@ namespace HeavenStudio.Games
[SerializeField] GameObject ballTransporterRightPlayer; //Close and open animations [SerializeField] GameObject ballTransporterRightPlayer; //Close and open animations
[SerializeField] GameObject ballTransporterLeftPlayer; //Close and open animations [SerializeField] GameObject ballTransporterLeftPlayer; //Close and open animations
[SerializeField] GameObject npcImpact; [SerializeField] GameObject npcImpact;
[SerializeField] GameObject playerImpact; public GameObject playerImpact;
[SerializeField] GameObject smallBallNPC; [SerializeField] GameObject smallBallNPC;
[SerializeField] GameObject bigBallNPC; [SerializeField] GameObject bigBallNPC;
[SerializeField] Transform ballHolder; [SerializeField] Transform ballHolder;
[SerializeField] SpriteRenderer arrowSRLeftNPC; [SerializeField] SpriteRenderer arrowSRLeftNPC;
[SerializeField] SpriteRenderer arrowSRRightNPC; [SerializeField] SpriteRenderer arrowSRRightNPC;
[SerializeField] SpriteRenderer arrowSRLeftPlayer; [SerializeField] SpriteRenderer arrowSRLeftPlayer;
[SerializeField] SpriteRenderer arrowSRRightPlayer; public SpriteRenderer arrowSRRightPlayer;
[SerializeField] GameObject NPCBallTransporters; [SerializeField] GameObject NPCBallTransporters;
[SerializeField] GameObject PlayerBallTransporters; [SerializeField] GameObject PlayerBallTransporters;
[SerializeField] GameObject playerEnterSmallBall; [SerializeField] GameObject playerEnterSmallBall;
[SerializeField] GameObject playerEnterBigBall; [SerializeField] GameObject playerEnterBigBall;
[SerializeField] GameObject missImpact; public GameObject missImpact;
[SerializeField] Transform breakParticleHolder; public Transform breakParticleHolder;
[SerializeField] GameObject breakParticleEffect; public GameObject breakParticleEffect;
[SerializeField] Animator backgroundAnimator; public Animator backgroundAnimator;
[SerializeField] Animator conveyerAnimator; [SerializeField] Animator conveyerAnimator;
[SerializeField] GameObject smallBGBall; [SerializeField] GameObject smallBGBall;
[SerializeField] GameObject bigBGBall; [SerializeField] GameObject bigBGBall;
@ -137,103 +153,114 @@ namespace HeavenStudio.Games
[SerializeField] Animator doughDudesHolderAnim; [SerializeField] Animator doughDudesHolderAnim;
[SerializeField] Animator gandwAnim; [SerializeField] Animator gandwAnim;
[SerializeField] private GameObject[] bgObjects;
private bool bgDisabled;
[Header("Variables")] [Header("Variables")]
public bool intervalStarted;
double intervalStartBeat;
float risingLength = 4f; float risingLength = 4f;
double risingStartBeat; double risingStartBeat;
float liftingLength = 4f; float liftingLength = 4f;
double liftingStartBeat; double liftingStartBeat;
public static float beatInterval = 8f;
float gandMovingLength = 4f; float gandMovingLength = 4f;
double gandMovingStartBeat; double gandMovingStartBeat;
public bool bigMode; public bool bigMode;
public bool bigModePlayer; public bool bigModePlayer;
static List<QueuedBall> queuedBalls = new List<QueuedBall>(); static List<QueuedBall> queuedBalls = new List<QueuedBall>();
static List<double> passedTurns = new List<double>();
struct QueuedBall struct QueuedBall
{ {
public double beat; public double beat;
public bool isBig; public bool isBig;
public bool hasGandw;
} }
static List<QueuedInterval> queuedIntervals = new List<QueuedInterval>();
struct QueuedInterval
{
public double beat;
public float interval;
}
private List<GameObject> currentBalls = new List<GameObject>();
public bool shouldMiss = true;
public bool spaceshipRisen = false; public bool spaceshipRisen = false;
public bool spaceshipRising = false; public bool spaceshipRising = false;
bool liftingDoughDudes; bool liftingDoughDudes;
string liftingAnimName; string liftingAnimName;
bool ballTriggerSetInterval = true;
bool gandwHasEntered = true; bool gandwHasEntered = true;
bool gandwMoving; bool gandwMoving;
string gandwMovingAnimName; string gandwMovingAnimName;
[Header("Curves")] [Header("Curves")]
public BezierCurve3D npcEnterUpCurve; [SerializeField] SuperCurveObject.Path[] ballBouncePaths;
public BezierCurve3D npcEnterDownCurve; new void OnDrawGizmos()
public BezierCurve3D npcExitUpCurve; {
public BezierCurve3D npcExitDownCurve; base.OnDrawGizmos();
public BezierCurve3D playerEnterUpCurve; foreach (SuperCurveObject.Path path in ballBouncePaths)
public BezierCurve3D playerEnterDownCurve; {
public BezierCurve3D playerExitUpCurve; if (path.preview)
public BezierCurve3D playerExitDownCurve; {
public BezierCurve3D playerMissCurveFirst; smallBallNPC.GetComponent<NPCDoughBall>().DrawEditorGizmo(path);
public BezierCurve3D playerMissCurveSecond; }
public BezierCurve3D playerBarelyCurveFirst; }
public BezierCurve3D playerBarelyCurveSecond; }
public BezierCurve3D playerWrongInputTooWeakFirstCurve; public SuperCurveObject.Path GetPath(string name)
public BezierCurve3D playerWrongInputTooWeakSecondCurve; {
public BezierCurve3D firstBGCurveBig; foreach (SuperCurveObject.Path path in ballBouncePaths)
public BezierCurve3D secondBGCurveBig; {
public BezierCurve3D thirdBGCurveBig; if (path.name == name)
public BezierCurve3D firstBGCurveSmall; {
public BezierCurve3D secondBGCurveSmall; return path;
public BezierCurve3D thirdBGCurveSmall; }
}
return default(SuperCurveObject.Path);
}
[Header("Resources")] [Header("Resources")]
public Sprite whiteArrowSprite; public Sprite whiteArrowSprite;
public Sprite redArrowSprite; public Sprite redArrowSprite;
public static WorkingDough instance; public static WorkingDough instance;
private static CallAndResponseHandler crHandlerInstance;
void Awake() void Awake()
{ {
if (crHandlerInstance == null)
{
crHandlerInstance = new CallAndResponseHandler(8);
}
instance = this; instance = this;
} }
void Start() void Start()
{ {
shouldMiss = true;
ballTriggerSetInterval = true;
conveyerAnimator.Play("ConveyerBelt", 0, 0); conveyerAnimator.Play("ConveyerBelt", 0, 0);
doughDudesHolderAnim.Play("OnGround", 0, 0); doughDudesHolderAnim.Play("OnGround", 0, 0);
} }
public void DisableBG()
{
bgDisabled = !bgDisabled;
foreach (var bgObject in bgObjects)
{
bgObject.SetActive(!bgDisabled);
}
}
public void SetIntervalStart(double beat, float interval) public void SetIntervalStart(double beat, float interval)
{ {
Debug.Log("Start Interval"); if (!crHandlerInstance.IntervalIsActive())
if (!intervalStarted)
{ {
instance.ballTriggerSetInterval = false;
intervalStarted = true;
bigMode = false; bigMode = false;
BeatAction.New(ballTransporterLeftNPC, new List<BeatAction.Action>() BeatAction.New(ballTransporterLeftNPC, new List<BeatAction.Action>()
{ {
//Open player transporters new BeatAction.Action(beat - 1, delegate
{
if (!instance.ballTransporterLeftNPC.GetComponent<Animator>().IsPlayingAnimationName("BallTransporterLeftOpened"))
{
instance.ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
instance.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
if (instance.gandwHasEntered && !bgDisabled) instance.gandwAnim.Play("GANDWLeverUp", 0, 0);
}
}),
//Open player transporters
/*
new BeatAction.Action(beat + interval - 1f, delegate { new BeatAction.Action(beat + interval - 1f, delegate {
ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0); ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
}), }),
new BeatAction.Action(beat + interval - 1f, delegate { new BeatAction.Action(beat + interval - 1f, delegate {
ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0); ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
}), }),*/
//End interval
new BeatAction.Action(beat + interval, delegate { intervalStarted = false; }),
new BeatAction.Action(beat + interval, delegate {ballTriggerSetInterval = true; }),
//Close npc transporters //Close npc transporters
new BeatAction.Action(beat + interval, delegate { new BeatAction.Action(beat + interval, delegate {
@ -243,6 +270,7 @@ namespace HeavenStudio.Games
bigMode = false; bigMode = false;
} }
}), }),
/*
new BeatAction.Action(beat + interval + 1, delegate { if (!intervalStarted) ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }), new BeatAction.Action(beat + interval + 1, delegate { if (!intervalStarted) ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
new BeatAction.Action(beat + interval + 1, delegate { if (!intervalStarted) ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }), new BeatAction.Action(beat + interval + 1, delegate { if (!intervalStarted) ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
new BeatAction.Action(beat + interval + 1, delegate { if (gandwHasEntered) gandwAnim.Play("MrGameAndWatchLeverDown", 0, 0); }), new BeatAction.Action(beat + interval + 1, delegate { if (gandwHasEntered) gandwAnim.Play("MrGameAndWatchLeverDown", 0, 0); }),
@ -256,29 +284,74 @@ namespace HeavenStudio.Games
bigModePlayer = false; bigModePlayer = false;
} }
}), }),
*/
}); });
} }
beatInterval = interval; crHandlerInstance.StartInterval(beat, interval);
intervalStartBeat = beat;
} }
public void SpawnBall(double beat, bool isBig) public static void PrePassTurn(double beat)
{ {
if (!intervalStarted && ballTriggerSetInterval) if (GameManager.instance.currentGame == "workingDough")
{ {
SetIntervalStart(beat, beatInterval); instance.PassTurn(beat);
} }
else
{
passedTurns.Add(beat);
}
}
private void PassTurn(double beat)
{
if (crHandlerInstance.queuedEvents.Count > 0)
{
ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
foreach (var ball in crHandlerInstance.queuedEvents)
{
SpawnPlayerBall(beat + ball.relativeBeat - 1, ball.tag == "big", ball["hasGandw"]);
}
crHandlerInstance.queuedEvents.Clear();
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate
{
if (crHandlerInstance.queuedEvents.Count > 0)
{
foreach (var ball in crHandlerInstance.queuedEvents)
{
SpawnPlayerBall(beat + ball.relativeBeat - 1, ball.tag == "big", ball["hasGandw"]);
}
crHandlerInstance.queuedEvents.Clear();
}
}),
new BeatAction.Action(beat + 1, delegate { if (!crHandlerInstance.IntervalIsActive()) ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
new BeatAction.Action(beat + 1, delegate { if (!crHandlerInstance.IntervalIsActive()) ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
new BeatAction.Action(beat + 1, delegate { if (gandwHasEntered && !bgDisabled) gandwAnim.Play("MrGameAndWatchLeverDown", 0, 0); }),
//Close player transporters
new BeatAction.Action(beat + crHandlerInstance.intervalLength + 1, delegate { ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
new BeatAction.Action(beat + crHandlerInstance.intervalLength + 1, delegate { ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
new BeatAction.Action(beat + crHandlerInstance.intervalLength + 1, delegate {
if (bigModePlayer)
{
PlayerBallTransporters.GetComponent<Animator>().Play("PlayerExitBigMode", 0, 0);
bigModePlayer = false;
}
}),
});
}
}
public void SpawnBall(double beat, bool isBig, bool hasGandw)
{
var objectToSpawn = isBig ? bigBallNPC : smallBallNPC; var objectToSpawn = isBig ? bigBallNPC : smallBallNPC;
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder); var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<NPCDoughBall>(); var ballComponent = spawnedBall.GetComponent<NPCDoughBall>();
ballComponent.startBeat = beat;
ballComponent.exitUpCurve = npcExitUpCurve;
ballComponent.enterUpCurve = npcEnterUpCurve;
ballComponent.exitDownCurve = npcExitDownCurve;
ballComponent.enterDownCurve = npcEnterDownCurve;
spawnedBall.SetActive(true); spawnedBall.SetActive(true);
ballComponent.Init(beat, hasGandw);
if (isBig && !bigMode) if (isBig && !bigMode)
{ {
@ -286,9 +359,6 @@ namespace HeavenStudio.Games
bigMode = true; bigMode = true;
} }
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(isBig ? "workingDough/NPCBigBall" : "workingDough/NPCSmallBall", beat + 1f),
});
arrowSRLeftNPC.sprite = redArrowSprite; arrowSRLeftNPC.sprite = redArrowSprite;
BeatAction.New(doughDudesNPC, new List<BeatAction.Action>() BeatAction.New(doughDudesNPC, new List<BeatAction.Action>()
@ -303,43 +373,7 @@ namespace HeavenStudio.Games
}); });
} }
public void InstantExitBall(double beat, bool isBig, double offSet) public static void PreSpawnBall(double beat, bool isBig, bool hasGandw)
{
var objectToSpawn = isBig ? bigBallNPC : smallBallNPC;
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<NPCDoughBall>();
ballComponent.startBeat = beat - 1f;
ballComponent.exitUpCurve = npcExitUpCurve;
ballComponent.enterUpCurve = npcEnterUpCurve;
ballComponent.exitDownCurve = npcExitDownCurve;
ballComponent.enterDownCurve = npcEnterDownCurve;
ballComponent.currentFlyingStage = (FlyingStage)(2 - (int)Math.Abs(offSet));
if (isBig && !bigMode)
{
bigMode = true;
}
if (beat >= Conductor.instance.songPositionInBeatsAsDouble)
{
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(isBig ? "workingDough/NPCBigBall" : "workingDough/NPCSmallBall", beat),
});
}
BeatAction.New(doughDudesNPC, new List<BeatAction.Action>()
{
new BeatAction.Action(beat - offSet, delegate { spawnedBall.SetActive(true); }),
new BeatAction.Action(beat, delegate { doughDudesNPC.GetComponent<Animator>().Play(isBig ? "BigDoughJump" : "SmallDoughJump", 0, 0); } ),
new BeatAction.Action(beat, delegate { npcImpact.SetActive(true); } ),
new BeatAction.Action(beat + 0.1f, delegate { npcImpact.SetActive(false); }),
new BeatAction.Action(beat + 0.9f, delegate { arrowSRRightNPC.sprite = redArrowSprite; }),
new BeatAction.Action(beat + 1f, delegate { arrowSRRightNPC.sprite = whiteArrowSprite; }),
});
}
public static void PreSpawnBall(double beat, bool isBig)
{ {
double spawnBeat = beat - 1f; double spawnBeat = beat - 1f;
beat -= 1f; beat -= 1f;
@ -349,14 +383,14 @@ namespace HeavenStudio.Games
{ {
new BeatAction.Action(spawnBeat, delegate new BeatAction.Action(spawnBeat, delegate
{ {
if (!instance.ballTransporterLeftNPC.GetComponent<Animator>().IsPlayingAnimationName("BallTransporterLeftOpened") && !instance.intervalStarted && instance.ballTriggerSetInterval) if (!instance.ballTransporterLeftNPC.GetComponent<Animator>().IsPlayingAnimationName("BallTransporterLeftOpened") && !crHandlerInstance.IntervalIsActive() && !instance.bgDisabled)
{ {
instance.ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0); instance.ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
instance.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0); instance.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
if (instance.gandwHasEntered) instance.gandwAnim.Play("GANDWLeverUp", 0, 0); if (instance.gandwHasEntered) instance.gandwAnim.Play("GANDWLeverUp", 0, 0);
} }
}), }),
new BeatAction.Action(spawnBeat, delegate { if (instance != null) instance.SpawnBall(beat, isBig); }), new BeatAction.Action(spawnBeat, delegate { if (instance != null) instance.SpawnBall(beat, isBig, hasGandw); }),
// new BeatAction.Action(spawnBeat + instance.beatInterval, delegate { instance.SpawnPlayerBall(beat + instance.beatInterval, isBig); }), // new BeatAction.Action(spawnBeat + instance.beatInterval, delegate { instance.SpawnPlayerBall(beat + instance.beatInterval, isBig); }),
}); });
} }
@ -366,39 +400,50 @@ namespace HeavenStudio.Games
{ {
beat = beat + 1f, beat = beat + 1f,
isBig = isBig, isBig = isBig,
hasGandw = hasGandw
}); });
} }
} }
public void OnSpawnBall(double beat, bool isBig) public static void OnSpawnBallInactive(double beat, bool isBig, bool hasGandw)
{ {
beat -= 1f; if (crHandlerInstance == null)
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{ {
new BeatAction.Action(beat + beatInterval, delegate { instance.SpawnPlayerBall(beat + beatInterval, isBig); }), crHandlerInstance = new CallAndResponseHandler(8);
}
crHandlerInstance.AddEvent(beat, 0, isBig ? "big" : "small", new List<CallAndResponseHandler.CallAndResponseEventParam>()
{
new CallAndResponseHandler.CallAndResponseEventParam("hasGandw", hasGandw)
}); });
} }
public void OnSpawnBallInactive(double beat, bool isBig) public void OnSpawnBall(double beat, bool isBig, bool hasGandw)
{ {
queuedBalls.Add(new QueuedBall() crHandlerInstance.AddEvent(beat, 0, isBig ? "big" : "small", new List<CallAndResponseHandler.CallAndResponseEventParam>()
{ {
beat = beat + 1f, new CallAndResponseHandler.CallAndResponseEventParam("hasGandw", hasGandw)
isBig = isBig,
}); });
SoundByte.PlayOneShotGame(isBig ? "workingDough/hitBigOther" : "workingDough/hitSmallOther");
SoundByte.PlayOneShotGame(isBig ? "workingDough/bigOther" : "workingDough/smallOther");
} }
public void SpawnPlayerBall(double beat, bool isBig) public static void InactiveInterval(double beat, float interval)
{
if (crHandlerInstance == null)
{
crHandlerInstance = new CallAndResponseHandler(8);
}
crHandlerInstance.StartInterval(beat, interval);
}
public void SpawnPlayerBall(double beat, bool isBig, bool hasGandw)
{ {
var objectToSpawn = isBig ? playerEnterBigBall : playerEnterSmallBall; var objectToSpawn = isBig ? playerEnterBigBall : playerEnterSmallBall;
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder); var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>(); var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
ballComponent.startBeat = beat; spawnedBall.SetActive(true);
ballComponent.firstCurve = playerEnterUpCurve; ballComponent.Init(beat, isBig, hasGandw);
ballComponent.secondCurve = playerEnterDownCurve;
ballComponent.deletingAutomatically = false;
currentBalls.Add(spawnedBall);
if (isBig && !bigModePlayer) if (isBig && !bigModePlayer)
{ {
@ -406,76 +451,33 @@ namespace HeavenStudio.Games
bigModePlayer = true; bigModePlayer = true;
} }
//shouldMiss = true;
if (isBig)
{
ScheduleInput(beat, 1, InputType.STANDARD_ALT_DOWN, JustBig, MissBig, Nothing);
ScheduleUserInput(beat, 1, InputType.STANDARD_DOWN, WrongInputBig, Nothing, Nothing);
}
else
{
ScheduleInput(beat, 1, InputType.STANDARD_DOWN, JustSmall, MissSmall, Nothing);
ScheduleUserInput(beat, 1, InputType.STANDARD_ALT_DOWN, WrongInputSmall, Nothing, Nothing);
}
BeatAction.New(doughDudesPlayer, new List<BeatAction.Action>() BeatAction.New(doughDudesPlayer, new List<BeatAction.Action>()
{ {
new BeatAction.Action(beat, delegate { spawnedBall.SetActive(true); }),
new BeatAction.Action(beat, delegate { arrowSRLeftPlayer.sprite = redArrowSprite; }), new BeatAction.Action(beat, delegate { arrowSRLeftPlayer.sprite = redArrowSprite; }),
new BeatAction.Action(beat + 0.1f, delegate { arrowSRLeftPlayer.sprite = whiteArrowSprite; }), new BeatAction.Action(beat + 0.1f, delegate { arrowSRLeftPlayer.sprite = whiteArrowSprite; }),
}); });
} }
public void SpawnPlayerBallResult(double beat, bool isBig, BezierCurve3D firstCurve, BezierCurve3D secondCurve, float firstBeatsToTravel, float secondBeatsToTravel)
{
var objectToSpawn = isBig ? playerEnterBigBall : playerEnterSmallBall;
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
ballComponent.startBeat = beat;
ballComponent.firstCurve = firstCurve;
ballComponent.secondCurve = secondCurve;
ballComponent.firstBeatsToTravel = firstBeatsToTravel;
ballComponent.secondBeatsToTravel = secondBeatsToTravel;
spawnedBall.SetActive(true);
}
public static void PreSetIntervalStart(double beat, float interval) public static void PreSetIntervalStart(double beat, float interval)
{ {
beat -= 1f;
if (GameManager.instance.currentGame == "workingDough") if (GameManager.instance.currentGame == "workingDough")
{ {
// instance.ballTriggerSetInterval = false; // instance.ballTriggerSetInterval = false;
// beatInterval = interval; // beatInterval = interval;
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() instance.SetIntervalStart(beat, interval);
{
new BeatAction.Action(beat, delegate
{
if (!instance.ballTransporterLeftNPC.GetComponent<Animator>().IsPlayingAnimationName("BallTransporterLeftOpened"))
{
instance.ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
instance.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
if (instance.gandwHasEntered) instance.gandwAnim.Play("GANDWLeverUp", 0, 0);
}
}),
// new BeatAction.Action(beat + 1, delegate { if (instance != null) instance.SetIntervalStart(beat + 1, interval); }),
});
} }
else else
{ {
queuedIntervals.Add(new QueuedInterval() InactiveInterval(beat, interval);
{
beat = beat + 1f,
interval = interval,
});
} }
} }
void OnDestroy() void OnDestroy()
{ {
if (queuedIntervals.Count > 0) queuedIntervals.Clear(); if (crHandlerInstance != null && !Conductor.instance.isPlaying)
{
crHandlerInstance = null;
}
if (queuedBalls.Count > 0) queuedBalls.Clear(); if (queuedBalls.Count > 0) queuedBalls.Clear();
foreach (var evt in scheduledInputs) foreach (var evt in scheduledInputs)
{ {
@ -483,250 +485,74 @@ namespace HeavenStudio.Games
} }
} }
public override void OnGameSwitch(double beat)
{
if (queuedBalls.Count > 0)
{
foreach (var ball in queuedBalls)
{
if (ball.isBig) NPCBallTransporters.GetComponent<Animator>().Play("BigMode", 0, 0);
if (!crHandlerInstance.IntervalIsActive())
{
ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpened", 0, 0);
ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpened", 0, 0);
if (gandwHasEntered && !bgDisabled) gandwAnim.Play("GANDWLeverUp", 0, 0);
}
if (ball.beat > beat - 1)
{
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(ball.beat - 1, delegate { SpawnBall(ball.beat - 1, ball.isBig, ball.hasGandw); })
});
}
}
queuedBalls.Clear();
}
}
void Update() void Update()
{ {
Conductor cond = Conductor.instance; Conductor cond = Conductor.instance;
if (!cond.isPlaying || cond.isPaused) if (!cond.isPlaying || cond.isPaused)
{ {
if (queuedIntervals.Count > 0) queuedIntervals.Clear();
if (queuedBalls.Count > 0) queuedBalls.Clear(); if (queuedBalls.Count > 0) queuedBalls.Clear();
} }
if (spaceshipRising) spaceshipAnimator.DoScaledAnimation("RiseSpaceship", risingStartBeat, risingLength); if (spaceshipRising && !bgDisabled) spaceshipAnimator.DoScaledAnimation("RiseSpaceship", risingStartBeat, risingLength);
if (liftingDoughDudes) doughDudesHolderAnim.DoScaledAnimation(liftingAnimName, liftingStartBeat, liftingLength); if (liftingDoughDudes && !bgDisabled) doughDudesHolderAnim.DoScaledAnimation(liftingAnimName, liftingStartBeat, liftingLength);
if (gandwMoving) gandwAnim.DoScaledAnimation(gandwMovingAnimName, gandMovingStartBeat, gandMovingLength); if (gandwMoving && !bgDisabled) gandwAnim.DoScaledAnimation(gandwMovingAnimName, gandMovingStartBeat, gandMovingLength);
if (queuedIntervals.Count > 0) if (passedTurns.Count > 0)
{ {
foreach (var interval in queuedIntervals) foreach (var passTurn in passedTurns)
{ {
ballTriggerSetInterval = false; PassTurn(passTurn);
beatInterval = interval.interval;
ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpened", 0, 0);
ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpened", 0, 0);
if (gandwHasEntered) gandwAnim.Play("GANDWLeverUp", 0, 0);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(interval.beat, delegate { SetIntervalStart(interval.beat, interval.interval); }),
});
} }
queuedIntervals.Clear(); passedTurns.Clear();
}
if (queuedBalls.Count > 0)
{
foreach (var ball in queuedBalls)
{
double offSet = ball.beat - cond.songPositionInBeatsAsDouble;
double spawnOffset = offSet > 1f ? offSet - 1 : 0;
if (ball.isBig) NPCBallTransporters.GetComponent<Animator>().Play("BigMode", 0, 0);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(ball.beat - offSet + spawnOffset, delegate {
if (!intervalStarted && ballTriggerSetInterval)
{
ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpened", 0, 0);
ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpened", 0, 0);
if (gandwHasEntered) gandwAnim.Play("GANDWLeverUp", 0, 0);
SetIntervalStart(ball.beat, beatInterval);
}
}),
new BeatAction.Action(ball.beat - offSet + spawnOffset, delegate { InstantExitBall(ball.beat, ball.isBig, offSet); }),
new BeatAction.Action(ball.beat + beatInterval - 1, delegate { SpawnPlayerBall(ball.beat + beatInterval - 1, ball.isBig); }),
});
}
queuedBalls.Clear();
} }
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN)) if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
{ {
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0); doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/PlayerSmallJump"); SoundByte.PlayOneShotGame("workingDough/smallPlayer");
} }
else if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN)) else if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
{ {
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0); doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/PlayerBigJump"); SoundByte.PlayOneShotGame("workingDough/bigPlayer");
} }
} }
void WrongInputBig(PlayerActionEvent caller, float state) public void SpawnBGBall(double beat, bool isBig, bool hasGandw)
{
double beat = caller.startBeat + caller.timer;
shouldMiss = false;
if (currentBalls.Count > 0)
{
GameObject currentBall = currentBalls[0];
currentBalls.Remove(currentBall);
GameObject.Destroy(currentBall);
}
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/BigBallTooWeak");
SpawnPlayerBallResult(beat, true, playerWrongInputTooWeakFirstCurve, playerWrongInputTooWeakSecondCurve, 0.5f, 1f);
playerImpact.SetActive(true);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
});
}
void WrongInputSmall(PlayerActionEvent caller, float state)
{
double beat = caller.startBeat + caller.timer;
shouldMiss = false;
if (currentBalls.Count > 0)
{
GameObject currentBall = currentBalls[0];
currentBalls.Remove(currentBall);
GameObject.Destroy(currentBall);
}
GameObject.Instantiate(breakParticleEffect, breakParticleHolder);
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/BreakBall");
playerImpact.SetActive(true);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
});
}
void MissBig(PlayerActionEvent caller)
{
if (!shouldMiss)
{
shouldMiss = true;
return;
}
if (currentBalls.Count > 0)
{
GameObject currentBall = currentBalls[0];
currentBalls.Remove(currentBall);
GameObject.Destroy(currentBall);
}
double beat = caller.startBeat + caller.timer;
SpawnPlayerBallResult(beat, true, playerMissCurveFirst, playerMissCurveSecond, 0.25f, 0.75f);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.25f, delegate { missImpact.SetActive(true); }),
new BeatAction.Action(beat + 0.25f, delegate { SoundByte.PlayOneShotGame("workingDough/BallMiss"); }),
new BeatAction.Action(beat + 0.35f, delegate { missImpact.SetActive(false); }),
});
}
void MissSmall(PlayerActionEvent caller)
{
if (!shouldMiss)
{
shouldMiss = true;
return;
}
if (currentBalls.Count > 0)
{
GameObject currentBall = currentBalls[0];
currentBalls.Remove(currentBall);
GameObject.Destroy(currentBall);
}
double beat = caller.startBeat + caller.timer;
SpawnPlayerBallResult(beat, false, playerMissCurveFirst, playerMissCurveSecond, 0.25f, 0.75f);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.25f, delegate { missImpact.SetActive(true); }),
new BeatAction.Action(beat + 0.25f, delegate { SoundByte.PlayOneShotGame("workingDough/BallMiss"); }),
new BeatAction.Action(beat + 0.35f, delegate { missImpact.SetActive(false); }),
});
}
void JustSmall(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "workingDough") return;
double beat = caller.startBeat + caller.timer;
if (currentBalls.Count > 0)
{
GameObject currentBall = currentBalls[0];
currentBalls.Remove(currentBall);
GameObject.Destroy(currentBall);
}
if (state >= 1f || state <= -1f)
{
SoundByte.PlayOneShotGame("workingDough/SmallBarely");
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
playerImpact.SetActive(true);
SpawnPlayerBallResult(beat, false, playerBarelyCurveFirst, playerBarelyCurveSecond, 0.75f, 1f);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
});
return;
}
Success(false, beat);
}
void JustBig(PlayerActionEvent caller, float state)
{
if (GameManager.instance.currentGame != "workingDough") return;
double beat = caller.startBeat + caller.timer;
if (currentBalls.Count > 0)
{
GameObject currentBall = currentBalls[0];
currentBalls.Remove(currentBall);
GameObject.Destroy(currentBall);
}
if (state >= 1f || state <= -1f)
{
SoundByte.PlayOneShotGame("workingDough/BigBarely");
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
playerImpact.SetActive(true);
SpawnPlayerBallResult(beat, true, playerBarelyCurveFirst, playerBarelyCurveSecond, 0.75f, 1f);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
});
return;
}
Success(true, beat);
}
void Success(bool isBig, double beat)
{
if (isBig)
{
SoundByte.PlayOneShotGame("workingDough/rightBig");
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
backgroundAnimator.Play("BackgroundFlash", 0, 0);
}
else
{
SoundByte.PlayOneShotGame("workingDough/rightSmall");
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
}
playerImpact.SetActive(true);
SpawnPlayerBallResult(beat, isBig, playerExitUpCurve, playerExitDownCurve, 0.5f, 0.5f);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + 0.1f, delegate { playerImpact.SetActive(false); }),
new BeatAction.Action(beat + 0.9f, delegate { arrowSRRightPlayer.sprite = redArrowSprite; }),
new BeatAction.Action(beat + 1f, delegate { arrowSRRightPlayer.sprite = whiteArrowSprite; }),
new BeatAction.Action(beat + 2f, delegate { SpawnBGBall(beat + 2f, isBig); }),
});
}
void SpawnBGBall(double beat, bool isBig)
{ {
var objectToSpawn = isBig ? bigBGBall : smallBGBall; var objectToSpawn = isBig ? bigBGBall : smallBGBall;
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder); var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<BGBall>(); var ballComponent = spawnedBall.GetComponent<BGBall>();
ballComponent.startBeat = beat;
ballComponent.firstCurve = isBig ? firstBGCurveBig : firstBGCurveSmall;
ballComponent.secondCurve = isBig ? secondBGCurveBig : secondBGCurveSmall;
ballComponent.thirdCurve = isBig ? thirdBGCurveBig : thirdBGCurveSmall;
spawnedBall.SetActive(true); spawnedBall.SetActive(true);
ballComponent.Init(beat, hasGandw);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{ {
new BeatAction.Action(beat + 9f, delegate { if (!spaceshipRisen) spaceshipAnimator.Play("AbsorbBall", 0, 0); }), new BeatAction.Action(beat + 9f, delegate { if (!spaceshipRisen && !bgDisabled) spaceshipAnimator.Play("AbsorbBall", 0, 0); }),
}); });
} }
@ -750,6 +576,7 @@ namespace HeavenStudio.Games
public void LaunchShip(double beat, float length) public void LaunchShip(double beat, float length)
{ {
if (bgDisabled) return;
spaceshipRisen = true; spaceshipRisen = true;
if (!spaceshipLights.activeSelf) if (!spaceshipLights.activeSelf)
{ {
@ -761,12 +588,12 @@ namespace HeavenStudio.Games
{ {
new BeatAction.Action(beat + length, delegate { spaceshipAnimator.Play("SpaceshipLaunch", 0, 0); }), new BeatAction.Action(beat + length, delegate { spaceshipAnimator.Play("SpaceshipLaunch", 0, 0); }),
new BeatAction.Action(beat + length, delegate { SoundByte.PlayOneShotGame("workingDough/LaunchRobot"); }), new BeatAction.Action(beat + length, delegate { SoundByte.PlayOneShotGame("workingDough/LaunchRobot"); }),
new BeatAction.Action(beat + length, delegate { SoundByte.PlayOneShotGame("workingDough/Rocket"); }),
}); });
} }
public void RiseUpShip(double beat, float length) public void RiseUpShip(double beat, float length)
{ {
if (bgDisabled) return;
spaceshipRisen = true; spaceshipRisen = true;
spaceshipRising = true; spaceshipRising = true;
risingLength = length; risingLength = length;
@ -785,6 +612,7 @@ namespace HeavenStudio.Games
public void GANDWEnterOrExit(double beat, float length, bool shouldExit) public void GANDWEnterOrExit(double beat, float length, bool shouldExit)
{ {
if (bgDisabled) return;
gandwMoving = true; gandwMoving = true;
gandwHasEntered = false; gandwHasEntered = false;
gandMovingLength = length; gandMovingLength = length;
@ -800,10 +628,9 @@ namespace HeavenStudio.Games
public void InstantGANDWEnterOrExit(bool shouldExit) public void InstantGANDWEnterOrExit(bool shouldExit)
{ {
if (bgDisabled) return;
gandwAnim.Play(shouldExit ? "GANDWLeft" : "MrGameAndWatchLeverDown", 0, 0); gandwAnim.Play(shouldExit ? "GANDWLeft" : "MrGameAndWatchLeverDown", 0, 0);
gandwHasEntered = shouldExit ? false : true; gandwHasEntered = shouldExit ? false : true;
} }
void Nothing (PlayerActionEvent caller) {}
} }
} }

View file

@ -315,7 +315,7 @@ namespace HeavenStudio.Editor
} }
else else
{ {
if (currentRemixPath == string.Empty) if (currentRemixPath == string.Empty || currentRemixPath == null)
{ {
SaveRemixFilePanel(); SaveRemixFilePanel();
} }
@ -370,15 +370,16 @@ namespace HeavenStudio.Editor
public void LoadRemix(bool create = false) public void LoadRemix(bool create = false)
{ {
if (create) if (create)
{
GameManager.instance.NewRemix(); GameManager.instance.NewRemix();
currentRemixPath = string.Empty;
}
else else
{ {
GameManager.instance.LoadRemix(true); GameManager.instance.LoadRemix(true);
} }
Timeline.instance.LoadRemix(); Timeline.instance.LoadRemix();
Timeline.FitToSong(); Timeline.FitToSong();
currentRemixPath = string.Empty;
} }
public void OpenRemix() public void OpenRemix()

View file

@ -73,6 +73,70 @@ namespace HeavenStudio
{"resultrepeat_ng", "Next time, follow the example better."}, // "Try Again" message for call-and-response games (two-liner) {"resultrepeat_ng", "Next time, follow the example better."}, // "Try Again" message for call-and-response games (two-liner)
}; };
static Dictionary<string, object> tempoChangeModel = new()
{
{"tempo", 120f},
{"swing", 0f},
{"timeSignature", new Vector2(4, 4)},
};
static Dictionary<string, object> volumeChangeModel = new()
{
{"volume", 1f},
{"fade", Util.EasingFunction.Ease.Instant},
};
static Dictionary<string, object> sectionMarkModel = new()
{
{"sectionName", ""},
{"isCheckpoint", false},
{"startPerfect", false},
{"breakSection", false},
{"extendsPrevious", false},
{"sectionWeight", 1f},
};
static void PreProcessSpecialEntity(RiqEntity e, Dictionary<string, object> model)
{
foreach (var t in model)
{
string propertyName = t.Key;
Type type = t.Value.GetType();
if (!e.dynamicData.ContainsKey(propertyName))
{
e.CreateProperty(propertyName, t.Value);
}
Type pType = e[propertyName].GetType();
if (pType != type)
{
try
{
if (type == typeof(Util.EasingFunction.Ease) && (pType == typeof(string) || pType == typeof(int) || pType == typeof(long)))
{
if (pType == typeof(int) || pType == typeof(long) || pType == typeof(Jukebox.EasingFunction.Ease))
{
e[propertyName] = (Util.EasingFunction.Ease)e[propertyName];
}
else
e[propertyName] = Enum.Parse(typeof(Util.EasingFunction.Ease), (string)e[propertyName]);
}
else if (type.IsEnum)
e[propertyName] = (int)e[propertyName];
else if (pType == typeof(Newtonsoft.Json.Linq.JObject))
e[propertyName] = e[propertyName].ToObject(type);
else
e[propertyName] = Convert.ChangeType(e[propertyName], type);
}
catch
{
Debug.LogWarning($"Could not convert {propertyName} to {type}! Using default value...");
// use default value
e.CreateProperty(propertyName, t.Value);
}
}
}
}
/// <summary> /// <summary>
/// processes an riq beatmap after it is loaded /// processes an riq beatmap after it is loaded
/// </summary> /// </summary>
@ -102,6 +166,13 @@ namespace HeavenStudio
var parameters = new List<Minigames.Param>(); var parameters = new List<Minigames.Param>();
foreach (var item in e.dynamicData) foreach (var item in e.dynamicData)
{ {
Debug.Log($"k: {item.Key}, v: {item.Value}");
if (item.Key == "track")
continue;
if (item.Value == null)
{
e[item.Key] = 0;
}
var value = item.Value; var value = item.Value;
if (value.GetType() == typeof(long)) if (value.GetType() == typeof(long))
value = new EntityTypes.Integer(int.MinValue, int.MaxValue, (int)value); value = new EntityTypes.Integer(int.MinValue, int.MaxValue, (int)value);
@ -179,31 +250,21 @@ namespace HeavenStudio
foreach (var tempo in data.tempoChanges) foreach (var tempo in data.tempoChanges)
{ {
tempo["tempo"] = (float)tempo["tempo"]; PreProcessSpecialEntity(tempo, tempoChangeModel);
tempo["swing"] = (float)tempo["swing"]; }
if (tempo.dynamicData.ContainsKey("timeSignature")) if (data.tempoChanges[0]["tempo"] <= 0)
tempo["timeSignature"] = (Vector2)tempo["timeSignature"]; {
else data.tempoChanges[0]["tempo"] = 120;
tempo.dynamicData.Add("timeSignature", new Vector2(4, 4));
} }
foreach (var vol in data.volumeChanges) foreach (var vol in data.volumeChanges)
{ {
vol["volume"] = (float)vol["volume"]; PreProcessSpecialEntity(vol, volumeChangeModel);
if (vol["fade"].GetType() == typeof(string))
vol["fade"] = Enum.Parse(typeof(Util.EasingFunction.Ease), (string)vol["fade"]);
else
vol["fade"] = (Util.EasingFunction.Ease)vol["fade"];
} }
foreach (var section in data.beatmapSections) foreach (var section in data.beatmapSections)
{ {
section["sectionName"] = (string)section["sectionName"]; PreProcessSpecialEntity(section, sectionMarkModel);
section["isCheckpoint"] = (bool)section["isCheckpoint"];
section["startPerfect"] = (bool)section["startPerfect"];
section["breakSection"] = (bool)section["breakSection"];
section["extendsPrevious"] = (bool)section["extendsPrevious"];
section["sectionWeight"] = (float)section["sectionWeight"];
} }
//go thru each property of the model beatmap and add any missing keyvalue pair //go thru each property of the model beatmap and add any missing keyvalue pair

View file

@ -1,40 +1,40 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3433660309 CRC: 2726306962
AssetBundleManifest: AssetBundleManifest:
AssetBundleInfos: AssetBundleInfos:
Info_0: Info_0:
Name: karate/common Name: ctrpillow/common
Dependencies: {} Dependencies: {}
Info_1: Info_1:
Name: ntrsamurai/common Name: karate/common
Dependencies: {} Dependencies: {}
Info_2: Info_2:
Name: agbmarcher/common Name: agbmarcher/common
Dependencies: {} Dependencies: {}
Info_3: Info_3:
Name: ctrcatchy/common
Dependencies: {}
Info_4:
Name: ntrdj/common Name: ntrdj/common
Dependencies: Dependencies:
Dependency_0: rvldate/common Dependency_0: rvldate/common
Info_5: Info_4:
Name: ctrpillow/locale.en Name: ctrpillow/locale.en
Dependencies: {} Dependencies: {}
Info_5:
Name: ntrsamurai/common
Dependencies: {}
Info_6: Info_6:
Name: rvlbooks/locale.en Name: ntridol/common
Dependencies: {} Dependencies: {}
Info_7: Info_7:
Name: ntridol/locale.jp Name: rvlbooks/locale.en
Dependencies: {} Dependencies: {}
Info_8: Info_8:
Name: ctrpillow/common Name: ntridol/locale.jp
Dependencies: {} Dependencies: {}
Info_9: Info_9:
Name: rvlbooks/common Name: rvlbooks/common
Dependencies: {} Dependencies: {}
Info_10: Info_10:
Name: ntridol/common Name: ctrcatchy/common
Dependencies: {} Dependencies: {}
Info_11: Info_11:
Name: agbmarcher/locale.en Name: agbmarcher/locale.en
@ -58,162 +58,162 @@ AssetBundleManifest:
Name: ntrsamurai/locale.en Name: ntrsamurai/locale.en
Dependencies: {} Dependencies: {}
Info_18: Info_18:
Name: rvlbadminton/common
Dependencies: {}
Info_19:
Name: agbghost/common
Dependencies: {}
Info_20:
Name: agbclap/common
Dependencies: {}
Info_21:
Name: ctrteppan/common
Dependencies: {}
Info_22:
Name: rvldough/common
Dependencies: {}
Info_23:
Name: rvlseesaw/common
Dependencies: {}
Info_24:
Name: rvlfork/common
Dependencies: {}
Info_25:
Name: mobtrick/common
Dependencies: {}
Info_26:
Name: rvlinterview/locale.en
Dependencies: {}
Info_27:
Name: rvlseal/locale.en
Dependencies: {}
Info_28:
Name: agbtoss/common
Dependencies: {}
Info_29:
Name: ntrassembly/common
Dependencies: {}
Info_30:
Name: rvlinterview/common
Dependencies: {}
Info_31:
Name: rvlrotation/common
Dependencies: {}
Info_32:
Name: agbhair/common
Dependencies: {}
Info_33:
Name: ctrinterpreter/common
Dependencies: {}
Info_34:
Name: rvllegs/common
Dependencies: {}
Info_35:
Name: rvlbadminton/locale.en
Dependencies: {}
Info_36:
Name: pcosomen/common
Dependencies: {}
Info_37:
Name: ctrintro/common
Dependencies: {}
Info_38:
Name: agbquiz/common
Dependencies:
Dependency_0: karate/common
Info_39:
Name: ntrshugyo/locale.en
Dependencies: {}
Info_40:
Name: agboffbeat/common
Dependencies: {}
Info_41:
Name: ctrbear/common
Dependencies: {}
Info_42:
Name: ntrninja/common
Dependencies: {}
Info_43:
Name: ntrsoccer/common Name: ntrsoccer/common
Dependencies: {} Dependencies: {}
Info_44: Info_19:
Name: ntrbackbeat/common Name: rvlfork/common
Dependencies: {} Dependencies: {}
Info_45: Info_20:
Name: rvlrocket/common Name: rvlseal/locale.en
Dependencies: {} Dependencies: {}
Info_46: Info_21:
Name: ntrstomp/common Name: agbspacedance/locale.jp
Dependencies: {} Dependencies: {}
Info_47: Info_22:
Name: agbspacedance/common Name: rvlseal/common
Dependencies: {} Dependencies: {}
Info_48: Info_23:
Name: agbclap/common
Dependencies: {}
Info_24:
Name: ntrshugyo/locale.en
Dependencies: {}
Info_25:
Name: ntrninja/common
Dependencies: {}
Info_26:
Name: agbbatter/common Name: agbbatter/common
Dependencies: Dependencies:
Dependency_0: karate/common Dependency_0: karate/common
Info_49: Info_27:
Name: rvldate/common
Dependencies:
Dependency_0: ntrdj/common
Info_50:
Name: ntrboxshow/common
Dependencies: {}
Info_51:
Name: agbexplode/common
Dependencies: {}
Info_52:
Name: ntrcork/common
Dependencies: {}
Info_53:
Name: pcomeat/common Name: pcomeat/common
Dependencies: {} Dependencies: {}
Info_54: Info_28:
Name: ntrsoccer/locale.en Name: rvldough/common
Dependencies: {} Dependencies: {}
Info_55: Info_29:
Name: agbspacedance/locale.jp Name: rvlrocket/common
Dependencies: {} Dependencies: {}
Info_56: Info_30:
Name: rvldrum/common Name: ctrinterpreter/common
Dependencies: {} Dependencies: {}
Info_57: Info_31:
Name: ntrtunnel/locale.en
Dependencies: {}
Info_58:
Name: rvlseal/common
Dependencies: {}
Info_59:
Name: ntrboxshow/locale.en
Dependencies: {}
Info_60:
Name: ntrpingpong/common
Dependencies: {}
Info_61:
Name: ntrtunnel/common
Dependencies: {}
Info_62:
Name: ntrshugyo/common
Dependencies: {}
Info_63:
Name: ntrchorus/common
Dependencies: {}
Info_64:
Name: rvlseesaw/locale.en Name: rvlseesaw/locale.en
Dependencies: {} Dependencies: {}
Info_65: Info_32:
Name: rvlseesaw/common
Dependencies: {}
Info_33:
Name: agbwizard/common Name: agbwizard/common
Dependencies: {} Dependencies: {}
Info_66: Info_34:
Name: rvldrum/common
Dependencies: {}
Info_35:
Name: agbtoss/common
Dependencies: {}
Info_36:
Name: rvlinterview/common
Dependencies: {}
Info_37:
Name: ntrbackbeat/common
Dependencies: {}
Info_38:
Name: rvlinterview/locale.en
Dependencies: {}
Info_39:
Name: agbexplode/common
Dependencies: {}
Info_40:
Name: rvlrotation/locale.en
Dependencies: {}
Info_41:
Name: ctrteppan/common
Dependencies: {}
Info_42:
Name: ctrbear/common
Dependencies: {}
Info_43:
Name: ntrboxshow/locale.en
Dependencies: {}
Info_44:
Name: agbhair/common
Dependencies: {}
Info_45:
Name: rvlbadminton/common
Dependencies: {}
Info_46:
Name: rvllegs/common
Dependencies: {}
Info_47:
Name: rvlbadminton/locale.en
Dependencies: {}
Info_48:
Name: agbtap/common Name: agbtap/common
Dependencies: Dependencies:
Dependency_0: ntridol/common Dependency_0: ntridol/common
Info_67: Info_49:
Name: ntrchorus/locale.en Name: ntrchorus/locale.en
Dependencies: {} Dependencies: {}
Info_68: Info_50:
Name: rvlrotation/locale.en Name: agbspacedance/common
Dependencies: {} Dependencies: {}
Info_69: Info_51:
Name: rvldate/common
Dependencies:
Dependency_0: ntrdj/common
Info_52:
Name: rvlrotation/common
Dependencies: {}
Info_53:
Name: ntrboxshow/common
Dependencies: {}
Info_54:
Name: ntrassembly/common
Dependencies: {}
Info_55:
Name: ntrpingpong/common
Dependencies: {}
Info_56:
Name: agbquiz/common
Dependencies:
Dependency_0: karate/common
Info_57:
Name: ctrintro/common
Dependencies: {}
Info_58:
Name: agboffbeat/common
Dependencies: {}
Info_59:
Name: mobtrick/common
Dependencies: {}
Info_60:
Name: ntrcork/common
Dependencies: {}
Info_61:
Name: ntrchorus/common
Dependencies: {}
Info_62:
Name: rvllegs/locale.en Name: rvllegs/locale.en
Dependencies: {} Dependencies: {}
Info_63:
Name: ntrshugyo/common
Dependencies: {}
Info_64:
Name: pcosomen/common
Dependencies: {}
Info_65:
Name: ntrstomp/common
Dependencies: {}
Info_66:
Name: agbghost/common
Dependencies: {}
Info_67:
Name: ntrtunnel/locale.en
Dependencies: {}
Info_68:
Name: ntrtunnel/common
Dependencies: {}
Info_69:
Name: ntrsoccer/locale.en
Dependencies: {}

View file

@ -3,7 +3,7 @@ CRC: 3295541411
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 7a6ba1a59eb400a7c52f9daf4fe9b3dd Hash: d691f8e7ab026ae0af6a7d5b7ae9768b
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 4f2ec9d4a37fcaf8265a07a3a5b7905b Hash: 4f2ec9d4a37fcaf8265a07a3a5b7905b
@ -96,4 +96,4 @@ Assets:
- Assets/Resources/Sprites/Games/Spaceball/baseball.png - Assets/Resources/Sprites/Games/Spaceball/baseball.png
- Assets/Resources/Sprites/Games/Spaceball/Animations/Idle.anim - Assets/Resources/Sprites/Games/Spaceball/Animations/Idle.anim
Dependencies: Dependencies:
- C:/Users/bdlaw/Documents/GitHub/HeavenStudio-AstrlJelly/Assets/StreamingAssets/karate/common - C:/Users/rasmu/OneDrive/Dokumenter/GitHub/HeavenStudio/Assets/StreamingAssets/karate/common

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3399159176 CRC: 4285283603
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 44c3bdbc8066d8b9f8d29f107c6df42d Hash: b90d22e37d42b5cc71409ec1671da401
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: b7dda81a5a0adc681edb9e6a78b49c82 Hash: b7dda81a5a0adc681edb9e6a78b49c82

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3952915582 CRC: 2706586621
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 6bbf6024922d57739466e33aae70becb Hash: 38c8b8fc314a6dbc223338bed4d0ec90
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 6ab6f5dbbbc64091fe41d0a8194baa43 Hash: 6ab6f5dbbbc64091fe41d0a8194baa43

View file

@ -3,7 +3,7 @@ CRC: 1219842047
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: a01397878cd927fcdf94e9a92868b4c5 Hash: d3ecaaaf4e32380396f248076d073d1f
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 7d376826375f2c77db0d94db3474ea48 Hash: 7d376826375f2c77db0d94db3474ea48

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 388204884 CRC: 3910519356
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 258bdeeaf15739d0b2cda5ee4321e42f Hash: ab8866c439462ff8003599378ddda237
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: b20f138d4c27c64a38b438efe12d137f Hash: b20f138d4c27c64a38b438efe12d137f

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 475114992 CRC: 2776406185
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 00245f07ed1e60e78624a147c6070fcf Hash: 2e302cf48b40bc531bd32b21fc9e3dc2
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 78b02268f01f8b6a77a608289ecb9d38 Hash: 78b02268f01f8b6a77a608289ecb9d38
@ -108,4 +108,4 @@ Assets:
- Assets/Resources/Sfx/games/quizShow/hostDPad.ogg - Assets/Resources/Sfx/games/quizShow/hostDPad.ogg
- Assets/Resources/Sfx/games/quizShow/hostExplode.ogg - Assets/Resources/Sfx/games/quizShow/hostExplode.ogg
Dependencies: Dependencies:
- C:/Users/bdlaw/Documents/GitHub/HeavenStudio-AstrlJelly/Assets/StreamingAssets/karate/common - C:/Users/rasmu/OneDrive/Dokumenter/GitHub/HeavenStudio/Assets/StreamingAssets/karate/common

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 867686949 CRC: 940254835
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 679d9c125a38f42ee552a09b2d8450ca Hash: 1bc9632ce0bab6e32880981e2618e8b3
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: ddb2c4a70034b0784bb73c06ec09460c Hash: ddb2c4a70034b0784bb73c06ec09460c

View file

@ -3,7 +3,7 @@ CRC: 3317229876
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: feadaf1bb10efdd7ecb80e3bdf44f16f Hash: b67be0d3f6a8b7b385b6d81c034e7e05
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 15c41fad7e66ce2236de71530bb543ef Hash: 15c41fad7e66ce2236de71530bb543ef
@ -115,4 +115,4 @@ Assets:
- Assets/Resources/Sprites/Games/TapTrial/Animations/Giraffe/Giraffe.controller - Assets/Resources/Sprites/Games/TapTrial/Animations/Giraffe/Giraffe.controller
- Assets/Resources/Sprites/Games/TapTrial/Animations/girl_bop/Bop.anim - Assets/Resources/Sprites/Games/TapTrial/Animations/girl_bop/Bop.anim
Dependencies: Dependencies:
- C:/Users/bdlaw/Documents/GitHub/HeavenStudio-AstrlJelly/Assets/StreamingAssets/ntridol/common - C:/Users/rasmu/OneDrive/Dokumenter/GitHub/HeavenStudio/Assets/StreamingAssets/ntridol/common

View file

@ -3,7 +3,7 @@ CRC: 2283269108
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 54dc5cc4467153fc42d7fec3c0ff99cf Hash: bb54fc1d73dc1a84c27dae5905a5cc81
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 545a4a8276e4957bfa14c0b989e80093 Hash: 545a4a8276e4957bfa14c0b989e80093

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 1308388737 CRC: 435520197
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: a2bdf947ec7535dd0f3a7ab45fc9b661 Hash: a6b7c0a19453a1a0398bcb15e81ed8f5
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 01ef6a58e233b3cb8a54b2d9152d3e5e Hash: 01ef6a58e233b3cb8a54b2d9152d3e5e

View file

@ -3,7 +3,7 @@ CRC: 763472146
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 5941e1757fea6a56f10397ebd34c5ae8 Hash: ecb00cf092701b5128cc9bf5b020bcbe
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: cb525cb072c33c8e5692f23a42da04e4 Hash: cb525cb072c33c8e5692f23a42da04e4

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 608430613 CRC: 3779117211
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: c11b541d6d261d4dd9290709670eab03 Hash: 3df64602dae1644c40a73e63047b5d91
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 6a87535638e108a5e3588d5397c1cf0a Hash: 6a87535638e108a5e3588d5397c1cf0a

View file

@ -3,7 +3,7 @@ CRC: 2347972319
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: d7df6dc0bc2560d650eb8f8469f30c57 Hash: 812f8de04338cbb289b3aeb7d0c1255a
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 05da4ec6b369274f98afefde205bcdc6 Hash: 05da4ec6b369274f98afefde205bcdc6

View file

@ -1,12 +1,12 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 1567785116 CRC: 1820358078
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: f8bb872517b07560a31ba951ad28e9dc Hash: 43643198b112932a4fdf0b1da91e8a08
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: fcb38c44c374dbbc10b37e4f25d6f505 Hash: a7c568f5d3a8f80a33b7dd26fe5a006a
HashAppended: 0 HashAppended: 0
ClassTypes: ClassTypes:
- Class: 1 - Class: 1

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0 ManifestFileVersion: 0
CRC: 3225447570 CRC: 1678427662
Hashes: Hashes:
AssetFileHash: AssetFileHash:
serializedVersion: 2 serializedVersion: 2
Hash: 695f4d61fc4319a10268a5d63bf73579 Hash: 61fc8edb7d12ddb21197f9f6d61e6618
TypeTreeHash: TypeTreeHash:
serializedVersion: 2 serializedVersion: 2
Hash: 460be591ec703ee0603b7b23c7810e85 Hash: 460be591ec703ee0603b7b23c7810e85

Some files were not shown because too many files have changed in this diff Show more