Example #1
0
 public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
 {
     if (info.ButtonID == 1 && m_Callback != null)
     {
         m_Callback(sender.Mobile, m_State);
     }
 }
Example #2
0
        public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;

            switch (info.ButtonID)
            {
            case 1:                     // Search
            {
                TextRelay te    = info.GetTextEntry(0);
                string    match = (te == null ? "" : te.Text.Trim());

                if (match.Length < 3)
                {
                    from.SendMessage("Invalid search string.");
                    from.SendGump(new AddGump(from, match, m_Page, m_SearchResults, false));
                }
                else
                {
                    from.SendGump(new AddGump(from, match, 0, (Type[])Match(match).ToArray(typeof(Type)), true));
                }

                break;
            }

            case 2:                     // Previous page
            {
                if (m_Page > 0)
                {
                    from.SendGump(new AddGump(from, m_SearchString, m_Page - 1, m_SearchResults, true));
                }

                break;
            }

            case 3:                     // Next page
            {
                if ((m_Page + 1) * 10 < m_SearchResults.Length)
                {
                    from.SendGump(new AddGump(from, m_SearchString, m_Page + 1, m_SearchResults, true));
                }

                break;
            }

            default:
            {
                int index = info.ButtonID - 4;

                if (index >= 0 && index < m_SearchResults.Length)
                {
                    from.SendMessage("Where do you wish to place this object? <ESC> to cancel.");
                    from.Target = new InternalTarget(m_SearchResults[index], m_SearchResults, m_SearchString, m_Page);
                }

                break;
            }
            }
        }
Example #3
0
            public override void OnResponse(Server.Network.GameClient state, RelayInfo info)
            {
                if (m_Engraver == null || m_Engraver.Deleted)
                {
                    return;
                }

                if (info.ButtonID == (int)Buttons.Confirm)
                {
                    m_Engraver.Recharge(state.Mobile, m_Guildmaster);
                }
            }
Example #4
0
 public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
 {
     if (info.ButtonID == 2)
     {
         if (!m_Pet.Deleted && m_Pet.Controlled && m_From == m_Pet.ControlMaster && m_From.CheckAlive())
         {
             if (m_Pet.Map == m_From.Map && m_Pet.InRange(m_From, 14))
             {
                 m_Pet.Delete();
             }
         }
     }
 }
Example #5
0
 public override void OnResponse(Server.Network.GameClient state, RelayInfo info)
 {
     if (info.ButtonID == (int)Buttons.Confirm)
     {
         if (info.IsSwitched((int)Buttons.Break))
         {
             Confirm(state.Mobile);
         }
         else
         {
             Refuse(state.Mobile);
         }
     }
 }
Example #6
0
 public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
 {
     if (info.ButtonID == 2)
     {
         if (!m_Pet.Deleted && m_Pet.Controlled && m_From == m_Pet.ControlMaster && m_From.CheckAlive())
         {
             if (m_Pet.Map == m_From.Map && m_Pet.InRange(m_From, 14))
             {
                 m_Pet.ControlTarget = null;
                 m_Pet.ControlOrder  = OrderType.Release;
                 m_Pet.RemoveOnSave  = true;
             }
         }
     }
 }
Example #7
0
        public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
        {
            if (info.ButtonID == 2)
            {
                bool okay = info.IsSwitched(1);

                if (okay)
                {
                    JusticeVirtue.OnVirtueAccepted(m_Protector, m_Protectee);
                }
                else
                {
                    JusticeVirtue.OnVirtueRejected(m_Protector, m_Protectee);
                }
            }
        }
Example #8
0
        public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
        {
            if (m_Aquarium == null || m_Aquarium.Deleted)
            {
                return;
            }

            if (info.ButtonID > 0 && info.ButtonID <= m_Aquarium.Items.Count && m_Edit)
            {
                m_Aquarium.RemoveItem(sender.Mobile, info.ButtonID - 1);
            }

            if (info.ButtonID > 0)
            {
                sender.Mobile.SendGump(new AquariumGump(m_Aquarium, m_Edit));
            }
        }
Example #9
0
            public override void OnResponse(Server.Network.GameClient state, RelayInfo info)
            {
                if (m_Tool == null || m_Tool.Deleted || m_Target == null || m_Target.Deleted)
                {
                    return;
                }

                if (info.ButtonID == (int)Buttons.Okay)
                {
                    TextRelay relay          = info.GetTextEntry((int)Buttons.Text);
                    string    sanitized_text = relay.Text;
                    sanitized_text = sanitized_text.Replace("<", "").Replace(">", "").Trim();
                    relay          = new TextRelay(relay.EntryID, sanitized_text);

                    if (relay != null)
                    {
                        if (String.IsNullOrEmpty(relay.Text))
                        {
                            m_Target.EngravedText = null;
                            state.Mobile.SendLocalizedMessage(1072362);                               // You remove the engraving from the object.
                        }
                        else
                        {
                            if (relay.Text.Length > 64)
                            {
                                m_Target.EngravedText = relay.Text.Substring(0, 64);
                            }
                            else
                            {
                                m_Target.EngravedText = relay.Text;
                            }

                            state.Mobile.SendLocalizedMessage(1072361);                               // You engraved the object.
                            m_Target.InvalidateProperties();
                            m_Tool.UsesRemaining -= 1;
                            m_Tool.InvalidateProperties();
                        }
                    }
                }
                else
                {
                    state.Mobile.SendLocalizedMessage(1072363);                       // The object was not engraved.
                }
            }
Example #10
0
        public override void OnResponse(Server.Network.GameClient state, RelayInfo info)
        {
            if (info.ButtonID != (int)Buttons.Okay || m_Quest == null)
            {
                return;
            }

            if (m_Quest.ChainID != QuestChain.None && info.IsSwitched((int)Radios.Chain))
            {
                m_Quest.OnResign(true);
            }

            if (info.IsSwitched((int)Radios.Quest))
            {
                m_Quest.OnResign(false);
            }

            if (info.IsSwitched((int)Radios.None) && m_Quest.Owner != null)
            {
                m_Quest.Owner.SendGump(new MLQuestMainLogGump(m_Quest.Owner));
            }
        }
Example #11
0
        public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
        {
            BOBFilter f = (m_From.UseOwnFilter ? m_From.BOBFilter : m_Book.Filter);

            int index = info.ButtonID;

            switch (index)
            {
            case 0:                     // Apply
            {
                m_From.SendGump(new BOBGump(m_From, m_Book));

                break;
            }

            case 1:                     // Set Book Filter
            {
                m_From.UseOwnFilter = false;
                m_From.SendGump(new BOBFilterGump(m_From, m_Book));

                break;
            }

            case 2:                     // Set Your Filter
            {
                m_From.UseOwnFilter = true;
                m_From.SendGump(new BOBFilterGump(m_From, m_Book));

                break;
            }

            case 3:                     // Clear Filter
            {
                f.Clear();
                m_From.SendGump(new BOBFilterGump(m_From, m_Book));

                break;
            }

            default:
            {
                index -= 4;

                int type = index % 4;
                index /= 4;

                if (type >= 0 && type < m_Filters.Length)
                {
                    int[,] filters = m_Filters[type];

                    if (index >= 0 && index < filters.GetLength(0))
                    {
                        if (filters[index, 0] == 0)
                        {
                            break;
                        }

                        switch (type)
                        {
                        case 0:
                            f.Type = filters[index, 1];
                            break;

                        case 1:
                            f.Quality = filters[index, 1];
                            break;

                        case 2:
                            f.Material = filters[index, 1];
                            break;

                        case 3:
                            f.Quantity = filters[index, 1];
                            break;
                        }

                        m_From.SendGump(new BOBFilterGump(m_From, m_Book));
                    }
                }

                break;
            }
            }
        }
Example #12
0
        public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
        {
            if (m_Selection == null)
            {
                int v = info.ButtonID - 1;

                if (v >= 0 && v < m_List.Count)
                {
                    m_From.SendGump(new ViewHousesGump(m_From, m_List, (BaseHouse)m_List[v]));
                }
            }
            else if (!m_Selection.Deleted)
            {
                switch (info.ButtonID)
                {
                case 0:
                {
                    m_From.SendGump(new ViewHousesGump(m_From, m_List, null));
                    break;
                }

                case 1:
                {
                    Map map = m_Selection.Map;

                    if (map != null && map != Map.Internal)
                    {
                        m_From.MoveToWorld(m_Selection.BanLocation, map);
                    }

                    m_From.SendGump(new ViewHousesGump(m_From, m_List, m_Selection));

                    break;
                }

                case 2:
                {
                    m_From.SendGump(new ViewHousesGump(m_From, m_List, m_Selection));

                    HouseSign sign = m_Selection.Sign;

                    if (sign != null && !sign.Deleted)
                    {
                        sign.OnDoubleClick(m_From);
                    }

                    break;
                }

                case 3:
                {
                    m_From.SendGump(new ViewHousesGump(m_From, m_List, m_Selection));
                    m_From.SendGump(new HouseDemolishGump(m_From, m_Selection));

                    break;
                }

                case 4:
                {
                    m_Selection.RefreshDecay();
                    m_From.SendGump(new ViewHousesGump(m_From, m_List, m_Selection));

                    break;
                }
                }
            }
        }
Example #13
0
        public override void OnResponse(Server.Network.GameClient 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 BOBLargeEntry)
                        {
                            price = ((BOBLargeEntry)m_Object).Price;
                        }
                        else if (m_Object is BOBSmallEntry)
                        {
                            price = ((BOBSmallEntry)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);                           // The deed selected is not available.
                    }
                    else
                    {
                        Item item = null;

                        if (m_Object is BOBLargeEntry)
                        {
                            item = ((BOBLargeEntry)m_Object).Reconstruct();
                        }
                        else if (m_Object is BOBSmallEntry)
                        {
                            item = ((BOBSmallEntry)m_Object).Reconstruct();
                        }

                        if (item == null)
                        {
                            m_From.SendMessage("Internal error. The bulk order deed 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.SendLocalizedMessage(1045152);                                       // The bulk order deed has been placed in your backpack.
                                }
                                else
                                {
                                    pv.SayTo(m_From, 503204);                                       // You do not have room in your backpack for this.
                                }

                                if (m_Book.Entries.Count > 0)
                                {
                                    m_From.SendGump(new BOBGump(m_From, m_Book));
                                }
                                else
                                {
                                    m_From.SendLocalizedMessage(1062381);                                       // The book is empty.
                                }
                            }
                            else
                            {
                                pv.SayTo(m_From, 503205);                                   // You cannot afford this item.
                                item.Delete();
                            }
                        }
                    }
                }
                else
                {
                    if (pv == null)
                    {
                        m_From.SendLocalizedMessage(1062382);                           // The deed selected is not available.
                    }
                    else
                    {
                        pv.SayTo(m_From, 1062382);                           // The deed selected is not available.
                    }
                }
            }
            else
            {
                m_From.SendLocalizedMessage(503207);                   // Cancelled purchase.
            }
        }
Example #14
0
        public override void OnResponse(Server.Network.GameClient sender, RelayInfo info)
        {
            int index = info.ButtonID;

            switch (index)
            {
            case 0:                     // EXIT
            {
                break;
            }

            case 1:                     // Set Filter
            {
                m_From.SendGump(new BOBFilterGump(m_From, m_Book));

                break;
            }

            case 2:                     // Previous page
            {
                if (m_Page > 0)
                {
                    m_From.SendGump(new BOBGump(m_From, m_Book, m_Page - 1, m_List));
                }

                return;
            }

            case 3:                     // Next page
            {
                if (GetIndexForPage(m_Page + 1) < m_List.Count)
                {
                    m_From.SendGump(new BOBGump(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);                                       // The deed selected is not available.
                    break;
                }

                if (type == 0)                                   // Drop
                {
                    if (m_Book.IsChildOf(m_From.Backpack))
                    {
                        Item item = Reconstruct(obj);

                        if (item != null)
                        {
                            m_From.AddToBackpack(item);
                            m_From.SendLocalizedMessage(1045152);                                               // The bulk order deed has been placed in your backpack.

                            m_Book.Entries.Remove(obj);
                            m_Book.InvalidateProperties();

                            if (m_Book.Entries.Count > 0)
                            {
                                m_From.SendGump(new BOBGump(m_From, m_Book, 0, null));
                            }
                            else
                            {
                                m_From.SendLocalizedMessage(1062381);                                                   // The book is empty.
                            }
                        }
                        else
                        {
                            m_From.SendMessage("Internal error. The bulk order deed could not be reconstructed.");
                        }
                    }
                }
                else                                 // Set Price | Buy
                {
                    if (m_Book.IsChildOf(m_From.Backpack))
                    {
                        m_From.Prompt = new SetPricePrompt(m_Book, obj, m_Page, m_List);
                    }
                    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 BOBLargeEntry)
                            {
                                price = ((BOBLargeEntry)obj).Price;
                            }
                            else if (obj is BOBSmallEntry)
                            {
                                price = ((BOBSmallEntry)obj).Price;
                            }
                        }

                        if (price == 0)
                        {
                            m_From.SendLocalizedMessage(1062382);                                               // The deed selected is not available.
                        }
                        else
                        {
                            m_From.SendGump(new BODBuyGump(m_From, m_Book, obj, price));
                        }
                    }
                }

                break;
            }
            }
        }