diff --git a/Assets/Resources/Games/trickClass.prefab b/Assets/Resources/Games/trickClass.prefab index 476e3f1e..2d0e1bb4 100644 --- a/Assets/Resources/Games/trickClass.prefab +++ b/Assets/Resources/Games/trickClass.prefab @@ -27,6 +27,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 2.35, y: -1.1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5506760278121746696} m_Father: {fileID: 7488929755866823519} @@ -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 @@ -110,6 +112,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 6.13, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 9050201431690794528} m_RootOrder: 1 @@ -125,6 +128,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -192,6 +196,7 @@ Transform: m_LocalRotation: {x: 0, y: -0.17364825, z: 0, w: 0.9848078} m_LocalPosition: {x: 0.5, y: 0.073, z: -1.467} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8248491381081258080} - {fileID: 5282853100341633190} @@ -250,6 +255,7 @@ Transform: 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: - {fileID: 7024444778115842674} - {fileID: 4984981779500137945} @@ -282,6 +288,7 @@ Transform: 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: - {fileID: 1864634399468090613} - {fileID: 2805817892094278801} @@ -315,6 +322,7 @@ Transform: 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: - {fileID: 5015249734785180521} - {fileID: 5996926452457285680} @@ -332,6 +340,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -399,6 +408,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 20, y: 20, z: 0} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2049491332800905642} m_RootOrder: 0 @@ -414,6 +424,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -481,6 +492,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1.05, y: 2.3652556, z: 3.64} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 3 @@ -528,6 +540,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -11.55, y: -6.008895, z: 0.2} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 270213282485315182} m_RootOrder: 4 @@ -575,6 +588,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.172, y: 2.24, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8272915755210452549} - {fileID: 4282183760407212483} @@ -592,6 +606,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -626,7 +641,7 @@ SpriteRenderer: m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 - m_Size: {x: 4.08, y: 5.0503106} + m_Size: {x: 4.25, y: 4.3402667} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 @@ -659,6 +674,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 4.45, y: 1.66, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 270213282485315182} m_RootOrder: 0 @@ -706,6 +722,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -2.32, y: -1.9286046, z: 0.2} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 270213282485315182} m_RootOrder: 3 @@ -751,8 +768,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2098236313642417821} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.095, y: -1.2, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: 0.19, y: -4.14, z: 24} + m_LocalScale: {x: 3.4200003, y: 3.4200003, z: 3.4200003} + m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 2049491332800905642} m_RootOrder: 3 @@ -768,6 +786,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -834,6 +853,7 @@ Transform: 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: - {fileID: 3395200941264334285} m_Father: {fileID: 4058401002516718396} @@ -866,6 +886,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.2985466, y: 0.24284542, z: 2.1663225} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 1 @@ -912,6 +933,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.455, y: 0.455, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4389737351449479942} - {fileID: 6171372797069188628} @@ -947,6 +969,7 @@ Transform: 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: - {fileID: 5439422992278930630} - {fileID: 1069146004922609395} @@ -1000,6 +1023,7 @@ Transform: 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: - {fileID: 8318852355974017578} - {fileID: 6029919261637204356} @@ -1061,8 +1085,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3418795074043480354} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -4.8047, y: -7.1124625, z: -5.74} + m_LocalPosition: {x: -10.13, y: -7.1124625, z: -5.74} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 6 @@ -1081,8 +1106,8 @@ MonoBehaviour: m_EditorClassIdentifier: curve: {fileID: 3288589490341909789} handleType: 0 - leftHandleLocalPosition: {x: 5.4743524, y: -0.42018557, z: 1.7583859} - rightHandleLocalPosition: {x: -5.4743524, y: 0.42018557, z: -1.7583859} + leftHandleLocalPosition: {x: 7.8733406, y: 1.1667285, z: 2.2578032} + rightHandleLocalPosition: {x: -7.8733406, y: -1.1667285, z: -2.2578032} --- !u!1 &3657839666287537226 GameObject: m_ObjectHideFlags: 0 @@ -1110,6 +1135,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.159, y: 0.078, z: 0} m_LocalScale: {x: 0.525, y: 0.525, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8297413771377288495} m_RootOrder: 0 @@ -1125,6 +1151,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -1191,6 +1218,7 @@ Transform: 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: - {fileID: 2005696115261101270} - {fileID: 270213282485315182} @@ -1224,6 +1252,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 11.98, y: -6.42, z: -5.08} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1864634399468090613} m_RootOrder: 1 @@ -1271,6 +1300,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0.98, y: -0.8, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5996926452457285680} m_RootOrder: 0 @@ -1286,6 +1316,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -1353,6 +1384,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -3.1106741, y: -0.49201435, z: 5} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 0 @@ -1373,7 +1405,7 @@ MonoBehaviour: handleType: 0 leftHandleLocalPosition: {x: -2.327126, y: 0.19955647, z: 1.5433838} rightHandleLocalPosition: {x: 2.327126, y: -0.19955647, z: -1.5433838} ---- !u!1 &4622791582068443419 +--- !u!1 &4310544144871334710 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1381,40 +1413,42 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7217473934934235568} - - component: {fileID: 2889669679684938890} + - component: {fileID: 8023380170287309826} + - component: {fileID: 8724577660670761647} m_Layer: 0 - m_Name: mobTrick_bgDesk3 + m_Name: mobTrick_bgDesk2 (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7217473934934235568 +--- !u!4 &8023380170287309826 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4622791582068443419} + m_GameObject: {fileID: 4310544144871334710} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -7.53, y: -7.64, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: -13.25, y: -17.06, z: 8} + m_LocalScale: {x: 1.8, y: 1.8, z: 1.8} + m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 6171372797069188628} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &2889669679684938890 +--- !u!212 &8724577660670761647 SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4622791582068443419} + m_GameObject: {fileID: 4310544144871334710} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -1443,18 +1477,49 @@ SpriteRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: -3 - m_Sprite: {fileID: -2744129390065220167, guid: 4777f54c8c25980428a483cf515e981d, type: 3} + m_SortingOrder: -1 + m_Sprite: {fileID: -7631371983786943230, guid: 4777f54c8c25980428a483cf515e981d, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 - m_Size: {x: 12.38, y: 2.68} + m_Size: {x: 14.41, y: 2.99} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &4314987055336665312 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2166285457557110997} + m_Layer: 0 + m_Name: cameraRef + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2166285457557110997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4314987055336665312} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1.0526316, y: 1.0526316, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7799781267437701720} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4680492963841683179 GameObject: m_ObjectHideFlags: 0 @@ -1482,6 +1547,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -3.1106741, y: -0.49201435, z: 5} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1864634399468090613} m_RootOrder: 0 @@ -1529,6 +1595,7 @@ Transform: 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: - {fileID: 3220906626812029788} - {fileID: 2526216985021064235} @@ -1582,6 +1649,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.45, y: -1.27, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1961949143142789026} m_RootOrder: 1 @@ -1597,6 +1665,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -1663,10 +1732,11 @@ Transform: 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: - - {fileID: 5576812527962747870} - - {fileID: 1939370080128839836} - - {fileID: 7217473934934235568} + - {fileID: 3413210812581273906} + - {fileID: 8023380170287309826} + - {fileID: 5827097936516676005} m_Father: {fileID: 2049491332800905642} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1695,8 +1765,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5096395877590586700} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.43, y: -11.69, z: 4.37} + m_LocalPosition: {x: -0.86, y: -11.69, z: 2.07} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2805817892094278801} m_RootOrder: 1 @@ -1715,8 +1786,8 @@ MonoBehaviour: m_EditorClassIdentifier: curve: {fileID: 5261772982309671256} handleType: 0 - leftHandleLocalPosition: {x: 0.38255858, y: 3.2152529, z: -0.8895941} - rightHandleLocalPosition: {x: -0.38255858, y: -3.2152529, z: 0.8895941} + leftHandleLocalPosition: {x: 0.045773923, y: 4.9786997, z: -0.0007252693} + rightHandleLocalPosition: {x: -0.045773923, y: -4.9786997, z: 0.0007252693} --- !u!1 &5155605184468058309 GameObject: m_ObjectHideFlags: 0 @@ -1744,6 +1815,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.024, y: 0.009, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5614176317311911057} m_Father: {fileID: 3414547825366335459} @@ -1760,6 +1832,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -1810,6 +1883,7 @@ GameObject: m_Component: - component: {fileID: 2712533505047173825} - component: {fileID: 6570045643125407281} + - component: {fileID: 5261135030869337965} m_Layer: 0 m_Name: girl m_TagString: Untagged @@ -1825,8 +1899,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5360420740636381101} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -3.28, y: -1.7, z: 0} - m_LocalScale: {x: 0.455, y: 0.455, z: 1} + m_LocalPosition: {x: -7.8, y: -4.3, z: 16} + m_LocalScale: {x: 1.1, y: 1.1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2205484085421406530} - {fileID: 1961949143142789026} @@ -1835,7 +1910,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &6570045643125407281 Animator: - serializedVersion: 3 + serializedVersion: 5 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -1848,10 +1923,23 @@ Animator: m_UpdateMode: 0 m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!210 &5261135030869337965 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5360420740636381101} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: -4 --- !u!1 &6043466246216488714 GameObject: m_ObjectHideFlags: 0 @@ -1879,6 +1967,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.8} m_LocalScale: {x: 42.768044, y: 25.660835, z: 0.8} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2049491332800905642} m_RootOrder: 2 @@ -1894,6 +1983,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -1962,6 +2052,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.455, y: 0.455, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6646177278795284587} m_RootOrder: 1 @@ -1977,6 +2068,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -2029,17 +2121,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: eb420e9087e23a64eb3ca43a7620c211, 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 flyType: 0 startBeat: 0 type: 0 @@ -2070,6 +2151,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.189, y: -0.048113704, z: 2.195} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 4 @@ -2117,6 +2199,7 @@ Transform: 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: 2712533505047173825} m_RootOrder: 0 @@ -2132,6 +2215,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -2199,6 +2283,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 5.67, y: -2.9, z: 0} m_LocalScale: {x: 0.455, y: 0.455, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7488929755866823519} - {fileID: 6310967655046720561} @@ -2207,7 +2292,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &4171281603420513773 Animator: - serializedVersion: 3 + serializedVersion: 5 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -2220,10 +2305,12 @@ Animator: m_UpdateMode: 0 m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!1 &6999228461696713549 GameObject: m_ObjectHideFlags: 0 @@ -2251,6 +2338,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.95, y: 0.95, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2049491332800905642} - {fileID: 3414547825366335459} @@ -2258,6 +2346,7 @@ Transform: - {fileID: 9050201431690794528} - {fileID: 4058401002516718396} - {fileID: 6646177278795284587} + - {fileID: 2166285457557110997} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2274,9 +2363,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: SoundSequences: [] - EligibleHits: [] scheduledInputs: [] - firstEnable: 0 playerAnim: {fileID: 4171281603420513773} girlAnim: {fileID: 6570045643125407281} warnAnim: {fileID: 3154933179428504539} @@ -2317,6 +2404,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1.45, y: -1.27, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1961949143142789026} m_RootOrder: 0 @@ -2332,6 +2420,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -2400,6 +2489,7 @@ Transform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.455, y: 0.455, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6646177278795284587} m_RootOrder: 0 @@ -2415,6 +2505,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -2467,17 +2558,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: eb420e9087e23a64eb3ca43a7620c211, 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 flyType: 0 startBeat: 0 type: 0 @@ -2505,8 +2585,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7310611812045732801} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.5, y: -0.8, z: 0} - m_LocalScale: {x: 1.1, y: 1, z: 2} + m_LocalPosition: {x: -2.1, y: -0.8, z: 0} + m_LocalScale: {x: 1.25, y: 1, z: 3.5} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1420343226113066666} - {fileID: 1376113234299623101} @@ -2541,6 +2622,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.3992692, y: 2.7532198, z: 2.1399999} m_LocalScale: {x: 0.95693785, y: 1.0526316, z: 0.5} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 2 @@ -2588,6 +2670,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -2, y: -1.1, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7488929755866823519} m_RootOrder: 0 @@ -2603,6 +2686,7 @@ SpriteRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -2670,6 +2754,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 7.355391, y: 3.5441406, z: -1.8722836} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2005696115261101270} m_RootOrder: 5 @@ -2717,6 +2802,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 5.956936, y: 4.9981914, z: 0.0118204355} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 270213282485315182} m_RootOrder: 1 @@ -2764,6 +2850,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1.6806741, y: -0.49201435, z: 5} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3395200941264334285} m_RootOrder: 0 @@ -2811,6 +2898,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.82, y: 6.3, z: 0.218} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 270213282485315182} m_RootOrder: 2 @@ -2856,8 +2944,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8432671419974842299} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 13.274313, y: 4.604445, z: -5.806588} + m_LocalPosition: {x: 13.9, y: 5.05, z: -5.281} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3395200941264334285} m_RootOrder: 1 @@ -2905,6 +2994,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -1.43, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4864494715953467641} - {fileID: 6692913343775849876} @@ -2958,6 +3048,7 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 4.45, y: 1.66, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2805817892094278801} m_RootOrder: 0 @@ -2978,7 +3069,7 @@ MonoBehaviour: handleType: 0 leftHandleLocalPosition: {x: 3.7113361, y: -0.6022707, z: -1.9092817} rightHandleLocalPosition: {x: -3.7113361, y: 0.6022707, z: 1.9092817} ---- !u!1 &8653118620308232900 +--- !u!1 &8662781448235463849 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2986,122 +3077,42 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1939370080128839836} - - component: {fileID: 4804089641556766968} + - component: {fileID: 3413210812581273906} + - component: {fileID: 5791659127136265107} m_Layer: 0 - m_Name: mobTrick_bgDesk2 + m_Name: mobTrick_bgDesk1 (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1939370080128839836 +--- !u!4 &3413210812581273906 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8653118620308232900} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -7.369, y: -9.469, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 6171372797069188628} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &4804089641556766968 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8653118620308232900} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - 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: -1 - m_Sprite: {fileID: -7631371983786943230, guid: 4777f54c8c25980428a483cf515e981d, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 14.41, y: 2.99} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!1 &8722241423136028359 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5576812527962747870} - - component: {fileID: 5226347411050163934} - m_Layer: 0 - m_Name: mobTrick_bgDesk1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5576812527962747870 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8722241423136028359} + m_GameObject: {fileID: 8662781448235463849} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -2.64, y: -10.9, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6171372797069188628} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &5226347411050163934 +--- !u!212 &5791659127136265107 SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8722241423136028359} + m_GameObject: {fileID: 8662781448235463849} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -3152,6 +3163,7 @@ GameObject: m_Component: - component: {fileID: 3414547825366335459} - component: {fileID: 3154933179428504539} + - component: {fileID: 2832505672081154504} m_Layer: 0 m_Name: objWarn m_TagString: Untagged @@ -3167,8 +3179,9 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9041054952499779364} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -1.34, y: 1.08, z: 0} - m_LocalScale: {x: 0.455, y: 0.455, z: 1} + m_LocalPosition: {x: -3.45, y: 2.8, z: 16} + m_LocalScale: {x: 1.15, y: 1.15, z: 1.15} + m_ConstrainProportionsScale: 1 m_Children: - {fileID: 8297413771377288495} m_Father: {fileID: 7799781267437701720} @@ -3176,7 +3189,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &3154933179428504539 Animator: - serializedVersion: 3 + serializedVersion: 5 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -3189,7 +3202,104 @@ Animator: m_UpdateMode: 0 m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!210 &2832505672081154504 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9041054952499779364} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &9135951315644634110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5827097936516676005} + - component: {fileID: 349749392362140030} + m_Layer: 0 + m_Name: mobTrick_bgDesk3 (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5827097936516676005 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9135951315644634110} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -17.83, y: -18.04, z: 16} + m_LocalScale: {x: 2.4, y: 2.4, z: 2.4} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 6171372797069188628} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &349749392362140030 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9135951315644634110} + 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: -3 + m_Sprite: {fileID: -2744129390065220167, guid: 4777f54c8c25980428a483cf515e981d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 12.38, y: 2.68} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 diff --git a/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim b/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim index 8f7c9271..9d5e6701 100644 --- a/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim +++ b/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim @@ -20,17 +20,17 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: {x: 1.258, y: 0.542, z: 0} - inSlope: {x: -1.4679999, y: -0, z: -0} - outSlope: {x: 0, y: 0.17200005, z: 0} + value: {x: 1.4, y: 0.68, z: 0} + inSlope: {x: -1.184, y: -0, z: -0} + outSlope: {x: 0, y: 0, z: 0} 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.5 - value: {x: 1.258, y: 0.628, z: 0} - inSlope: {x: -0, y: 0.17200005, z: -0} + value: {x: 1.4, y: 0.89, z: 0} + inSlope: {x: -0, y: 0.41999996, z: -0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 weightedMode: 0 @@ -49,8 +49,8 @@ AnimationClip: time: 0 value: 1 inSlope: 2 - outSlope: -2 - tangentMode: 69 + outSlope: 0 + tangentMode: 5 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -134,16 +134,16 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 1.258 - inSlope: -1.4679999 + value: 1.4 + inSlope: -1.184 outSlope: 0 - tangentMode: 69 + tangentMode: 5 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.5 - value: 1.258 + value: 1.4 inSlope: -0 outSlope: 0 tangentMode: 69 @@ -162,17 +162,17 @@ AnimationClip: m_Curve: - serializedVersion: 3 time: 0 - value: 0.542 + value: 0.68 inSlope: -0 - outSlope: 0.17200005 - tangentMode: 69 + outSlope: 0 + tangentMode: 5 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 - serializedVersion: 3 time: 0.5 - value: 0.628 - inSlope: 0.17200005 + value: 0.89 + inSlope: 0.41999996 outSlope: 0 tangentMode: 69 weightedMode: 0 @@ -193,7 +193,7 @@ AnimationClip: value: 0 inSlope: -0 outSlope: 0 - tangentMode: 69 + tangentMode: 5 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -220,8 +220,8 @@ AnimationClip: time: 0 value: 1 inSlope: 2 - outSlope: -2 - tangentMode: 69 + outSlope: 0 + tangentMode: 5 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 diff --git a/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim b/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim index e3404d1e..4cd470df 100644 --- a/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim +++ b/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim @@ -98,6 +98,15 @@ AnimationClip: - serializedVersion: 3 time: 0.35 value: {x: 0.017, y: 0.261, z: 74.52776} + inSlope: {x: 2.7443511, y: -2.188788, z: 0} + outSlope: {x: 2.7443511, y: -2.188788, z: 0} + 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.4 + value: {x: 0.1744351, y: 0.1891212, z: 74.52776} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 @@ -192,59 +201,6 @@ AnimationClip: classID: 1 script: {fileID: 0} m_PPtrCurves: - - curve: - - time: 0 - value: {fileID: 0} - - time: 0.016666668 - value: {fileID: 0} - - time: 0.033333335 - value: {fileID: 0} - - time: 0.05 - value: {fileID: 0} - - time: 0.06666667 - value: {fileID: 0} - - time: 0.083333336 - value: {fileID: 0} - - time: 0.1 - value: {fileID: 0} - - time: 0.11666667 - value: {fileID: 0} - - time: 0.13333334 - value: {fileID: 0} - - time: 0.15 - value: {fileID: 0} - - time: 0.16666667 - value: {fileID: 0} - - time: 0.18333334 - value: {fileID: 0} - - time: 0.2 - value: {fileID: 0} - - time: 0.21666667 - value: {fileID: 0} - - time: 0.23333333 - value: {fileID: 0} - - time: 0.25 - value: {fileID: 0} - - time: 0.26666668 - value: {fileID: 0} - - time: 0.28333333 - value: {fileID: 0} - - time: 0.3 - value: {fileID: 0} - - time: 0.31666666 - value: {fileID: 0} - - time: 0.33333334 - value: {fileID: 0} - - time: 0.35 - value: {fileID: 0} - - time: 0.36666667 - value: {fileID: 0} - - time: 0.38333333 - value: {fileID: 0} - attribute: m_Sprite - path: Fork_Lifter_Gameplay - classID: 212 - script: {fileID: 0} - curve: - time: 0 value: {fileID: -4922902375269903740, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} @@ -307,13 +263,6 @@ AnimationClip: typeID: 1 customType: 0 isPPtrCurve: 0 - - serializedVersion: 2 - path: 345648135 - attribute: 0 - script: {fileID: 0} - typeID: 212 - customType: 23 - isPPtrCurve: 1 - serializedVersion: 2 path: 3267382320 attribute: 0 @@ -336,30 +285,6 @@ AnimationClip: customType: 0 isPPtrCurve: 0 pptrCurveMapping: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - {fileID: -4922902375269903740, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} - {fileID: -3456084564025576355, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} - {fileID: -3456084564025576355, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} @@ -688,6 +613,15 @@ AnimationClip: - serializedVersion: 3 time: 0.35 value: 0.017 + inSlope: 2.7443511 + outSlope: 2.7443511 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 0.1744351 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -716,6 +650,15 @@ AnimationClip: - serializedVersion: 3 time: 0.35 value: 0.261 + inSlope: -2.188788 + outSlope: -2.188788 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 0.1891212 inSlope: 0 outSlope: 0 tangentMode: 136 diff --git a/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim b/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim index 5eee94c7..3fef7a2f 100644 --- a/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim +++ b/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim @@ -6701,7 +6701,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.z - path: HandL + path: FootR classID: 4 script: {fileID: 0} - curve: @@ -6711,7 +6711,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.y - path: HandL + path: FootR classID: 4 script: {fileID: 0} - curve: @@ -6721,7 +6721,37 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.x - path: HandL + path: FootR + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: LegLowR + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: LegLowR + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: LegLowR classID: 4 script: {fileID: 0} - curve: @@ -6761,7 +6791,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.z - path: LegUpR + path: LegLowL classID: 4 script: {fileID: 0} - curve: @@ -6771,7 +6801,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.y - path: LegUpR + path: LegLowL classID: 4 script: {fileID: 0} - curve: @@ -6781,7 +6811,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.x - path: LegUpR + path: LegLowL classID: 4 script: {fileID: 0} - curve: @@ -6911,7 +6941,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.z - path: EyeL + path: EyeR classID: 4 script: {fileID: 0} - curve: @@ -6921,7 +6951,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.y - path: EyeL + path: EyeR classID: 4 script: {fileID: 0} - curve: @@ -6931,7 +6961,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.x - path: EyeL + path: EyeR classID: 4 script: {fileID: 0} - curve: @@ -6971,7 +7001,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.z - path: FootR + path: LegUpR classID: 4 script: {fileID: 0} - curve: @@ -6981,7 +7011,7 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.y - path: FootR + path: LegUpR classID: 4 script: {fileID: 0} - curve: @@ -6991,7 +7021,97 @@ AnimationClip: m_PostInfinity: 2 m_RotationOrder: 4 attribute: m_LocalEulerAngles.x - path: FootR + path: LegUpR + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: EyeL + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: EyeL + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: EyeL + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: Head + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: Head + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: Head + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: HandL + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: HandL + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: HandL classID: 4 script: {fileID: 0} - curve: @@ -7024,66 +7144,6 @@ AnimationClip: path: Mouth classID: 4 script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z - path: EyeR - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.y - path: EyeR - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x - path: EyeR - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z - path: LegLowL - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.y - path: LegLowL - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x - path: LegLowL - classID: 4 - script: {fileID: 0} - curve: serializedVersion: 2 m_Curve: [] @@ -7120,7 +7180,7 @@ AnimationClip: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z + attribute: m_LocalEulerAngles.x path: Woosh classID: 4 script: {fileID: 0} @@ -7140,70 +7200,10 @@ AnimationClip: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x + attribute: m_LocalEulerAngles.z path: Woosh classID: 4 script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z - path: Head - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.y - path: Head - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x - path: Head - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.x - path: LegLowR - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.y - path: LegLowR - classID: 4 - script: {fileID: 0} - - curve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - attribute: m_LocalEulerAngles.z - path: LegLowR - classID: 4 - script: {fileID: 0} m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 m_Events: [] diff --git a/Assets/Scripts/Conductor.cs b/Assets/Scripts/Conductor.cs index 5ee65b4b..0ee980b4 100644 --- a/Assets/Scripts/Conductor.cs +++ b/Assets/Scripts/Conductor.cs @@ -406,11 +406,11 @@ namespace HeavenStudio public void LateUpdate() { - if (metronome && isPlaying) + if (isPlaying) { if (songPositionInBeatsAsDouble >= Math.Ceiling(startBeat) + _metronomeTally) { - metronomeSound = Util.SoundByte.PlayOneShot("metronome", Math.Ceiling(startBeat) + _metronomeTally); + if (metronome) metronomeSound = Util.SoundByte.PlayOneShot("metronome", Math.Ceiling(startBeat) + _metronomeTally); _metronomeTally++; } } diff --git a/Assets/Scripts/Games/BlueBear/BlueBear.cs b/Assets/Scripts/Games/BlueBear/BlueBear.cs index 64f3d4da..1294097b 100644 --- a/Assets/Scripts/Games/BlueBear/BlueBear.cs +++ b/Assets/Scripts/Games/BlueBear/BlueBear.cs @@ -29,7 +29,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("setEmotion", "Emotion") { - function = delegate { var e = eventCaller.currentEntity; BlueBear.instance.SetEmotion(e["type"]); }, + function = delegate { var e = eventCaller.currentEntity; BlueBear.instance.SetEmotion(e.beat, e["type"]); }, parameters = new List() { new Param("type", BlueBear.EmotionType.ClosedEyes, "Emotion", "Which emotion should the blue bear use?") @@ -274,18 +274,18 @@ namespace HeavenStudio.Games headAndBodyAnim.SetBool("ShouldOpenMouth", foodHolder.childCount != 0); if (headAndBodyAnim.GetBool("ShouldOpenMouth")) { - _emotionCancelled = true; + _emotionCancelledBeat = Conductor.instance.songPositionInBeatsAsDouble; } if (PlayerInput.GetIsAction(InputAction_Left) && !IsExpectingInputNow(InputAction_Left.inputLockCategory)) { SoundByte.PlayOneShotGame("blueBear/whiff", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-1, 2), false)); - Bite(true); + Bite(Conductor.instance.songPositionInBeatsAsDouble, true); } else if (PlayerInput.GetIsAction(InputAction_Right) && !IsExpectingInputNow(InputAction_Right.inputLockCategory)) { SoundByte.PlayOneShotGame("blueBear/whiff", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-1, 2), false)); - Bite(false); + Bite(Conductor.instance.songPositionInBeatsAsDouble, false); } UpdateEmotions(); @@ -298,7 +298,7 @@ namespace HeavenStudio.Games windAnim.SetScaledAnimationSpeed(); } - private bool _emotionCancelled = false; + private double _emotionCancelledBeat = -1; private int _emotionIndex = 0; private List _allEmotionsStretch = new(); private EmotionStretchType _lastEmotion = EmotionStretchType.LookUp; @@ -317,12 +317,11 @@ namespace HeavenStudio.Games _emotionIndex++; _lastEmotion = (EmotionStretchType)_allEmotionsStretch[_emotionIndex - 1]["type"]; crying = _lastEmotion == EmotionStretchType.StartCrying; - _emotionCancelled = false; UpdateEmotions(); return; } - if (beat >= e.beat && beat < e.beat + e.length && !_emotionCancelled) + if (beat >= e.beat && beat < e.beat + e.length && !(_emotionCancelledBeat >= e.beat && _emotionCancelledBeat < e.beat + e.length)) { _lastEmotion = (EmotionStretchType)e["type"]; crying = _lastEmotion == EmotionStretchType.StartCrying; @@ -388,9 +387,9 @@ namespace HeavenStudio.Games windAnim.DoScaledAnimationAsync("Wind", 0.5f); } - public void Bite(bool left) + public void Bite(double beat, bool left) { - _emotionCancelled = true; + _emotionCancelledBeat = beat; if (crying) { headAndBodyAnim.DoScaledAnimationAsync(left ? "CryBiteL" : "CryBiteR", 0.5f); @@ -456,14 +455,15 @@ namespace HeavenStudio.Games } } - public void SetEmotion(int emotion) + public void SetEmotion(double beat, int emotion) { - _emotionCancelled = true; + _emotionCancelledBeat = beat; switch (emotion) { case (int)EmotionType.Neutral: - //check if smiling then play "StopSmile" headAndBodyAnim.DoScaledAnimationAsync("Idle", 0.5f); + if (_allEmotionsStretch.Count == 0 || _lastEmotion != EmotionStretchType.Smile) return; + headAndBodyAnim.DoScaledAnimationAsync("StopSmile", 0.5f); crying = false; break; case (int)EmotionType.ClosedEyes: diff --git a/Assets/Scripts/Games/BlueBear/Treat.cs b/Assets/Scripts/Games/BlueBear/Treat.cs index 5d5e3f87..c039abde 100644 --- a/Assets/Scripts/Games/BlueBear/Treat.cs +++ b/Assets/Scripts/Games/BlueBear/Treat.cs @@ -68,7 +68,7 @@ namespace HeavenStudio.Games.Scripts_BlueBear SoundByte.PlayOneShotGame("blueBear/chompDonut"); } - game.Bite(isCake); + game.Bite(Conductor.instance.songPositionInBeatsAsDouble, isCake); game.EatTreat(); SpawnCrumbs(); diff --git a/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs b/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs index 845e6d2c..5967f6cd 100644 --- a/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs +++ b/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs @@ -91,10 +91,8 @@ namespace HeavenStudio.Games [SerializeField] List executives = new List(); public BMExecutive firstSpinner; [SerializeField] float shakeIntensity = 0.5f; - public bool shouldBop = true; private bool assistantCanBop = true; private bool executivesCanBop = true; - public GameEvent bop = new GameEvent(); [NonSerialized] public Sound chairLoopSound = null; int missCounter = 0; private Tween shakeTween; @@ -104,6 +102,7 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("boardMeeting", "bop", "auto"); InitExecutives(); } @@ -145,7 +144,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (!shouldBop) return; + if (!BeatIsInBopRegion(beat)) return; SingleBop(); } @@ -166,7 +165,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool goBop, bool autoBop) { - shouldBop = autoBop; if (goBop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/CatchyTune/CatchyTune.cs b/Assets/Scripts/Games/CatchyTune/CatchyTune.cs index 5f250302..4be42598 100644 --- a/Assets/Scripts/Games/CatchyTune/CatchyTune.cs +++ b/Assets/Scripts/Games/CatchyTune/CatchyTune.cs @@ -80,10 +80,10 @@ namespace HeavenStudio.Games public enum WhoBops { - Alalin, - Plalin, - Both, - None + Alalin = 1, + Plalin = 2, + Both = 0, + None = 3 } public enum Background @@ -111,10 +111,6 @@ namespace HeavenStudio.Games private double startSmile = 0; private double stopSmile = 0; - private bool bopLeft = true; - private bool bopRight = true; - public GameEvent bop = new GameEvent(); - public static CatchyTune instance; static List queuedFruits = new List(); struct QueuedFruit @@ -184,6 +180,7 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("catchyTune", "bop", "bopAuto", false); } const float orangeoffset = 0.5f; @@ -249,6 +246,9 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { + int whoBopsAuto = BeatIsInBopRegionInt(beat); + bool bopLeft = whoBopsAuto == (int)WhoBops.Plalin || whoBopsAuto == (int)WhoBops.Both; + bool bopRight = whoBopsAuto == (int)WhoBops.Alalin || whoBopsAuto == (int)WhoBops.Both; if (bopLeft && stopCatchLeft == 0) { plalinAnim.DoScaledAnimationAsync("bop", 0.5f); @@ -323,8 +323,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, int whoBops, int whoBopsAuto) { - bopLeft = whoBopsAuto == (int)WhoBops.Plalin || whoBopsAuto == (int)WhoBops.Both; - bopRight = whoBopsAuto == (int)WhoBops.Alalin || whoBopsAuto == (int)WhoBops.Both; for (int i = 0; i < length; i++) { BeatAction.New(instance, new List() diff --git a/Assets/Scripts/Games/CheerReaders/CheerReaders.cs b/Assets/Scripts/Games/CheerReaders/CheerReaders.cs index 0af61ec2..b0673f68 100644 --- a/Assets/Scripts/Games/CheerReaders/CheerReaders.cs +++ b/Assets/Scripts/Games/CheerReaders/CheerReaders.cs @@ -163,7 +163,6 @@ namespace HeavenStudio.Games Sound SpinningLoop; [Header("Variables")] [SerializeField] List posters = new List(); - bool shouldBop = true; bool canBop = true; public bool doingCue; double cueLength; @@ -171,7 +170,6 @@ namespace HeavenStudio.Games bool shouldYay; bool shouldDoSuccessZoom; public bool shouldBeBlack = false; - public GameEvent bop = new GameEvent(); int currentZoomIndex; double currentZoomCamBeat; float currentZoomCamLength; @@ -230,6 +228,7 @@ namespace HeavenStudio.Games void Awake() { instance = this; + SetupBopRegion("cheerReaders", "bop", "toggle2"); for (int i = 0; i < topMasks.Count; i++) { firstRow[i].posterBook = topMasks[i]; @@ -264,7 +263,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (!shouldBop) return; + if (!BeatIsInBopRegion(beat)) return; BopSingle(); } @@ -482,7 +481,6 @@ namespace HeavenStudio.Games public void BopToggle(double beat, float length, bool startBop, bool bopAuto) { - shouldBop = bopAuto; if (startBop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/CropStomp/CropStomp.cs b/Assets/Scripts/Games/CropStomp/CropStomp.cs index 5295b10d..951c698f 100644 --- a/Assets/Scripts/Games/CropStomp/CropStomp.cs +++ b/Assets/Scripts/Games/CropStomp/CropStomp.cs @@ -16,13 +16,13 @@ namespace HeavenStudio.Games.Loaders { new GameAction("start marching", "Start Marching") { - function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); }, + function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); }, defaultLength = 2f, inactiveFunction = delegate { CropStomp.MarchInactive(eventCaller.currentEntity.beat); } }, new GameAction("veggies", "Veggies") { - defaultLength = 4f, + defaultLength = 4f, resizable = true }, new GameAction("mole", "Mole") @@ -49,7 +49,8 @@ namespace HeavenStudio.Games.Loaders new GameAction("plantCollect", "Veggie Collection Values") { function = delegate { var e = eventCaller.currentEntity; - CropStomp.instance.SetCollectThresholds(e["threshold"], e["limit"], e["force"], e["forceAmount"]); }, + CropStomp.instance.SetCollectThresholds(e["threshold"], e["limit"], e["force"], e["forceAmount"]); + }, defaultLength = 0.5f, parameters = new List() { @@ -125,43 +126,34 @@ namespace HeavenStudio.Games private void Awake() { - instance = this;// Finding grass sprite width for grass scrolling. + instance = this; // Finding grass sprite width for grass scrolling. farmer.Init(); - var grassSprite = grass.sprite; - var borderLeft = grassSprite.rect.xMin + grassSprite.border.x; - var borderRight = grassSprite.rect.xMax - grassSprite.border.z; - var borderWidthPixels = borderRight - borderLeft; - grassWidth = borderWidthPixels / grassSprite.pixelsPerUnit; + Sprite sprite = grass.sprite; + float borderLeft = sprite.rect.xMin + sprite.border.x; + float borderRight = sprite.rect.xMax - sprite.border.z; + float borderWidthPixels = borderRight - borderLeft; + grassWidth = borderWidthPixels / sprite.pixelsPerUnit; legsAnim.Play("LiftFront", 0, 1); // Start with leg up. + } - // Initialize vegetables. - var cond = Conductor.instance; - var entities = GameManager.instance.Beatmap.Entities; - - double startBeat = cond.songPositionInBeatsAsDouble; + public override void OnGameSwitch(double beat) + { + double startBeat; double endBeat = double.MaxValue; - + var entities = GameManager.instance.Beatmap.Entities; if (inactiveStart == -1f) { // Find the beat of the closest "start marching" event. - var marchStarts = entities.FindAll(m => m.datamodel == "cropStomp/start marching"); - for (int i = 0; i < marchStarts.Count; i++) - { - var sampleBeat = marchStarts[i].beat; - if (cond.songPositionInBeatsAsDouble <= sampleBeat + 0.25f) // 0.25-beat buffer in case the start marching event is directly next to the game switch event. - { - startBeat = sampleBeat; - break; - } - } + var lastMarch = entities.Find(c => c.datamodel == "cropStomp/start marching" && beat <= c.beat); + startBeat = lastMarch?.beat ?? beat; } else { // Find the beat of the next step, assuming marching started at inactiveStart. int stepsPassed = 0; - while (inactiveStart + (stepsPassed * 2f) < cond.songPositionInBeatsAsDouble) + while (inactiveStart + (stepsPassed * 2f) < beat) { stepsPassed++; @@ -175,54 +167,31 @@ namespace HeavenStudio.Games startBeat = inactiveStart + (stepsPassed * 2f); // Cue the marching proper to begin when applicable. - BeatAction.New(this, new List() - { - new BeatAction.Action(startBeat - 0.25f, delegate { StartMarching(startBeat); }) - }); + BeatAction.New(this, new() { new(startBeat - 0.25f, delegate { StartMarching(startBeat); }) }); inactiveStart = -1f; } // find out when the next game switch (or remix end) happens - var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }); - if (allEnds.Count == 0) - { - 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) - { - if (end.datamodel != "gameManager/end" && end.datamodel.Split(2) == "cropStomp") continue; - if (end.beat > startBeat) - { - endBeat = end.beat; - break; - } - } - } + RiqEntity firstEnd = entities.Find(c => c.datamodel is "gameManager/switchGame/cropStomp" or "gameManager/end" && c.beat > startBeat); + endBeat = firstEnd?.beat ?? double.MaxValue; // Veggie and mole events. - var vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies"); - var moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole"); + List vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies"); + List moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole"); // Spawn veggies. - for (int i = 0; i < vegEvents.Count; i++) - { + for (int i = 0; i < vegEvents.Count; i++) { var vegBeat = vegEvents[i].beat; var vegLength = vegEvents[i].length; // Only consider veggie events that aren't past the start point. - if (startBeat <= vegBeat + vegLength) - { + if (startBeat <= vegBeat + vegLength) { int veggiesInEvent = Mathf.CeilToInt(vegLength + 1) / 2; for (int b = 0; b < veggiesInEvent; b++) { - var targetVeggieBeat = vegBeat + 2f * b; + var targetVeggieBeat = vegBeat + (2f * b); if (startBeat <= targetVeggieBeat && targetVeggieBeat < endBeat) { SpawnVeggie(targetVeggieBeat, startBeat, false); @@ -232,52 +201,40 @@ namespace HeavenStudio.Games } // Spawn moles. - for (int i = 0; i < moleEvents.Count; i++) - { + for (int i = 0; i < moleEvents.Count; i++) { var moleBeat = moleEvents[i].beat; - if (startBeat <= moleBeat && moleBeat < endBeat) - { + if (startBeat <= moleBeat && moleBeat < endBeat) { SpawnVeggie(moleBeat, startBeat, true); } } - } - - List cuedMoleSounds = new List(); - - public override void OnGameSwitch(double beat) - { SetInitTresholds(beat); SetMarchEndBeat(beat); } public override void OnPlay(double beat) { - SetInitTresholds(beat); - SetMarchEndBeat(beat); + OnGameSwitch(beat); } private void SetMarchEndBeat(double beat) { - double nextEndBeat = double.MaxValue; var nextEnd = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }).Find(e => e.beat > beat); - if (nextEnd != null) nextEndBeat = nextEnd.beat; + double nextEndBeat = nextEnd?.beat ?? double.MaxValue; - var allEnds = EventCaller.GetAllInGameManagerList("cropStomp", new string[] { "end" }); - var tempEnds = allEnds.FindAll(x => x.beat >= beat && x.beat < nextEndBeat); - if (tempEnds.Count == 0) return; - - marchEndBeat = tempEnds[0].beat; - willNotHum = tempEnds[0]["mute"]; + var firstEnd = GameManager.instance.Beatmap.Entities.Find(c => c.datamodel == "cropStomp/end" && c.beat >= beat && c.beat < nextEndBeat); + if (firstEnd != null) { + marchEndBeat = firstEnd.beat; + willNotHum = firstEnd["mute"]; + } } public static void MoleSound(double beat) { - MultiSound.Play(new MultiSound.Sound[] - { - new MultiSound.Sound("cropStomp/moleNyeh", beat - 2, 1, 1, false, 0.134), - new MultiSound.Sound("cropStomp/moleHeh1", beat - 1.5, 1, 1, false, 0.05), - new MultiSound.Sound("cropStomp/moleHeh2", beat - 1, 1, 1, false, 0.061) + MultiSound.Play(new MultiSound.Sound[] { + new MultiSound.Sound("cropStomp/moleNyeh", beat - 2, offset: 0.134), + new MultiSound.Sound("cropStomp/moleHeh1", beat - 1.5, offset: 0.05), + new MultiSound.Sound("cropStomp/moleHeh2", beat - 1, offset: 0.061) }, forcePlay: true); } @@ -285,11 +242,8 @@ namespace HeavenStudio.Games { var cond = Conductor.instance; - if (!cond.isPlaying) - return; + if (!cond.isPlaying || !isMarching) return; - if (!isMarching) - return; // Debug.Log(newBeat); bool cameraLocked = cond.songPositionInBeats >= marchEndBeat; @@ -308,11 +262,11 @@ namespace HeavenStudio.Games if (PlayerInput.GetIsAction(InputAction_BasicRelease) && !IsExpectingInputNow(InputAction_BasicRelease)) { - bodyAnim.Play("Raise"); + bodyAnim.DoScaledAnimationAsync("Raise", 0.5f); } if (PlayerInput.GetIsAction(InputAction_Flick) && !IsExpectingInputNow(InputAction_FlickRelease)) { - bodyAnim.Play("Pick"); + bodyAnim.DoScaledAnimationAsync("Pick", 0.5f); } if (cameraLocked) return; @@ -326,7 +280,7 @@ namespace HeavenStudio.Games var grassPos = grassTrans.localPosition; var newGrassX = grassPos.x + (scrollRate * Time.deltaTime); - newGrassX = (newGrassX % (grassWidth * 4.5f)); + newGrassX %= grassWidth * 4.5f; grassTrans.localPosition = new Vector3(newGrassX, grassPos.y, grassPos.z); @@ -334,16 +288,14 @@ namespace HeavenStudio.Games var dotsPos = dotsTrans.localPosition; var newDotsX = dotsPos.x + (scrollRate * Time.deltaTime); - newDotsX = (newDotsX % dotsWidth); + newDotsX %= dotsWidth; dotsTrans.localPosition = new Vector3(newDotsX, dotsPos.y, dotsPos.z); } private void LateUpdate() { - if (!isMarching) - return; - + if (!isMarching) return; isFlicking = false; } @@ -357,12 +309,9 @@ namespace HeavenStudio.Games private void SetInitTresholds(double beat) { - var allCollects = EventCaller.GetAllInGameManagerList("cropStomp", new string[] { "plantCollect" }); - if (allCollects.Count == 0) return; - - var tempCollect = allCollects.FindLast(x => x.beat < beat); - if (tempCollect == null) return; - SetCollectThresholds(tempCollect["threshold"], tempCollect["limit"], tempCollect["force"], tempCollect["forceAmount"]); + var lastCollect = GameManager.instance.Beatmap.Entities.FindLast(c => c.datamodel == "cropStomp/plantCollect" && c.beat < beat); + if (lastCollect == null) return; + SetCollectThresholds(lastCollect["threshold"], lastCollect["limit"], lastCollect["force"], lastCollect["forceAmount"]); } public void CollectPlant(int veggieType) @@ -379,19 +328,18 @@ namespace HeavenStudio.Games if (!isStepping) { stepCount += 1; - var stepAnim = (stepCount % 2 != 0 ? "StepFront" : "StepBack"); - legsAnim.Play(stepAnim, 0, 0); + var stepAnim = (stepCount % 2 != 0) ? "StepFront" : "StepBack"; + legsAnim.DoScaledAnimationAsync(stepAnim, 0.5f); isStepping = true; } - } // Lift. else { - var liftAnim = (stepCount % 2 != 0 ? "LiftBack" : "LiftFront"); - legsAnim.Play(liftAnim, 0, 0); + var liftAnim = (stepCount % 2 != 0) ? "LiftBack" : "LiftFront"; + legsAnim.DoScaledAnimationAsync(liftAnim, 0.5f); var farmerPos = farmerTrans.localPosition; farmerTrans.localPosition = new Vector3(farmerPos.x - stepDistance, farmerPos.y, farmerPos.z); @@ -413,27 +361,28 @@ namespace HeavenStudio.Games public void Stomp() { // Don't increment step counter if autostep stepped already. - if (!isStepping) - stepCount += 1; + if (!isStepping) stepCount += 1; - var stompAnim = (stepCount % 2 != 0 ? "StompFront" : "StompBack"); + var stompAnim = (stepCount % 2 != 0) ? "StompFront" : "StompBack"; - legsAnim.Play(stompAnim, 0, 0); + legsAnim.DoScaledAnimationAsync(stompAnim, 0.5f); SoundByte.PlayOneShotGame("cropStomp/stomp"); - if (shakeTween != null) - shakeTween.Kill(true); + if (shakeTween != null) shakeTween.Kill(true); - DOTween.Punch(() => GameCamera.AdditionalPosition, x => GameCamera.AdditionalPosition = x, new Vector3(0, 0.75f, 0), - Conductor.instance.pitchedSecPerBeat*0.5f, 18, 1f); + DOTween.Punch(() => + GameCamera.AdditionalPosition, + x => GameCamera.AdditionalPosition = x, + new Vector3(0, 0.75f, 0), Conductor.instance.pitchedSecPerBeat * 0.5f, 18, 1f + ); isStepping = true; } private void SpawnVeggie(double beat, double startBeat, bool isMole) { - var newVeggie = GameObject.Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent(); + var newVeggie = Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent(); newVeggie.targetBeat = beat; @@ -445,21 +394,16 @@ namespace HeavenStudio.Games public static void MarchInactive(double beat) { - if (GameManager.instance.currentGame == "cropStomp") //this function is only meant for making march sounds while the game is inactive - { - return; - } + if (GameManager.instance.currentGame == "cropStomp") return; inactiveStart = beat; RiqEntity gameSwitch = GameManager.instance.Beatmap.Entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp"); - if (gameSwitch == null) - return; - int length = (int)Math.Ceiling((gameSwitch.beat - beat)/2); + if (gameSwitch == null) return; + int length = (int)Math.Ceiling((gameSwitch.beat - beat) / 2); MultiSound.Sound[] sounds = new MultiSound.Sound[length]; - for(int i = 0; i < length; i++) - { - sounds[i] = new MultiSound.Sound("cropStomp/hmm", beat + i*2); + for(int i = 0; i < length; i++) { + sounds[i] = new MultiSound.Sound("cropStomp/hmm", beat + (i * 2)); } - MultiSound.Play(sounds, forcePlay:true); + MultiSound.Play(sounds, forcePlay: true); } } } diff --git a/Assets/Scripts/Games/CropStomp/Farmer.cs b/Assets/Scripts/Games/CropStomp/Farmer.cs index cc2b33ca..4016cb5d 100644 --- a/Assets/Scripts/Games/CropStomp/Farmer.cs +++ b/Assets/Scripts/Games/CropStomp/Farmer.cs @@ -70,7 +70,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp if (PlayerInput.GetIsAction(CropStomp.InputAction_BasicPress) && !game.IsExpectingInputNow(CropStomp.InputAction_BasicPress)) { - game.bodyAnim.Play("Crouch", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Crouch", 0.5f); } } @@ -87,8 +87,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp startPlant.SetActive(collectedPlants >= plantThreshold); if (spawnedPlants.Count > 0) { - foreach (var plant in spawnedPlants) - { + foreach (var plant in spawnedPlants) { Destroy(plant); } spawnedPlants.Clear(); @@ -102,8 +101,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp { spawnedPlant = Instantiate(plantLastRef, collectedHolder); spawnedPlant.GetComponent().sprite = veggieSprites[lastVeggieType]; + } else { + spawnedPlant = Instantiate((realIndex % 2 == 0) ? plantRightRef : plantLeftRef, collectedHolder); } - else spawnedPlant = Instantiate((realIndex % 2 == 0) ? plantRightRef : plantLeftRef, collectedHolder); spawnedPlant.transform.localPosition = new Vector3(0, (realIndex * plantDistance) + plantStartDistance, 0); spawnedPlant.GetComponent().sortingOrder = -realIndex - 2; spawnedPlant.SetActive(true); @@ -119,9 +119,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp private void Miss(PlayerActionEvent caller) { - if (GameManager.instance.currentGame != "cropStomp") return; - if (!game.isMarching) - return; + if (GameManager.instance.currentGame != "cropStomp" || !game.isMarching) return; + // REMARK: does not count for performance nextStompBeat += 2f; stomp?.Disable(); @@ -133,18 +132,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp void Stomp(bool ng) { - if (GameManager.instance.currentGame != "cropStomp") return; - if (!game.isMarching) - return; - if (ng) - { - game.bodyAnim.Play("Crouch", 0, 0); - } - else - { + if (GameManager.instance.currentGame != "cropStomp" || !game.isMarching) return; + if (ng) { + game.bodyAnim.DoScaledAnimationAsync("Crouch", 0.5f); + } else { game.Stomp(); - game.bodyAnim.Play("Stomp", 0, 0); - + game.bodyAnim.DoScaledAnimationAsync("Stomp", 0.5f); } nextStompBeat += 2f; stomp?.Disable(); diff --git a/Assets/Scripts/Games/CropStomp/Veggie.cs b/Assets/Scripts/Games/CropStomp/Veggie.cs index 56d6a478..69558981 100644 --- a/Assets/Scripts/Games/CropStomp/Veggie.cs +++ b/Assets/Scripts/Games/CropStomp/Veggie.cs @@ -39,7 +39,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp { game = CropStomp.instance; - if (Conductor.instance.isPlaying) + // if (Conductor.instance.isPlaying) game.ScheduleInput(targetBeat - 1, 1f, CropStomp.InputAction_BasicPress, StompJust, StompMiss, Out); if (!isMole) @@ -56,38 +56,23 @@ namespace HeavenStudio.Games.Scripts_CropStomp private bool gotStomped; // Safeguard in case nested Update() call breaks. private void Update() { - if (!game.isMarching) - return; + if (!game.isMarching) return; - // Veggie missed. Handle missed state. - if (veggieState == -1) + switch (veggieState) { - MissedUpdate(); - return; - } + case -1: MissedUpdate(); return; + // case 0: + case 2: PickedUpdate(); return; + case 1: + float airPosition = Conductor.instance.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat); + veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1)); - // Veggie picked. Handle picked state. - if (veggieState == 2) - { - PickedUpdate(); - return; - } - - var cond = Conductor.instance; - // In ground. - if (veggieState == 0) - { - } - // In air. - else if (veggieState == 1) - { - float airPosition = cond.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat); - veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1)); - - if (PlayerInput.GetIsAction(CropStomp.InputAction_FlickRelease) && !game.IsExpectingInputNow(CropStomp.InputAction_FlickRelease)) - { - pickEligible = false; - } + if (PlayerInput.GetIsAction(CropStomp.InputAction_FlickRelease) && !game.IsExpectingInputNow(CropStomp.InputAction_FlickRelease)) + { + pickEligible = false; + } + break; + // default: } } @@ -105,17 +90,17 @@ namespace HeavenStudio.Games.Scripts_CropStomp StompVeggie(false); } - private void StompMiss(PlayerActionEvent caller) + private void StompMiss(PlayerActionEvent caller) { veggieState = -1; caller.Disable(); } - private void Out(PlayerActionEvent caller) {} + private void Out(PlayerActionEvent caller) { } private void PickJust(PlayerActionEvent caller, float state) { - game.bodyAnim.Play("Pick", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Pick", 0.5f); game.isFlicking = true; if (!pickEligible) return; if (GameManager.instance.autoplay) @@ -131,13 +116,20 @@ namespace HeavenStudio.Games.Scripts_CropStomp curve.transform.localScale = Vector3.one; // Return curve to normal size in the case of mole curves. - var key1 = curve.KeyPoints[0]; - var key1Pos = key1.Position; - key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z); + for (int i = 0; i < 2; i++) + { + var key = curve.KeyPoints[i]; + var keyPos = key.Position; + key.Position = new Vector3(keyPos.x, veggieTrans.position.y + (i * 2), keyPos.z); + } - var key2 = curve.KeyPoints[1]; - var key2Pos = key2.Position; - key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z); + // var key1 = curve.KeyPoints[0]; + // var key1Pos = key1.Position; + // key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z); + + // var key2 = curve.KeyPoints[1]; + // var key2Pos = key2.Position; + // key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z); pickedBeat = Conductor.instance.songPositionInBeatsAsDouble; @@ -154,9 +146,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp private void PickMiss(PlayerActionEvent caller) { veggieState = -1; - - if (!isMole) - SoundByte.PlayOneShotGame("cropStomp/veggieMiss"); + + if (!isMole) SoundByte.PlayOneShotGame("cropStomp/veggieMiss"); caller.Disable(); } @@ -186,7 +177,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp var distDiff = transform.position.x - game.farmerTrans.position.x; if (distDiff > 1.5f) { - moleAnim.Play("Chuckle", 0, 0); + moleAnim.DoScaledAnimationAsync("Chuckle", 0.5f); moleLaughing = true; } } @@ -223,6 +214,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp } gotStomped = true; + Debug.Log("Stomped!"); + var cond = Conductor.instance; ParticleSystem spawnedHit = Instantiate(game.hitParticle, game.hitParticle.transform.parent); @@ -235,12 +228,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp stompedBeat = cond.songPositionInBeatsAsDouble; - landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime()-1, cond.GetBpmAtBeat(targetBeat)); + landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime() - 1, cond.GetBpmAtBeat(targetBeat)); if (autoTriggered) { game.Stomp(); - game.bodyAnim.Play("Stomp", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Stomp", 0.5f); } if (!isMole) @@ -251,7 +244,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp } else { - moleAnim.Play("Idle", 0, 0); + moleAnim.DoScaledAnimationAsync("Idle", 0.5f); } var veggieScale = veggieTrans.localScale; @@ -267,7 +260,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp if (autoTriggered) { - game.bodyAnim.Play("Pick", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Pick", 0.5f); game.isFlicking = true; } diff --git a/Assets/Scripts/Games/DJSchool/DJSchool.cs b/Assets/Scripts/Games/DJSchool/DJSchool.cs index 953c5239..c895d638 100644 --- a/Assets/Scripts/Games/DJSchool/DJSchool.cs +++ b/Assets/Scripts/Games/DJSchool/DJSchool.cs @@ -113,14 +113,12 @@ namespace HeavenStudio.Games [SerializeField] private Student student; [SerializeField] private GameObject djYellow; private Animator djYellowAnim; - private double lastReportedBeat = 0f; public DJYellow djYellowScript; [Header("Properties")] public GameEvent bop = new GameEvent(); public bool djYellowHolding; public bool andStop; - public bool goBop; public double beatOfInstance; private bool djYellowBopLeft; public bool shouldBeHolding = false; @@ -138,7 +136,7 @@ namespace HeavenStudio.Games djYellowAnim = djYellow.GetComponent(); djYellowScript = djYellow.GetComponent(); student.Init(); - goBop = true; + SetupBopRegion("djSchool", "bop", "toggle"); } //For inactive game purposes @@ -167,7 +165,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (!goBop) return; + if (!BeatIsInBopRegion(beat)) return; if (student.isHolding) { student.anim.DoScaledAnimationAsync("HoldBop", 0.5f); @@ -243,7 +241,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool isBopping, bool autoBop) { - goBop = autoBop; if (isBopping) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/DJSchool/Student.cs b/Assets/Scripts/Games/DJSchool/Student.cs index f85881ab..2a965660 100644 --- a/Assets/Scripts/Games/DJSchool/Student.cs +++ b/Assets/Scripts/Games/DJSchool/Student.cs @@ -258,7 +258,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool { new BeatAction.Action(caller.timer + caller.startBeat + 1, delegate { - if (game.goBop) + if (game.BeatIsInBopRegion(caller.timer + caller.startBeat + 1)) { game.djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.CrossEyed); if (game.djYellowHolding) game.djYellowScript.Reverse(); @@ -278,7 +278,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool { new BeatAction.Action(beat, delegate { - if (game.goBop) + if (game.BeatIsInBopRegion(beat)) { game.djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.CrossEyed); if (game.djYellowHolding) game.djYellowScript.Reverse(); diff --git a/Assets/Scripts/Games/DogNinja/DogNinja.cs b/Assets/Scripts/Games/DogNinja/DogNinja.cs index 388d8a62..01e9e477 100644 --- a/Assets/Scripts/Games/DogNinja/DogNinja.cs +++ b/Assets/Scripts/Games/DogNinja/DogNinja.cs @@ -140,9 +140,7 @@ namespace HeavenStudio.Games [SerializeField] Sprite[] ObjectTypes; - private double lastReportedBeat = 0f; private bool birdOnScreen = false; - bool dontBop = false; private const string sfxNum = "dogNinja/"; public static DogNinja instance; @@ -200,6 +198,7 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("dogNinja", "Bop", "auto"); } void OnDestroy() @@ -216,7 +215,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (dontBop) return; + if (!BeatIsInBopRegion(beat)) return; DogAnim.DoScaledAnimationAsync("Bop", 0.5f); } @@ -267,7 +266,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool auto, bool bop) { - dontBop = !auto; if (!bop) return; List actions = new(); diff --git a/Assets/Scripts/Games/DoubleDate/DoubleDate.cs b/Assets/Scripts/Games/DoubleDate/DoubleDate.cs index e82f6aa5..e2cc3724 100644 --- a/Assets/Scripts/Games/DoubleDate/DoubleDate.cs +++ b/Assets/Scripts/Games/DoubleDate/DoubleDate.cs @@ -76,9 +76,7 @@ namespace HeavenStudio.Games [SerializeField] public float shadowDepthScaleMax; [SerializeField] SuperCurveObject.Path[] ballBouncePaths; double lastGirlGacha = double.MinValue; - bool shouldBop = true; bool canBop = true; - GameEvent bop = new GameEvent(); public static DoubleDate instance; public static List queuedBalls = new List(); [NonSerialized] public double lastHitWeasel = double.MinValue; @@ -132,6 +130,7 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("doubleDate", "bop", "autoBop"); } private void Start() { @@ -140,7 +139,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (shouldBop) SingleBop(); + if (BeatIsInBopRegion(beat)) SingleBop(); } void Update() @@ -198,7 +197,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool goBop, bool autoBop) { - shouldBop = autoBop; if (goBop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs index 071711e0..ed76d2fe 100644 --- a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs +++ b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs @@ -21,7 +21,7 @@ namespace HeavenStudio.Games.Loaders parameters = new List() { new Param("bop", true, "Bop", "Should the drummers bop?"), - new Param("autoBop", true, "Bop (Auto)", "Should the drummers auto bop?") + new Param("autoBop", false, "Bop (Auto)", "Should the drummers auto bop?") } }, new GameAction("drum", "Hit Drum") @@ -121,9 +121,6 @@ namespace HeavenStudio.Games bool isMoving; string moveAnim; EasingFunction.Ease lastEase; - bool goBop = true; - - public GameEvent bop = new GameEvent(); public int count = 0; public static DrummingPractice instance; @@ -132,6 +129,7 @@ namespace HeavenStudio.Games { instance = this; SetMiis(); + SetupBopRegion("drummingPractice", "bop", "autoBop"); } public override void OnGameSwitch(double beat) @@ -146,7 +144,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (goBop) + if (BeatIsInBopRegion(beat)) { Bop(); } @@ -191,7 +189,6 @@ namespace HeavenStudio.Games public void SetBop(double beat, float length, bool shouldBop, bool autoBop) { - goBop = autoBop; if (shouldBop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/FanClub/FanClub.cs b/Assets/Scripts/Games/FanClub/FanClub.cs index bdadd741..2212be69 100644 --- a/Assets/Scripts/Games/FanClub/FanClub.cs +++ b/Assets/Scripts/Games/FanClub/FanClub.cs @@ -218,8 +218,6 @@ namespace HeavenStudio.Games private static bool wantKamoneAlt = false; private static double wantBigReady = double.MinValue; private bool hasJumped = false; - private bool goBopIdol = true; - private bool goBopSpec = true; private bool noJudgement = false; private bool noJudgementInput = false; @@ -235,6 +233,8 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("fanClub", "bop", "type2", false); + AddBopRegionEventsInt("fanClub", "finish", 3); Spectators = new List(); idolAnimator = Arisa.GetComponent(); backupRAnimator = Blue.GetComponent(); @@ -357,6 +357,9 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { var cond = Conductor.instance; + int whoBops = BeatIsInBopRegionInt(beat); + bool goBopIdol = whoBops == (int)IdolBopType.Both || whoBops == (int)IdolBopType.Idol; + bool goBopSpec = whoBops == (int)IdolBopType.Both || whoBops == (int)IdolBopType.Spectators; if (goBopIdol) { if (!(cond.songPositionInBeatsAsDouble >= noBop.startBeat && cond.songPositionInBeatsAsDouble < noBop.startBeat + noBop.length)) @@ -398,8 +401,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, int target = (int) IdolBopType.Both, int targetAuto = (int)IdolBopType.Both) { - goBopIdol = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Idol; - goBopSpec = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Spectators; for (int i = 0; i < length; i++) { BeatAction.New(instance, new List() @@ -934,7 +935,6 @@ namespace HeavenStudio.Games if (noJudgement) return; noJudgement = true; noJudgementInput = false; - goBopSpec = false; // recreation of sub61 BeatAction.New(this, new List() diff --git a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs index 0c6519ac..6787de94 100644 --- a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs +++ b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs @@ -124,6 +124,12 @@ namespace HeavenStudio.Games BackgroundColorUpdate(); } + public override void OnPlay(double beat) + { + base.OnPlay(beat); + OnGameSwitch(beat); + } + public override void OnGameSwitch(double beat) { base.OnGameSwitch(beat); @@ -247,10 +253,5 @@ namespace HeavenStudio.Games BackgroundColorGrad(lastEventGrad.beat, lastEventGrad.length, lastEventGrad["start"], lastEventGrad["end"], lastEventGrad["ease"]); } } - - public override void OnPlay(double beat) - { - PersistColor(beat); - } } } \ No newline at end of file diff --git a/Assets/Scripts/Games/KarateMan/KarateMan.cs b/Assets/Scripts/Games/KarateMan/KarateMan.cs index 9fca97f8..4e2e5f55 100644 --- a/Assets/Scripts/Games/KarateMan/KarateMan.cs +++ b/Assets/Scripts/Games/KarateMan/KarateMan.cs @@ -692,6 +692,7 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("karateman", "bop", "toggle"); KarateManPot.ResetLastCombo(); @@ -1168,13 +1169,13 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { + bool autoBop = BeatIsInBopRegion(beat); + Joe.bop.length = autoBop ? float.MaxValue : 0; Joe.RequestBop(); } public void ToggleBop(double beat, float length, bool toggle, bool autoBop) { - Joe.bop.length = autoBop ? float.MaxValue : 0; - if (toggle) { var actions = new List(); diff --git a/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs b/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs index f03d79db..510e0209 100644 --- a/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs +++ b/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs @@ -94,10 +94,8 @@ namespace HeavenStudio.Games [Header("Variables")] bool intervalStarted; double intervalStartBeat; - bool bossBop = true; public double beatInterval = 4f; public bool bossAnnoyed = false; - private double lastReportedBeat = 0f; const string sfxName = "meatGrinder/"; public static MeatGrinder instance; @@ -124,6 +122,7 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("meatGrinder", "bop", "bossBop"); } void OnDestroy() @@ -161,7 +160,7 @@ namespace HeavenStudio.Games { if (!BossAnim.IsPlayingAnimationName("BossCall") && !BossAnim.IsPlayingAnimationName("BossSignal") - && bossBop) + && BeatIsInBopRegion(beat)) { BossAnim.DoScaledAnimationAsync(bossAnnoyed ? "BossMiss" : "Bop", 0.5f); } @@ -169,7 +168,6 @@ namespace HeavenStudio.Games public void Bop(double beat, double length, bool doesBop, bool autoBop) { - bossBop = autoBop; if (doesBop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/Minigame.cs b/Assets/Scripts/Games/Minigame.cs index 632bb881..7954ebbb 100644 --- a/Assets/Scripts/Games/Minigame.cs +++ b/Assets/Scripts/Games/Minigame.cs @@ -6,6 +6,7 @@ using HeavenStudio.Util; using HeavenStudio.Common; using HeavenStudio.InputSystem; using System; +using System.Linq; namespace HeavenStudio.Games { @@ -448,6 +449,82 @@ namespace HeavenStudio.Games } + #region Bop + + protected enum DefaultBopEnum + { + Off = 0, + On = 1, + } + + private Dictionary bopRegion = new(); + + public bool BeatIsInBopRegion(double beat) + { + if (bopRegion.Count == 0) return true; + + int bop = 0; + foreach (var item in bopRegion) + { + if (beat < item.Key) break; + if (beat >= item.Key) bop = item.Value; + } + return (DefaultBopEnum)bop == DefaultBopEnum.On; + } + + public int BeatIsInBopRegionInt(double beat) + { + if (bopRegion.Count == 0) return 0; + + int bop = 0; + foreach (var item in bopRegion) + { + if (beat < item.Key) break; + if (beat >= item.Key) bop = item.Value; + } + return bop; + } + + protected void SetupBopRegion(string gameName, string eventName, string toggleName, bool isBool = true) + { + var allEvents = EventCaller.GetAllInGameManagerList(gameName, new string[] { eventName }); + allEvents.Sort((x, y) => x.beat.CompareTo(y.beat)); + + foreach (var e in allEvents) + { + if (isBool) + { + bopRegion.Add(e.beat, e[toggleName] ? 1 : 0); + } + else + { + bopRegion.Add(e.beat, e[toggleName]); + } + } + } + + protected void AddBopRegionEvents(string gameName, string eventName, bool allowBop) + { + var allEvents = EventCaller.GetAllInGameManagerList(gameName, new string[] { eventName }); + foreach (var e in allEvents) + { + bopRegion.Add(e.beat, allowBop ? 1 : 0); + } + bopRegion = bopRegion.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value); + } + + protected void AddBopRegionEventsInt(string gameName, string eventName, int allowBop) + { + var allEvents = EventCaller.GetAllInGameManagerList(gameName, new string[] { eventName }); + foreach (var e in allEvents) + { + bopRegion.Add(e.beat, allowBop); + } + bopRegion = bopRegion.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value); + } + + #endregion + private void OnDestroy() { foreach (var evt in scheduledInputs) diff --git a/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs b/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs index 9de0976d..35e30dd6 100644 --- a/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs +++ b/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs @@ -17,14 +17,14 @@ namespace HeavenStudio.Games.Loaders { function = delegate { var e = eventCaller.currentEntity; - MunchyMonk.instance.Bop(e.beat, e["bop"], e["autoBop"]); + MunchyMonk.instance.Bop(e.beat, e.length, e["bop"]); }, parameters = new List() { new Param("bop", true, "Monk Bops?", "Does the monk bop?"), new Param("autoBop", false, "Monk Bops? (Auto)", "Does the monk auto bop?"), }, - defaultLength = 0.5f, + resizable = true }, new GameAction("MonkMove", "Monk Move") { @@ -209,7 +209,6 @@ namespace HeavenStudio.Games public double lastReportedBeat = 0f; public bool needBlush; public bool isStaring; - bool monkBop = true; // these variables are static so that they can be set outside of the game/stay the same between game switches static public int howManyGulps; @@ -241,6 +240,7 @@ namespace HeavenStudio.Games { instance = this; Baby.SetActive(!disableBaby); + SetupBopRegion("munchyMonk", "Bop", "autoBop"); } private void Start() @@ -352,7 +352,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { if ((MonkAnim.IsAnimationNotPlaying() || MonkAnim.IsPlayingAnimationName("Bop") || MonkAnim.IsPlayingAnimationName("Idle")) - && monkBop + && BeatIsInBopRegion(beat) && !isStaring) { MonkAnim.DoScaledAnimationAsync("Bop", 0.5f); @@ -370,15 +370,23 @@ namespace HeavenStudio.Games } } - public void Bop(double beat, bool bop, bool autoBop) + public void Bop(double beat, double length, bool bop) { - monkBop = autoBop; - if (bop) { - needBlush = false; - MonkAnim.DoScaledAnimationAsync("Bop", 0.5f); - if (growLevel == 4) BrowAnim.DoScaledAnimationAsync("Bop", 0.5f); - if (growLevel > 0) StacheAnim.DoScaledAnimationAsync($"Bop{growLevel}", 0.5f); + if (!bop) return; + List actions = new(); + + for (int i = 0; i < length; i++) + { + actions.Add(new(beat + i, delegate + { + needBlush = false; + MonkAnim.DoScaledAnimationAsync("Bop", 0.5f); + if (growLevel == 4) BrowAnim.DoScaledAnimationAsync("Bop", 0.5f); + if (growLevel > 0) StacheAnim.DoScaledAnimationAsync($"Bop{growLevel}", 0.5f); + })); } + + if (actions.Count > 0) BeatAction.New(this, actions); } public void InputFunctions(int whichVar, float state = 0) diff --git a/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs b/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs index 18fdf4ee..69595873 100644 --- a/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs +++ b/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs @@ -229,6 +229,7 @@ namespace HeavenStudio.Games void Awake() { instance = this; + SetupBopRegion("octopusMachine", "bop", "keepBop"); } private void Start() @@ -263,8 +264,11 @@ namespace HeavenStudio.Games if (autoAction) bopIterate++; + bool keepBop = BeatIsInBopRegion(beat); + foreach (var octo in octopodes) { + octo.cantBop = !keepBop; octo.RequestBop(); } } @@ -339,7 +343,6 @@ namespace HeavenStudio.Games foreach (var octo in octopodes) { if (singleBop) octo.PlayAnimation(whichBop); if (keepBop) bopStatus = whichBop; - octo.cantBop = !keepBop; } } diff --git a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs index 0b808c35..8bb9d1cf 100644 --- a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs +++ b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs @@ -152,8 +152,6 @@ namespace HeavenStudio.Games public Paddlers paddlers; - private bool goBop = true; - public static RhythmRally instance; private void Awake() @@ -166,6 +164,7 @@ namespace HeavenStudio.Games playerAnim.Play("Idle", 0, 0); opponentAnim.Play("Idle", 0, 0); + SetupBopRegion("rhythmRally", "bop", "bopAuto"); } const float tableHitTime = 0.58f; @@ -366,7 +365,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (goBop && !inPose) + if (BeatIsInBopRegion(beat) && !inPose) { BopSingle(); } @@ -374,7 +373,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool bop, bool bopAuto) { - goBop = bopAuto; if (bop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs b/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs index ec54051b..46bd45c3 100644 --- a/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs +++ b/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs @@ -70,23 +70,21 @@ namespace HeavenStudio.Games public Animator CloseCrane; public Animator FarCrane; public GameObject Player; - private bool shouldBop = true; private bool missed; private bool hasSlurped; - public GameEvent bop = new GameEvent(); - public static RhythmSomen instance; // Start is called before the first frame update void Awake() { instance = this; + SetupBopRegion("rhythmSomen", "bop", "toggle"); } public override void OnBeatPulse(double beat) { - if (shouldBop) SomenPlayer.DoScaledAnimationAsync("HeadBob", 0.5f); + if (BeatIsInBopRegion(beat)) SomenPlayer.DoScaledAnimationAsync("HeadBob", 0.5f); } void Update() @@ -125,7 +123,6 @@ namespace HeavenStudio.Games public void ToggleBop(double beat, float length, bool bopOrNah, bool autoBop) { - shouldBop = autoBop; if (bopOrNah) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/Ringside/Ringside.cs b/Assets/Scripts/Games/Ringside/Ringside.cs index 5da8b759..ce77e8ea 100644 --- a/Assets/Scripts/Games/Ringside/Ringside.cs +++ b/Assets/Scripts/Games/Ringside/Ringside.cs @@ -143,7 +143,6 @@ namespace HeavenStudio.Games private float currentZoomCamBeat; private Vector3 lastCamPos = new Vector3(0, 0, -10); private Vector3 currentCamPos = new Vector3(0, 0, -10); - private bool shouldBop = true; private bool missedBigGuy; private bool reporterShouldHeart; private bool hitPose; @@ -201,6 +200,7 @@ namespace HeavenStudio.Games void Awake() { instance = this; + SetupBopRegion("ringside", "toggleBop", "bop"); var camEvents = EventCaller.GetAllInGameManagerList("ringside", new string[] { "poseForTheFans" }); List tempEvents = new List(); for (int i = 0; i < camEvents.Count; i++) @@ -220,7 +220,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (shouldBop && canBop) + if (BeatIsInBopRegion(beat) && canBop) { if (UnityEngine.Random.Range(1, 18) == 1) { @@ -331,7 +331,6 @@ namespace HeavenStudio.Games public void ToggleBop(double beat, float length, bool startBopping, bool autoBop) { - shouldBop = autoBop; if (startBopping) { for (int i = 0; i < length; i++) @@ -510,7 +509,7 @@ namespace HeavenStudio.Games new BeatAction.Action(beat + 1, delegate { PoseCheck(beat); }), new BeatAction.Action(beat + 4f, delegate { - if (shouldBop) + if (BeatIsInBopRegion(beat + 4f)) { if (UnityEngine.Random.Range(1, 18) == 1) { diff --git a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs index 13d41c7e..1d422b5a 100644 --- a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs +++ b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs @@ -89,6 +89,7 @@ namespace HeavenStudio.Games.Loaders namespace HeavenStudio.Games { + using JetBrains.Annotations; using Scripts_NtrSamurai; public class SamuraiSliceNtr : Minigame @@ -102,15 +103,12 @@ namespace HeavenStudio.Games public enum WhoBops { - Samurai = 0, + Samurai = 2, Children = 1, - Both = 2, + Both = 0, None = 3 } - private bool goBopSamurai = true; - private bool goBopChild = true; - [Header("References")] public NtrSamurai player; public GameObject launcher; @@ -167,10 +165,15 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("samuraiSliceNtr", "bop", "whoBopsAuto", false); } public override void OnBeatPulse(double beat) { + int whoBopsAuto = BeatIsInBopRegionInt(beat); + bool goBopSamurai = whoBopsAuto == (int)WhoBops.Samurai || whoBopsAuto == (int)WhoBops.Both; + bool goBopChild = whoBopsAuto == (int)WhoBops.Children || whoBopsAuto == (int)WhoBops.Both; + if (goBopSamurai) player.Bop(); if (goBopChild) childParent.GetComponent().Bop(); } @@ -187,8 +190,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, int whoBops, int whoBopsAuto) { - goBopSamurai = whoBopsAuto == (int)WhoBops.Samurai || whoBopsAuto == (int)WhoBops.Both; - goBopChild = whoBopsAuto == (int)WhoBops.Children || whoBopsAuto == (int)WhoBops.Both; for (int i = 0; i < length; i++) { BeatAction.New(instance, new List() diff --git a/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs b/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs index 77399516..eb125faa 100644 --- a/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs +++ b/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs @@ -136,9 +136,34 @@ namespace HeavenStudio.Games.Scripts_SeeSaw transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat); break; case JumpState.HighOutOut: + if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see) + { + if (!hasChangedAnimMidAir) anim.Play("Jump_OutOut_Fall", 0, 0); + hasChangedAnimMidAir = true; + } + transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat); + break; case JumpState.HighOutIn: + if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see) + { + if (!hasChangedAnimMidAir) anim.Play("Jump_OutIn_Tuck", 0, 0); + hasChangedAnimMidAir = true; + } + transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat); + break; case JumpState.HighInOut: + if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see) + { + if (!hasChangedAnimMidAir) anim.Play("Jump_InOut_Tuck", 0, 0); + hasChangedAnimMidAir = true; + } + break; case JumpState.HighInIn: + if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see) + { + if (!hasChangedAnimMidAir) anim.Play("Jump_InIn_Fall", 0, 0); + hasChangedAnimMidAir = true; + } transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat); break; } diff --git a/Assets/Scripts/Games/SpaceDance/SpaceDance.cs b/Assets/Scripts/Games/SpaceDance/SpaceDance.cs index 45668df1..e061c5e5 100644 --- a/Assets/Scripts/Games/SpaceDance/SpaceDance.cs +++ b/Assets/Scripts/Games/SpaceDance/SpaceDance.cs @@ -144,7 +144,6 @@ namespace HeavenStudio.Games public Animator Gramps; public Animator Hit; public GameObject Player; - [NonSerialized] public bool shouldBop = true; bool canBop = true; bool grampsCanBop = true; public bool spaceGrampsShouldBop = false; @@ -226,11 +225,12 @@ namespace HeavenStudio.Games instance = this; colorStart = defaultBGColor; colorEnd = defaultBGColor; + SetupBopRegion("spaceDance", "bop", "auto"); } public override void OnBeatPulse(double beat) { - if (shouldBop) + if (BeatIsInBopRegion(beat)) { Bop(); } @@ -656,7 +656,6 @@ namespace HeavenStudio.Games public void EpicBop(double beat, float length, bool autoDancers, bool dancers, bool autoGramps, bool gramps) { - shouldBop = autoDancers; spaceGrampsShouldBop = autoGramps; if (dancers || gramps) { diff --git a/Assets/Scripts/Games/TapTrial/TapTrial.cs b/Assets/Scripts/Games/TapTrial/TapTrial.cs index 0d43147b..89df2aeb 100644 --- a/Assets/Scripts/Games/TapTrial/TapTrial.cs +++ b/Assets/Scripts/Games/TapTrial/TapTrial.cs @@ -110,9 +110,7 @@ namespace HeavenStudio.Games [SerializeField] private float monkeyJumpHeight = 3f; [SerializeField] private float maxFlashOpacity = 0.8f; - private GameEvent bop = new(); private bool canBop = true; - private bool shouldBop = true; private double jumpStartBeat = double.MinValue; @@ -121,11 +119,12 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("tapTrial", "bop", "toggle2"); } public override void OnBeatPulse(double beat) { - if (shouldBop) SingleBop(); + if (BeatIsInBopRegion(beat)) SingleBop(); } private void Update() @@ -253,7 +252,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool bop, bool autoBop) { - shouldBop = autoBop; if (bop) { List actions = new(); @@ -443,14 +441,14 @@ namespace HeavenStudio.Games private void MissJump(PlayerActionEvent caller) { player.JumpTapMiss(false); - if (giraffe.IsAnimationNotPlaying()) giraffe.DoScaledAnimationAsync("Miss", 0.5f); + if (giraffe.IsAnimationNotPlaying() && currentAnim != GiraffeAnimation.Exit) giraffe.DoScaledAnimationAsync("Miss", 0.5f); ResetScroll(); } private void MissJumpFinal(PlayerActionEvent caller) { player.JumpTapMiss(true); - if (giraffe.IsAnimationNotPlaying()) giraffe.DoScaledAnimationAsync("Miss", 0.5f); + if (giraffe.IsAnimationNotPlaying() && currentAnim != GiraffeAnimation.Exit) giraffe.DoScaledAnimationAsync("Miss", 0.5f); ResetScroll(); } diff --git a/Assets/Scripts/Games/TheDazzles/TheDazzles.cs b/Assets/Scripts/Games/TheDazzles/TheDazzles.cs index 2a35b7e2..0592d454 100644 --- a/Assets/Scripts/Games/TheDazzles/TheDazzles.cs +++ b/Assets/Scripts/Games/TheDazzles/TheDazzles.cs @@ -228,8 +228,6 @@ namespace HeavenStudio.Games bool doingPoses = false; bool shouldHold = false; double crouchEndBeat; - public bool shouldBop = true; - public GameEvent bop = new GameEvent(); static List queuedPoses = new List(); static List queuedCrouches = new List(); [Header("Components")] @@ -255,11 +253,12 @@ namespace HeavenStudio.Games void Awake() { instance = this; + SetupBopRegion("theDazzles", "bop", "toggle"); } public override void OnBeatPulse(double beat) { - if (shouldBop) + if (BeatIsInBopRegion(beat)) { foreach (var girl in npcGirls) { @@ -353,7 +352,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool goBop, bool autoBop) { - shouldBop = autoBop; if (goBop) { for (int i = 0; i < length; i++) diff --git a/Assets/Scripts/Games/TossBoys/TossBoys.cs b/Assets/Scripts/Games/TossBoys/TossBoys.cs index 6fb61256..b583bd97 100644 --- a/Assets/Scripts/Games/TossBoys/TossBoys.cs +++ b/Assets/Scripts/Games/TossBoys/TossBoys.cs @@ -147,8 +147,6 @@ namespace HeavenStudio.Games Dictionary passBallDict = new(); string currentPassType; public static TossBoys instance; - bool shouldBop = true; - public GameEvent bop = new GameEvent(); float currentEventLength; const int IAAka = IAMAXCAT; @@ -236,6 +234,7 @@ namespace HeavenStudio.Games instance = this; colorStart = defaultBGColor; colorEnd = defaultBGColor; + SetupBopRegion("tossBoys", "bop", "auto"); } new void OnDrawGizmos() @@ -264,7 +263,7 @@ namespace HeavenStudio.Games public override void OnBeatPulse(double beat) { - if (shouldBop) + if (BeatIsInBopRegion(beat)) { SingleBop(); } @@ -352,7 +351,6 @@ namespace HeavenStudio.Games public void Bop(double beat, float length, bool auto, bool goBop) { - shouldBop = auto; if (goBop) { List bops = new List(); diff --git a/Assets/Scripts/Games/TrickClass/TrickClass.cs b/Assets/Scripts/Games/TrickClass/TrickClass.cs index 31dda092..c7394294 100644 --- a/Assets/Scripts/Games/TrickClass/TrickClass.cs +++ b/Assets/Scripts/Games/TrickClass/TrickClass.cs @@ -114,12 +114,13 @@ namespace HeavenStudio.Games private void Awake() { instance = this; + SetupBopRegion("trickClass", "bop", "autoBop"); } public override void OnBeatPulse(double beat) { var cond = Conductor.instance; - if (!goBop) return; + if (!BeatIsInBopRegion(beat)) return; if ((!playerReady) && cond.songPositionInBeatsAsDouble > playerBopStart) playerAnim.DoScaledAnimationAsync("Bop");