protected override void OnTarget(Mobile from, object target) { if (target is SilverSerpent) { SilverSerpent serp = target as SilverSerpent; if (serp.Hue == 1150) { if (0.3 > Utility.RandomDouble()) { from.SendLocalizedMessage(1112219); // You skillfully extract additional resources from the creature. from.AddToBackpack(new SilverSerpentVenom()); m_EmptyVenomVial.Delete(); serp.Hue = 0; } else { from.SendLocalizedMessage(1112218); // You handle the creature but fail to harvest any resources from it. } } else { from.SendLocalizedMessage(1112223);// This serpent has already been drained of all its venom. } } else { from.SendLocalizedMessage(1112221); // You may only use this on a silver serpent. } }
public override void OnDoubleClick(Mobile from) { if (!this.CheckUse(from)) { return; } Map map = this.Map; Point3D loc = this.Location; if (from.InRange(loc, 1) || from.InLOS(this)) { (this).Delete(); Snake snake = new Snake(); Mongbat mongbat = new Mongbat(); SilverSerpent silverserpent = new SilverSerpent(); Raptor raptor = new Raptor(); Ballem ballem = new Ballem(); FNPitchfork fnpitchfork = new FNPitchfork(); switch (Utility.Random(6)) { case 0: snake.MoveToWorld(loc, map); break; case 1: mongbat.MoveToWorld(loc, map); break; case 2: silverserpent.MoveToWorld(loc, map); break; case 3: raptor.MoveToWorld(loc, map); break; case 4: ballem.MoveToWorld(loc, map); break; case 5: if (Utility.RandomDouble() < 0.20) { fnpitchfork.MoveToWorld(loc, map); from.SendMessage("You find Farmer Nash's pitchfork under one of the brambles of weeds. You pick up the pitchfork and put it in your backpack."); break; } else { silverserpent.MoveToWorld(loc, map); break; } } } }
protected override void OnTarget(Mobile from, object targeted) { SilverSerpent serpent = targeted as SilverSerpent; if (serpent == null) { // You may only use this on a silver serpent. from.SendLocalizedMessage(1112221); } else if (!from.InRange(serpent, 1)) { // That is too far away. from.SendLocalizedMessage(500446); } else if (serpent.CharmMaster == null) { // You seem to anger the beast! serpent.PrivateOverheadMessage(MessageType.Regular, 0x3B2, 502805, from.NetState); } else if (serpent.Venom == SilverSerpent.VenomLeft.None) { // This serpent has already been drained of all its venom. from.SendLocalizedMessage(1112223); } else { if (Utility.RandomBool()) { from.AddToBackpack(new SilverSerpentVenom()); if (serpent.Venom == SilverSerpent.VenomLeft.All) { from.SendLocalizedMessage(1112220); // You manage to extract some resources from the creature. } else { from.SendLocalizedMessage(1112219); // You skillfully extract additional resources from the creature. } if (serpent.Venom == SilverSerpent.VenomLeft.Half || Utility.RandomBool()) { serpent.Venom = SilverSerpent.VenomLeft.None; } else { serpent.Venom = SilverSerpent.VenomLeft.Half; } m_Vial.Consume(); } else { // You handle the creature but fail to harvest any resources from it. from.SendLocalizedMessage(1112218); } if (Utility.RandomBool()) { from.ApplyPoison(serpent, serpent.Poison); } } }