public override void Apply() { var id = Target.PopNextBuffId(); var buff = new TriggerBuff(id, Target, Caster, EffectHandler, Spell, Spell, Critical, Dispellable, Priority, EvasionBuffTrigger); buff.SetTrigger(BuffTriggerType.OnDamaged); Target.AddBuff(buff); base.Apply(); }
public TriggerBuff AddTriggerBuff(FightActor target, BuffTriggerType type, TriggerBuffApplyHandler applyTrigger) { var id = target.PopNextBuffId(); var buff = new TriggerBuff(id, target, Caster, this, Spell, Spell, Critical, DefaultDispellableStatus, Priority, applyTrigger); buff.SetTrigger(type); target.AddBuff(buff); return(buff); }
public override void Execute() { if (!m_initialized) { Initialize(); } var buffId = Caster.PopNextBuffId(); var effect = Spell.CurrentSpellLevel.Effects[0]; var buff = new TriggerBuff(buffId, Caster, Caster, Handlers[0], Spell, Spell, false, FightDispellableEnum.DISPELLABLE_BY_DEATH, 0, SpellBuffTrigger) { Duration = (short)effect.Duration }; buff.SetTrigger(BuffTriggerType.AfterDamaged); Caster.AddBuff(buff); }
public override void Execute() { if (!m_initialized) { Initialize(); } //Base Effects Handlers[0].Apply(); Handlers[Spell.Id == (int)SpellIdEnum.MARTEAU_DE_MUNGAM ? 1 : (Critical ? 2 : 1)].Apply(); if (!Critical) { return; } Handlers[3].Apply(); //Frozen State if (Spell.Id == (int)SpellIdEnum.MARTEAU_DE_MUNGAM) { Handlers[4].Apply(); } else { Handlers[5].Apply(); //StealHP Water Handlers[6].Apply(); //Change Look } var affectedActors = Handlers[3].GetAffectedActors().ToArray(); foreach (var actor in affectedActors) { var buffId = actor.PopNextBuffId(); var effect = Spell.CurrentSpellLevel.Effects[0]; var buff = new TriggerBuff(buffId, actor, actor, Handlers[0], Spell, Spell, false, FightDispellableEnum.DISPELLABLE_BY_DEATH, 0, SpellBuffTrigger) { Duration = (short)effect.Duration }; buff.SetTrigger(BuffTriggerType.AfterDamaged); actor.AddBuff(buff); } }