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()