public Effect(Constants.EffectType type, Constants.BuffTypes buffType = Constants.BuffTypes.None, Constants.StatusTypes statusType = Constants.StatusTypes.None, float power = 0, int duration = 2) { Type = type; BuffType = buffType; StatusType = statusType; Power = power; Duration = duration; }
public void AddBuff(Constants.BuffTypes buff, float multi, int duration = 4) { if (Effects == null) { Effects = new List <Effect>(); } //Swap multi for speed if (buff == Constants.BuffTypes.Speed) { if (multi < 1) { multi = 1; } else { multi = (1f / 3f); } } if (Effects.Find(x => x.BuffType == buff) != null) { unitManager.log.Add("Can't stack buff on " + NameStr); return; } Effects.Add(new Effect(Constants.EffectType.Buff, buff, Constants.StatusTypes.None, multi, duration)); switch (buff) { case Constants.BuffTypes.Damage: Stats.AttackPower *= (Constants.BUFF_MULTIPLIER * multi); Stats.MagicPower *= (Constants.BUFF_MULTIPLIER * multi); break; case Constants.BuffTypes.Defense: Stats.AttackDefense *= (Constants.BUFF_MULTIPLIER * multi); Stats.MagicDefense *= (Constants.BUFF_MULTIPLIER * multi); break; case Constants.BuffTypes.Evasion: Stats.Accuracy *= (Constants.BUFF_MULTIPLIER * multi); Stats.Evasion *= (Constants.BUFF_MULTIPLIER * multi); break; case Constants.BuffTypes.Speed: Stats.Speed = (int)(Stats.Speed * Constants.BUFF_MULTIPLIER * multi); break; case Constants.BuffTypes.Guard: Stats.AttackDefense *= Constants.GUARD_MODIFIER; Stats.MagicDefense *= Constants.GUARD_MODIFIER; break; } UpdateColor(); }