From 28b5cc71d7d7ad2d7a16cdc94cf7920dc0a74f90 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 29 Jul 2022 15:26:59 -0400 Subject: [PATCH] start work on kicks --- Assets/Resources/Games/karateman.prefab | 5 +++-- Assets/Scripts/Games/KarateMan/KarateMan.cs | 17 ++++++++++++++++- Assets/Scripts/Games/KarateMan/KarateManPot.cs | 17 ++++++++++++----- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/Assets/Resources/Games/karateman.prefab b/Assets/Resources/Games/karateman.prefab index d1f7292c..b9cc6959 100644 --- a/Assets/Resources/Games/karateman.prefab +++ b/Assets/Resources/Games/karateman.prefab @@ -198,6 +198,7 @@ MonoBehaviour: m_EditorClassIdentifier: anim: {fileID: 3234329793564267697} inCombo: 0 + lockedInCombo: 0 --- !u!1 &676219503303960657 GameObject: m_ObjectHideFlags: 0 @@ -1737,7 +1738,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &5764267227668832721 Transform: m_ObjectHideFlags: 0 @@ -3599,7 +3600,7 @@ SpriteRenderer: m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 - m_Size: {x: 10.25, y: 1.9722222} + m_Size: {x: 3.8888888, y: 6.5555553} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 diff --git a/Assets/Scripts/Games/KarateMan/KarateMan.cs b/Assets/Scripts/Games/KarateMan/KarateMan.cs index 11018672..16b370bd 100644 --- a/Assets/Scripts/Games/KarateMan/KarateMan.cs +++ b/Assets/Scripts/Games/KarateMan/KarateMan.cs @@ -27,7 +27,7 @@ namespace HeavenStudio.Games.Loaders new Param("type", KarateMan.LightBulbType.Normal, "Type", "The preset bulb type. Yellow is used for kicks while Blue is used for combos"), new Param("colorA", new Color(), "Custom Color", "The color to use when the bulb type is set to Custom") }), - new GameAction("kick", delegate { }, 4f), + new GameAction("kick", delegate { KarateMan.instance.Kick(eventCaller.currentEntity.beat); }, 4f), new GameAction("combo", delegate { KarateMan.instance.Combo(eventCaller.currentEntity.beat); }, 4f), new GameAction("hitX", delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, 1f, false, new List() @@ -334,6 +334,21 @@ namespace HeavenStudio.Games }, forcePlay: true); } + public void Kick(float beat) + { + Jukebox.PlayOneShotGame("karateman/barrelOutKicks", forcePlay: true); + + CreateItemInstance(beat, "Item05", KarateManPot.ItemType.KickBarrel); + + MultiSound.Play(new MultiSound.Sound[] + { + new MultiSound.Sound("karateman/punchKick1", beat + 1f), + new MultiSound.Sound("karateman/punchKick2", beat + 1.5f), + new MultiSound.Sound("karateman/punchKick3", beat + 1.75f), + new MultiSound.Sound("karateman/punchKick4", beat + 2.5f), + }, forcePlay: true); + } + GameObject CreateItemInstance(float beat, string awakeAnim, KarateManPot.ItemType type = KarateManPot.ItemType.Pot, int comboId = -1) { GameObject mobj = GameObject.Instantiate(Item, ItemHolder); diff --git a/Assets/Scripts/Games/KarateMan/KarateManPot.cs b/Assets/Scripts/Games/KarateMan/KarateManPot.cs index 49d6b193..4e202b62 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManPot.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManPot.cs @@ -130,6 +130,13 @@ namespace HeavenStudio.Games.Scripts_KarateMan KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ComboEndWrongActionAlt, ItemOut, ItemOut); path = 5; break; + case ItemType.KickBarrel: + //todo: needs own action for spawning the bomb + KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ItemJustOrNg, ItemThrough, ItemOut); + KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut); + path = 1; + comboId = -1; + break; default: KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ItemJustOrNg, ItemThrough, ItemOut); KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut); @@ -166,7 +173,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan return; } else if (prog < 1f - ItemSlipRt[path]) { - transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (90f * Time.deltaTime * (1/cond.pitchedSecPerBeat))); + transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (125f * Time.deltaTime * (1/cond.pitchedSecPerBeat))); } break; case FlyStatus.Hit: @@ -226,6 +233,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan case ItemType.ComboBarrel: Jukebox.PlayOneShotGame("karateman/comboHit4", forcePlay: true); break; + case ItemType.KickBarrel: + Jukebox.PlayOneShotGame("karateman/barrelBreak", forcePlay: true); + break; default: Jukebox.PlayOneShotGame("karateman/potHit", forcePlay: true); break; @@ -239,14 +249,11 @@ namespace HeavenStudio.Games.Scripts_KarateMan switch (type) { case ItemType.Rock: - return 2; case ItemType.Ball: - return 2; case ItemType.Cooking: - return 2; case ItemType.Alien: - return 2; case ItemType.TacoBell: + case ItemType.KickBarrel: return 2; default: return 0;