diff --git a/Assets/Resources/Sprites/Games/MonkeyWatch/Animations/YellowMonkey.controller b/Assets/Resources/Sprites/Games/MonkeyWatch/Animations/YellowMonkey.controller
index 93c9859f2..3ac90f14c 100644
--- a/Assets/Resources/Sprites/Games/MonkeyWatch/Animations/YellowMonkey.controller
+++ b/Assets/Resources/Sprites/Games/MonkeyWatch/Animations/YellowMonkey.controller
@@ -26,6 +26,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-8854766594456311921
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &-8633427497819712545
AnimatorState:
serializedVersion: 6
@@ -62,10 +84,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapDown
+ m_Name: PinkClap1
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 4839474172674063229}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -143,7 +166,8 @@ AnimatorState:
m_Name: Clap6
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -1092497387670625852}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -166,7 +190,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareCorner
+ m_Name: PinkPrepare2
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -234,13 +258,13 @@ AnimatorStateMachine:
m_Position: {x: 490, y: 170, z: 0}
- serializedVersion: 1
m_State: {fileID: 9034752867166180580}
- m_Position: {x: -480, y: 140, z: 0}
+ m_Position: {x: 1030, y: 220, z: 0}
- serializedVersion: 1
m_State: {fileID: 2281978419273917628}
- m_Position: {x: -350, y: 200, z: 0}
+ m_Position: {x: 1160, y: 280, z: 0}
- serializedVersion: 1
m_State: {fileID: -823361394144095262}
- m_Position: {x: -210, y: 150, z: 0}
+ m_Position: {x: 1300, y: 230, z: 0}
- serializedVersion: 1
m_State: {fileID: -2720091023925718476}
m_Position: {x: 260, y: 230, z: 0}
@@ -285,70 +309,73 @@ AnimatorStateMachine:
m_Position: {x: 490, y: 590, z: 0}
- serializedVersion: 1
m_State: {fileID: -8633427497819712545}
- m_Position: {x: -350, y: 40, z: 0}
+ m_Position: {x: 880, y: 320, z: 0}
- serializedVersion: 1
m_State: {fileID: 7801861347107792603}
- m_Position: {x: -165, y: 255, z: 0}
+ m_Position: {x: -210, y: 110, z: 0}
- serializedVersion: 1
m_State: {fileID: -9129220496587131725}
- m_Position: {x: -130, y: 320, z: 0}
+ m_Position: {x: -990, y: 270, z: 0}
- serializedVersion: 1
m_State: {fileID: 8127304819651188460}
- m_Position: {x: -95, y: 385, z: 0}
+ m_Position: {x: -430, y: 190, z: 0}
- serializedVersion: 1
m_State: {fileID: -5661977897983948421}
- m_Position: {x: -60, y: 450, z: 0}
+ m_Position: {x: -430, y: 490, z: 0}
- serializedVersion: 1
m_State: {fileID: 4332821397483613135}
- m_Position: {x: -25, y: 515, z: 0}
+ m_Position: {x: -430, y: 390, z: 0}
- serializedVersion: 1
m_State: {fileID: 5621182675260515195}
- m_Position: {x: 10, y: 580, z: 0}
+ m_Position: {x: -430, y: 290, z: 0}
- serializedVersion: 1
m_State: {fileID: -8469148021339861009}
- m_Position: {x: 45, y: 645, z: 0}
+ m_Position: {x: -430, y: 140, z: 0}
- serializedVersion: 1
m_State: {fileID: -3697531924487265823}
- m_Position: {x: 80, y: 710, z: 0}
+ m_Position: {x: -430, y: 240, z: 0}
- serializedVersion: 1
m_State: {fileID: 8490411638133807577}
- m_Position: {x: 115, y: 775, z: 0}
+ m_Position: {x: -430, y: 440, z: 0}
- serializedVersion: 1
m_State: {fileID: -5293836672091987810}
- m_Position: {x: 150, y: 840, z: 0}
+ m_Position: {x: -430, y: 340, z: 0}
- serializedVersion: 1
m_State: {fileID: -1125534921687967888}
- m_Position: {x: 185, y: 905, z: 0}
+ m_Position: {x: -990, y: 330, z: 0}
- serializedVersion: 1
m_State: {fileID: 6560050125173869514}
- m_Position: {x: 220, y: 970, z: 0}
+ m_Position: {x: -990, y: 390, z: 0}
- serializedVersion: 1
m_State: {fileID: -8087578985927734532}
- m_Position: {x: 255, y: 1035, z: 0}
+ m_Position: {x: -30, y: -100, z: 0}
- serializedVersion: 1
m_State: {fileID: -6206932299264769880}
- m_Position: {x: 290, y: 1100, z: 0}
+ m_Position: {x: -210, y: 230, z: 0}
- serializedVersion: 1
m_State: {fileID: 3101146781515411008}
- m_Position: {x: 325, y: 1165, z: 0}
+ m_Position: {x: -210, y: 570, z: 0}
- serializedVersion: 1
m_State: {fileID: 109765609371903807}
- m_Position: {x: 360, y: 1230, z: 0}
+ m_Position: {x: -210, y: 460, z: 0}
- serializedVersion: 1
m_State: {fileID: 7999896997191872199}
- m_Position: {x: 395, y: 1295, z: 0}
+ m_Position: {x: -210, y: 350, z: 0}
- serializedVersion: 1
m_State: {fileID: -3859033523525989846}
- m_Position: {x: 430, y: 1360, z: 0}
+ m_Position: {x: -210, y: 170, z: 0}
- serializedVersion: 1
m_State: {fileID: 7776937582488203782}
- m_Position: {x: 465, y: 1425, z: 0}
+ m_Position: {x: -210, y: 290, z: 0}
- serializedVersion: 1
m_State: {fileID: 400394766388898342}
- m_Position: {x: 500, y: 1490, z: 0}
+ m_Position: {x: -210, y: 520, z: 0}
- serializedVersion: 1
m_State: {fileID: -1591040879455884579}
- m_Position: {x: 535, y: 1555, z: 0}
+ m_Position: {x: -210, y: 400, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -396211812135856431}
+ m_Position: {x: -730, y: 330, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@@ -366,10 +393,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapCornerDown
+ m_Name: PinkClap8
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 8185390042644596485}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -395,7 +423,8 @@ AnimatorState:
m_Name: Clap7
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 2869902797474167342}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -411,6 +440,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-5386743260313365007
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &-5293836672091987810
AnimatorState:
serializedVersion: 6
@@ -418,10 +469,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapUp
+ m_Name: PinkClap5
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -2502931122446061882}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -472,7 +524,8 @@ AnimatorState:
m_Name: Clap2
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 5366060932809055241}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -495,7 +548,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareDown
+ m_Name: PinkPrepare1
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -521,10 +574,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapSide
+ m_Name: PinkClap3
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -2078730765691049844}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -540,6 +594,31 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-2951406089741115568
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 6
+ m_ConditionEvent: hitState
+ m_EventTreshold: 2
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -1125534921687967888}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &-2924293198537295990
AnimatorState:
serializedVersion: 6
@@ -592,6 +671,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-2845467208619827428
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &-2720091023925718476
AnimatorState:
serializedVersion: 6
@@ -618,6 +719,50 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-2502931122446061882
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &-2078730765691049844
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &-1591040879455884579
AnimatorState:
serializedVersion: 6
@@ -625,7 +770,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareUp
+ m_Name: PinkPrepare5
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -670,6 +815,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-1092497387670625852
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &-823361394144095262
AnimatorState:
serializedVersion: 6
@@ -696,6 +863,35 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1102 &-396211812135856431
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: PinkHit
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 2141718660159447907}
+ - {fileID: -2951406089741115568}
+ - {fileID: 8263085036654213874}
+ 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!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@@ -731,7 +927,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareCornerRight
+ m_Name: PinkPrepare6
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -757,7 +953,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareSideFlip
+ m_Name: PinkPrepare7
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -776,6 +972,50 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &641954842168838579
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &865803643216880153
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &977276309770202303
AnimatorState:
serializedVersion: 6
@@ -802,6 +1042,31 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &2141718660159447907
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 6
+ m_ConditionEvent: hitState
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -9129220496587131725}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &2281978419273917628
AnimatorState:
serializedVersion: 6
@@ -854,6 +1119,72 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &2618035935135023841
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &2805639990078134405
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &2869902797474167342
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &2877844733988479930
AnimatorState:
serializedVersion: 6
@@ -864,7 +1195,8 @@ AnimatorState:
m_Name: Clap1
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -5386743260313365007}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -887,7 +1219,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareCornerDown
+ m_Name: PinkPrepare8
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -965,10 +1297,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapCornerRight
+ m_Name: PinkClap6
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -8854766594456311921}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -994,7 +1327,8 @@ AnimatorState:
m_Name: Clap4
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 7164206872723914679}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -1020,7 +1354,8 @@ AnimatorState:
m_Name: Clap5
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 865803643216880153}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -1036,6 +1371,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &4839474172674063229
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1101 &5249624865959668415
AnimatorStateTransition:
m_ObjectHideFlags: 1
@@ -1061,6 +1418,28 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
+--- !u!1101 &5366060932809055241
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &5621182675260515195
AnimatorState:
serializedVersion: 6
@@ -1068,10 +1447,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapCornerUp
+ m_Name: PinkClap4
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 2618035935135023841}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -1097,7 +1477,8 @@ AnimatorState:
m_Name: Clap8
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 2805639990078134405}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -1145,7 +1526,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkFrown
+ m_Name: PinkMiss
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -1164,6 +1545,50 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &7024696000164812105
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &7164206872723914679
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8633427497819712545}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &7328536651840065754
AnimatorState:
serializedVersion: 6
@@ -1174,7 +1599,8 @@ AnimatorState:
m_Name: Clap3
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 7024696000164812105}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -1197,7 +1623,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareSide
+ m_Name: PinkPrepare3
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -1249,7 +1675,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkPrepareCornerUp
+ m_Name: PinkPrepare4
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
@@ -1275,10 +1701,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapCorner
+ m_Name: PinkClap2
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -2845467208619827428}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -1294,6 +1721,53 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &8185390042644596485
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -396211812135856431}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1101 &8263085036654213874
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 6
+ m_ConditionEvent: hitState
+ m_EventTreshold: 1
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 6560050125173869514}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &8378355223749411486
AnimatorState:
serializedVersion: 6
@@ -1327,10 +1801,11 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_Name: PinkClapSideFlip
+ m_Name: PinkClap7
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 641954842168838579}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
diff --git a/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs b/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs
index dbd21db70..c9713cfa1 100644
--- a/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs
+++ b/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs
@@ -28,7 +28,7 @@ namespace HeavenStudio.Games.Loaders
{
MonkeyWatch.PreStartClapping(eventCaller.currentEntity.beat);
},
- preFunctionLength = 1f,
+ preFunctionLength = 4f,
defaultLength = 2f,
parameters = new List()
{
@@ -91,6 +91,8 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games
{
using Scripts_MonkeyWatch;
+ using System.Reflection;
+
public class MonkeyWatch : Minigame
{
private const float degreePerMonkey = 6f;
@@ -104,9 +106,6 @@ namespace HeavenStudio.Games
[SerializeField] private MonkeyClockArrow monkeyClockArrow;
[SerializeField] private WatchMonkeyHandler monkeyHandler;
- [Header("Properties")]
- [SerializeField] private int maxMonkeys = 30;
-
private float lastAngle = 0f;
private int cameraIndex = 0;
private struct MonkeyCamera
@@ -135,10 +134,15 @@ namespace HeavenStudio.Games
monkeyClockArrow.PlayerClap(big, barely, false);
}
+ private double persistBeat = 0;
+ private double theNextGameSwitchBeat = double.MaxValue;
+
public override void OnGameSwitch(double beat)
{
+ persistBeat = beat;
GetCameraMovements(beat, false);
monkeyClockArrow.MoveToAngle(lastAngle);
+ monkeyHandler.Init((int)(lastAngle / degreePerMonkey));
if (wantClap >= beat && IsClapBeat(wantClap))
{
StartClapping(wantClap);
@@ -152,8 +156,10 @@ namespace HeavenStudio.Games
public override void OnPlay(double beat)
{
+ persistBeat = beat;
GetCameraMovements(beat, true);
monkeyClockArrow.MoveToAngle(lastAngle);
+ monkeyHandler.Init((int)(lastAngle / degreePerMonkey));
}
#region clapping
@@ -188,10 +194,7 @@ namespace HeavenStudio.Games
{
instance.StartClapping(beat);
}
- else
- {
- wantClap = beat;
- }
+ wantClap = beat;
}
private void StartClapping(double beat)
@@ -204,6 +207,7 @@ namespace HeavenStudio.Games
private void ClapRecursing(double beat)
{
+ if (beat >= theNextGameSwitchBeat) return;
if (IsPinkMonkeyAtBeat(beat, out float length1))
{
PinkClap(length1);
@@ -221,9 +225,17 @@ namespace HeavenStudio.Games
{
BeatAction.New(instance.gameObject, new List()
{
+ new BeatAction.Action(beat - 4, delegate
+ {
+ monkeyHandler.SpawnMonkey(beat, false, beat - 4 < persistBeat);
+ ClapRecursing(beat + 2);
+ }),
+ new BeatAction.Action(beat - 1, delegate
+ {
+ monkeyHandler.GetMonkeyAtBeat(beat).Prepare(beat, beat + 1);
+ }),
new BeatAction.Action(beat + 1, delegate
{
- ClapRecursing(beat + 2);
monkeyClockArrow.Move();
})
});
@@ -233,7 +245,7 @@ namespace HeavenStudio.Games
{
List actions = new List()
{
- new BeatAction.Action(beat, delegate
+ new BeatAction.Action(beat - 4, delegate
{
ClapRecursing(beat + length);
})
@@ -241,11 +253,24 @@ namespace HeavenStudio.Games
for (int i = 0; i < length; i++)
{
- actions.Add(new BeatAction.Action(beat + i + 0.5, delegate
+ int index = i;
+ actions.AddRange(new List()
{
- monkeyClockArrow.Move();
- }));
+ new BeatAction.Action(beat + i - 4, delegate
+ {
+ monkeyHandler.SpawnMonkey(beat + index, false, beat + index - 4 < persistBeat);
+ }),
+ new BeatAction.Action(beat + i - 1, delegate
+ {
+ monkeyHandler.GetMonkeyAtBeat(beat + index).Prepare(beat + index, beat + index + 0.5);
+ }),
+ new BeatAction.Action(beat + i + 0.5, delegate
+ {
+ monkeyClockArrow.Move();
+ })
+ });
}
+ actions.Sort((x, y) => x.beat.CompareTo(y.beat));
BeatAction.New(instance.gameObject, actions);
}
@@ -253,21 +278,35 @@ namespace HeavenStudio.Games
{
List actions = new List()
{
- new BeatAction.Action(beat, delegate
+ new BeatAction.Action(beat - 4, delegate
{
ClapRecursing(beat + length);
})
};
var relevantEvents = FindCustomOffbeatMonkeysBetweenBeat(beat, beat + length);
+ relevantEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
- foreach (var e in relevantEvents)
+ for (int i = 0; i < relevantEvents.Count; i++)
{
- actions.Add(new BeatAction.Action(e.beat, delegate
+ var e = relevantEvents[i];
+ actions.AddRange(new List()
{
- monkeyClockArrow.Move();
- }));
+ new BeatAction.Action(e.beat - 4, delegate
+ {
+ monkeyHandler.SpawnMonkey(e.beat, true, e.beat - 4 < persistBeat);
+ }),
+ new BeatAction.Action(e.beat - 1.5, delegate
+ {
+ monkeyHandler.GetMonkeyAtBeat(e.beat).Prepare(e.beat - 0.5, e.beat);
+ }),
+ new BeatAction.Action(e.beat, delegate
+ {
+ monkeyClockArrow.Move();
+ })
+ });
}
+ actions.Sort((x, y) => x.beat.CompareTo(y.beat));
BeatAction.New(instance.gameObject, actions);
}
}
@@ -300,6 +339,8 @@ namespace HeavenStudio.Games
nextGameSwitchBeat = allEnds[0].beat;
}
+ theNextGameSwitchBeat = nextGameSwitchBeat;
+
double startClappingBeat = 0;
float startAngle = 0;
bool overrideStartBeat = true;
@@ -347,7 +388,7 @@ namespace HeavenStudio.Games
}
else
{
- angleToAdd = Mathf.Round(e.length) * degreePerMonkey;
+ angleToAdd = Mathf.Ceil(e.length) * degreePerMonkey;
}
cameraMovements.Add(new MonkeyCamera()
{
@@ -380,6 +421,17 @@ namespace HeavenStudio.Games
Debug.Log("Beat: " + cameraMovement.beat + ", Length: " + cameraMovement.length + " , DegreeTo: " + cameraMovement.degreeTo);
}
}
+
+ private void UpdateCamera()
+ {
+ lastAngle = cameraMovements[cameraIndex].degreeTo;
+ cameraIndex++;
+ if (cameraIndex + 1 < cameraMovements.Count && Conductor.instance.songPositionInBeats >= cameraMovements[cameraIndex].beat + cameraMovements[cameraIndex].length)
+ {
+ UpdateCamera();
+ }
+ }
+
private void CameraUpdate()
{
var cond = Conductor.instance;
@@ -387,8 +439,7 @@ namespace HeavenStudio.Games
{
if (cameraIndex + 1 < cameraMovements.Count && cond.songPositionInBeats >= cameraMovements[cameraIndex].beat + cameraMovements[cameraIndex].length)
{
- lastAngle = cameraMovements[cameraIndex].degreeTo;
- cameraIndex++;
+ UpdateCamera();
}
float normalizedBeat = cond.GetPositionFromBeat(cameraMovements[cameraIndex].beat, cameraMovements[cameraIndex].length);
@@ -410,7 +461,7 @@ namespace HeavenStudio.Games
}
#endregion
- private static List FindCustomOffbeatMonkeysBetweenBeat(double beat, double endBeat)
+ public static List FindCustomOffbeatMonkeysBetweenBeat(double beat, double endBeat)
{
return EventCaller.GetAllInGameManagerList("monkeyWatch", new string[] { "offCustom" }).FindAll(x => x.beat >= beat && x.beat < endBeat);
}
diff --git a/Assets/Scripts/Games/MonkeyWatch/WatchMonkey.cs b/Assets/Scripts/Games/MonkeyWatch/WatchMonkey.cs
index 4759d794f..c0d136209 100644
--- a/Assets/Scripts/Games/MonkeyWatch/WatchMonkey.cs
+++ b/Assets/Scripts/Games/MonkeyWatch/WatchMonkey.cs
@@ -16,6 +16,7 @@ namespace HeavenStudio.Games.Scripts_MonkeyWatch
private MonkeyWatch game;
private int direction = 0;
+ public double monkeyBeat;
private PlayerActionEvent inputEvent;
@@ -25,23 +26,30 @@ namespace HeavenStudio.Games.Scripts_MonkeyWatch
anim = GetComponent();
}
- public void Appear(bool instant, Animator hole)
+ public void Appear(double beat, bool instant, Animator hole, int dir)
{
+ monkeyBeat = beat;
+ direction = dir;
holeAnim = hole;
holeAnim.DoScaledAnimationAsync("HoleOpen", 0.5f);
anim.DoScaledAnimationAsync(isPink ? "Pink" : "" + "Appear", 0.5f, instant ? 1 : 0);
}
- public void Prepare(double prepareBeat, double inputBeat, int dir)
+ public void Disappear()
{
- direction = dir;
- anim.DoScaledAnimationAsync(isPink ? "Pink" : "" + "Prepare" + dir, 0);
+ holeAnim.DoScaledAnimationAsync("HoleClose", 0.5f);
+ Destroy(gameObject);
+ }
+
+ public void Prepare(double prepareBeat, double inputBeat)
+ {
+ anim.DoScaledAnimationAsync(isPink ? "Pink" : "" + "Prepare" + direction, 0);
inputEvent = game.ScheduleInput(prepareBeat, inputBeat - prepareBeat, InputType.STANDARD_DOWN, Just, Miss, Empty);
BeatAction.New(gameObject, new List()
{
new BeatAction.Action(prepareBeat, delegate
{
- anim.DoScaledAnimationAsync(isPink ? "Pink" : "" + "Prepare" + dir, 0.5f);
+ anim.DoScaledAnimationAsync(isPink ? "Pink" : "" + "Prepare" + direction, 0.5f);
})
});
}
diff --git a/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs b/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs
index c81e5fceb..b6752641f 100644
--- a/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs
+++ b/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs
@@ -11,21 +11,74 @@ namespace HeavenStudio.Games.Scripts_MonkeyWatch
[SerializeField] private WatchMonkey yellowMonkeyRef;
[SerializeField] private WatchMonkey pinkMonkeyRef;
+ [Header("Properties")]
+ [SerializeField] private int maxMonkeys = 30;
+
private MonkeyWatch game;
private int startMinute = 0;
- private double startBeat = 0;
+ private int watchHoleIndex = 0;
+ private List watchHoles = new();
+ private List currentMonkeys = new();
private void Awake()
{
game = MonkeyWatch.instance;
+ for (int i = 0; i < 60; i++)
+ {
+ watchHoles.Add(transform.GetChild(i));
+ }
}
- public void Init(double beat, int minute)
+ public void Init(int minute)
{
- startBeat = beat;
startMinute = minute;
}
+ private Transform GetNextAvailableWatchHole()
+ {
+ int currentIndex = watchHoleIndex;
+ watchHoleIndex++;
+ if (watchHoleIndex >= watchHoles.Count)
+ {
+ watchHoleIndex = 0;
+ }
+ return watchHoles[currentIndex];
+ }
+
+ public void SpawnMonkey(double beat, bool isPink, bool instant)
+ {
+ if (GetMonkeyAtBeat(beat) != null) return;
+ int index = watchHoleIndex;
+ var hole = GetNextAvailableWatchHole();
+ WatchMonkey spawnedMonkey = Instantiate(isPink ? pinkMonkeyRef : yellowMonkeyRef, hole);
+ spawnedMonkey.Appear(beat, instant, hole.GetComponent(), GetMonkeyAngle(index));
+ currentMonkeys.Add(spawnedMonkey);
+ if (currentMonkeys.Count > maxMonkeys)
+ {
+ currentMonkeys[0].Disappear();
+ currentMonkeys.Remove(currentMonkeys[0]);
+ }
+ }
+
+ public WatchMonkey GetMonkeyAtBeat(double beat)
+ {
+ return currentMonkeys.Find(x => x.monkeyBeat == beat);
+ }
+
+ private int GetMonkeyAngle(int monkey)
+ {
+ return monkey switch
+ {
+ >= 4 and <= 12 => 2,
+ >= 12 and <= 19 => 3,
+ >= 19 and <= 27 => 4,
+ >= 27 and <= 34 => 5,
+ >= 34 and <= 42 => 6,
+ >= 42 and <= 49 => 7,
+ >= 49 and <= 56 => 8,
+ _ => 1,
+ };
+ }
}
}