예제 #1
0
 public override void Execute()
 {
     if (!this.m_initialized)
     {
         this.Initialize();
     }
     SpellEffectHandler[] handlers = this.Handlers;
     for (int i = 0; i < handlers.Length; i++)
     {
         SpellEffectHandler spellEffectHandler = handlers[i];
         if (spellEffectHandler is DefaultSpellEffect && (int)spellEffectHandler.Effect.EffectId != 1160)
         {
             string dump = string.Format("{0}[{1}] : EffectId = {2} ; Target = {3} ; AffectedCells = {4} \n", this.Spell.Template.Name, i, spellEffectHandler.Effect.EffectId, spellEffectHandler.Targets.ToString(), string.Join("/", spellEffectHandler.AffectedCells.Select(x => x.Id)));
             System.IO.File.AppendAllText("spell_effects.txt", dump);
         }
         spellEffectHandler.Apply();
     }
 }
예제 #2
0
        private void ChakraConcentrationBuffTrigger(TriggerBuff buff, BuffTriggerType trigger, object token)
        {
            Damage damage = token as Damage;

            if (damage != null && damage.MarkTrigger is Trap)
            {
                Trap trap = damage.MarkTrigger as Trap;
                SpellEffectHandler[] handlers = base.Handlers;
                for (int i = 0; i < handlers.Length; i++)
                {
                    SpellEffectHandler spellEffectHandler = handlers[i];
                    spellEffectHandler.SetAffectedActors(
                        from x in this.m_affectedActors
                        where trap.ContainsCell(x.Cell)
                        select x);
                    spellEffectHandler.Apply();
                }
            }
        }