diff --git a/Assets/Resources/Games/dressYourBest.prefab b/Assets/Resources/Games/dressYourBest.prefab
index 82741280..d4c762ac 100644
--- a/Assets/Resources/Games/dressYourBest.prefab
+++ b/Assets/Resources/Games/dressYourBest.prefab
@@ -25,7 +25,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 141156244653281575}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.96599996, y: -4.9039993, z: -0.041650183}
+ m_LocalPosition: {x: 0.96599996, y: -4.9039993, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -261,6 +261,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 3350458927318833813}
+ - component: {fileID: 6037582727269570347}
m_Layer: 0
m_Name: SewingMachine
m_TagString: Untagged
@@ -288,6 +289,27 @@ Transform:
m_Father: {fileID: 5715047164748654698}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!95 &6037582727269570347
+Animator:
+ serializedVersion: 5
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1968036766370736246}
+ m_Enabled: 1
+ m_Avatar: {fileID: 0}
+ m_Controller: {fileID: 9100000, guid: 3fb73c5dd25ed2a41ab6df46331f3289, type: 2}
+ m_CullingMode: 0
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_StabilizeFeet: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorStateOnDisable: 0
+ m_WriteDefaultValuesOnDisable: 0
--- !u!1 &2015872752851088634
GameObject:
m_ObjectHideFlags: 0
@@ -313,7 +335,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2015872752851088634}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -4.712, y: -1.652, z: -0.03719481}
+ m_LocalPosition: {x: -4.712, y: -1.652, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -397,7 +419,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2049675905925234981}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -3.568, y: -1.7199999, z: -0.03719481}
+ m_LocalPosition: {x: -3.568, y: -1.72, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -728,7 +750,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!4 &8336220536032857166
Transform:
m_ObjectHideFlags: 0
@@ -847,20 +869,21 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
SoundSequences: []
- girlAnimator: {fileID: 2937590231589242979}
- monkeyAnimator: {fileID: 3536726533992943518}
+ girlAnim: {fileID: 2937590231589242979}
+ monkeyAnim: {fileID: 3536726533992943518}
+ sewingAnim: {fileID: 0}
bgSpriteRenderer: {fileID: 2629062112903974991}
lightRenderer: {fileID: 1403303695239245045}
lightMaterialTemplate: {fileID: 2100000, guid: 42b863c88a7a9c4428440728fee737bb, type: 2}
lightStates:
- inside: {r: 0.62352943, g: 0.9450981, b: 1, a: 0}
outside: {r: 0.63529414, g: 0.7960785, b: 0.9921569, a: 0}
- - inside: {r: 0, g: 0, b: 0, a: 0}
- outside: {r: 0, g: 0, b: 0, a: 0}
- - inside: {r: 0, g: 0, b: 0, a: 0}
- outside: {r: 0, g: 0, b: 0, a: 0}
- - inside: {r: 0, g: 0, b: 0, a: 0}
- outside: {r: 0, g: 0, b: 0, a: 0}
+ - inside: {r: 0.91764706, g: 0.92156863, b: 0.011764706, a: 0}
+ outside: {r: 0.9372549, g: 0.8039216, b: 0.03137255, a: 0}
+ - inside: {r: 0, g: 1, b: 0.23529412, a: 0}
+ outside: {r: 0.27450982, g: 0.7254902, b: 0.29803923, a: 0}
+ - inside: {r: 1, g: 0, b: 0, a: 0}
+ outside: {r: 0.764151, g: 0.12615699, b: 0.12615699, a: 0}
--- !u!1 &3613224206301273430
GameObject:
m_ObjectHideFlags: 0
@@ -886,7 +909,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3613224206301273430}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.882, y: -2.4099998, z: -0.041650183}
+ m_LocalPosition: {x: 0.882, y: -2.4099998, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -970,7 +993,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3910789861619125153}
m_LocalRotation: {x: 0, y: 0, z: -0.026176924, w: 0.99965733}
- m_LocalPosition: {x: -4.672, y: -3.07, z: -0.03719481}
+ m_LocalPosition: {x: -4.672, y: -3.07, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1054,7 +1077,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4167294771082036830}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -4.121, y: 0.77, z: -0.03719481}
+ m_LocalPosition: {x: -4.121, y: 0.77, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1113,6 +1136,90 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
+--- !u!1 &4325086950964595102
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4233767558195956804}
+ - component: {fileID: 3827245563414004811}
+ m_Layer: 0
+ m_Name: CallFX
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &4233767558195956804
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4325086950964595102}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.89, y: 1.24, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8769701094702201794}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &3827245563414004811
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4325086950964595102}
+ 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: 1031558133, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 1.6943521, y: 2.9435215}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
--- !u!1 &5187569342956113206
GameObject:
m_ObjectHideFlags: 0
@@ -1138,7 +1245,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5187569342956113206}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -4.916, y: -4.3479996, z: -0.03719481}
+ m_LocalPosition: {x: -4.916, y: -4.3479996, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1197,6 +1304,90 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
+--- !u!1 &5555175038130275063
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5883637438837570447}
+ - component: {fileID: 2012344898042423413}
+ m_Layer: 0
+ m_Name: Reaction
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &5883637438837570447
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5555175038130275063}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8769701094702201794}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &2012344898042423413
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5555175038130275063}
+ 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: 455743163, guid: 91eefdf066035514b82191a67d108b89, 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.6245847, y: 2.3122923}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
--- !u!1 &5831123814062995111
GameObject:
m_ObjectHideFlags: 0
@@ -1222,7 +1413,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5831123814062995111}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 1.648, y: -2.908, z: -0.041650183}
+ m_LocalPosition: {x: 1.648, y: -2.908, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1399,6 +1590,8 @@ Transform:
- {fileID: 4400926332791597022}
- {fileID: 2680789703424563267}
- {fileID: 5792578720703545176}
+ - {fileID: 4233767558195956804}
+ - {fileID: 5883637438837570447}
m_Father: {fileID: 5715047164748654698}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1448,7 +1641,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6926557567286723404}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 1.036, y: -4.0619993, z: -0.041650183}
+ m_LocalPosition: {x: 1.036, y: -4.0619993, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1532,7 +1725,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8644947211045643633}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.835, y: -0.655, z: -0.041650183}
+ m_LocalPosition: {x: 0.835, y: -0.655, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
diff --git a/Assets/Resources/Sfx/games/dressYourBest/monkey_call_long.wav.meta b/Assets/Resources/Sfx/games/dressYourBest/monkey_call_1.wav.meta
similarity index 91%
rename from Assets/Resources/Sfx/games/dressYourBest/monkey_call_long.wav.meta
rename to Assets/Resources/Sfx/games/dressYourBest/monkey_call_1.wav.meta
index 4f96cc28..eaea37eb 100644
--- a/Assets/Resources/Sfx/games/dressYourBest/monkey_call_long.wav.meta
+++ b/Assets/Resources/Sfx/games/dressYourBest/monkey_call_1.wav.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6d75cbe8993e6484bbc99bb4f400f665
+guid: f73dd04e47f1a3d44ac31d25615e759c
AudioImporter:
externalObjects: {}
serializedVersion: 6
diff --git a/Assets/Resources/Sfx/games/dressYourBest/monkey_call_short.wav.meta b/Assets/Resources/Sfx/games/dressYourBest/monkey_call_2.wav.meta
similarity index 91%
rename from Assets/Resources/Sfx/games/dressYourBest/monkey_call_short.wav.meta
rename to Assets/Resources/Sfx/games/dressYourBest/monkey_call_2.wav.meta
index 50c44970..d6ae56df 100644
--- a/Assets/Resources/Sfx/games/dressYourBest/monkey_call_short.wav.meta
+++ b/Assets/Resources/Sfx/games/dressYourBest/monkey_call_2.wav.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2036a5615fa03bc4d820d910e432c17f
+guid: 17d2845090a589c4f9529056d8d9439d
AudioImporter:
externalObjects: {}
serializedVersion: 6
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlAnim.controller b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlAnim.controller
index abe487fc..bf9e0fb2 100644
--- a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlAnim.controller
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlAnim.controller
@@ -1,5 +1,82 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-7828149284885765403
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Idle
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &-4817394413453815060
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Bop
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: e4433c424345481409aafd68156cdad9, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1107 &-4400762513100840838
+AnimatorStateMachine:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Base Layer
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: -7828149284885765403}
+ m_Position: {x: 400.8607, y: 167.10483, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -4817394413453815060}
+ m_Position: {x: 390.7923, y: 55.177094, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: -7828149284885765403}
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@@ -9,4 +86,16 @@ AnimatorController:
m_Name: GirlAnim
serializedVersion: 5
m_AnimatorParameters: []
- m_AnimatorLayers: []
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: -4400762513100840838}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlBop.anim b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlBop.anim
index 2f58dde4..ac44f21c 100644
--- a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlBop.anim
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Girl/GirlBop.anim
@@ -14,7 +14,59 @@ AnimationClip:
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
- m_PositionCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: -0.3, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.033333335
+ value: {x: 0, y: -0.253125, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.06666667
+ value: {x: 0, y: -0.16666667, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.1
+ value: {x: 0, y: -0.062239595, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.13333334
+ value: {x: 0, y: 0, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: HeadAndHair
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
@@ -24,14 +76,21 @@ AnimationClip:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
- genericBindings: []
+ genericBindings:
+ - serializedVersion: 2
+ path: 2395630981
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
- m_StopTime: 1
+ m_StopTime: 0.13333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
@@ -46,7 +105,172 @@ AnimationClip:
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
- m_EditorCurves: []
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.033333335
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.06666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.1
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.13333334
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: HeadAndHair
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -0.3
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.033333335
+ value: -0.253125
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.06666667
+ value: -0.16666667
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.1
+ value: -0.062239595
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.13333334
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: HeadAndHair
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.033333335
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.06666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.1
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.13333334
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: HeadAndHair
+ classID: 4
+ script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyAnim.controller b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyAnim.controller
index b7b0b84d..48dc5f57 100644
--- a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyAnim.controller
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyAnim.controller
@@ -1,5 +1,57 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-1409298229096361948
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Idle
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 0}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &-454298314556867067
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Call
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 0
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: d98722676c063d349967cd441c726c2e, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@@ -9,4 +61,70 @@ AnimatorController:
m_Name: MonkeyAnim
serializedVersion: 5
m_AnimatorParameters: []
- m_AnimatorLayers: []
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: 3192757657389531236}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+--- !u!1107 &3192757657389531236
+AnimatorStateMachine:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Base Layer
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: 3473590679395876847}
+ m_Position: {x: 390, y: 170, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -1409298229096361948}
+ m_Position: {x: 395.44772, y: 111.387726, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -454298314556867067}
+ m_Position: {x: 280, y: 30, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 790, y: 20, z: 0}
+ m_DefaultState: {fileID: -1409298229096361948}
+--- !u!1102 &3473590679395876847
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Bop
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: ed61417f5237bbe46bd344401a9de9c4, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyBop.anim b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyBop.anim
index a575a6d4..43433574 100644
--- a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyBop.anim
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyBop.anim
@@ -14,7 +14,59 @@ AnimationClip:
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
- m_PositionCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: -4.121, y: 0.57, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.033333335
+ value: {x: -4.121, y: 0.60125, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.06666667
+ value: {x: -4.121, y: 0.6588889, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.1
+ value: {x: -4.121, y: 0.7285069, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.13333334
+ value: {x: -4.121, y: 0.77, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: Infinity}
+ outSlope: {x: Infinity, y: Infinity, z: Infinity}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: Head
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
@@ -24,14 +76,21 @@ AnimationClip:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
- genericBindings: []
+ genericBindings:
+ - serializedVersion: 2
+ path: 130111906
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
- m_StopTime: 1
+ m_StopTime: 0.13333334
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
@@ -46,7 +105,172 @@ AnimationClip:
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
- m_EditorCurves: []
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -4.121
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.033333335
+ value: -4.121
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.06666667
+ value: -4.121
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.1
+ value: -4.121
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.13333334
+ value: -4.121
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.57
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.033333335
+ value: 0.60125
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.06666667
+ value: 0.6588889
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.1
+ value: 0.7285069
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.13333334
+ value: 0.77
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.033333335
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.06666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.1
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.13333334
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: Head
+ classID: 4
+ script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyCall.anim b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyCall.anim
new file mode 100644
index 00000000..07475a1a
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyCall.anim
@@ -0,0 +1,327 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MonkeyCall
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: -4.121, y: 0.88, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: 0}
+ outSlope: {x: 0, y: Infinity, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.083333336
+ value: {x: -4.121, y: 0.77, z: 0}
+ inSlope: {x: Infinity, y: Infinity, z: 0}
+ outSlope: {x: 0, y: Infinity, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: Head
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: -3.05, y: -1.5, z: 0}
+ inSlope: {x: 0, y: 0, z: 0}
+ outSlope: {x: 0, y: 0, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path: LeftArm
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 0.083333336
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_IsActive
+ path: CallFX
+ classID: 1
+ script: {fileID: 0}
+ m_PPtrCurves:
+ - curve:
+ - time: 0
+ value: {fileID: -1983626645, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ - time: 0.083333336
+ value: {fileID: -2055584907, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ attribute: m_Sprite
+ path: Head
+ classID: 212
+ script: {fileID: 0}
+ - curve:
+ - time: 0
+ value: {fileID: 1340347453, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ attribute: m_Sprite
+ path: LeftArm
+ classID: 212
+ script: {fileID: 0}
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 130111906
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 1878182950
+ attribute: 2086281974
+ script: {fileID: 0}
+ typeID: 1
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 130111906
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ - serializedVersion: 2
+ path: 3951233754
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ - serializedVersion: 2
+ path: 3951233754
+ attribute: 1
+ script: {fileID: 0}
+ typeID: 4
+ customType: 0
+ isPPtrCurve: 0
+ pptrCurveMapping:
+ - {fileID: -1983626645, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ - {fileID: -2055584907, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ - {fileID: 1340347453, guid: 91eefdf066035514b82191a67d108b89, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.1
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -4.121
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.88
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.083333336
+ value: 0.77
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 1
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ - serializedVersion: 3
+ time: 0.083333336
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_IsActive
+ path: CallFX
+ classID: 1
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -3.05
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.x
+ path: LeftArm
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: -1.5
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.y
+ path: LeftArm
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0
+ outWeight: 0
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalPosition.z
+ path: LeftArm
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle.meta b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyCall.anim.meta
similarity index 52%
rename from Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle.meta
rename to Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyCall.anim.meta
index ef8bf5a5..41aa4667 100644
--- a/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle.meta
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyCall.anim.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: efe4060d4d615a744933dfe7db56c242
-folderAsset: yes
-DefaultImporter:
+guid: d98722676c063d349967cd441c726c2e
+NativeFormatImporter:
externalObjects: {}
+ mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyStartCalling.anim b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyStartCalling.anim
new file mode 100644
index 00000000..382bb308
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyStartCalling.anim
@@ -0,0 +1,53 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MonkeyStartCalling
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings: []
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 1
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyStartCalling.anim.meta b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyStartCalling.anim.meta
new file mode 100644
index 00000000..17f35c06
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/Monkey/MonkeyStartCalling.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: eebd6d5cffb6bcb4faed757fbbe07cbe
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle/NeedleAnim.controller b/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/SewingMachineAnim.controller
similarity index 90%
rename from Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle/NeedleAnim.controller
rename to Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/SewingMachineAnim.controller
index 9b424963..61ca532a 100644
--- a/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle/NeedleAnim.controller
+++ b/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/SewingMachineAnim.controller
@@ -6,7 +6,7 @@ AnimatorController:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: NeedleAnim
+ m_Name: SewingMachineAnim
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers: []
diff --git a/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle/NeedleAnim.controller.meta b/Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/SewingMachineAnim.controller.meta
similarity index 100%
rename from Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/Needle/NeedleAnim.controller.meta
rename to Assets/Resources/Sprites/Games/DressYourBest/Animations/SewingMachine/SewingMachineAnim.controller.meta
diff --git a/Assets/Scripts/Games/DressYourBest/DressYourBest.cs b/Assets/Scripts/Games/DressYourBest/DressYourBest.cs
index 544a8b20..50daab1f 100644
--- a/Assets/Scripts/Games/DressYourBest/DressYourBest.cs
+++ b/Assets/Scripts/Games/DressYourBest/DressYourBest.cs
@@ -20,18 +20,32 @@ namespace HeavenStudio.Games.Loaders
{
new GameAction("bop", "Bop")
{
+ function = delegate {
+ var e = eventCaller.currentEntity;
+ if (eventCaller.gameManager.TryGetMinigame(out DressYourBest instance)) {
+ DressYourBest.Characters characters = (DressYourBest.Characters)e["characters"];
+ instance.ToggleBopping(characters, e["bop"]);
+ if (e["auto"]) instance.DoBopping(e.beat, e.length, characters);
+ }
+ },
defaultLength = 1f,
resizable = true,
parameters = new List()
{
- new("characters", DressYourBest.Characters.Girl, "Bop", "Toggle if the selected characters should bop for the duration of this event."),
+ new("characters", DressYourBest.Characters.Both, "Characters", "Choose the characters to toggle bopping."),
new("bop", true, "Bop", "Toggle if the selected characters should bop for the duration of this event."),
new("auto", true, "Bop (Auto)", "Toggle if the selected characters should automatically bop until another Bop event is reached."),
}
},
new GameAction("start interval", "Start Interval")
{
- defaultLength = 4f,
+ preFunction = delegate {
+ var e = eventCaller.currentEntity;
+ if (eventCaller.gameManager.TryGetMinigame(out DressYourBest instance)) {
+ instance.QueueStartInterval(e.beat, e.length, e["auto"]);
+ }
+ },
+ defaultLength = 3f,
resizable = true,
parameters = new List()
{
@@ -40,9 +54,9 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("monkey call", "Monkey Call")
{
- preFunction = delegate {
+ inactiveFunction = delegate {
var e = eventCaller.currentEntity;
- SoundByte.PlayOneShotGame("dressYourBest/monkey_call_" + e["callSfx"], e.beat, forcePlay: true);
+ SoundByte.PlayOneShotGame("dressYourBest/monkey_call_" + (e["callSfx"] + 1), e.beat, forcePlay: true);
},
defaultLength = 0.5f,
parameters = new List()
@@ -50,6 +64,20 @@ namespace HeavenStudio.Games.Loaders
new("callSfx", DressYourBest.CallSFX.Long, "Call SFX", "Set the type of sound effect to use for the call.")
}
},
+ new GameAction("pass turn", "Pass Turn")
+ {
+ preFunction = delegate {
+ var e = eventCaller.currentEntity;
+ if (eventCaller.gameManager.TryGetMinigame(out DressYourBest instance)) {
+ instance.PassTurn(e.beat);
+ }
+ },
+ defaultLength = 1f,
+ // parameters = new List()
+ // {
+ // new("auto", true, "Auto Pass Turn", "Toggle if the turn should be passed automatically at the end of the start interval.")
+ // }
+ },
new GameAction("background appearance", "Background Appearance")
{
function = delegate {
@@ -80,6 +108,7 @@ namespace HeavenStudio.Games
{
Girl,
Monkey,
+ Both,
}
public enum CallSFX
@@ -88,6 +117,7 @@ namespace HeavenStudio.Games
Short,
}
+ // LightState is mainly used to get different colors from a list
public enum LightState
{
IdleOrListening,
@@ -97,8 +127,9 @@ namespace HeavenStudio.Games
}
[Header("Animators")]
- [SerializeField] private Animator girlAnimator;
- [SerializeField] private Animator monkeyAnimator;
+ [SerializeField] private Animator girlAnim;
+ [SerializeField] private Animator monkeyAnim;
+ [SerializeField] private Animator sewingAnim;
[Header("Renderers")]
[SerializeField] private SpriteRenderer bgSpriteRenderer;
@@ -109,27 +140,31 @@ namespace HeavenStudio.Games
[Header("Variables")]
[SerializeField] private ColorPair[] lightStates;
- [Serializable]
+ [Serializable] // can't serialize tuples :/
private struct ColorPair
{
public Color inside;
public Color outside;
}
+ // can't make a reference type a const, this is the next best thing
public readonly static Color DefaultBGColor = new(0.84f, 0.58f, 0.87f);
+ // i set variables to null when they are not initialized by default 👍
private ColorEase bgColorEase = new(DefaultBGColor);
private Material lightMaterialCurrent;
private Sound whirringSfx = null;
+ private List callEntities;
+ // if characters should bop automatically
private bool girlBop = true;
private bool monkeyBop = true;
-
private void Awake()
{
- // lightMaterialCurrent = Instantiate(lightMaterialTemplate);
+ // instantiate the material so it doesn't persist between game switches
lightRenderer.material = Instantiate(lightMaterialTemplate);
+ SetLightFromState(LightState.IdleOrListening); // default
}
private void Update()
@@ -139,26 +174,37 @@ namespace HeavenStudio.Games
public override void OnLateBeatPulse(double beat)
{
- if (girlBop && !girlAnimator.IsPlayingAnimationNames()) {
- girlAnimator.DoScaledAnimationAsync("Bop", 0.5f);
+ if (girlBop && !girlAnim.IsPlayingAnimationNames()) {
+ girlAnim.DoScaledAnimationAsync("Bop", 0.5f);
}
- if (monkeyBop && !monkeyAnimator.IsPlayingAnimationNames()) {
- monkeyAnimator.DoScaledAnimationAsync("Bop", 0.5f);
+ if (monkeyBop && !monkeyAnim.IsPlayingAnimationNames("Call")) {
+ monkeyAnim.DoScaledAnimationAsync("Bop", 0.5f);
}
}
+ // OnGameSwitch and OnPlay do very similar things, but it's better to keep them separate if they need to do different things
public override void OnGameSwitch(double beat)
{
+ StoreAllCallEntities();
PersistBackgroundAppearance(beat);
}
public override void OnPlay(double beat)
{
+ StoreAllCallEntities();
PersistBackgroundAppearance(beat);
}
+ private void StoreAllCallEntities()
+ {
+ // just makes more sense to go through like 50-100 entities max when going through the game instead of like 2000 max
+ callEntities = gameManager.Beatmap.Entities.FindAll(e => e.datamodel == "dressYourBest/monkey call");
+ }
+
private void PersistBackgroundAppearance(double beat)
{
+ // find the last background appearance from the current beat
+ // this uses only beat, not length. earlier events will be completely ignored
RiqEntity bgEntity = gameManager.Beatmap.Entities.FindLast(e => e.beat < beat && e.datamodel == "dressYourBest/background appearance");
if (bgEntity != null) {
RiqEntity e = bgEntity;
@@ -166,9 +212,121 @@ namespace HeavenStudio.Games
}
}
+ private void SetLightFromState(LightState state)
+ {
+ ColorPair colorPair = lightStates[(int)state];
+ lightRenderer.material.SetColor("_ColorAlpha", colorPair.outside);
+ lightRenderer.material.SetColor("_ColorBravo", colorPair.inside);
+ }
+
public void ChangeBackgroundAppearance(double beat, float length, Color startColor, Color endColor, int ease)
{
bgColorEase = new ColorEase(beat, length, startColor, endColor, ease);
}
+
+ public void ToggleBopping(Characters characters, bool toggle)
+ {
+ if (characters is Characters.Girl or Characters.Both) {
+ girlBop = toggle;
+ }
+ if (characters is Characters.Monkey or Characters.Both) {
+ monkeyBop = toggle;
+ }
+ }
+
+ public void DoBopping(double beat, float length, Characters characters)
+ {
+ // not super necessary, but just creating one callback that gets added to, then assigned to a beataction is just simpler
+ BeatAction.EventCallback bopAction = delegate { };
+ if (characters is Characters.Girl or Characters.Both) {
+ bopAction += () => girlAnim.DoScaledAnimationAsync("Bop", 0.5f);
+ }
+ if (characters is Characters.Monkey or Characters.Both) {
+ bopAction += () => monkeyAnim.DoScaledAnimationAsync("Bop", 0.5f);
+ }
+
+ List actions = new();
+ for (int i = 0; i < length; i++) {
+ actions.Add(new(beat + i, bopAction));
+ }
+ _ = BeatAction.New(this, actions);
+ }
+
+ // startBeat exists so actions that happened when inactive aren't done again. that would suck
+ public void QueueStartInterval(double beat, float length, bool auto, double startBeat = double.MinValue)
+ {
+ List neededCalls = GetNeededCalls(beat, length);
+ if (neededCalls.Count <= 0) return;
+
+ if (startBeat < beat + length) {
+ List sounds = new();
+ List actions = new() { // first beat of start interval stuff
+ // might not be necessary?
+ // new(beat, delegate {
+ // monkeyAnimator.DoScaledAnimationAsync("StartCalling", 0.5f, animLayer: 1);
+ // })
+ };
+ foreach (RiqEntity call in neededCalls)
+ {
+ Debug.Log("call.beat : " + call.beat);
+ if (call.beat < startBeat) continue;
+ sounds.Add(new("dressYourBest/monkey_call_" + (call["callSfx"] + 1), call.beat));
+ actions.Add(new(call.beat, () => monkeyAnim.DoScaledAnimationAsync("Call", 0.5f)));
+ }
+ // have to add this after all the other actions as actions are done in order of beat
+ if (auto) {
+ actions.Add(new(beat + length, delegate {
+ PassTurn(beat + length, beat, length, neededCalls);
+ }));
+ }
+ _ = MultiSound.Play(sounds);
+ _ = BeatAction.New(this, actions);
+ }
+ }
+
+ public void PassTurn(double beat, double startIntervalBeat = double.NaN, float startIntervalLength = float.NaN, List neededCalls = null)
+ {
+ if (double.IsNaN(startIntervalBeat) || double.IsNaN(startIntervalLength)) {
+ RiqEntity startInterval = gameManager.Beatmap.Entities.FindLast(e => e.beat + e.length < beat);
+ if (startInterval == null) return;
+ startIntervalBeat = startInterval.beat;
+ startIntervalLength = startInterval.length;
+ }
+ neededCalls ??= GetNeededCalls(startIntervalBeat, startIntervalLength);
+ if (neededCalls.Count <= 0) return; // do the actual stuff under here
+
+ SoundByte.PlayOneShotGame("dressYourBest/pass_turn");
+ // "Any" check instead of just checking the last one?
+ if (neededCalls[^1].beat != beat) {
+ // might wanna check if if a bop is already playing, too?
+ // down to visual preference.
+ monkeyAnim.DoScaledAnimationAsync("Idle", 0.5f);
+ }
+ hitCount = 0;
+ foreach (RiqEntity call in neededCalls)
+ {
+ double relativeBeat = call.beat - startIntervalBeat;
+ _ = ScheduleInput(beat, relativeBeat + 1, InputAction_BasicPress, OnHit, OnMiss, null);
+ }
+ }
+
+
+ private List GetNeededCalls(double beat, float length)
+ {
+ return callEntities.FindAll(e => e.beat >= beat && e.beat <= beat + length);
+ }
+
+ private int hitCount = 0; // resets every pass turn
+ private void OnHit(PlayerActionEvent caller, float state)
+ {
+ SoundByte.PlayOneShotGame("dressYourBest/hit_1");
+ SoundByte.PlayOneShotGame("dressYourBest/hit_2", pitch: SoundByte.GetPitchFromSemiTones(hitCount, false));
+ sewingAnim.DoScaledAnimationAsync("Hit", 0.5f);
+ hitCount++;
+ }
+ private void OnMiss(PlayerActionEvent caller)
+ {
+
+ }
}
}
\ No newline at end of file