diff --git a/Assets/Scripts/Games/KarateMan/KarateManJoe.cs b/Assets/Scripts/Games/KarateMan/KarateManJoe.cs index dd8c26141..d6637fa87 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManJoe.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManJoe.cs @@ -20,6 +20,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan float lastUpperCutTime = Single.MinValue; public bool inCombo = false; public bool lockedInCombo = false; + public bool comboWaiting = false; int inComboId = -1; int shouldComboId = -1; public void SetComboId(int id) { inComboId = id; } @@ -199,15 +200,18 @@ namespace HeavenStudio.Games.Scripts_KarateMan break; case 2: anim.DoScaledAnimationAsync("BackHand", 0.5f); + comboWaiting = true; break; case 3: anim.DoScaledAnimationAsync("UpperCut", 0.5f); lockedInCombo = false; + comboWaiting = false; break; case 4: anim.Play("ToReady", -1, 0); bop.startBeat = cond.songPositionInBeats + 0.5f; lockedInCombo = false; + comboWaiting = false; break; default: break; diff --git a/Assets/Scripts/Games/KarateMan/KarateManPot.cs b/Assets/Scripts/Games/KarateMan/KarateManPot.cs index 17b58e679..c81d47aa5 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManPot.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManPot.cs @@ -677,7 +677,19 @@ namespace HeavenStudio.Games.Scripts_KarateMan } } - public void ComboEndOut(PlayerActionEvent caller) {} + public void ComboEndOut(PlayerActionEvent caller) { + if (GameManager.instance.currentGame != "karateman") return; + var joe = KarateMan.instance.Joe; + if (status == FlyStatus.Fly && joe.inCombo && joe.GetComboId() == comboId && joe.comboWaiting) + { + joe.inCombo = false; + joe.SetComboId(-1); + joe.SetShouldComboId(-1); + joe.ComboSequence(3); + Jukebox.PlayOneShotGame("karateman/swingKick", forcePlay: true); + } + } + public void ComboEndThrough(PlayerActionEvent caller) { if (GameManager.instance.currentGame != "karateman") return;