diff --git a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs index c7afea538003af5394e2d907c0299dfd810f4b2b..ff78922d6c34590ab574eaedb5b229a9e5b60f27 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 9520f11020b5f67f80ac312d3c27b232652d48fd..f5a4686db6ffd33bf4a19492b8414934a9b5c348 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 c8e0f73b6b65ee02839044964c9115ea70fd4942..60a935cce60c039ea89e06f2ebf7fbdef32bf157 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 ffd0050cc6c93c01a070c1bc12bdd2040b40c578..ce60bcde11b763ed7dc900d3a5abcb2f6ade2ec2 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; }