From 80002ec69d578ea80089b1a3297273fcfa7935c1 Mon Sep 17 00:00:00 2001 From: Ny Bruker <robinhs@stud.ntnu.no> Date: Sat, 29 Oct 2022 19:14:58 +0200 Subject: [PATCH] Changed to use the new AbilityParam. - Also changed dodge to use the movement direction. --- .../Code/Core/Abilities/AbilityDodge.cs | 17 ++++++----------- .../Assets/Code/Core/Abilities/BasicArrow.cs | 19 ++++++------------- .../Code/Core/Abilities/BasicProjectile1.cs | 15 +++++---------- .../Core/Abilities/BiggerSlowerProjectile.cs | 15 +++++---------- 4 files changed, 22 insertions(+), 44 deletions(-) diff --git a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs index c7afea53..ff78922d 100644 --- a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs +++ b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs @@ -28,19 +28,14 @@ namespace BigSock { /* Activates the ability. */ - protected override bool Activate(Character actor, Vector3? target) { - if(target == null) return false; - - // Get direction. - var temp = (target.Value - actor.transform.position); - temp.z = 0; - var direction = (Vector2) temp.normalized; - - // Get the force. - var force = BASE_FORCE * actor.Stats.MoveSpeed; + protected override bool Activate(IAbilityParam par) { + var actor = par.Actor; + var direction = par.MovementDir; + if(direction == null) return false; + // Apply the push and iframes. - actor.KnockBack(force, direction); + actor.KnockBack(BASE_FORCE * actor.Stats.MoveSpeed, direction.Value); actor.AddStatusEffect(StatusEffectType.Invincible, IFRAME_DURATION); return true; diff --git a/MrBigsock/Assets/Code/Core/Abilities/BasicArrow.cs b/MrBigsock/Assets/Code/Core/Abilities/BasicArrow.cs index 9520f110..f5a4686d 100644 --- a/MrBigsock/Assets/Code/Core/Abilities/BasicArrow.cs +++ b/MrBigsock/Assets/Code/Core/Abilities/BasicArrow.cs @@ -41,31 +41,24 @@ namespace BigSock { - Even if nothing was hit, used to indicate that cooldowns should be updated. This should be overridden in sub-classes for the actual abilities. */ - protected override bool Activate(Character actor, Vector3? target) { + protected override bool Activate(IAbilityParam par) { + var actor = par.Actor; + var target = par.TargetPos; + if(target == null) - return false; + return false; var attack = (AttackStats) AttackStats.Calculate(actor.Stats); - //var attack = (AttackStats) AttackStats.Apply(actor.Stats); attack.Actor = actor; - - var temp = (target.Value - actor.transform.position); - var temp1 = temp; - - - temp.z = 0; - temp1.z = 90; - var bullet = PrefabService.SINGLETON.Instance(PROJECTILE_NAME, actor.transform.position); //bullet.transform.rotation = Quaternion.LookRotation(temp.normalized); //bullet.transform.rotation = Quaternion.LookRotation(temp1 ,Vector3.up); var bulletScript = bullet.GetComponent<AttackMovement>(); - //bulletScript.Actor = actor; bulletScript.Stats = attack; - bulletScript.Direction = temp.normalized; + bulletScript.Direction = (target.Value - (Vector2) actor.transform.position).normalized; //MonoBehaviour.Instantiate(PROJECTILE_BASE, (Vector3) actor.transform.position, PROJECTILE_BASE.transform.rotation); diff --git a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs index c8e0f73b..60a935cc 100644 --- a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs +++ b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs @@ -42,25 +42,20 @@ namespace BigSock { - Even if nothing was hit, used to indicate that cooldowns should be updated. This should be overridden in sub-classes for the actual abilities. */ - protected override bool Activate(Character actor, Vector3? target) { + protected override bool Activate(IAbilityParam par) { + var actor = par.Actor; + var target = par.TargetPos; + if(target == null) return false; var attack = (AttackStats) AttackStats.Calculate(actor.Stats); - //var attack = (AttackStats) AttackStats.Apply(actor.Stats); attack.Actor = actor; - - var temp = (target.Value - actor.transform.position); - temp.z = 0; - var bullet = PrefabService.SINGLETON.Instance(PROJECTILE_NAME, actor.transform.position); var bulletScript = bullet.GetComponent<AttackMovement>(); - //bulletScript.Actor = actor; bulletScript.Stats = attack; - bulletScript.Direction = temp.normalized; - + bulletScript.Direction = (target.Value - (Vector2) actor.transform.position).normalized; - //MonoBehaviour.Instantiate(PROJECTILE_BASE, (Vector3) actor.transform.position, PROJECTILE_BASE.transform.rotation); return true; } diff --git a/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs index ffd0050c..ce60bcde 100644 --- a/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs +++ b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs @@ -45,25 +45,20 @@ namespace BigSock { - Even if nothing was hit, used to indicate that cooldowns should be updated. This should be overridden in sub-classes for the actual abilities. */ - protected override bool Activate(Character actor, Vector3? target) { + protected override bool Activate(IAbilityParam par) { + var actor = par.Actor; + var target = par.TargetPos; + if(target == null) return false; var attack = (AttackStats) AttackStats.Calculate(actor.Stats); - //var attack = (AttackStats) AttackStats.Apply(actor.Stats); attack.Actor = actor; - - var temp = (target.Value - actor.transform.position); - temp.z = 0; - var bullet = PrefabService.SINGLETON.Instance(PROJECTILE_NAME, actor.transform.position); var bulletScript = bullet.GetComponent<AttackMovement>(); - //bulletScript.Actor = actor; bulletScript.Stats = attack; - bulletScript.Direction = temp.normalized; - + bulletScript.Direction = (target.Value - (Vector2) actor.transform.position).normalized; - //MonoBehaviour.Instantiate(PROJECTILE_BASE, (Vector3) actor.transform.position, PROJECTILE_BASE.transform.rotation); return true; } -- GitLab