Пример #1
0
        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);
        }
Пример #2
0
 public override void OnApply(BuffInstance instance)
 {
     instance.ApplyBuffMod(AttackModHandler.Generate(EventFlag.ATTACKED,
                                                     (atkInst) =>
     {
         atkInst.IsDefended = true;
     }));
 }
Пример #3
0
 public override void OnApply(BuffInstance instance)
 {
     instance.ApplyBuffMod(AttackModHandler.Generate(EventFlag.HIT_BY_ATTACK,
                                                     (atkInst) =>
     {
         OnTick(instance);
     }));
 }
Пример #4
0
 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);
         }
     }
 }
Пример #5
0
        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();
            }));
        }
Пример #6
0
 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);
 }
Пример #7
0
 public virtual void OnRemove(BuffInstance instance)
 {
 }
Пример #8
0
 public virtual void OnExpire(BuffInstance instance)
 {
 }
Пример #9
0
 public virtual void OnTick(BuffInstance instance)
 {
 }
Пример #10
0
 public virtual void OnApply(BuffInstance instance)
 {
 }
Пример #11
0
 public override void OnRemove(BuffInstance instance)
 {
     instance.Target.GetComponent <AbilityCaster>().RemoveDisabler();
 }
Пример #12
0
 public override void OnTick(BuffInstance instance)
 {
     DamageInstance.Damage(instance.OriginEffect, instance.Caster, instance.Target,
                           instance.Data.SecondaryValue, instance.Data.SecondaryType);
 }