public override void DoEffects(BaseCreature creature, Mobile defender, ref int damage) { if (creature.Map == null) { return; } List <Mobile> list = new List <Mobile>(); IPooledEnumerable eable = creature.GetMobilesInRange(8); foreach (Mobile m in eable) { if (AreaEffect.ValidTarget(creature, m)) { list.Add(m); } } eable.Free(); foreach (Mobile m in list) { creature.DoHarmful(m, false); m.FixedParticles(0x374A, 10, 15, 5013, 0x496, 0, EffectLayer.Waist); m.PlaySound(0x231); m.SendMessage("You feel the mana drain out of you!"); int toDrain = Utility.RandomMinMax(40, 60); creature.Mana += toDrain; m.Mana -= toDrain; } }
public override void DoEffects(BaseCreature creature, Mobile defender, ref int damage) { IPooledEnumerable eable = creature.GetMobilesInRange(3); List <Mobile> list = new List <Mobile>(); list.Add(defender); foreach (Mobile m in eable) { if (AreaEffect.ValidTarget(creature, m)) { list.Add(m); } } eable.Free(); Poison p = creature.GetHitPoison(); if (p == null) { return; } foreach (var m in list) { defender.PlaySound(0xDD); defender.FixedParticles(0x3728, 244, 25, 9941, 1266, 0, EffectLayer.Waist); m.SendLocalizedMessage(1008097, false, creature.Name); // : poisoned you! m.ApplyPoison(creature, p); } if (creature.Controlled && list.Count > 0) { var profile = PetTrainingHelper.GetAbilityProfile(creature); if ((profile != null && profile.HasAbility(MagicalAbility.Poisoning)) || 0.2 > Utility.RandomDouble()) { creature.CheckSkill(SkillName.Poisoning, 0, creature.Skills[SkillName.Poisoning].Cap); } } ColUtility.Free(list); }