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");