Mr Upbeat and Lockstep Animation fixes (#238)

* mr upbeat input fix + lockstep offbeat switch event seperation

* Lockstep + MrUpbeat animation fixes
This commit is contained in:
Rapandrasmus 2023-01-25 16:29:09 +01:00 committed by GitHub
parent 669588ab68
commit 3e76bd21b2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 10 deletions

View file

@ -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)
{

View file

@ -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
{

View file

@ -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")
{