Пример #1
0
    public override void OnBeginSpellCast(SpellPacketBody spell)
    {
        Logger.Info("Color Spray OnBeginSpellCast");
        Logger.Info("spell.target_list={0}", spell.Targets);
        Logger.Info("spell.caster={0} caster.level= {1}", spell.caster, spell.casterLevel);
        AttachParticles("sp-evocation-conjure", spell.caster);
        var dice = Dice.D6;

        var num_targets_affected = dice.Roll();

        Logger.Info("num_of_targets_affected={0}", num_targets_affected);
        spell.SortTargets(TargetListOrder.DistFromCaster, TargetListOrderDirection.Ascending);
        Logger.Info("target_list sorted by dist from [{0}] (closest to farthest): {1}", spell.caster, spell.Targets);
        if (spell.Targets.Length > num_targets_affected)
        {
            var remove_list = new List <GameObject>();

            var index = 0;

            foreach (var target_item in spell.Targets)
            {
                if (index >= num_targets_affected)
                {
                    remove_list.Add(target_item.Object);
                }

                index = index + 1;
            }

            spell.RemoveTargets(remove_list);
        }

        Logger.Info("target_list after pruning: {0}", spell.Targets);
    }
Пример #2
0
 public override void OnBeginSpellCast(SpellPacketBody spell)
 {
     Logger.Info("Animal Trance OnBeginSpellCast");
     Logger.Info("spell.target_list={0}", spell.Targets);
     Logger.Info("spell.caster={0} caster.level= {1}", spell.caster, spell.casterLevel);
     AttachParticles("sp-enchantment-conjure", spell.caster);
     spell.SortTargets(TargetListOrder.DistFromCaster, TargetListOrderDirection.Ascending);
     Logger.Info("target_list sorted by dist from [{0}] (closest to farthest): {1}", spell.caster, spell.Targets);
 }
Пример #3
0
 public override void OnBeginSpellCast(SpellPacketBody spell)
 {
     Logger.Info("Sleep OnBeginSpellCast");
     Logger.Info("spell.target_list={0}", spell.Targets);
     Logger.Info("spell.caster={0} caster.level= {1}", spell.caster, spell.casterLevel);
     AttachParticles("sp-enchantment-conjure", spell.caster);
     spell.SortTargets(TargetListOrder.HitDiceThenDist, TargetListOrderDirection.Ascending);
     Logger.Info("target_list sorted by hitdice and dist from target_Loc (least to greatest): {0}", spell.Targets);
 }
Пример #4
0
 public override void OnBeginSpellCast(SpellPacketBody spell)
 {
     Logger.Info("Wail of the Banshee OnBeginSpellCast");
     Logger.Info("spell.target_list={0}", spell.Targets);
     Logger.Info("spell.caster={0} caster.level= {1}", spell.caster, spell.casterLevel);
     AttachParticles("sp-necromancy-conjure", spell.caster);
     // Sorts the targets by distance, so closest are affected first
     spell.SortTargets(TargetListOrder.Dist, TargetListOrderDirection.Ascending);
     Logger.Info("target_list sorted by dist from target_Loc (least to greatest): {0}", spell.Targets);
 }
 public override void OnBeginSpellCast(SpellPacketBody spell)
 {
     Logger.Info("Undeath to Death OnBeginSpellCast");
     Logger.Info("spell.target_list={0}", spell.Targets);
     Logger.Info("spell.caster={0} caster.level= {1}", spell.caster, spell.casterLevel);
     AttachParticles("sp-necromancy-conjure", spell.caster);
     // Sorts the targets by hit dice, so lowest hit dice are affected first
     spell.SortTargets(TargetListOrder.HitDiceThenDist, TargetListOrderDirection.Ascending);
     Logger.Info("target_list sorted by hitdice and dist from target_Loc (least to greatest): {0}", spell.Targets);
 }