protected void checkBuffs() { List <StatusEffect> removeLater = new List <StatusEffect>(); foreach (StatusEffect effect in statusList) { if (effect.buff != Buff.None) // check the buffs { switch (effect.buff) { case Buff.Attack: BeingBuffDebuffMethods.buffAttack(this, effect.endTime, effect.factor); break; case Buff.Speed: BeingBuffDebuffMethods.buffSpeed(this, effect.endTime, effect.factor); break; } } else // check the debuffs { switch (effect.debuff) { case Debuff.Stun: BeingBuffDebuffMethods.debuffStun(this, effect.endTime); break; case Debuff.Slow: BeingBuffDebuffMethods.debuffSlow(this, effect.endTime, effect.factor); break; case Debuff.Attack: BeingBuffDebuffMethods.debuffAttack(this, effect.endTime, effect.factor); break; } } if (effect.endTime <= Time.time) { removeLater.Add(effect); } } foreach (StatusEffect effect in removeLater) { statusList.Remove(effect); } }
protected override void effectOnTarget(Transform t) { BeingBuffDebuffMethods.bonusHolyDamage(t, damage); }