public void Target(BaseCreature bc) { if (!Caster.CanSee(bc)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } if (!Caster.InRange(bc, 6)) { Caster.SendLocalizedMessage(500643); // Target is too far away. } else if (!Caster.CanBeHarmful(bc) || !bc.CanBeDamaged()) { Caster.SendLocalizedMessage(1074379); // You cannot charm that! } else if (bc.Controlled || bc.Name == null) { Caster.SendLocalizedMessage(1074379); // You cannot charm that! } else if (bc is BaseChampion || bc.IsParagon || bc is Medusa || bc is Lurg || !SlayerGroup.GetEntryByName(SlayerName.Repond).Slays(bc)) { Caster.SendLocalizedMessage(1074379); // You cannot charm that! } else if (CheckSequence()) { double chance = Caster.Skills[SkillName.Spellweaving].Fixed / 1000; chance += (SpellweavingSpell.GetFocusLevel(Caster) * 2) / 100; if (chance > Utility.RandomDouble()) { SpellHelper.Turn(Caster, bc); bc.ControlSlots = 3; bc.ActiveSpeed = 2; bc.PassiveSpeed = 2; bc.Owners.Add(Caster); bc.SetControlMaster(Caster); bc.IsBonded = false; Caster.SendLocalizedMessage(1072527); // You allure the humanoid to follow and protect you. Caster.PlaySound(0x5C4); } else { bc.Combatant = Caster; Caster.SendLocalizedMessage(1072528); // The humanoid becomes enraged by your charming attempt and attacks you. Caster.PlaySound(0x5C5); } } FinishSequence(); }