diff --git a/Assets/Scripts/Fighters/AntiPlayer.cs b/Assets/Scripts/Fighters/AntiPlayer.cs index 8899de73e671e406780b48d7e251fcf45a830bbf..3dd96f4c4049c71d08fb2cf089f2332bd9aeb2d2 100644 --- a/Assets/Scripts/Fighters/AntiPlayer.cs +++ b/Assets/Scripts/Fighters/AntiPlayer.cs @@ -70,6 +70,13 @@ public class AntiPlayer : Fighter, IFighterCallback currentTargetEnemy = enemies.Count > 0 ? enemies[0] : null; } + public override int DealDamage(int dmg) + { + var actualDamage = base.DealDamage(dmg); + StatsManager.instance.ModifyMana((int)(actualDamage * StatsManager.instance.manaReceiveMultiplier)); + return actualDamage; + } + public void OnFighterDeath(Fighter fighter) { enemies.Remove(fighter); diff --git a/Assets/Scripts/Fighters/Fighter.cs b/Assets/Scripts/Fighters/Fighter.cs index 310761ddcc447fa8915d98c167aefb18730470b3..7f36d9f6550607d9842bd856aeca577550506292 100644 --- a/Assets/Scripts/Fighters/Fighter.cs +++ b/Assets/Scripts/Fighters/Fighter.cs @@ -85,19 +85,15 @@ public abstract class Fighter : MonoBehaviour, IRoundCallback } } - public void DealDamage(int dmg) + public virtual int DealDamage(int dmg) { if (!alive) { - return; + return 0; } + var actualDamage = Mathf.Max(0, Mathf.RoundToInt(dmg - baseArmor * GetStats().armorMultiplier)); currentHealth = Mathf.Max(currentHealth - actualDamage, 0); - - if (fighterType == FighterTypes.ANTI_PLAYER) - { - StatsManager.instance.ModifyMana((int)(actualDamage * StatsManager.instance.manaReceiveMultiplier)); - } if (currentHealth == 0) { @@ -112,6 +108,8 @@ public abstract class Fighter : MonoBehaviour, IRoundCallback animator.SetTrigger("Hurt"); healthBarController.ShowHealth(currentHealthPercentage); } + + return actualDamage; } protected FighterStats GetStats()