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 override void OnApply(BuffInstance instance) { instance.ApplyBuffMod(AttackModHandler.Generate(EventFlag.ATTACKED, (atkInst) => { atkInst.IsDefended = true; })); }
public override void OnApply(BuffInstance instance) { instance.ApplyBuffMod(AttackModHandler.Generate(EventFlag.HIT_BY_ATTACK, (atkInst) => { OnTick(instance); })); }
void AddPassives() { for (int i = 0; i < Abilities.Length; i++) { Buff passive = Abilities[i].Passive; if (passive != null) { Abilities[i].PassiveInstance = BuffInstance.ApplyBuff(null, passive, this, _eventHandler, null); } } }
public override void OnApply(BuffInstance instance) { instance.Target.GetComponent <AbilityCaster>().AddDisabler(); instance.ApplyBuffMod(AttackModHandler.Generate(EventFlag.HIT_BY_ATTACK, (atkInst) => { DamageInstance.Damage(instance.OriginEffect, instance.Caster, instance.Target, instance.Data.MainValue * (atkInst.IsCrit ? 2 : 1), instance.Data.MainType); instance.Remove(); })); }
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 virtual void OnRemove(BuffInstance instance) { }
public virtual void OnExpire(BuffInstance instance) { }
public virtual void OnTick(BuffInstance instance) { }
public virtual void OnApply(BuffInstance instance) { }
public override void OnRemove(BuffInstance instance) { instance.Target.GetComponent <AbilityCaster>().RemoveDisabler(); }
public override void OnTick(BuffInstance instance) { DamageInstance.Damage(instance.OriginEffect, instance.Caster, instance.Target, instance.Data.SecondaryValue, instance.Data.SecondaryType); }