protected override void OnTarget(Mobile from, object targeted) { if (targeted is Corpse) { Corpse c = targeted as Corpse; if (!from.InRange(c.Location, 3)) { from.SendLocalizedMessage(500446); // That is too far away. } if (c.VisitedByTaxidermist) { from.SendLocalizedMessage(1042596); // That corpse seems to have been visited by a taxidermist already. } else if (!m_Permit.IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } else if (c.Owner == null) { from.SendLocalizedMessage(1155706); // That is not a valid kill. } else if (!IsOnlyAttacker(from, c.Owner)) { from.SendLocalizedMessage(1155707); // You cannot document someone else's kill. } else { Type t = c.Owner.GetType(); if (t == typeof(RagingGrizzlyBear)) // Bandaid Fix, we'll keep this until others arise { t = typeof(GrizzlyBear); } for (int i = 0; i < HuntingTrophyInfo.Infos.Count; i++) { HuntingTrophyInfo info = HuntingTrophyInfo.Infos[i]; if (t == info.CreatureType) { int v = 0; if (HuntingSystem.Instance != null && HuntingSystem.Instance.IsPrimeHunt(from, c.Location)) { v = Utility.RandomMinMax(0, 100); } else { v = Utility.RandomMinMax(0, 10000); v = (int)Math.Sqrt(v); v = 100 - v; } int measurement = info.MinMeasurement + (int)((double)(info.MaxMeasurement - info.MinMeasurement) * (double)((double)v / 100.0)); m_Permit.KillEntry = new HuntingKillEntry(m_Permit.Owner, measurement, DateTime.Now, i, WorldLocationInfo.GetLocationString(c.Location, c.Map)); c.VisitedByTaxidermist = true; from.PlaySound(0x249); from.PrivateOverheadMessage(Server.Network.MessageType.Regular, 0x45, 1155713, from.NetState); // *You document your kill on the permit* m_Permit.InvalidateProperties(); return; } } from.SendLocalizedMessage(1155706); // That is not a valid kill. } } }