diff --git a/Assets/Resources/Games/lockstep.prefab b/Assets/Resources/Games/lockstep.prefab
index 71614f90..4bdd3fcb 100644
--- a/Assets/Resources/Games/lockstep.prefab
+++ b/Assets/Resources/Games/lockstep.prefab
@@ -28,9 +28,10 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- - {fileID: 4904300105776718479}
- - {fileID: 5822623106182197534}
- {fileID: 7814980077180382399}
+ - {fileID: 4904300105776718479}
+ - {fileID: 6282292135211262012}
+ - {fileID: 5822623106182197534}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -50,13 +51,12 @@ MonoBehaviour:
EligibleHits: []
scheduledInputs: []
firstEnable: 0
+ currentBGOnColor: {r: 0.9411765, g: 0.2, b: 0.5529412, a: 0}
+ currentBGOffColor: {r: 0.6039216, g: 0.15294118, b: 0.3764706, a: 0}
stepswitcherP: {fileID: 5548089329135658778}
stepswitcher0: {fileID: 4041276273830102762}
stepswitcher1: {fileID: 4669067225944782995}
- Player: {fileID: 3824742015622016231}
- goStep: 0
- steppingLength: 0
- steppingStartBeat: 0
+ background: {fileID: 6381378020296668381}
--- !u!1 &3824742015622016231
GameObject:
m_ObjectHideFlags: 0
@@ -82,11 +82,11 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3824742015622016231}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 160, y: 90, z: 1}
m_Children: []
m_Father: {fileID: 931641041398444854}
- m_RootOrder: 0
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6381378020296668381
SpriteRenderer:
@@ -150,7 +150,6 @@ GameObject:
- component: {fileID: 3697729158945954856}
- component: {fileID: 7960956717128855430}
- component: {fileID: 4041276273830102762}
- - component: {fileID: 4424607252382679407}
m_Layer: 0
m_Name: stepswitcher0
m_TagString: Untagged
@@ -167,7 +166,7 @@ Transform:
m_GameObject: {fileID: 5129989806025303121}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -2.55, y: 0.15, z: 0}
- m_LocalScale: {x: 1.9, y: 1.9, z: 1.9}
+ m_LocalScale: {x: 1.9, y: 1.9, z: 1}
m_Children: []
m_Father: {fileID: 5822623106182197534}
m_RootOrder: 0
@@ -217,7 +216,7 @@ SpriteRenderer:
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
- m_Size: {x: 3.8, y: 6.2}
+ m_Size: {x: 100, y: 5.5}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
@@ -242,29 +241,6 @@ Animator:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
---- !u!114 &4424607252382679407
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5129989806025303121}
- m_Enabled: 0
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8b073f408da6b9a49a796d5ba8777d33, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- SoundSequences: []
- EligibleHits: []
- scheduledInputs: []
- firstEnable: 0
- stepswitcherP: {fileID: 5548089329135658778}
- stepswitcher0: {fileID: 4041276273830102762}
- stepswitcher1: {fileID: 4669067225944782995}
- Player: {fileID: 0}
- goStep: 0
- steppingLength: 0
- steppingStartBeat: 0
--- !u!1 &6294324842532793805
GameObject:
m_ObjectHideFlags: 0
@@ -294,7 +270,7 @@ Transform:
m_LocalScale: {x: 2.0085979, y: 2.0085979, z: 2.0085979}
m_Children: []
m_Father: {fileID: 931641041398444854}
- m_RootOrder: 2
+ m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1958629238450560839
SpriteRenderer:
@@ -358,7 +334,6 @@ GameObject:
- component: {fileID: 6425602285868802540}
- component: {fileID: 6864685626860880400}
- component: {fileID: 4669067225944782995}
- - component: {fileID: 575274515940728498}
m_Layer: 0
m_Name: stepswitcher1
m_TagString: Untagged
@@ -450,29 +425,6 @@ Animator:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
---- !u!114 &575274515940728498
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 7760885195185502051}
- m_Enabled: 0
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8b073f408da6b9a49a796d5ba8777d33, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- SoundSequences: []
- EligibleHits: []
- scheduledInputs: []
- firstEnable: 0
- stepswitcherP: {fileID: 5548089329135658778}
- stepswitcher0: {fileID: 4041276273830102762}
- stepswitcher1: {fileID: 4669067225944782995}
- Player: {fileID: 0}
- goStep: 0
- steppingLength: 0
- steppingStartBeat: 0
--- !u!1 &8739124183978051246
GameObject:
m_ObjectHideFlags: 0
@@ -502,9 +454,8 @@ Transform:
m_Children:
- {fileID: 3697729158945954856}
- {fileID: 6425602285868802540}
- - {fileID: 6282292135211262012}
m_Father: {fileID: 931641041398444854}
- m_RootOrder: 1
+ m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &9015027120403414015
GameObject:
@@ -517,7 +468,6 @@ GameObject:
- component: {fileID: 6282292135211262012}
- component: {fileID: 6142058195801638840}
- component: {fileID: 5548089329135658778}
- - component: {fileID: 4631706076492420401}
m_Layer: 0
m_Name: stepswitcherP
m_TagString: Untagged
@@ -536,7 +486,7 @@ Transform:
m_LocalPosition: {x: 0, y: 0.15, z: 0}
m_LocalScale: {x: 1.9, y: 1.9, z: 1.9}
m_Children: []
- m_Father: {fileID: 5822623106182197534}
+ m_Father: {fileID: 931641041398444854}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6142058195801638840
@@ -609,26 +559,3 @@ Animator:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
---- !u!114 &4631706076492420401
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 9015027120403414015}
- m_Enabled: 0
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 8b073f408da6b9a49a796d5ba8777d33, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- SoundSequences: []
- EligibleHits: []
- scheduledInputs: []
- firstEnable: 0
- stepswitcherP: {fileID: 5548089329135658778}
- stepswitcher0: {fileID: 4041276273830102762}
- stepswitcher1: {fileID: 4669067225944782995}
- Player: {fileID: 9015027120403414015}
- goStep: 0
- steppingLength: 0
- steppingStartBeat: 0
diff --git a/Assets/Resources/Games/mrUpbeat.prefab b/Assets/Resources/Games/mrUpbeat.prefab
index 7d331183..d83d609f 100644
--- a/Assets/Resources/Games/mrUpbeat.prefab
+++ b/Assets/Resources/Games/mrUpbeat.prefab
@@ -492,6 +492,7 @@ GameObject:
m_Component:
- component: {fileID: 7821851253613277009}
- component: {fileID: 6546086356517948521}
+ - component: {fileID: 4547664343140929301}
m_Layer: 0
m_Name: Metronome
m_TagString: Untagged
@@ -564,6 +565,25 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
+--- !u!95 &4547664343140929301
+Animator:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3862020474253857803}
+ m_Enabled: 1
+ m_Avatar: {fileID: 0}
+ m_Controller: {fileID: 9100000, guid: cbb6e614a7bd56848ae238f52ce0dec6, type: 2}
+ m_CullingMode: 0
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorControllerStateOnDisable: 0
--- !u!1 &4230431238859698318
GameObject:
m_ObjectHideFlags: 0
@@ -646,63 +666,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
---- !u!1 &5666021292044047195
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 7622419266367956722}
- - component: {fileID: 4157362534770189002}
- m_Layer: 0
- m_Name: Beat
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 0
---- !u!4 &7622419266367956722
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5666021292044047195}
- 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_Children: []
- m_Father: {fileID: 8301537147055126447}
- m_RootOrder: 0
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &4157362534770189002
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5666021292044047195}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 671722aab5d7ff34da139a076534caf4, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- inList: 0
- lastState: 0
- state:
- gameObject: {fileID: 0}
- early: 0
- perfect: 0
- late: 0
- createBeat: 0
- eligibleHitsList: []
- aceTimes: 0
- isEligible: 0
- triggersAutoplay: 1
- startBeat: 0
- beatOffset: 0
--- !u!1 &6060117916978306099
GameObject:
m_ObjectHideFlags: 0
@@ -987,7 +950,6 @@ Transform:
- {fileID: 8701843541313247389}
- {fileID: 7821851253613277009}
- {fileID: 862280508089709600}
- - {fileID: 8301537147055126447}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1003,14 +965,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a258517e5332c824a8b81a03036fc2a8, type: 3}
m_Name:
m_EditorClassIdentifier:
+ SoundSequences: []
EligibleHits: []
+ scheduledInputs: []
firstEnable: 0
- metronome: {fileID: 3862020474253857803}
+ metronomeAnim: {fileID: 4547664343140929301}
man: {fileID: 8160414645038680372}
- bt: {fileID: 5666021292044047195}
- canGo: 0
- beatCount: 0
- beatOffset: 0
--- !u!1 &8412912829583803381
GameObject:
m_ObjectHideFlags: 0
@@ -1311,34 +1271,3 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
---- !u!1 &9090607052953291167
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 8301537147055126447}
- m_Layer: 0
- m_Name: Beats
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &8301537147055126447
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 9090607052953291167}
- 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_Children:
- - {fileID: 7622419266367956722}
- m_Father: {fileID: 7248900333300803150}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Resources/Sfx/games/lockstep/tink.mp3 b/Assets/Resources/Sfx/games/lockstep/tink.mp3
new file mode 100644
index 00000000..d868f510
Binary files /dev/null and b/Assets/Resources/Sfx/games/lockstep/tink.mp3 differ
diff --git a/Assets/Resources/Sfx/games/lockstep/tink.mp3.meta b/Assets/Resources/Sfx/games/lockstep/tink.mp3.meta
new file mode 100644
index 00000000..210a6c7d
--- /dev/null
+++ b/Assets/Resources/Sfx/games/lockstep/tink.mp3.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 85fbd14dbd82a0e45899dbf4d018c3ae
+AudioImporter:
+ externalObjects: {}
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ ambisonic: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sfx/games/lockstep/GROUP_NTR_BACKBEAT_EN_0000000A.wav b/Assets/Resources/Sfx/games/lockstep/wayOff.wav
similarity index 100%
rename from Assets/Resources/Sfx/games/lockstep/GROUP_NTR_BACKBEAT_EN_0000000A.wav
rename to Assets/Resources/Sfx/games/lockstep/wayOff.wav
diff --git a/Assets/Resources/Sfx/games/lockstep/GROUP_NTR_BACKBEAT_EN_0000000A.wav.meta b/Assets/Resources/Sfx/games/lockstep/wayOff.wav.meta
similarity index 100%
rename from Assets/Resources/Sfx/games/lockstep/GROUP_NTR_BACKBEAT_EN_0000000A.wav.meta
rename to Assets/Resources/Sfx/games/lockstep/wayOff.wav.meta
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMiss.anim b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMiss.anim
new file mode 100644
index 00000000..cdc4bb11
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMiss.anim
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OffbeatMiss
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves:
+ - curve:
+ - time: 0
+ value: {fileID: 7051025833746117958, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ - time: 0.083333336
+ value: {fileID: -7900508199032304796, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ attribute: m_Sprite
+ path:
+ classID: 212
+ script: {fileID: 0}
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ pptrCurveMapping:
+ - {fileID: 7051025833746117958, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ - {fileID: -7900508199032304796, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.1
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMiss.anim.meta b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMiss.anim.meta
new file mode 100644
index 00000000..4bd2deb9
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMiss.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a0391d705521050499f5e17f0c0e55f3
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMissRest.anim b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMissRest.anim
new file mode 100644
index 00000000..e92335c1
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMissRest.anim
@@ -0,0 +1,68 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OffbeatMissRest
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves:
+ - curve:
+ - time: 0
+ value: {fileID: -7900508199032304796, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ attribute: m_Sprite
+ path:
+ classID: 212
+ script: {fileID: 0}
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ pptrCurveMapping:
+ - {fileID: -7900508199032304796, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.016666668
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMissRest.anim.meta b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMissRest.anim.meta
new file mode 100644
index 00000000..d0a4cbed
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OffbeatMissRest.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3a8aefb8918345043b3e2ba05f611993
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMiss.anim b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMiss.anim
new file mode 100644
index 00000000..0a67b2a8
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMiss.anim
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OnbeatMiss
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves:
+ - curve:
+ - time: 0
+ value: {fileID: 1380531955285550272, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ - time: 0.083333336
+ value: {fileID: -662792740418096914, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ attribute: m_Sprite
+ path:
+ classID: 212
+ script: {fileID: 0}
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ pptrCurveMapping:
+ - {fileID: 1380531955285550272, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ - {fileID: -662792740418096914, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.1
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMiss.anim.meta b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMiss.anim.meta
new file mode 100644
index 00000000..63172e72
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMiss.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fd009c5e24879964c9b411e96aaaf553
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMissRest.anim b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMissRest.anim
new file mode 100644
index 00000000..3f78b394
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMissRest.anim
@@ -0,0 +1,68 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OnbeatMissRest
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves:
+ - curve:
+ - time: 0
+ value: {fileID: -662792740418096914, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ attribute: m_Sprite
+ path:
+ classID: 212
+ script: {fileID: 0}
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ pptrCurveMapping:
+ - {fileID: -662792740418096914, guid: bab2c0bd9904cdb46bf49674024d3da6, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.016666668
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMissRest.anim.meta b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMissRest.anim.meta
new file mode 100644
index 00000000..7765186d
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/OnbeatMissRest.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c21dac4c6abf5c146b7c6087463d3f51
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/Lockstep/Animations/stepswitcher.controller b/Assets/Resources/Sprites/Games/Lockstep/Animations/stepswitcher.controller
index e406b319..9be5736a 100644
--- a/Assets/Resources/Sprites/Games/Lockstep/Animations/stepswitcher.controller
+++ b/Assets/Resources/Sprites/Games/Lockstep/Animations/stepswitcher.controller
@@ -71,6 +71,32 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
+--- !u!1102 &-5828901334714206451
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OnbeatMissRest
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: c21dac4c6abf5c146b7c6087463d3f51, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
--- !u!1102 &-5664991824428846523
AnimatorState:
serializedVersion: 6
@@ -97,6 +123,33 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1102 &-4226525827748454189
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OffbeatMiss
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: -1597031172038067672}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: a0391d705521050499f5e17f0c0e55f3, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
--- !u!1102 &-3252724296458622499
AnimatorState:
serializedVersion: 6
@@ -150,6 +203,54 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-1597031172038067672
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -977301914168166847}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &-977301914168166847
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OffbeatMissRest
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 3a8aefb8918345043b3e2ba05f611993, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@@ -199,6 +300,55 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1102 &4405480272115905313
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: OnbeatMiss
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 4676119807446006815}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: fd009c5e24879964c9b411e96aaaf553, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1101 &4676119807446006815
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -5828901334714206451}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1101 &6543442227016282050
AnimatorStateTransition:
m_ObjectHideFlags: 1
@@ -248,6 +398,18 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: -8810418048990579671}
m_Position: {x: 270, y: 30, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 4405480272115905313}
+ m_Position: {x: 480, y: 20, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -5828901334714206451}
+ m_Position: {x: 480, y: 100, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -4226525827748454189}
+ m_Position: {x: 515, y: 165, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -977301914168166847}
+ m_Position: {x: 550, y: 230, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
diff --git a/Assets/Resources/Sprites/Games/Lockstep/OffbeatPortrait.PNG b/Assets/Resources/Sprites/Games/Lockstep/OffbeatPortrait.PNG
new file mode 100644
index 00000000..d5331c8a
Binary files /dev/null and b/Assets/Resources/Sprites/Games/Lockstep/OffbeatPortrait.PNG differ
diff --git a/Assets/Resources/Sprites/Games/Lockstep/OffbeatPortrait.PNG.meta b/Assets/Resources/Sprites/Games/Lockstep/OffbeatPortrait.PNG.meta
new file mode 100644
index 00000000..ba34d47f
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/OffbeatPortrait.PNG.meta
@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: c83ead9dcb4419e4db7a2688db66abb0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/Lockstep/OnbeatPortrait.PNG b/Assets/Resources/Sprites/Games/Lockstep/OnbeatPortrait.PNG
new file mode 100644
index 00000000..faf56d6d
Binary files /dev/null and b/Assets/Resources/Sprites/Games/Lockstep/OnbeatPortrait.PNG differ
diff --git a/Assets/Resources/Sprites/Games/Lockstep/OnbeatPortrait.PNG.meta b/Assets/Resources/Sprites/Games/Lockstep/OnbeatPortrait.PNG.meta
new file mode 100644
index 00000000..bf64984a
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/Lockstep/OnbeatPortrait.PNG.meta
@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: e7cdf4af68c99d54397759f6122e9e6e
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/Lockstep/lockstepOld.png b/Assets/Resources/Sprites/Games/Lockstep/lockstepOld.png
deleted file mode 100644
index 61eca014..00000000
Binary files a/Assets/Resources/Sprites/Games/Lockstep/lockstepOld.png and /dev/null differ
diff --git a/Assets/Resources/Sprites/Games/Lockstep/locksteptiled.png b/Assets/Resources/Sprites/Games/Lockstep/locksteptiled.png
new file mode 100644
index 00000000..4bf540f7
Binary files /dev/null and b/Assets/Resources/Sprites/Games/Lockstep/locksteptiled.png differ
diff --git a/Assets/Resources/Sprites/Games/Lockstep/lockstepOld.png.meta b/Assets/Resources/Sprites/Games/Lockstep/locksteptiled.png.meta
similarity index 58%
rename from Assets/Resources/Sprites/Games/Lockstep/lockstepOld.png.meta
rename to Assets/Resources/Sprites/Games/Lockstep/locksteptiled.png.meta
index 789d4841..a3ffafd7 100644
--- a/Assets/Resources/Sprites/Games/Lockstep/lockstepOld.png.meta
+++ b/Assets/Resources/Sprites/Games/Lockstep/locksteptiled.png.meta
@@ -1,61 +1,61 @@
fileFormatVersion: 2
-guid: 74c58bf17e10182479dd968ee450f86e
+guid: 927be5fac4a997244b6201c857fd91a5
TextureImporter:
internalIDToNameTable:
- first:
- 213: -6961290807587789438
- second: stepswitcher
+ 213: -6366962435105001689
+ second: locksteptiled_0
- first:
- 213: 9130296555604909335
- second: stepswitcher_offbeat1
+ 213: -4212271592851182626
+ second: locksteptiled_1
- first:
- 213: 5037155186664620574
- second: stepswitcher_offbeat2
+ 213: 7392681990337583900
+ second: locksteptiled_2
- first:
- 213: 9047975854256012390
- second: stepswitcher_onbeat1
+ 213: 8217225921531253787
+ second: locksteptiled_3
- first:
- 213: 4448651475430373734
- second: stepswitcher_onbeat2
+ 213: -7353580249722972513
+ second: locksteptiled_4
- first:
- 213: 1292918056351840569
- second: stepswitcher_offbeat3
+ 213: 9219949000286105305
+ second: locksteptiled_5
- first:
- 213: 3854965462330847857
- second: stepswitcher_offbeat4
+ 213: -1481155383222858642
+ second: locksteptiled_6
- first:
- 213: -7069434044889276691
- second: stepswitcher_onbeat3
+ 213: 1117155169284464673
+ second: locksteptiled_7
- first:
- 213: 6678189707026698426
- second: stepswitcher_onbeat4
+ 213: -9013239299422517548
+ second: locksteptiled_8
- first:
- 213: -1578962635485543256
- second: stepswitcher_offbeatMiss1
+ 213: 1952597663773370460
+ second: locksteptiled_9
- first:
- 213: -7689431612274100930
- second: stepswitcher_bop3
+ 213: -1918475703581822183
+ second: locksteptiled_10
- first:
- 213: 4632143454527972695
- second: stepswitcher_offbeatMiss1
+ 213: 3567852363888940705
+ second: locksteptiled_11
- first:
- 213: 7051025833746117958
- second: stepswitcher_bop3
+ 213: -6501618365320185404
+ second: locksteptiled_12
- first:
- 213: -7900508199032304796
- second: stepswitcher_offbeatMiss1
+ 213: 4875565029690583818
+ second: locksteptiled_13
- first:
- 213: 1380531955285550272
- second: stepswitcher_onbeatMiss2
+ 213: 8493793611061283836
+ second: locksteptiled_14
- first:
- 213: -8633958060967697536
- second: stepswitcher_onbeat4
+ 213: 4227672332529170852
+ second: locksteptiled_15
- first:
- 213: 4376752631132958919
- second: stepswitcher_offbeatMiss1
+ 213: -8552915065781114029
+ second: locksteptiled_16
- first:
- 213: 1777998545360739411
- second: lockstep_bg
+ 213: 3542085270979761920
+ second: locksteptiled_17
externalObjects: {}
serializedVersion: 11
mipmaps:
@@ -89,15 +89,15 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
- wrapU: 1
- wrapV: 1
- wrapW: 1
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
- spriteMeshType: 1
+ spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
@@ -119,10 +119,10 @@ TextureImporter:
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
- maxTextureSize: 4096
+ maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
- textureCompression: 2
+ textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
@@ -131,10 +131,10 @@ TextureImporter:
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
- maxTextureSize: 4096
+ maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
- textureCompression: 2
+ textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
@@ -145,13 +145,118 @@ TextureImporter:
serializedVersion: 2
sprites:
- serializedVersion: 2
- name: stepswitcher
+ name: locksteptiled_0
+ rect:
+ serializedVersion: 2
+ x: 79
+ y: 1536
+ width: 240
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: 72f6f4d166104a7a0800000000000000
+ internalID: -6366962435105001689
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_1
+ rect:
+ serializedVersion: 2
+ x: 409
+ y: 1536
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: edbe2aacd410b85c0800000000000000
+ internalID: -4212271592851182626
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_2
+ rect:
+ serializedVersion: 2
+ x: 818
+ y: 1536
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: c1bdf732a15189660800000000000000
+ internalID: 7392681990337583900
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_3
+ rect:
+ serializedVersion: 2
+ x: 1227
+ y: 1536
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: b14900c5073790270800000000000000
+ internalID: 8217225921531253787
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_4
+ rect:
+ serializedVersion: 2
+ x: 1636
+ y: 1536
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: f961feb49b5d2f990800000000000000
+ internalID: -7353580249722972513
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_5
rect:
serializedVersion: 2
x: 0
- y: 780
- width: 380
- height: 620
+ y: 1024
+ width: 409
+ height: 512
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -159,188 +264,20 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
- spriteID: 285a98b94e6846f90800000000000000
- internalID: -6961290807587789438
+ spriteID: 9de654134c6d3ff70800000000000000
+ internalID: 9219949000286105305
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
- name: stepswitcher_offbeat1
+ name: locksteptiled_6
rect:
serializedVersion: 2
- x: 382
- y: 780
- width: 330
- height: 620
- alignment: 9
- pivot: {x: 0.5, y: 0.52}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 71d9dcac75455be70800000000000000
- internalID: 9130296555604909335
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_offbeat2
- rect:
- serializedVersion: 2
- x: 742
- y: 780
- width: 380
- height: 620
- alignment: 9
- pivot: {x: 0.48, y: 0.52}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: e1249ab44f197e540800000000000000
- internalID: 5037155186664620574
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_onbeat1
- rect:
- serializedVersion: 2
- x: 1163
- y: 780
- width: 340
- height: 620
- alignment: 9
- pivot: {x: 0.5, y: 0.52}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 66cbd39e91ed09d70800000000000000
- internalID: 9047975854256012390
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_onbeat2
- rect:
- serializedVersion: 2
- x: 1504
- y: 780
- width: 380
- height: 620
- alignment: 9
- pivot: {x: 0.5, y: 0.52}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 6697b8a62f8ccbd30800000000000000
- internalID: 4448651475430373734
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_offbeat3
- rect:
- serializedVersion: 2
- x: 1911
- y: 810
- width: 450
- height: 590
- alignment: 9
- pivot: {x: 0.2, y: 0.55}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 9393a804f1e51f110800000000000000
- internalID: 1292918056351840569
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_offbeat4
- rect:
- serializedVersion: 2
- x: 2416
- y: 810
- width: 450
- height: 590
- alignment: 9
- pivot: {x: 0.2, y: 0.55}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 17231abd9a69f7530800000000000000
- internalID: 3854965462330847857
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_onbeat3
- rect:
- serializedVersion: 2
- x: 2900
- y: 810
- width: 488
- height: 590
- alignment: 9
- pivot: {x: 0.8, y: 0.55}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: dee525f013354ed90800000000000000
- internalID: -7069434044889276691
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_onbeat4
- rect:
- serializedVersion: 2
- x: 3412
- y: 810
- width: 488
- height: 590
- alignment: 9
- pivot: {x: 0.8, y: 0.55}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: ab01ffde722bdac50800000000000000
- internalID: 6678189707026698426
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_bop4
- rect:
- serializedVersion: 2
- x: 1023
- y: 100
- width: 300
- height: 640
+ x: 409
+ y: 1024
+ width: 409
+ height: 512
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -348,62 +285,20 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
- spriteID: 8a4054649d5661ae0800000000000000
- internalID: -1578962635485543256
+ spriteID: e6c08d5c601e17be0800000000000000
+ internalID: -1481155383222858642
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
- name: stepswitcher_offbeatMiss2
+ name: locksteptiled_7
rect:
serializedVersion: 2
- x: 2087
- y: 200
- width: 500
- height: 570
- alignment: 9
- pivot: {x: 0.39, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: e353eb160b6a94590800000000000000
- internalID: -7689431612274100930
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_onbeatMiss1
- rect:
- serializedVersion: 2
- x: 2689
- y: 180
- width: 510
- height: 570
- alignment: 9
- pivot: {x: 0.51, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 7556ac30eeda84040800000000000000
- internalID: 4632143454527972695
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_bop3
- rect:
- serializedVersion: 2
- x: 715
- y: 100
- width: 300
- height: 640
+ x: 818
+ y: 1024
+ width: 409
+ height: 512
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -411,62 +306,20 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
- spriteID: 6453a8a43a64ad160800000000000000
- internalID: 7051025833746117958
+ spriteID: 120213025bee08f00800000000000000
+ internalID: 1117155169284464673
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
- name: stepswitcher_offbeatMiss1
+ name: locksteptiled_8
rect:
serializedVersion: 2
- x: 1570
- y: 200
- width: 510
- height: 570
- alignment: 9
- pivot: {x: 0.49, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 46b4e93d6a1cb5290800000000000000
- internalID: -7900508199032304796
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_onbeatMiss2
- rect:
- serializedVersion: 2
- x: 3206
- y: 180
- width: 500
- height: 570
- alignment: 9
- pivot: {x: 0.57, y: 0.5}
- border: {x: 0, y: 0, z: 0, w: 0}
- outline: []
- physicsShape: []
- tessellationDetail: 0
- bones: []
- spriteID: 0c4eedbbf72a82310800000000000000
- internalID: 1380531955285550272
- vertices: []
- indices:
- edges: []
- weights: []
- - serializedVersion: 2
- name: stepswitcher_bop1
- rect:
- serializedVersion: 2
- x: 40
- y: 100
- width: 300
- height: 640
+ x: 1227
+ y: 1024
+ width: 409
+ height: 512
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -474,20 +327,20 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
- spriteID: 083666263e40e2880800000000000000
- internalID: -8633958060967697536
+ spriteID: 4d684528c9a8ae280800000000000000
+ internalID: -9013239299422517548
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
- name: stepswitcher_bop2
+ name: locksteptiled_9
rect:
serializedVersion: 2
- x: 396
- y: 100
- width: 300
- height: 640
+ x: 1636
+ y: 1024
+ width: 409
+ height: 512
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -495,20 +348,20 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
- spriteID: 7c0bf6834595dbc30800000000000000
- internalID: 4376752631132958919
+ spriteID: c58287ada35091b10800000000000000
+ internalID: 1952597663773370460
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
- name: lockstep_bg
+ name: locksteptiled_10
rect:
serializedVersion: 2
- x: 1375
- y: 13
- width: 185
- height: 203
+ x: 0
+ y: 512
+ width: 409
+ height: 512
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -516,8 +369,155 @@ TextureImporter:
physicsShape: []
tessellationDetail: 0
bones: []
- spriteID: 35c536bb148bca810800000000000000
- internalID: 1777998545360739411
+ spriteID: 913b9c913843065e0800000000000000
+ internalID: -1918475703581822183
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_11
+ rect:
+ serializedVersion: 2
+ x: 409
+ y: 512
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: 1a653a852de838130800000000000000
+ internalID: 3567852363888940705
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_12
+ rect:
+ serializedVersion: 2
+ x: 818
+ y: 512
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: 4c93fe53b8c95c5a0800000000000000
+ internalID: -6501618365320185404
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_13
+ rect:
+ serializedVersion: 2
+ x: 1227
+ y: 512
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: a0b260a009c79a340800000000000000
+ internalID: 4875565029690583818
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_14
+ rect:
+ serializedVersion: 2
+ x: 1636
+ y: 512
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: cfb4ac6894400e570800000000000000
+ internalID: 8493793611061283836
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_15
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: 4a9f5275695bbaa30800000000000000
+ internalID: 4227672332529170852
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_16
+ rect:
+ serializedVersion: 2
+ x: 409
+ y: 0
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: 35ba70e1011fd4980800000000000000
+ internalID: -8552915065781114029
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: locksteptiled_17
+ rect:
+ serializedVersion: 2
+ x: 818
+ y: 0
+ width: 409
+ height: 512
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ outline: []
+ physicsShape: []
+ tessellationDetail: 0
+ bones: []
+ spriteID: 00754e489c3082130800000000000000
+ internalID: 3542085270979761920
vertices: []
indices:
edges: []
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/Metronome.controller b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/Metronome.controller
new file mode 100644
index 00000000..4def40f0
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/Metronome.controller
@@ -0,0 +1,205 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1107 &-9046531707459215340
+AnimatorStateMachine:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Base Layer
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: -8374558309382876107}
+ m_Position: {x: 200, y: 0, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 944780842085822454}
+ m_Position: {x: 390, y: -50, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: -1174007735387140356}
+ m_Position: {x: 270, y: 130, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 5961213791964453708}
+ m_Position: {x: 440, y: 60, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: -8374558309382876107}
+--- !u!1101 &-9039510438906079214
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: -8374558309382876107}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
+--- !u!1102 &-8374558309382876107
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeIdle
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 757b31570af7a0a48baf98f7ab667d92, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &-1174007735387140356
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeGoRight
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: -9039510438906079214}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 921fde95b980b9d4094b8bca8f49cb52, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!91 &9100000
+AnimatorController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Metronome
+ serializedVersion: 5
+ m_AnimatorParameters: []
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: -9046531707459215340}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
+--- !u!1102 &944780842085822454
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeGoLeft
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions:
+ - {fileID: 8688260220163017172}
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 4e77542d3f0e6474f943f036309b8253, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1102 &5961213791964453708
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeIdleLeft
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 957c241449dc25a469d29bb68f9237f1, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1101 &8688260220163017172
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions: []
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 5961213791964453708}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0
+ m_TransitionOffset: 0
+ m_ExitTime: 1
+ m_HasExitTime: 1
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/Metronome.controller.meta b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/Metronome.controller.meta
new file mode 100644
index 00000000..afd38943
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/Metronome.controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cbb6e614a7bd56848ae238f52ce0dec6
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 9100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoLeft.anim b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoLeft.anim
new file mode 100644
index 00000000..84307d86
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoLeft.anim
@@ -0,0 +1,199 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeGoLeft
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 210}
+ inSlope: {x: 0, 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: 0, y: 0, z: 335}
+ inSlope: {x: 0, 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}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.5
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 210
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 335
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoLeft.anim.meta b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoLeft.anim.meta
new file mode 100644
index 00000000..7e1fa510
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoLeft.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4e77542d3f0e6474f943f036309b8253
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoRight.anim b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoRight.anim
new file mode 100644
index 00000000..acd6c935
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoRight.anim
@@ -0,0 +1,199 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeGoRight
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 335}
+ inSlope: {x: 0, 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: 0, y: 0, z: 210}
+ inSlope: {x: 0, 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}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.5
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 335
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.5
+ value: 210
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoRight.anim.meta b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoRight.anim.meta
new file mode 100644
index 00000000..d700a8c9
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeGoRight.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 921fde95b980b9d4094b8bca8f49cb52
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdle.anim b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdle.anim
new file mode 100644
index 00000000..7948adfa
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdle.anim
@@ -0,0 +1,163 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeIdle
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 210}
+ inSlope: {x: 0, 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}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 210
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdle.anim.meta b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdle.anim.meta
new file mode 100644
index 00000000..e0bdcbd3
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdle.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 757b31570af7a0a48baf98f7ab667d92
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdleLeft.anim b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdleLeft.anim
new file mode 100644
index 00000000..02832afc
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdleLeft.anim
@@ -0,0 +1,163 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: MetronomeIdleLeft
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: {x: 0, y: 0, z: 335}
+ inSlope: {x: 0, 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}
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ path:
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 4
+ script: {fileID: 0}
+ typeID: 4
+ customType: 4
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 335
+ inSlope: 0
+ outSlope: 0
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: localEulerAnglesRaw.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_EulerEditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path:
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path:
+ classID: 4
+ script: {fileID: 0}
+ m_HasGenericRootTransform: 1
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdleLeft.anim.meta b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdleLeft.anim.meta
new file mode 100644
index 00000000..133d3c7c
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/MrUpbeat/Animations/MetronomeIdleLeft.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 957c241449dc25a469d29bb68f9237f1
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Games/Lockstep/Lockstep.cs b/Assets/Scripts/Games/Lockstep/Lockstep.cs
index 6154c6a7..6f0ec9d3 100644
--- a/Assets/Scripts/Games/Lockstep/Lockstep.cs
+++ b/Assets/Scripts/Games/Lockstep/Lockstep.cs
@@ -17,65 +17,46 @@ namespace HeavenStudio.Games.Loaders
return new Minigame("lockstep", "Lockstep \n[WIP]", "0058CE", false, false, new List()
{
new GameAction("bop", "Bop")
+ {
+ function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Bop(e.beat, e["toggle"]); },
+ parameters = new List()
{
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Bop(e.beat, e["toggle"]); },
- parameters = new List()
- {
new Param("toggle", false, "Reset Pose", "Resets to idle pose.")
- },
- defaultLength = 1f,
},
-
-
-
+ defaultLength = 1f,
+ },
new GameAction("hai", "Hai!")
- {
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Hai(e.beat); },
- defaultLength = 1f,
- inactiveFunction = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Hai(e.beat);}
-
-
- },
-
+ {
+ function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Hai(e.beat); },
+ defaultLength = 1f,
+ inactiveFunction = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Hai(e.beat);}
+ },
new GameAction("offbeatSwitch", "Switch to Offbeat")
- {
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.OnbeatSwitch(e.beat); },
- defaultLength = 8f
-
-
- },
-
+ {
+ preFunction = delegate { var e = eventCaller.currentEntity; Lockstep.OffbeatSwitch(e.beat); },
+ defaultLength = 8f
+ },
new GameAction("onbeatSwitch", "Switch to Onbeat")
+ {
+ preFunction = delegate { var e = eventCaller.currentEntity; Lockstep.OnbeatSwitch(e.beat); },
+ defaultLength = 2f
+ },
+ new GameAction("marching", "Stepping")
+ {
+ preFunction = delegate {var e = eventCaller.currentEntity; Lockstep.Marching(e.beat, e.length);},
+ defaultLength = 4f,
+ resizable = true
+ },
+ new GameAction("set colours", "Set Background Colours")
+ {
+ function = delegate {var e = eventCaller.currentEntity; Lockstep.instance.SetbackgroundColours(e["colorA"], e["colorB"]); },
+ parameters = new List()
{
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.OffbeatSwitch(e.beat); },
- defaultLength = 2f
-
-
+ new Param("colorA", Lockstep.defaultBGColorOn, "Onbeat", "Select the color that appears for the onbeat."),
+ new Param("colorB", Lockstep.defaultBGColorOff, "Offbeat", "Select the color that appears for the offbeat."),
},
-
- new GameAction("marching", "Onbeat Stepping")
- {
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.OnbeatStep(e.beat, e.length); },
- defaultLength = 4f,
- resizable = true,
- hidden = true
- },
-
- new GameAction("startStepping", "Start Stepping")
- {
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.BeginStepping(e.beat); },
- defaultLength = 1f,
- hidden = true
-
- },
-
- new GameAction("test1", "onbeat march test")
- {
- function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.OnbeatMarch(e.beat); },
- defaultLength = 1f,
- hidden = true
- }
-
+ defaultLength = 0.5f,
+ }
});
}
@@ -87,78 +68,96 @@ namespace HeavenStudio.Games
// using Scripts_Lockstep;
public class Lockstep : Minigame
{
+ private static Color _defaultBGColorOn;
+ public static Color defaultBGColorOn
+ {
+ get
+ {
+ ColorUtility.TryParseHtmlString("#f0338d", out _defaultBGColorOn);
+ return _defaultBGColorOn;
+ }
+ }
+ private static Color _defaultBGColorOff;
+ public static Color defaultBGColorOff
+ {
+ get
+ {
+ ColorUtility.TryParseHtmlString("#BC318B", out _defaultBGColorOff);
+ return _defaultBGColorOff;
+ }
+ }
- // private Animator stepswitcher;
-
+ public Color currentBGOnColor;
+ public Color currentBGOffColor;
- public Animator stepswitcherP;
- public Animator stepswitcher0;
- public Animator stepswitcher1;
-
- public GameObject Player;
+ [Header("Components")]
+ [SerializeField] Animator stepswitcherP;
+ [SerializeField] Animator stepswitcher0;
+ [SerializeField] Animator stepswitcher1;
+ [SerializeField] SpriteRenderer background;
[Header("Properties")]
- public GameEvent bop = new GameEvent();
- public bool goStep;
+ static List queuedInputs = new List();
+ HowMissed currentMissStage;
+ public enum HowMissed
+ {
+ NotMissed = 0,
+ MissedOff = 1,
+ MissedOn = 2
+ }
+ bool offColorActive;
- public float steppingLength;
- public float steppingStartBeat;
- private float lastReportedBeat = 0f;
+ public static Lockstep instance;
-
- public static Lockstep instance { get; set; }
-
-
- // Start is called before the first frame update
void Awake()
{
instance = this;
- goStep = false;
+ currentBGOnColor = defaultBGColorOn;
+ currentBGOffColor = defaultBGColorOff;
+ }
+
+ void OnDestroy()
+ {
+ if (!Conductor.instance.isPlaying || Conductor.instance.isPaused)
+ {
+ if (queuedInputs.Count > 0) queuedInputs.Clear();
+ }
}
- // Update is called once per frame
public void Update()
{
-
var cond = Conductor.instance;
-
- if (goStep)
+ if (cond.isPlaying && !cond.isPaused)
{
- print("stepping is on");
- if (Conductor.instance.ReportBeat(ref lastReportedBeat))
+ if (queuedInputs.Count > 0)
{
- print("one small step for switch");
- Jukebox.PlayOneShotGame("Lockstep/marchOnBeat1");
- stepswitcherP.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
- stepswitcher0.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
- stepswitcher1.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
+ foreach (var input in queuedInputs)
+ {
+ ScheduleInput(cond.songPositionInBeats, input - cond.songPositionInBeats, InputType.STANDARD_DOWN, Just, Miss, Nothing);
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(input, delegate { EvaluateMarch(); }),
+ });
+ }
+ queuedInputs.Clear();
+ }
+ if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
+ {
+ currentMissStage = HowMissed.NotMissed;
+ var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2);
+ var stepPlayerAnim = (beatAnimCheck % 2 != 0 ? "OffbeatMarch" : "OnbeatMarch");
+ Jukebox.PlayOneShotGame("lockstep/miss");
+ stepswitcherP.DoScaledAnimationAsync(stepPlayerAnim, 0.5f);
}
-
}
-
- if (PlayerInput.Pressed() && !IsExpectingInputNow())
- {
- //Jukebox.PlayOneShot("miss");
-
-
- var beatAnimCheck = Math.Round(Conductor.instance.songPositionInBeats * 2);
- print("check: " + beatAnimCheck);
- var stepPlayerAnim = (beatAnimCheck % 2 != 0 ? "OffbeatMarch" : "OnbeatMarch");
-
- Jukebox.PlayOneShotGame("lockstep/miss");
- stepswitcherP.DoScaledAnimationAsync(stepPlayerAnim, 0.5f);
- }
-
-
}
public void Bop(float beat, bool reset)
{
-
- if(reset)
+ if (reset)
{
stepswitcher0.DoScaledAnimationAsync("BopReset", 0.5f);
stepswitcher1.DoScaledAnimationAsync("BopReset", 0.5f);
@@ -172,10 +171,6 @@ namespace HeavenStudio.Games
stepswitcherP.DoScaledAnimationAsync("Bop", 0.5f);
}
-
-
-
-
}
public void Hai(float beat)
@@ -183,23 +178,30 @@ namespace HeavenStudio.Games
Jukebox.PlayOneShotGame("lockstep/switch1");
}
- public void BeginStepping(float beat)
- {
-
- BeatAction.New(instance.gameObject, new List()
- {
- new BeatAction.Action(beat, delegate { goStep = true; }),
- });
-
- print("Start Stepping");
- print(goStep);
- }
-
-
- public void OnbeatSwitch(float beat)
+ public static void OnbeatSwitch(float beat)
{
MultiSound.Play(new MultiSound.Sound[]
- {
+ {
+ new MultiSound.Sound("lockstep/switch5", beat),
+ new MultiSound.Sound("lockstep/switch6", beat + 0.5f),
+ new MultiSound.Sound("lockstep/switch5", beat + 1f),
+ new MultiSound.Sound("lockstep/switch6", beat + 1.5f)
+ }, forcePlay: true);
+
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(beat, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(false); }),
+ new BeatAction.Action(beat + 0.5f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(true); }),
+ new BeatAction.Action(beat + 1f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(false); }),
+ new BeatAction.Action(beat + 1.5f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(true); }),
+ new BeatAction.Action(beat + 2f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(false); }),
+ });
+ }
+
+ public static void OffbeatSwitch(float beat)
+ {
+ MultiSound.Play(new MultiSound.Sound[]
+ {
new MultiSound.Sound("lockstep/switch1", beat),
new MultiSound.Sound("lockstep/switch1", beat + 1f),
new MultiSound.Sound("lockstep/switch1", beat + 2f),
@@ -210,44 +212,142 @@ namespace HeavenStudio.Games
new MultiSound.Sound("lockstep/switch4", beat + 5.5f),
new MultiSound.Sound("lockstep/switch4", beat + 6.5f),
new MultiSound.Sound("lockstep/switch4", beat + 7.5f),
- }, forcePlay: false);
+ }, forcePlay: true);
+
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(beat, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(true); }),
+ new BeatAction.Action(beat + 1f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(false); }),
+ new BeatAction.Action(beat + 2f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(true); }),
+ new BeatAction.Action(beat + 3f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(false); }),
+ new BeatAction.Action(beat + 3.5f, delegate { if (GameManager.instance.currentGame == "lockstep") Lockstep.instance.ChangeBeatBackGroundColour(true); }),
+ });
}
- public void OffbeatSwitch(float beat)
+ public static void Marching(float beat, float length)
{
- var sound = new MultiSound.Sound[]
+ if (GameManager.instance.currentGame == "lockstep")
+ {
+ for (int i = 0; i < length + 1; i++)
{
- new MultiSound.Sound("lockstep/switch5", beat),
- new MultiSound.Sound("lockstep/switch6", beat + 0.5f),
- new MultiSound.Sound("lockstep/switch5", beat + 1f),
- new MultiSound.Sound("lockstep/switch6", beat + 1.5f)
- };
-
-
- MultiSound.Play(sound);
-
-
+ Lockstep.instance.ScheduleInput(beat - 1, 1 + i, InputType.STANDARD_DOWN, Lockstep.instance.Just, Lockstep.instance.Miss, Lockstep.instance.Nothing);
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(beat + i, delegate { Lockstep.instance.EvaluateMarch(); }),
+ });
+ }
+ }
+ else
+ {
+ for (int i = 0; i < length + 1; i++)
+ {
+ queuedInputs.Add(beat + i);
+ }
+ }
}
- public void OnbeatStep(float beat, float length)
+ public void EvaluateMarch()
{
- /*marching.length = length;
- marching.startBeat = beat;
- print("onbeatstep len: " + marching.length);
- print("onbeatstep start: " + marching.startBeat);*/
+ var cond = Conductor.instance;
+ var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2);
+ if (beatAnimCheck % 2 != 0)
+ {
+ stepswitcher0.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
+ stepswitcher1.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
+ }
+ else
+ {
+ stepswitcher0.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
+ stepswitcher1.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
+ }
}
- public void OnbeatMarch(float beat)
+ public void Just(PlayerActionEvent caller, float state)
{
-
- stepswitcher0.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
- stepswitcher1.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
- stepswitcherP.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
- Jukebox.PlayOneShotGame("lockstep/marchOnbeat1");
-
-
-
+ currentMissStage = HowMissed.NotMissed;
+ if (state >= 1f || state <= -1f)
+ {
+ var cond = Conductor.instance;
+ var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2);
+ if (beatAnimCheck % 2 != 0)
+ {
+ Jukebox.PlayOneShotGame("lockstep/tink");
+ stepswitcherP.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
+ }
+ else
+ {
+ Jukebox.PlayOneShotGame("lockstep/tink");
+ stepswitcherP.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
+ }
+ return;
+ }
+ Success();
}
+ public void Success()
+ {
+ var cond = Conductor.instance;
+ var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2);
+ if (beatAnimCheck % 2 != 0)
+ {
+ Jukebox.PlayOneShotGame($"lockstep/marchOffbeat{UnityEngine.Random.Range(1, 3)}");
+ stepswitcherP.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
+ }
+ else
+ {
+ Jukebox.PlayOneShotGame($"lockstep/marchOnbeat{UnityEngine.Random.Range(1, 3)}");
+ stepswitcherP.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
+ }
+ }
+
+ public void Miss(PlayerActionEvent caller)
+ {
+ var cond = Conductor.instance;
+ var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2);
+
+ if (beatAnimCheck % 2 != 0 && currentMissStage != HowMissed.MissedOff)
+ {
+ stepswitcherP.Play("OffbeatMiss", 0, 0);
+ Jukebox.PlayOneShotGame("lockstep/wayOff");
+ currentMissStage = HowMissed.MissedOff;
+ }
+ else if (beatAnimCheck % 2 == 0 && currentMissStage != HowMissed.MissedOn)
+ {
+ stepswitcherP.Play("OnbeatMiss", 0, 0);
+ Jukebox.PlayOneShotGame("lockstep/wayOff");
+ currentMissStage = HowMissed.MissedOn;
+ }
+ }
+
+ public void ChangeBeatBackGroundColour(bool off)
+ {
+ if (off)
+ {
+ background.color = currentBGOffColor;
+ offColorActive = true;
+ }
+ else
+ {
+ background.color = currentBGOnColor;
+ offColorActive = false;
+ }
+ }
+
+ public void SetbackgroundColours(Color onColor, Color offColor)
+ {
+ currentBGOnColor = onColor;
+ currentBGOffColor = offColor;
+
+ if (offColorActive)
+ {
+ background.color = currentBGOffColor;
+ }
+ else
+ {
+ background.color = currentBGOnColor;
+ }
+ }
+
+ public void Nothing(PlayerActionEvent caller) {}
}
}
diff --git a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs
index d1b2b82e..75fc5207 100644
--- a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs
+++ b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs
@@ -15,23 +15,22 @@ namespace HeavenStudio.Games.Loaders
public static Minigame AddGame(EventCaller eventCaller) {
return new Minigame("mrUpbeat", "Mr. Upbeat", "FFFFFF", false, false, new List()
{
- new GameAction("prepare", "Prepare")
+ new GameAction("stepping", "Start Stepping")
{
- function = delegate { MrUpbeat.instance.SetInterval(eventCaller.currentEntity.beat); },
- defaultLength = 0.5f,
- resizable = true,
- inactiveFunction = delegate { MrUpbeat.Beep(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }
- },
- new GameAction("go", "Start Stepping")
- {
- function = delegate { MrUpbeat.instance.Go(eventCaller.currentEntity.beat); },
- defaultLength = 4f,
+ preFunction = delegate {var e = eventCaller.currentEntity; MrUpbeat.Stepping(e.beat, e.length); },
+ defaultLength = 4f,
resizable = true
},
- new GameAction("ding!", "Finish Stepping")
+ new GameAction("blipping", "Beeping")
+ {
+ function = delegate {var e = eventCaller.currentEntity; MrUpbeat.instance.Blipping(e.beat, e.length); },
+ defaultLength = 4f,
+ resizable = true
+ },
+ new GameAction("ding!", "Ding!")
{
function = delegate { MrUpbeat.instance.Ding(eventCaller.currentEntity["toggle"]); },
- defaultLength = 0.5f,
+ defaultLength = 0.5f,
parameters = new List()
{
new Param("toggle", false, "Applause")
@@ -49,148 +48,144 @@ namespace HeavenStudio.Games
public class MrUpbeat : Minigame
{
[Header("References")]
- public GameObject metronome;
+ public Animator metronomeAnim;
public UpbeatMan man;
- public GameObject bt;
- private static MultiSound beeps; //only used when this game isn't active.
- public GameEvent beat = new GameEvent();
- public bool canGo = false;
- public int beatCount = 0;
-
- public float beatOffset = 0f;
+ [Header("Properties")]
+ static List queuedInputs = new List();
+ public struct queuedUpbeatInputs
+ {
+ public float beat;
+ public bool goRight;
+ }
public static MrUpbeat instance;
private void Awake()
{
instance = this;
- canGo = false;
- man.stepTimes = 0;
- SetInterval(0);
- var pos = Conductor.instance.songPositionInBeats;
- StartCoroutine(Upbeat(pos - Mathf.Round(pos)));
+ }
- List gos = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "mrUpbeat/go").Select(c => c.beat).ToList();
-
- if (gos.Count > 0)
+ void OnDestroy()
+ {
+ if (!Conductor.instance.isPlaying || Conductor.instance.isPaused)
{
- var nextInterval = gos.IndexOf(Mathp.GetClosestInList(gos, Conductor.instance.songPositionInBeats));
- beatOffset = gos[nextInterval];
+ if (queuedInputs.Count > 0) queuedInputs.Clear();
}
}
- private void Update()
+ public void Update()
{
- List gos = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "mrUpbeat/go");
- for (int i = 0; i < gos.Count; i++)
+ var cond = Conductor.instance;
+ if (cond.isPlaying && !cond.isPaused)
{
- if ((gos[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && (gos[i].beat + gos[i].length) - 0.15f > Conductor.instance.songPositionInBeats)
+ if (queuedInputs.Count > 0)
{
- canGo = true;
- break;
- } else
- {
- canGo = false;
+ foreach (var input in queuedInputs)
+ {
+ ScheduleInput(cond.songPositionInBeats, input.beat - cond.songPositionInBeats, InputType.STANDARD_DOWN, Success, Miss, Nothing);
+ if (input.goRight)
+ {
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(input.beat - 0.5f, delegate { MrUpbeat.instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGoLeft", 0.5f); }),
+ new BeatAction.Action(input.beat - 0.5f, delegate { Jukebox.PlayOneShotGame("mrUpbeat/metronomeRight"); }),
+ });
+ }
+ else
+ {
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(input.beat - 0.5f, delegate { MrUpbeat.instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGoRight", 0.5f); }),
+ new BeatAction.Action(input.beat - 0.5f, delegate { Jukebox.PlayOneShotGame("mrUpbeat/metronomeLeft"); }),
+ });
+ }
+ }
+ queuedInputs.Clear();
}
}
-
- if (canGo)
- {
- var songPos = Conductor.instance.songPositionInBeats - beatOffset;
- metronome.transform.eulerAngles = new Vector3(0, 0, 270 - Mathf.Cos(Mathf.PI * songPos) * 60);
- }
-
- if (Conductor.instance.ReportBeat(ref beat.lastReportedBeat))
- {
- StartCoroutine(Upbeat());
- if (canGo)
- {
- if (beatCount % 2 == 0)
- Jukebox.PlayOneShotGame("mrUpbeat/metronomeRight");
- else
- Jukebox.PlayOneShotGame("mrUpbeat/metronomeLeft");
-
- Beat(Mathf.Round(Conductor.instance.songPositionInBeats));
- }
- }
- }
-
- public override void OnGameSwitch(float beat)
- {
- foreach (var entity in GameManager.instance.Beatmap.entities)
- {
- if (entity.beat > beat) //the list is sorted based on the beat of the entity, so this should work fine.
- {
- break;
- }
- if (entity.datamodel != "mrUpbeat/prepare" || entity.beat + entity.length < beat) //check for prepares that happen before the switch
- {
- continue;
- }
- SetInterval(entity.beat);
- break;
- }
- if(beeps != null)
- {
- beeps.Delete(); //the beeps are only for when the game isn't active
- beeps = null;
- }
- }
-
- public void SetInterval(float beat)
- {
- beatCount = 0;
- man.targetBeat = beat + 320f;
- man.Idle();
- }
-
- public void Go(float beat)
- {
- beatCount = 0;
}
public void Ding(bool applause)
{
Jukebox.PlayOneShotGame("mrUpbeat/ding");
- if (applause)
- Jukebox.PlayOneShot("applause");
+ if (applause) Jukebox.PlayOneShot("applause");
}
- public void Beat(float beat)
+ public void Blipping(float beat, float length)
{
- beatCount++;
-
- GameObject _beat = Instantiate(bt);
- _beat.transform.parent = bt.transform.parent;
- _beat.SetActive(true);
- UpbeatStep s = _beat.GetComponent();
- s.startBeat = beat;
- s.beatOffset = beatOffset;
+ for (int i = 0; i < length + 1; i++)
+ {
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(beat + i, delegate { man.Blip(); }),
+ });
+ }
}
- private IEnumerator Upbeat(float offset = 0)
+ public static void Stepping(float beat, float length)
{
- yield return new WaitForSeconds(Conductor.instance.secPerBeat * 0.5f - offset);
- man.Blip();
+ if (GameManager.instance.currentGame == "mrUpbeat")
+ {
+ float offSet = 0;
+ if (!MrUpbeat.instance.isPlaying(MrUpbeat.instance.metronomeAnim, "MetronomeIdle") && !MrUpbeat.instance.isPlaying(MrUpbeat.instance.metronomeAnim, "MetronomeGoRight"))
+ {
+ offSet = 1;
+ }
+ for (int i = 0; i < length + 1; i++)
+ {
+ MrUpbeat.instance.ScheduleInput(beat - 1, 1 + i, InputType.STANDARD_DOWN, MrUpbeat.instance.Success, MrUpbeat.instance.Miss, MrUpbeat.instance.Nothing);
+ if ((i + offSet) % 2 == 0)
+ {
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(beat + i - 0.5f, delegate { MrUpbeat.instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGoLeft", 0.5f); }),
+ new BeatAction.Action(beat + i - 0.5f, delegate { Jukebox.PlayOneShotGame("mrUpbeat/metronomeRight"); }),
+ });
+ }
+ else
+ {
+ BeatAction.New(instance.gameObject, new List()
+ {
+ new BeatAction.Action(beat + i - 0.5f, delegate { MrUpbeat.instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGoRight", 0.5f); }),
+ new BeatAction.Action(beat + i - 0.5f, delegate { Jukebox.PlayOneShotGame("mrUpbeat/metronomeLeft"); }),
+ });
+ }
+
+ }
+ }
+ else
+ {
+ for (int i = 0; i < length + 1; i++)
+ {
+ queuedInputs.Add(new queuedUpbeatInputs
+ {
+ beat = beat + i,
+ goRight = i % 2 == 0
+ });
+ }
+ }
}
- public static void Beep(float beat, float length)
+ public void Success(PlayerActionEvent caller, float state)
{
- if(GameManager.instance.currentGame == "mrUpbeat") //this function is only meant for making beeps while the game is inactive
- {
- return;
- }
- if (beeps != null)
- {
- beeps.Delete();
- }
- MultiSound.Sound[] beepSounds = new MultiSound.Sound[Mathf.CeilToInt(length)];
- for(int i = 0; i < beepSounds.Length; i++)
- {
- beepSounds[i] = new MultiSound.Sound("mrUpbeat/blip", beat + 0.5f + i);
- }
- beeps = MultiSound.Play(beepSounds, forcePlay:true);
+ man.Step();
}
+
+ public void Miss(PlayerActionEvent caller)
+ {
+ man.Fall();
+ }
+
+ bool isPlaying(Animator anim, string stateName)
+ {
+ if (anim.GetCurrentAnimatorStateInfo(0).IsName(stateName) &&
+ anim.GetCurrentAnimatorStateInfo(0).normalizedTime < 1.0f)
+ return true;
+ else
+ return false;
+ }
+
+ public void Nothing(PlayerActionEvent caller) {}
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/Games/MrUpbeat/UpbeatStep.cs b/Assets/Scripts/Games/MrUpbeat/UpbeatStep.cs
deleted file mode 100644
index 7d01dcfc..00000000
--- a/Assets/Scripts/Games/MrUpbeat/UpbeatStep.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-using Starpelly;
-
-using HeavenStudio.Util;
-
-namespace HeavenStudio.Games.Scripts_MrUpbeat
-{
- public class UpbeatStep : PlayerActionObject
- {
- public float startBeat;
- private bool passedFirst = false;
- public float beatOffset = 0;
-
- private void Awake()
- {
- PlayerActionInit(gameObject, startBeat);
- }
-
- public override void OnAce()
- {
- Hit(true, true);
- }
-
- private void Update()
- {
- if (Conductor.instance.GetPositionFromBeat(startBeat, 0.35f) >= 1 && !passedFirst)
- {
- if(MrUpbeat.instance.man.stepTimes % 2 != Math.Round(startBeat - beatOffset) % 2)
- Hit(false);
- passedFirst = true;
- }
- if (Conductor.instance.GetPositionFromBeat(startBeat, 0.65f) >= 1)
- Hit(false);
-
- float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, 0.5f);
- StateCheck(normalizedBeat);
-
- if (PlayerInput.Pressed())
- {
- if (state.perfect)
- {
- Hit(true);
- } else if (state.notPerfect())
- {
- Hit(false);
- }
- }
- }
-
- public void Hit(bool hit, bool force = false)
- {
- if (force) MrUpbeat.instance.man.Step();
- else if (!hit) MrUpbeat.instance.man.Fall();
-
- CleanUp();
- }
-
- public void CleanUp()
- {
- Destroy(this.gameObject);
- }
-
- }
-}
\ No newline at end of file
diff --git a/Assets/Scripts/Games/MrUpbeat/UpbeatStep.cs.meta b/Assets/Scripts/Games/MrUpbeat/UpbeatStep.cs.meta
deleted file mode 100644
index 3363988b..00000000
--- a/Assets/Scripts/Games/MrUpbeat/UpbeatStep.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 671722aab5d7ff34da139a076534caf4
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant: