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); }
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); }
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); }
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); }