public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { if (info.ButtonID == 2) { PlayerVendor pv = m_Book.RootParent as PlayerVendor; if (m_Book.Entries.Contains(m_Object) && pv != null) { int price = 0; VendorItem vi = pv.GetVendorItem(m_Book); if (vi != null && !vi.IsForSale) { if (m_Object is PowerScrollBookEntry) { price = ((PowerScrollBookEntry)m_Object).Price; } } if (price != m_Price) { pv.SayTo(m_From, "The price has been been changed. If you like, you may offer to purchase the item again."); } else if (price == 0) { pv.SayTo(m_From, 1062382); } else { Item item = null; if (m_Object is PowerScrollBookEntry) { item = ((PowerScrollBookEntry)m_Object).Reconstruct(); } if (item == null) { m_From.SendMessage("Internal error. The power scroll could not be reconstructed."); } else { pv.Say(m_From.Name); Container pack = m_From.Backpack; if ((pack != null && pack.ConsumeTotal(typeof(Gold), price)) || Banker.Withdraw(m_From, price)) { m_Book.Entries.Remove(m_Object); m_Book.InvalidateProperties(); pv.HoldGold += price; if (m_From.AddToBackpack(item)) { m_From.SendMessage("The power scroll has been placed in your backpack."); } else { pv.SayTo(m_From, 503204); } if (m_Book.Entries.Count > 0) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book)); } else { m_From.SendLocalizedMessage(1062381); } } else { pv.SayTo(m_From, 503205); item.Delete(); } } } } else { if (pv == null) { m_From.SendLocalizedMessage(1062382); } else { pv.SayTo(m_From, 1062382); } } } else { m_From.SendLocalizedMessage(503207); } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { int index = info.ButtonID; switch (index) { case 0: { break; } case 1: { m_From.SendGump(new PowerScrollFilterGump(m_From, m_Book)); break; } case 2: { if (m_Page > 0) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book, m_Page - 1, m_List)); } return; } case 3: { if (GetIndexForPage(m_Page + 1) < m_List.Count) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book, m_Page + 1, m_List)); } break; } default: { bool canDrop = m_Book.IsChildOf(m_From.Backpack); bool canPrice = canDrop || (m_Book.RootParent is PlayerVendor); index -= 4; int type = index % 2; index /= 2; if (index < 0 || index >= m_List.Count) { break; } object obj = m_List[index]; if (!m_Book.Entries.Contains(obj)) { m_From.SendLocalizedMessage(1062382); break; } if (type == 0) { if (m_Book.IsChildOf(m_From.Backpack)) { Item item = Reconstruct(obj); if (item != null) { m_From.AddToBackpack(item); m_From.SendMessage("The power scroll has been placed in your backpack."); m_Book.Entries.Remove(obj); m_Book.InvalidateProperties(); if (m_Book.Entries.Count > 0) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book, 0, null)); } else { m_From.SendLocalizedMessage(1062381); } } else { m_From.SendMessage("Internal error. The power scroll could not be reconstructed."); } } } else { if (m_Book.IsChildOf(m_From.Backpack)) { m_From.Prompt = new SetPricePrompt(m_Book, obj, m_Page, m_List); m_From.SendMessage("Type in a price for the power scroll:"); } else if (m_Book.RootParent is PlayerVendor) { PlayerVendor pv = (PlayerVendor)m_Book.RootParent; VendorItem vi = pv.GetVendorItem(m_Book); int price = 0; if (vi != null && !vi.IsForSale) { if (obj is PowerScrollBookEntry) { price = ((PowerScrollBookEntry)obj).Price; } } if (price == 0) { m_From.SendLocalizedMessage(1062382); } else { m_From.SendGump(new PowerScrollBuyGump(m_From, m_Book, obj, price)); } } } break; } } }