public void Apply(AbilityEffect origin, AbilityCaster caster, EventHandler target, AbilityData data) { if (!_doesStack) { BuffInstance existingBuff = target.Buffs.FirstOrDefault( (buffInst) => buffInst.Caster == caster && buffInst.Buff == this); if (existingBuff != null) { existingBuff.Remove(); } } BuffInstance.ApplyBuff(origin, this, caster, target, data); }
public override void ApplyEffect(AbilityCaster caster, EventHandler[] targets, AbilityData data) { for (int i = 0; i < targets.Length; i++) { AttackInstance.Attack(this, caster, targets[i], data.MainValue, data.MainType, data.SFX); } }
public override void ApplyEffect(AbilityCaster caster, EventHandler[] targets, AbilityData data) { for (int i = 0; i < targets.Length; i++) { _buff.Apply(this, caster, targets[i], data); } }
BuffInstance(AbilityEffect originEffect, Buff buff, AbilityCaster caster, EventHandler target, AbilityData data) { OriginEffect = originEffect; Buff = buff; Caster = caster; Target = target; Data = data; }
public static BuffInstance ApplyBuff(AbilityEffect origin, Buff buff, AbilityCaster caster, EventHandler target, AbilityData data) { BuffInstance buffInst = new BuffInstance(origin, buff, caster, target, data); buffInst.Start(); return(buffInst); }
public abstract void ApplyEffect(AbilityCaster caster, EventHandler[] targets, AbilityData data);