Exemple #1
0
 protected void TakeDamage(int dmg)
 {
     _subHPRemaining -= dmg;
     if (_subHPRemaining <= 0)
     {
         _subHPRemaining = 0;
         _isAlive        = false;
         Displayer.Fainted(OwnerCall, _name);
     }
 }
Exemple #2
0
        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);
            }
        }