示例#1
0
文件: DodgeBuff.cs 项目: Mixi59/Stump
        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();
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }