protected void TakeDamage(int dmg) { _subHPRemaining -= dmg; if (_subHPRemaining <= 0) { _subHPRemaining = 0; _isAlive = false; Displayer.Fainted(OwnerCall, _name); } }
public void TakeDamage(int dmg, bool physical, float multiplier = 1, bool ignore = false) { if (LightScreen && !physical && !ignore) { dmg = dmg / 2; } else if (Reflect && physical && !ignore) { dmg = dmg / 2; } DamageBugger.Add(dmg); LastDmg = dmg; if (_activeSub) { SubstituteHP -= dmg; if (SubstituteHP <= 0) { _activeSub = false; Displayer.RelayMessage("Substitute broke"); } dmg = 0; } _subHPRemaining -= dmg; Displayer.SuperEffective(multiplier); if (_subHPRemaining <= 0) { _subHPRemaining = 0; _isAlive = false; Displayer.Fainted(OwnerCall, _name); } else { Displayer.ReceiveDamage(OwnerCall, _name, dmg); } }