Merge branch 'release_1' into pr/458

This commit is contained in:
minenice55 2023-06-13 17:22:01 -04:00
commit b8d149743a
128 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_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &8898776425258279798
Transform:
m_ObjectHideFlags: 0
@ -28,7 +28,9 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 4.49, y: 0.602, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: []
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3429292909572810764}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,6 +45,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -95,19 +98,89 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3}
m_Name:
m_EditorClassIdentifier:
inList: 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
offset: {x: 0, y: 0, z: 0}
gandw: {fileID: 6300713999374807912}
--- !u!1 &6300713999374807912
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3429292909572810764}
- component: {fileID: 4284967863880477732}
m_Layer: 0
m_Name: GANDWPanic
m_TagString: Untagged
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_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &1939846946620489509
Transform:
m_ObjectHideFlags: 0
@ -28,6 +28,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 4.49, y: 0.602, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
@ -43,6 +44,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -95,19 +97,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 90b8363d14ba26043977a371000195e9, type: 3}
m_Name:
m_EditorClassIdentifier:
inList: 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
offset: {x: 0, y: -0.1, z: 0}

View file

@ -1,5 +1,89 @@
%YAML 1.1
%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
GameObject:
m_ObjectHideFlags: 0
@ -28,7 +112,9 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -2.25, y: 1.23, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: []
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8343967659989156093}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,6 +129,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -95,16 +182,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f589a35cd43c5a146b78729182754157, type: 3}
m_Name:
m_EditorClassIdentifier:
inList: 0
state:
gameObject: {fileID: 0}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0
currentFlyingStage: 0
offset: {x: 0, y: 0, z: 0}
gandw: {fileID: 127416993571198491}

View file

@ -28,7 +28,9 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.22084074, y: -0.63551337, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children: []
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6137996491949804115}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,6 +45,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -95,19 +98,89 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 6334d8b26ef6dcc4b9a03aa49dfa2d70, type: 3}
m_Name:
m_EditorClassIdentifier:
inList: 0
state:
gameObject: {fileID: 0}
early: 0
perfect: 0
late: 0
createBeat: 0
eligibleHitsList: []
aceTimes: 0
isEligible: 0
triggersAutoplay: 1
startBeat: 0
firstBeatsToTravel: 0.5
secondBeatsToTravel: 0.5
goingDown: 0
deletingAutomatically: 1
offset: {x: 0, y: 0, z: 0}
gandw: {fileID: 5437919248584760982}
--- !u!1 &5437919248584760982
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6137996491949804115}
- component: {fileID: 481947469191582981}
m_Layer: 0
m_Name: GANDWPanic
m_TagString: Untagged
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
3D: 1
userData:
assetBundleName: rvldough/common
assetBundleName:
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
3D: 1
userData:
assetBundleName: rvldough/common
assetBundleName:
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:

View file

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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8e093e5d923d6eb40baf690943492453
guid: a6753eb2b7364a0489f6ae13142a7ef7
AudioImporter:
externalObjects: {}
serializedVersion: 6
@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0
3D: 1
userData:
assetBundleName: rvldough/common
assetBundleName:
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:

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:

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:

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:

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;
}
catch (System.IO.FileNotFoundException f)
{
Debug.LogWarning("chart has no music: " + f.Message);
Conductor.instance.musicSource.clip = null;
}
catch (Exception e)
{
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
var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" });
allEnds.Sort((x, y) => x.beat.CompareTo(y.beat));
//get the beat of the closest end event
foreach (var end in allEnds)
if (allEnds.Count == 0)
{
if (end.datamodel.Split(2) == "cropStomp") continue;
if (end.beat > startBeat)
endBeat = double.MaxValue;
}
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;
break;
if (end.datamodel.Split(2) == "cropStomp") continue;
if (end.beat > startBeat)
{
endBeat = end.beat;
break;
}
}
}

View file

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

View file

@ -113,12 +113,12 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("passTurn", "Pass Turn")
{
function = delegate { var e = eventCaller.currentEntity; Rockers.instance.PassTurn(e.beat, e.length, e["moveCamera"]); },
resizable = true,
preFunction = delegate { var e = eventCaller.currentEntity; Rockers.PrePassTurn(e.beat, e["moveCamera"]); },
parameters = new List<Param>
{
new Param("moveCamera", true, "Move Camera", "Should the camera move?")
}
},
preFunctionLength = 1
},
new GameAction("cmon", "C'mon!")
{
@ -322,6 +322,7 @@ namespace HeavenStudio.Games
using Scripts_Rockers;
using Starpelly;
using System;
using UnityEngine.UIElements;
public class Rockers : Minigame
{
@ -529,6 +530,14 @@ namespace HeavenStudio.Games
return tempEvents;
}
struct QueuedPassTurn
{
public double beat;
public bool moveCamera;
}
private static List<QueuedPassTurn> passedTurns = new List<QueuedPassTurn>();
private void Start()
{
if (PlayerInput.Pressing())
@ -593,6 +602,15 @@ namespace HeavenStudio.Games
queuedPreInterval.Clear();
}
if (passedTurns.Count > 0)
{
foreach (var turn in passedTurns)
{
PassTurn(turn.beat, turn.moveCamera);
}
passedTurns.Clear();
}
float normalizedBeat = cond.GetPositionFromBeat(cameraMoveBeat, 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)
{
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;
@ -988,26 +1021,51 @@ namespace HeavenStudio.Games
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, 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"]);
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")
{
RockerBendInput bendComp = Instantiate(rockerBendInputRef, transform);
bendComp.Init(crEvent["Pitch"], beat, length + crEvent.relativeBeat);
ScheduleInput(beat, length + crEvent.relativeBeat + crEvent.length, InputType.DIRECTION_UP, JustUnBend, UnBendMiss, Empty);
bendComp.Init(crEvent["Pitch"], beat, crEvent.relativeBeat);
ScheduleInput(beat, crEvent.relativeBeat + crEvent.length, InputType.DIRECTION_UP, JustUnBend, UnBendMiss, Empty);
}
}
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)
{
lastTargetCameraX = GameCamera.additionalPosition.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
{
public class BGBall : MonoBehaviour
public class BGBall : SuperCurveObject
{
public double startBeat;
public float firstBeatsToTravel = 3f;
public float secondBeatsToTravel = 1f;
public float thirdBeatsToTravel = 3f;
public enum CurveStage
private double startBeat = double.MinValue;
private Path path;
[SerializeField] private GameObject gandw;
public void Init(double beat, bool hasGandw)
{
Conveyer = 0,
StartFall = 1,
Fall = 2
startBeat = beat;
path = WorkingDough.instance.GetPath("BGBall");
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()
{
var cond = Conductor.instance;
float flyPos = 0f;
switch (currentCurveStage)
if (cond.isPlaying && !cond.isPaused)
{
case CurveStage.Conveyer:
flyPos = cond.GetPositionFromBeat(startBeat, firstBeatsToTravel);
transform.position = firstCurve.GetPoint(flyPos);
if (flyPos > 1f)
{
currentCurveStage = CurveStage.StartFall;
}
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;
double beat = cond.songPositionInBeats;
if (startBeat != double.MinValue)
{
Vector3 pos = GetPathPositionFromBeat(path, Math.Max(startBeat, beat), startBeat);
transform.position = pos;
transform.rotation = Quaternion.Euler(0f, 0f, transform.rotation.eulerAngles.z - (-90 * Time.deltaTime * (1f / Conductor.instance.pitchedSecPerBeat)));
if (beat >= startBeat + 9) Destroy(gameObject);
}
}
}
}

View file

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

View file

@ -7,36 +7,200 @@ using HeavenStudio.Util;
namespace HeavenStudio.Games.Scripts_WorkingDough
{
public class PlayerEnterDoughBall : MonoBehaviour
public class PlayerEnterDoughBall : SuperCurveObject
{
public double startBeat;
public float firstBeatsToTravel = 0.5f;
public float secondBeatsToTravel = 0.5f;
public bool goingDown = false;
public bool deletingAutomatically = true;
[NonSerialized] public BezierCurve3D firstCurve;
[NonSerialized] public BezierCurve3D secondCurve;
private enum State
{
None,
Entering,
Hit,
Barely,
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()
{
var cond = Conductor.instance;
float flyPos = 0f;
if (goingDown)
if (cond.isPlaying && !cond.isPaused)
{
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);
if (flyPos > 1f) if (deletingAutomatically) GameObject.Destroy(gameObject);
private void Just(PlayerActionEvent caller, float state)
{
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
{
flyPos = cond.GetPositionFromBeat(startBeat, firstBeatsToTravel);
transform.position = firstCurve.GetPoint(flyPos);
if (flyPos > 1f) goingDown = true;
SoundByte.PlayOneShotGame("workingDough/smallPlayer");
SoundByte.PlayOneShotGame("workingDough/hitSmallPlayer");
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")
{
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); },
defaultLength = 8f,
resizable = true,
priority = 2
priority = 2,
},
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); },
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, false, false); },
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")
{
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, true); },
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, true); },
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, true, e["hasGandw"]); },
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")
{
@ -91,6 +101,11 @@ namespace HeavenStudio.Games.Loaders
defaultLength = 0.5f,
priority = 0
},
new GameAction("disableBG", "Toggle Background")
{
function = delegate { WorkingDough.instance.DisableBG(); },
defaultLength = 0.5f
}
},
new List<string>() {"rvl", "repeat"},
"rvldough", "en",
@ -103,6 +118,7 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games
{
using Scripts_WorkingDough;
public class WorkingDough : Minigame
{
[Header("Components")]
@ -113,22 +129,22 @@ namespace HeavenStudio.Games
[SerializeField] GameObject ballTransporterRightPlayer; //Close and open animations
[SerializeField] GameObject ballTransporterLeftPlayer; //Close and open animations
[SerializeField] GameObject npcImpact;
[SerializeField] GameObject playerImpact;
public GameObject playerImpact;
[SerializeField] GameObject smallBallNPC;
[SerializeField] GameObject bigBallNPC;
[SerializeField] Transform ballHolder;
[SerializeField] SpriteRenderer arrowSRLeftNPC;
[SerializeField] SpriteRenderer arrowSRRightNPC;
[SerializeField] SpriteRenderer arrowSRLeftPlayer;
[SerializeField] SpriteRenderer arrowSRRightPlayer;
public SpriteRenderer arrowSRRightPlayer;
[SerializeField] GameObject NPCBallTransporters;
[SerializeField] GameObject PlayerBallTransporters;
[SerializeField] GameObject playerEnterSmallBall;
[SerializeField] GameObject playerEnterBigBall;
[SerializeField] GameObject missImpact;
[SerializeField] Transform breakParticleHolder;
[SerializeField] GameObject breakParticleEffect;
[SerializeField] Animator backgroundAnimator;
public GameObject missImpact;
public Transform breakParticleHolder;
public GameObject breakParticleEffect;
public Animator backgroundAnimator;
[SerializeField] Animator conveyerAnimator;
[SerializeField] GameObject smallBGBall;
[SerializeField] GameObject bigBGBall;
@ -137,103 +153,114 @@ namespace HeavenStudio.Games
[SerializeField] Animator doughDudesHolderAnim;
[SerializeField] Animator gandwAnim;
[SerializeField] private GameObject[] bgObjects;
private bool bgDisabled;
[Header("Variables")]
public bool intervalStarted;
double intervalStartBeat;
float risingLength = 4f;
double risingStartBeat;
float liftingLength = 4f;
double liftingStartBeat;
public static float beatInterval = 8f;
float gandMovingLength = 4f;
double gandMovingStartBeat;
public bool bigMode;
public bool bigModePlayer;
static List<QueuedBall> queuedBalls = new List<QueuedBall>();
static List<double> passedTurns = new List<double>();
struct QueuedBall
{
public double beat;
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 spaceshipRising = false;
bool liftingDoughDudes;
string liftingAnimName;
bool ballTriggerSetInterval = true;
bool gandwHasEntered = true;
bool gandwMoving;
string gandwMovingAnimName;
[Header("Curves")]
public BezierCurve3D npcEnterUpCurve;
public BezierCurve3D npcEnterDownCurve;
public BezierCurve3D npcExitUpCurve;
public BezierCurve3D npcExitDownCurve;
public BezierCurve3D playerEnterUpCurve;
public BezierCurve3D playerEnterDownCurve;
public BezierCurve3D playerExitUpCurve;
public BezierCurve3D playerExitDownCurve;
public BezierCurve3D playerMissCurveFirst;
public BezierCurve3D playerMissCurveSecond;
public BezierCurve3D playerBarelyCurveFirst;
public BezierCurve3D playerBarelyCurveSecond;
public BezierCurve3D playerWrongInputTooWeakFirstCurve;
public BezierCurve3D playerWrongInputTooWeakSecondCurve;
public BezierCurve3D firstBGCurveBig;
public BezierCurve3D secondBGCurveBig;
public BezierCurve3D thirdBGCurveBig;
public BezierCurve3D firstBGCurveSmall;
public BezierCurve3D secondBGCurveSmall;
public BezierCurve3D thirdBGCurveSmall;
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
new void OnDrawGizmos()
{
base.OnDrawGizmos();
foreach (SuperCurveObject.Path path in ballBouncePaths)
{
if (path.preview)
{
smallBallNPC.GetComponent<NPCDoughBall>().DrawEditorGizmo(path);
}
}
}
public SuperCurveObject.Path GetPath(string name)
{
foreach (SuperCurveObject.Path path in ballBouncePaths)
{
if (path.name == name)
{
return path;
}
}
return default(SuperCurveObject.Path);
}
[Header("Resources")]
public Sprite whiteArrowSprite;
public Sprite redArrowSprite;
public static WorkingDough instance;
private static CallAndResponseHandler crHandlerInstance;
void Awake()
{
if (crHandlerInstance == null)
{
crHandlerInstance = new CallAndResponseHandler(8);
}
instance = this;
}
void Start()
{
shouldMiss = true;
ballTriggerSetInterval = true;
conveyerAnimator.Play("ConveyerBelt", 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)
{
Debug.Log("Start Interval");
if (!intervalStarted)
if (!crHandlerInstance.IntervalIsActive())
{
instance.ballTriggerSetInterval = false;
intervalStarted = true;
bigMode = false;
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 {
ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
}),
new BeatAction.Action(beat + interval - 1f, delegate {
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
new BeatAction.Action(beat + interval, delegate {
@ -243,6 +270,7 @@ namespace HeavenStudio.Games
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) ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightClose", 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;
}
}),
*/
});
}
beatInterval = interval;
intervalStartBeat = beat;
crHandlerInstance.StartInterval(beat, interval);
}
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 spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<NPCDoughBall>();
ballComponent.startBeat = beat;
ballComponent.exitUpCurve = npcExitUpCurve;
ballComponent.enterUpCurve = npcEnterUpCurve;
ballComponent.exitDownCurve = npcExitDownCurve;
ballComponent.enterDownCurve = npcEnterDownCurve;
spawnedBall.SetActive(true);
ballComponent.Init(beat, hasGandw);
if (isBig && !bigMode)
{
@ -286,9 +359,6 @@ namespace HeavenStudio.Games
bigMode = true;
}
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(isBig ? "workingDough/NPCBigBall" : "workingDough/NPCSmallBall", beat + 1f),
});
arrowSRLeftNPC.sprite = redArrowSprite;
BeatAction.New(doughDudesNPC, new List<BeatAction.Action>()
@ -303,43 +373,7 @@ namespace HeavenStudio.Games
});
}
public void InstantExitBall(double beat, bool isBig, double offSet)
{
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)
public static void PreSpawnBall(double beat, bool isBig, bool hasGandw)
{
double spawnBeat = beat - 1f;
beat -= 1f;
@ -349,14 +383,14 @@ namespace HeavenStudio.Games
{
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.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 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); }),
});
}
@ -366,39 +400,50 @@ namespace HeavenStudio.Games
{
beat = beat + 1f,
isBig = isBig,
hasGandw = hasGandw
});
}
}
public void OnSpawnBall(double beat, bool isBig)
public static void OnSpawnBallInactive(double beat, bool isBig, bool hasGandw)
{
beat -= 1f;
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
if (crHandlerInstance == null)
{
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,
isBig = isBig,
new CallAndResponseHandler.CallAndResponseEventParam("hasGandw", hasGandw)
});
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 spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
ballComponent.startBeat = beat;
ballComponent.firstCurve = playerEnterUpCurve;
ballComponent.secondCurve = playerEnterDownCurve;
ballComponent.deletingAutomatically = false;
currentBalls.Add(spawnedBall);
spawnedBall.SetActive(true);
ballComponent.Init(beat, isBig, hasGandw);
if (isBig && !bigModePlayer)
{
@ -406,76 +451,33 @@ namespace HeavenStudio.Games
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>()
{
new BeatAction.Action(beat, delegate { spawnedBall.SetActive(true); }),
new BeatAction.Action(beat, delegate { arrowSRLeftPlayer.sprite = redArrowSprite; }),
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)
{
beat -= 1f;
if (GameManager.instance.currentGame == "workingDough")
{
// instance.ballTriggerSetInterval = false;
// beatInterval = interval;
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
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); }),
});
instance.SetIntervalStart(beat, interval);
}
else
{
queuedIntervals.Add(new QueuedInterval()
{
beat = beat + 1f,
interval = interval,
});
InactiveInterval(beat, interval);
}
}
void OnDestroy()
{
if (queuedIntervals.Count > 0) queuedIntervals.Clear();
if (crHandlerInstance != null && !Conductor.instance.isPlaying)
{
crHandlerInstance = null;
}
if (queuedBalls.Count > 0) queuedBalls.Clear();
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()
{
Conductor cond = Conductor.instance;
if (!cond.isPlaying || cond.isPaused)
{
if (queuedIntervals.Count > 0) queuedIntervals.Clear();
if (queuedBalls.Count > 0) queuedBalls.Clear();
}
if (spaceshipRising) spaceshipAnimator.DoScaledAnimation("RiseSpaceship", risingStartBeat, risingLength);
if (liftingDoughDudes) doughDudesHolderAnim.DoScaledAnimation(liftingAnimName, liftingStartBeat, liftingLength);
if (gandwMoving) gandwAnim.DoScaledAnimation(gandwMovingAnimName, gandMovingStartBeat, gandMovingLength);
if (queuedIntervals.Count > 0)
if (spaceshipRising && !bgDisabled) spaceshipAnimator.DoScaledAnimation("RiseSpaceship", risingStartBeat, risingLength);
if (liftingDoughDudes && !bgDisabled) doughDudesHolderAnim.DoScaledAnimation(liftingAnimName, liftingStartBeat, liftingLength);
if (gandwMoving && !bgDisabled) gandwAnim.DoScaledAnimation(gandwMovingAnimName, gandMovingStartBeat, gandMovingLength);
if (passedTurns.Count > 0)
{
foreach (var interval in queuedIntervals)
foreach (var passTurn in passedTurns)
{
ballTriggerSetInterval = false;
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); }),
});
PassTurn(passTurn);
}
queuedIntervals.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();
passedTurns.Clear();
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
{
doughDudesPlayer.GetComponent<Animator>().Play("SmallDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/PlayerSmallJump");
SoundByte.PlayOneShotGame("workingDough/smallPlayer");
}
else if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
{
doughDudesPlayer.GetComponent<Animator>().Play("BigDoughJump", 0, 0);
SoundByte.PlayOneShotGame("workingDough/PlayerBigJump");
SoundByte.PlayOneShotGame("workingDough/bigPlayer");
}
}
void WrongInputBig(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);
}
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)
public void SpawnBGBall(double beat, bool isBig, bool hasGandw)
{
var objectToSpawn = isBig ? bigBGBall : smallBGBall;
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
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);
ballComponent.Init(beat, hasGandw);
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)
{
if (bgDisabled) return;
spaceshipRisen = true;
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 { SoundByte.PlayOneShotGame("workingDough/LaunchRobot"); }),
new BeatAction.Action(beat + length, delegate { SoundByte.PlayOneShotGame("workingDough/Rocket"); }),
});
}
public void RiseUpShip(double beat, float length)
{
if (bgDisabled) return;
spaceshipRisen = true;
spaceshipRising = true;
risingLength = length;
@ -785,6 +612,7 @@ namespace HeavenStudio.Games
public void GANDWEnterOrExit(double beat, float length, bool shouldExit)
{
if (bgDisabled) return;
gandwMoving = true;
gandwHasEntered = false;
gandMovingLength = length;
@ -800,10 +628,9 @@ namespace HeavenStudio.Games
public void InstantGANDWEnterOrExit(bool shouldExit)
{
if (bgDisabled) return;
gandwAnim.Play(shouldExit ? "GANDWLeft" : "MrGameAndWatchLeverDown", 0, 0);
gandwHasEntered = shouldExit ? false : true;
}
void Nothing (PlayerActionEvent caller) {}
}
}

View file

@ -315,7 +315,7 @@ namespace HeavenStudio.Editor
}
else
{
if (currentRemixPath == string.Empty)
if (currentRemixPath == string.Empty || currentRemixPath == null)
{
SaveRemixFilePanel();
}
@ -370,15 +370,16 @@ namespace HeavenStudio.Editor
public void LoadRemix(bool create = false)
{
if (create)
{
GameManager.instance.NewRemix();
currentRemixPath = string.Empty;
}
else
{
GameManager.instance.LoadRemix(true);
}
Timeline.instance.LoadRemix();
Timeline.FitToSong();
currentRemixPath = string.Empty;
}
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)
};
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>
/// processes an riq beatmap after it is loaded
/// </summary>
@ -102,6 +166,13 @@ namespace HeavenStudio
var parameters = new List<Minigames.Param>();
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;
if (value.GetType() == typeof(long))
value = new EntityTypes.Integer(int.MinValue, int.MaxValue, (int)value);
@ -179,31 +250,21 @@ namespace HeavenStudio
foreach (var tempo in data.tempoChanges)
{
tempo["tempo"] = (float)tempo["tempo"];
tempo["swing"] = (float)tempo["swing"];
if (tempo.dynamicData.ContainsKey("timeSignature"))
tempo["timeSignature"] = (Vector2)tempo["timeSignature"];
else
tempo.dynamicData.Add("timeSignature", new Vector2(4, 4));
PreProcessSpecialEntity(tempo, tempoChangeModel);
}
if (data.tempoChanges[0]["tempo"] <= 0)
{
data.tempoChanges[0]["tempo"] = 120;
}
foreach (var vol in data.volumeChanges)
{
vol["volume"] = (float)vol["volume"];
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"];
PreProcessSpecialEntity(vol, volumeChangeModel);
}
foreach (var section in data.beatmapSections)
{
section["sectionName"] = (string)section["sectionName"];
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"];
PreProcessSpecialEntity(section, sectionMarkModel);
}
//go thru each property of the model beatmap and add any missing keyvalue pair

View file

@ -1,40 +1,40 @@
ManifestFileVersion: 0
CRC: 3433660309
CRC: 2726306962
AssetBundleManifest:
AssetBundleInfos:
Info_0:
Name: karate/common
Name: ctrpillow/common
Dependencies: {}
Info_1:
Name: ntrsamurai/common
Name: karate/common
Dependencies: {}
Info_2:
Name: agbmarcher/common
Dependencies: {}
Info_3:
Name: ctrcatchy/common
Dependencies: {}
Info_4:
Name: ntrdj/common
Dependencies:
Dependency_0: rvldate/common
Info_5:
Info_4:
Name: ctrpillow/locale.en
Dependencies: {}
Info_5:
Name: ntrsamurai/common
Dependencies: {}
Info_6:
Name: rvlbooks/locale.en
Name: ntridol/common
Dependencies: {}
Info_7:
Name: ntridol/locale.jp
Name: rvlbooks/locale.en
Dependencies: {}
Info_8:
Name: ctrpillow/common
Name: ntridol/locale.jp
Dependencies: {}
Info_9:
Name: rvlbooks/common
Dependencies: {}
Info_10:
Name: ntridol/common
Name: ctrcatchy/common
Dependencies: {}
Info_11:
Name: agbmarcher/locale.en
@ -58,162 +58,162 @@ AssetBundleManifest:
Name: ntrsamurai/locale.en
Dependencies: {}
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
Dependencies: {}
Info_44:
Name: ntrbackbeat/common
Info_19:
Name: rvlfork/common
Dependencies: {}
Info_45:
Name: rvlrocket/common
Info_20:
Name: rvlseal/locale.en
Dependencies: {}
Info_46:
Name: ntrstomp/common
Info_21:
Name: agbspacedance/locale.jp
Dependencies: {}
Info_47:
Name: agbspacedance/common
Info_22:
Name: rvlseal/common
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
Dependencies:
Dependency_0: karate/common
Info_49:
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:
Info_27:
Name: pcomeat/common
Dependencies: {}
Info_54:
Name: ntrsoccer/locale.en
Info_28:
Name: rvldough/common
Dependencies: {}
Info_55:
Name: agbspacedance/locale.jp
Info_29:
Name: rvlrocket/common
Dependencies: {}
Info_56:
Name: rvldrum/common
Info_30:
Name: ctrinterpreter/common
Dependencies: {}
Info_57:
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:
Info_31:
Name: rvlseesaw/locale.en
Dependencies: {}
Info_65:
Info_32:
Name: rvlseesaw/common
Dependencies: {}
Info_33:
Name: agbwizard/common
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
Dependencies:
Dependency_0: ntridol/common
Info_67:
Info_49:
Name: ntrchorus/locale.en
Dependencies: {}
Info_68:
Name: rvlrotation/locale.en
Info_50:
Name: agbspacedance/common
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
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:
AssetFileHash:
serializedVersion: 2
Hash: 7a6ba1a59eb400a7c52f9daf4fe9b3dd
Hash: d691f8e7ab026ae0af6a7d5b7ae9768b
TypeTreeHash:
serializedVersion: 2
Hash: 4f2ec9d4a37fcaf8265a07a3a5b7905b
@ -96,4 +96,4 @@ Assets:
- Assets/Resources/Sprites/Games/Spaceball/baseball.png
- Assets/Resources/Sprites/Games/Spaceball/Animations/Idle.anim
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
CRC: 3399159176
CRC: 4285283603
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 44c3bdbc8066d8b9f8d29f107c6df42d
Hash: b90d22e37d42b5cc71409ec1671da401
TypeTreeHash:
serializedVersion: 2
Hash: b7dda81a5a0adc681edb9e6a78b49c82

View file

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

View file

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

View file

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

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 475114992
CRC: 2776406185
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 00245f07ed1e60e78624a147c6070fcf
Hash: 2e302cf48b40bc531bd32b21fc9e3dc2
TypeTreeHash:
serializedVersion: 2
Hash: 78b02268f01f8b6a77a608289ecb9d38
@ -108,4 +108,4 @@ Assets:
- Assets/Resources/Sfx/games/quizShow/hostDPad.ogg
- Assets/Resources/Sfx/games/quizShow/hostExplode.ogg
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
CRC: 867686949
CRC: 940254835
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 679d9c125a38f42ee552a09b2d8450ca
Hash: 1bc9632ce0bab6e32880981e2618e8b3
TypeTreeHash:
serializedVersion: 2
Hash: ddb2c4a70034b0784bb73c06ec09460c

View file

@ -3,7 +3,7 @@ CRC: 3317229876
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: feadaf1bb10efdd7ecb80e3bdf44f16f
Hash: b67be0d3f6a8b7b385b6d81c034e7e05
TypeTreeHash:
serializedVersion: 2
Hash: 15c41fad7e66ce2236de71530bb543ef
@ -115,4 +115,4 @@ Assets:
- Assets/Resources/Sprites/Games/TapTrial/Animations/Giraffe/Giraffe.controller
- Assets/Resources/Sprites/Games/TapTrial/Animations/girl_bop/Bop.anim
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:
AssetFileHash:
serializedVersion: 2
Hash: 54dc5cc4467153fc42d7fec3c0ff99cf
Hash: bb54fc1d73dc1a84c27dae5905a5cc81
TypeTreeHash:
serializedVersion: 2
Hash: 545a4a8276e4957bfa14c0b989e80093

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

Binary file not shown.

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 1103251951
CRC: 155563867
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: ae870462bbc5aa668ce9e7d382093efa
Hash: 97088bda9b9c1bf5d6f7e5b3edd169e0
TypeTreeHash:
serializedVersion: 2
Hash: b1f31a5996a0bf184f0808b1ad67ba96

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 2939459992
CRC: 2722877296
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 17cb122eec6a1b815712f4e4c4117aae
Hash: b6bd878ea9f8df0fcf2bc0c4581be791
TypeTreeHash:
serializedVersion: 2
Hash: 4f48d293ee91ce284b1290faa2bbe09e

View file

@ -3,7 +3,7 @@ CRC: 3751846126
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: ff172c079432477f741da8d24ff06529
Hash: 93a0fe7ec76132ff5555c8a88ffb4c04
TypeTreeHash:
serializedVersion: 2
Hash: 4f8cce0d9f727657ad6578352d0da0f2

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 68896505
CRC: 3878722035
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 05c17b1bcb126713b672a05f36a08689
Hash: 177c5870d328f716aa0421272c9470f9
TypeTreeHash:
serializedVersion: 2
Hash: f54a1062817f77cb49f442d230fcc49b

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 277471755
CRC: 103302383
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 8941246d8918d731a7ef3b29f81b75ac
Hash: a8013c8acab6ff6c0e3d077b6f6624e2
TypeTreeHash:
serializedVersion: 2
Hash: 7f5da0c07e5977d0ce994513d51f7db5

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 1725841183
CRC: 355105624
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 35a167bba48cbe81b565de21cc5212c8
Hash: d617b45ed083d248765f851fdd4edc8b
TypeTreeHash:
serializedVersion: 2
Hash: 72449c958dbfd650c57600192572509b

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 995028374
CRC: 3381801303
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 43b90ac6b27481de91aff4c51e102d9d
Hash: 2f51d8702488d5789c7b6cf29d74fa86
TypeTreeHash:
serializedVersion: 2
Hash: 8f8d4a3f1f8c01578a5ce13063d68dc6

Binary file not shown.

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 2815867801
CRC: 2871784295
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 2e097fe67ea099f1d8782df286912715
Hash: a320d8fdb11da9cf2bf295285a4a38a2
TypeTreeHash:
serializedVersion: 2
Hash: 33a4c8442a7cb8448a93c2fa6c1d77eb
@ -125,4 +125,4 @@ Assets:
- Assets/Resources/Sfx/games/djSchool/scratchoHeyLoud1.ogg
- Assets/Resources/Sprites/Games/DJSchool/Animations/Student/IdleBop.anim
Dependencies:
- C:/Users/bdlaw/Documents/GitHub/HeavenStudio-AstrlJelly/Assets/StreamingAssets/rvldate/common
- C:/Users/rasmu/OneDrive/Dokumenter/GitHub/HeavenStudio/Assets/StreamingAssets/rvldate/common

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 2241404862
CRC: 4034070136
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 76052054b904aef084d5707037f47046
Hash: 2d6f852362177521846ca2d732523b32
TypeTreeHash:
serializedVersion: 2
Hash: 22daffce395c47caabb8dcd800097d0d

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 3533234474
CRC: 3182147957
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 75fc3826026a12e7d7956e4f3168c0fc
Hash: a0076561256160326184dfb7ad07d97c
TypeTreeHash:
serializedVersion: 2
Hash: 2f052be846612c7db995ad748fa5776c

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 2551889369
CRC: 3439164552
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: e6e89066cb6285a98253746ce6d2f1ab
Hash: dd77521c6af51aacb6f1ea5fdc19bbd1
TypeTreeHash:
serializedVersion: 2
Hash: a60012dadf81e61c9a13d1a8e11bb664

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 2132977970
CRC: 1911076014
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: edb9d0bb86ae4138ec11451db3f46184
Hash: 49426dfd99db6a07775ec45a2d4591ce
TypeTreeHash:
serializedVersion: 2
Hash: 10404da84d789c089050e7869762db38

View file

@ -3,7 +3,7 @@ CRC: 3939051657
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: ce985f100d2f5d0940fb613bd86f4f91
Hash: d7238faee24ab1af3a24e18f7d48b444
TypeTreeHash:
serializedVersion: 2
Hash: c21d61fe394c58399df3c6fb5c7c99b3

View file

@ -1,12 +1,12 @@
ManifestFileVersion: 0
CRC: 2084499915
CRC: 2709514228
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 4e4f6ce08bdbb03598b9b2aff62a29c8
Hash: b0e0b074d6e4e7939ca79e071af768bb
TypeTreeHash:
serializedVersion: 2
Hash: 91fa2f9c7ee652a4a4a405c50ad96d66
Hash: 069e62d6c3f2f01ee43f5b820760a801
HashAppended: 0
ClassTypes:
- Class: 1
@ -96,10 +96,8 @@ Assets:
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Givers/TwoGiver/TwoGiveIn.anim
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Givers/OneGiver/OneIdle.anim
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Monk/Holder/IdleRight.anim
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/CloudMonkey/CloudMonkeyAnim.controller
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Monk/Eat.anim
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Monk/Stache/Stache3Bop.anim
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/CloudMonkey/Bop.anim
- Assets/Resources/Games/munchyMonk.prefab
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Monk/NoseRed.anim
- Assets/Resources/Sprites/Games/MunchyMonk/Animations/Monk/Holder/GoLeft.anim

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 3997452959
CRC: 1127646842
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: d2ac87099fff9a75acc859600a4abcf9
Hash: c0a60a571806bf4973a9611111e1247d
TypeTreeHash:
serializedVersion: 2
Hash: 178c8be186c9c9195df8cbc397bf239f

View file

@ -1,9 +1,9 @@
ManifestFileVersion: 0
CRC: 1886149944
CRC: 1926041378
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 744950f261224b05b278d9aa6c85804d
Hash: 8b0a19c55dd3bfc2277888737c316393
TypeTreeHash:
serializedVersion: 2
Hash: ee5a1c4d119c5785c396deba9ffbfd13

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