From 909f1e0ae76b11273e47092bb7b1e9f75145ca54 Mon Sep 17 00:00:00 2001 From: Nico Date: Tue, 15 Jul 2025 01:52:44 -0700 Subject: [PATCH] Update knockback direction to allow either facing direction or direction from player --- Assets/Scripts/Runtime/Characters/Player/Classes/ClassBase.cs | 2 ++ .../Runtime/Characters/Player/Classes/MeleeFighterClass.cs | 2 ++ .../Scripts/Runtime/Characters/Player/PlayerMainController.cs | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Runtime/Characters/Player/Classes/ClassBase.cs b/Assets/Scripts/Runtime/Characters/Player/Classes/ClassBase.cs index 675aa9a..db58a11 100644 --- a/Assets/Scripts/Runtime/Characters/Player/Classes/ClassBase.cs +++ b/Assets/Scripts/Runtime/Characters/Player/Classes/ClassBase.cs @@ -104,6 +104,7 @@ public class ClassBase { var center = PlayerPos + Player.PrevDirection * centerOffset; hitDelay = 0; HitBoxDraw.Knockback = knockback; + HitBoxDraw.Directional = centerOffset != 0; AttackCoroutine = Player.Instance.StartCoroutine(CreateHitBoxHelper(center, radius, hitDelay, hitDuration)); } @@ -128,6 +129,7 @@ public class ClassBase { public class HitBoxDrawClass { public bool Draw; public bool Active; + public bool Directional; public Vector2 Center; public float Radius; public Color Color; diff --git a/Assets/Scripts/Runtime/Characters/Player/Classes/MeleeFighterClass.cs b/Assets/Scripts/Runtime/Characters/Player/Classes/MeleeFighterClass.cs index 99ba36f..3f1ff2d 100644 --- a/Assets/Scripts/Runtime/Characters/Player/Classes/MeleeFighterClass.cs +++ b/Assets/Scripts/Runtime/Characters/Player/Classes/MeleeFighterClass.cs @@ -76,6 +76,7 @@ public class MeleeFighterClass : ClassBase { AnimationToPlay = "Attack1"; TextPopUp.SpawnFloatingText("KineticSurge", Color.red, 3); AllowBladeVortex = ComboTimeElapsed <= 0.1f; + CreateHitBoxOffset(0, 5, 0.1f, 0.1f, 20); break; @@ -223,6 +224,7 @@ public class MeleeFighterClass : ClassBase { case AttackState.Shockwave: AnimationToPlay = "Shockwave"; Player.VfxShockwavePool.Get(Player.transform.position); + CreateHitBoxOffset(0, 5, 0.1f, 0.1f, 20); Player.IsJumping = false; break; diff --git a/Assets/Scripts/Runtime/Characters/Player/PlayerMainController.cs b/Assets/Scripts/Runtime/Characters/Player/PlayerMainController.cs index 149cfb6..79ca6d5 100644 --- a/Assets/Scripts/Runtime/Characters/Player/PlayerMainController.cs +++ b/Assets/Scripts/Runtime/Characters/Player/PlayerMainController.cs @@ -203,8 +203,8 @@ public class Player : MonoBehaviour { if (!hit.CompareTag("EnemyHurtBox")) continue; GameObject parent = hit.transform.parent?.gameObject; - //EnemySpawnerData.EnemyMap[parent].TakeDamage(0, transform.position - parent.transform.position); - EnemySpawnerData.EnemyMap[parent].Damage(0, PrevDirection, ActiveClass.HitBoxDraw.Knockback); + Vector2 knockbakDirection = ActiveClass.HitBoxDraw.Directional ? PrevDirection : parent.transform.position - transform.position; + EnemySpawnerData.EnemyMap[parent].Damage(0, knockbakDirection, ActiveClass.HitBoxDraw.Knockback); } }