/// <summary> /// Decrease or increase actual hp or energy pernamently for specified time for caster. /// </summary> /// <param name="hpOrMana">Target atribute</param> /// <param name="count">How much to change atribute</param> /// <param name="time">How many rounds the effect repeat. 0 for instant effect</param> /// <param name="modificatorNumber">Multiplier between basic number and atribute</param> /// <param name="modifcatorType">Atribute which modifies value</param> public void AddSpellEffectCaster(SpellEffect.FlatAtribute hpOrMana, int count, int time, float modificatorNumber, SpellEffect.Modificator modifcatorType) { SpellEffectsForCaster.Add(new SpellEffect(time, hpOrMana, count, modificatorNumber, modifcatorType)); }
/// <summary> /// Forward list of spell effects to caster and target /// </summary> /// <param name="caster"></param> /// <param name="target"></param> public void Cast(Fighter caster, Fighter target) { SpellEffectsForCaster.ForEach(spellBuff => caster.AddSpellEffect(spellBuff)); SpellEffectsForTarget.ForEach(spellBuff => target.AddSpellEffect(spellBuff)); CooldownReamingTime = Cooldown; }
/// <summary> /// Decrease or increase atribute for specified time then return it to original value for caster. /// </summary> /// <param name="atribute">Target atribute</param> /// <param name="count">How much to change atribute</param> /// <param name="time">How long the change is active</param> public void AddSpellEffectCaster(BonusAtribute.Atributes atribute, int count, int time, float modificatorNumber, SpellEffect.Modificator modifcatorType) { SpellEffectsForCaster.Add(new SpellEffect(time, new BonusAtribute(atribute, count, this), modificatorNumber, modifcatorType)); }