public override void OnResponse(NetState sender, RelayInfo info) { Mobile from = sender.Mobile; if (info.ButtonID == 0 || m_pot.Deleted || !from.InRange(m_pot.GetWorldLocation(), 3)) { return; } if (!m_pot.IsAccessibleTo(from)) { from.PrivateOverheadMessage(0, 1154, false, "I cannot use that.", from.NetState); return; } switch (info.ButtonID) { case (int)Buttons.cmdHelp: { from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); from.SendGump(new apiBeeHiveHelpGump(from, 1)); break; } case (int)Buttons.cmdAddRaw: //Add Raw Honey { from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); if (m_pot.PureBeeswax > 0) { from.PrivateOverheadMessage(0, 1154, false, "You cannot mix raw beeswax with rendered wax. Please empty the pot first.", from.NetState); return; } from.PrivateOverheadMessage(0, 1154, false, "Choose the raw beeswax you wish to add to the pot.", from.NetState); m_pot.BeginAdd(from); break; } case (int)Buttons.cmdEmptyPot: //Empty the pot { if (m_pot.PureBeeswax < 1 && m_pot.RawBeeswax < 1) { from.PrivateOverheadMessage(0, 1154, false, "There is no wax in the pot.", from.NetState); from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); return; } Item wax; if (m_pot.PureBeeswax > 0) { wax = new Beeswax(m_pot.PureBeeswax); } else { wax = new RawBeeswax(m_pot.RawBeeswax); } if (!from.PlaceInBackpack(wax)) { wax.Delete(); from.PrivateOverheadMessage(0, 1154, false, "There is not enough room in your backpack for the wax!", from.NetState); from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); break; } m_pot.RawBeeswax = 0; m_pot.PureBeeswax = 0; m_pot.ItemID = 2532; //empty pot from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); from.PrivateOverheadMessage(0, 1154, false, "You place the beeswax in your pack.", from.NetState); break; } case (int)Buttons.cmdRenderWax: //render the wax { if (m_pot.UsesRemaining < 1) { //no uses remaining from.PrivateOverheadMessage(0, 1154, false, "The pot is too damamged to render beeswax.", from.NetState); from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); return; } else if (m_pot.PureBeeswax > 1) { //already rendered from.PrivateOverheadMessage(0, 1154, false, "The pot is already full of rendered beeswax.", from.NetState); from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); return; } else if (m_pot.RawBeeswax < 10) { //not enough raw beeswax from.PrivateOverheadMessage(0, 1154, false, "There is not enough raw beeswax in the pot.", from.NetState); from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); return; } else if (!BeeHiveHelper.Find(from, BeeHiveHelper.m_HeatSources)) { //need a heat source to melt the wax from.PrivateOverheadMessage(0, 1154, false, "You must be near a heat source to render beeswax.", from.NetState); from.SendGump(new apiBeeHiveSmallPotGump(from, m_pot)); return; } m_pot.ItemID = 0x142b; //pot overflowing with wax m_pot.UsesRemaining--; if (m_pot.UsesRemaining < 0) { m_pot.UsesRemaining = 0; } int waste = Utility.RandomMinMax(1, m_pot.RawBeeswax / 5); if (GiveSlumgum) { //give slumgum Item gum = new Slumgum(Math.Max(1, waste)); if (!from.PlaceInBackpack(gum)) { gum.Delete(); } } from.PlaySound(0x21); from.PrivateOverheadMessage(0, 1154, false, "You slowly melt the raw beeswax and remove the impurities.", from.NetState); m_pot.PureBeeswax = m_pot.RawBeeswax - waste; m_pot.RawBeeswax = 0; break; } } }