From 3e76bd21b2f1a766293d22c2c86d8da93809c5d3 Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Wed, 25 Jan 2023 16:29:09 +0100 Subject: [PATCH] Mr Upbeat and Lockstep Animation fixes (#238) * mr upbeat input fix + lockstep offbeat switch event seperation * Lockstep + MrUpbeat animation fixes --- Assets/Scripts/Games/Lockstep/Lockstep.cs | 13 ++++++------- Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs | 19 ++++++++++++++++++- Assets/Scripts/Games/Tambourine/Tambourine.cs | 4 ++-- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Assets/Scripts/Games/Lockstep/Lockstep.cs b/Assets/Scripts/Games/Lockstep/Lockstep.cs index fc7f1a9c..cd3fcc2d 100644 --- a/Assets/Scripts/Games/Lockstep/Lockstep.cs +++ b/Assets/Scripts/Games/Lockstep/Lockstep.cs @@ -1,6 +1,7 @@ /* I do not know crap about Unity or C# Almost none of this code is mine, but it's all fair game when the game you're stealing from borrowed from other games */ +//Don't worry Raffy everyone starts somewhere - Rasmus using HeavenStudio.Util; using System; @@ -275,7 +276,7 @@ namespace HeavenStudio.Games if (state >= 1f || state <= -1f) { var cond = Conductor.instance; - var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2); + var beatAnimCheck = Math.Round(caller.startBeat * 2); if (beatAnimCheck % 2 != 0) { Jukebox.PlayOneShotGame("lockstep/tink"); @@ -288,13 +289,12 @@ namespace HeavenStudio.Games } return; } - Success(); + Success(caller.startBeat); } - public void Success() + public void Success(float beat) { - var cond = Conductor.instance; - var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2); + var beatAnimCheck = Math.Round(beat * 2); if (beatAnimCheck % 2 != 0) { Jukebox.PlayOneShotGame($"lockstep/marchOffbeat{UnityEngine.Random.Range(1, 3)}"); @@ -309,8 +309,7 @@ namespace HeavenStudio.Games public void Miss(PlayerActionEvent caller) { - var cond = Conductor.instance; - var beatAnimCheck = Math.Round(cond.songPositionInBeats * 2); + var beatAnimCheck = Math.Round(caller.startBeat * 2); if (beatAnimCheck % 2 != 0 && currentMissStage != HowMissed.MissedOff) { diff --git a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs index 87bdcc0d..060747de 100644 --- a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs +++ b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs @@ -58,6 +58,7 @@ namespace HeavenStudio.Games public float beat; public bool goRight; } + bool startLeft; public static MrUpbeat instance; @@ -101,6 +102,14 @@ namespace HeavenStudio.Games }); } } + if (queuedInputs.Count % 2 != 0) + { + startLeft = true; + } + else + { + startLeft = false; + } queuedInputs.Clear(); } if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN)) @@ -132,7 +141,7 @@ namespace HeavenStudio.Games if (GameManager.instance.currentGame == "mrUpbeat") { float offSet = 0; - if (!MrUpbeat.instance.isPlaying(MrUpbeat.instance.metronomeAnim, "MetronomeIdle") && !MrUpbeat.instance.isPlaying(MrUpbeat.instance.metronomeAnim, "MetronomeGoRight")) + if (MrUpbeat.instance.startLeft) { offSet = 1; } @@ -157,6 +166,14 @@ namespace HeavenStudio.Games } } + if ((length + 1) % 2 != 0) + { + MrUpbeat.instance.startLeft = true; + } + else + { + MrUpbeat.instance.startLeft = false; + } } else { diff --git a/Assets/Scripts/Games/Tambourine/Tambourine.cs b/Assets/Scripts/Games/Tambourine/Tambourine.cs index 7c67fd52..00eb265d 100644 --- a/Assets/Scripts/Games/Tambourine/Tambourine.cs +++ b/Assets/Scripts/Games/Tambourine/Tambourine.cs @@ -24,13 +24,13 @@ namespace HeavenStudio.Games.Loaders { function = delegate {var e = eventCaller.currentEntity; Tambourine.instance.MonkeyInput(e.beat, false); }, defaultLength = 0.5f, - priority = 1 + priority = 2 }, new GameAction("hit", "Hit") { function = delegate {var e = eventCaller.currentEntity; Tambourine.instance.MonkeyInput(e.beat, true); }, defaultLength = 0.5f, - priority = 1 + priority = 2 }, new GameAction("pass turn", "Pass Turn") {