Esempio n. 1
0
        private void SetReagents(int amount)
        {
            ItemStoneGroup group = m_Groups[1];

            for (int i = 0; i < group.Items.Length; ++i)
            {
                ItemStoneInfo info = group.Items[i];
                info.Amount = amount;
            }
        }
Esempio n. 2
0
        public int GetCost()
        {
            int amount = 0;

            for (int i = 0; i < m_Groups.Length; ++i)
            {
                ItemStoneGroup group = m_Groups[i];

                for (int j = 0; j < group.Items.Length; ++j)
                {
                    ItemStoneInfo info = group.Items[j];

                    amount += ((info.Price + m_Stone.Markup) * info.Amount);
                }
            }

            return(amount);
        }
Esempio n. 3
0
        private void UpdateTotals(RelayInfo info)
        {
            if (m_Selected != null)
            {
                ItemStoneInfo[] items = m_Selected.Items;

                for (int i = 0; i < items.Length; ++i)
                {
                    int amount = Utility.ToInt32(info.GetTextEntry(i).Text);

                    if (amount < 0)
                    {
                        amount = 0;
                    }

                    ItemStoneInfo iteminfo = items[i];
                    iteminfo.Amount = amount;
                }
            }
        }
Esempio n. 4
0
        public ItemStoneGump(Mobile from, ItemStone stone, ItemStoneGroup[] usergroup, ItemStoneGroup selected) : base(155, 50)
        {
            m_Mobile = from;
            m_Stone  = stone;

            if (usergroup != null)
            {
                m_Groups = usergroup;
            }

            m_Selected = selected;

            m_Mobile.CloseGump(typeof(ItemStoneGump));

            AddPage(0);

            int headerSpace = 65;
            int bodySpace   = (m_Groups.Length * 25);

            if (selected != null)
            {
                bodySpace += (selected.Items.Length * 20);
            }

            int footerSpace = 110;

            int totalHeight = headerSpace + bodySpace + footerSpace;

            AddBackground(0, 0, 330, totalHeight, 5054);

            AddImageTiled(10, 10, 310, 20, 2624);
            AddAlphaRegion(10, 10, 310, 20);

            AddHtml(10, 10, 310, 20, "<BASEFONT COLOR=\"#FFFFFF\"><CENTER>Mythik Item Menu</CENTER></BASEFONT>", false, false);

            AddImageTiled(10, 35, 310, 20, 2624);
            AddAlphaRegion(10, 35, 310, 20);

            AddHtml(195, 35, 60, 20, "<BASEFONT COLOR=\"#FFFFFF\"><CENTER>Amount</CENTER></BASEFONT>", false, false);
            AddHtml(260, 35, 60, 20, "<BASEFONT COLOR=\"#FFFFFF\"><CENTER>Price</CENTER></BASEFONT>", false, false);

            AddImageTiled(10, 60, 180, bodySpace, 2624);
            AddAlphaRegion(10, 60, 180, bodySpace);

            AddImageTiled(195, 60, 60, bodySpace, 2624);
            AddAlphaRegion(195, 60, 60, bodySpace);

            AddImageTiled(260, 60, 60, bodySpace, 2624);
            AddAlphaRegion(260, 60, 60, bodySpace);

            AddImageTiled(10, headerSpace + bodySpace, 310, 75, 2624);
            AddAlphaRegion(10, headerSpace + bodySpace, 310, 75);

            AddImageTiled(10, headerSpace + bodySpace + 80, 180, 20, 2624);
            AddAlphaRegion(10, headerSpace + bodySpace + 80, 180, 20);

            AddImageTiled(195, headerSpace + bodySpace + 80, 125, 20, 2624);
            AddAlphaRegion(195, headerSpace + bodySpace + 80, 125, 20);

            int y = 65;

            for (int i = 0; i < m_Groups.Length; ++i)
            {
                ItemStoneGroup group = m_Groups[i];

                if (group != selected)
                {
                    AddButton(15, y + 2, 0x15E1, 0x15E5, GetButtonID(0, i), GumpButtonType.Reply, 0);
                }
                else
                {
                    AddLabel(15, y, 0x1153, "*");
                }

                AddHtml(35, y, 180, 25, String.Format("<BASEFONT COLOR=\"#FFFFFF\">{0}</BASEFONT>", group.Name), false, false);

                if (group == selected)
                {
                    for (int j = 0; j < group.Items.Length; ++j)
                    {
                        y += 20;

                        ItemStoneInfo info = group.Items[j];

                        AddLabel(40, y, 0x481, info.Name);
                        TextEntry(200, y, 50, 20, j, info.Amount.ToString());
                        AddLabel(265, y, 0x481, String.Format("{0}", info.Price + m_Stone.Markup));
                    }
                }

                y += 25;
            }

            int price = GetCost();
            int tax   = GetTax(price);
            int total = price + tax;

            AddHtml(200, headerSpace + bodySpace, 110, 20, String.Format("<BASEFONT COLOR=\"#FFFFFF\">Cost: {0}</CENTER></BASEFONT>", price), false, false);
            AddHtml(200, headerSpace + bodySpace + 20, 110, 20, String.Format("<BASEFONT COLOR=\"#FFFFFF\">Tax: {0}</CENTER></BASEFONT>", tax), false, false);
            AddHtml(200, headerSpace + bodySpace + 55, 110, 20, String.Format("<BASEFONT COLOR=\"#FFFFFF\">Total: {0}</CENTER></BASEFONT>", total), false, false);

            AddHtml(15, headerSpace + bodySpace + 80, 170, 20, String.Format("<BASEFONT COLOR=\"#FFFFFF\">Tax: {0}%    Markup: +{1}</BASEFONT>", m_Stone.Tax, m_Stone.Markup), false, false);

            AddHtml(230, headerSpace + bodySpace + 80, 70, 20, "<BASEFONT COLOR=\"#FFFFFF\"><CENTER>Purchase</CENTER></BASEFONT>", false, false);
            AddButton(300, headerSpace + bodySpace + 82, 0x15E1, 0x15E5, GetButtonID(0, 100), GumpButtonType.Reply, 0);

            AddHtml(35, headerSpace + bodySpace, 155, 20, "<BASEFONT COLOR=\"#FFFFFF\">50 Reagents</BASEFONT>", false, false);
            AddButton(15, headerSpace + bodySpace + 2, 0x15E1, 0x15E5, GetButtonID(0, 101), GumpButtonType.Reply, 0);

            AddHtml(35, headerSpace + bodySpace + 20, 155, 20, "<BASEFONT COLOR=\"#FFFFFF\">100 Reagents</BASEFONT>", false, false);
            AddButton(15, headerSpace + bodySpace + 22, 0x15E1, 0x15E5, GetButtonID(0, 102), GumpButtonType.Reply, 0);
        }
Esempio n. 5
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            m_Mobile.Frozen = false;

            int buttonID = info.ButtonID - 1;

            if (buttonID != -1)
            {
                UpdateTotals(info);
            }

            int index = buttonID / m_Groups.Length;
            int type  = buttonID % m_Groups.Length;

            switch (type)
            {
            case 0:
            {
                if (index > m_Groups.Length)
                {
                    switch (index)
                    {
                    case 100:
                    {
                        int price = GetCost();
                        int tax   = GetTax(price);
                        int total = price + tax;

                        if (m_Mobile.Backpack.ConsumeTotal(typeof(Gold), total, true) || Banker.Withdraw(m_Mobile, total))
                        {
                            for (int i = 0; i < m_Groups.Length; ++i)
                            {
                                ItemStoneGroup group = m_Groups[i];

                                for (int j = 0; j < group.Items.Length; ++j)
                                {
                                    ItemStoneInfo iteminfo = group.Items[j];

                                    if (iteminfo.Amount > 0)
                                    {
                                        if (iteminfo.Stackable)
                                        {
                                            Item item = iteminfo.Create();
                                            item.Amount = iteminfo.Amount;

                                            GiveItem(m_Mobile, item);
                                        }
                                        else
                                        {
                                            for (int k = 0; k < iteminfo.Amount; ++k)
                                            {
                                                Item item = iteminfo.Create();
                                                GiveItem(m_Mobile, item);
                                            }
                                        }
                                    }
                                }
                            }

                            m_Mobile.SendMessage("The items you have purchased may have been placed in either your backpack or bankbox!");
                        }
                        else
                        {
                            m_Mobile.SendMessage("You do not have {0} gold pieces to pay for these items.");
                        }

                        break;
                    }

                    case 101:
                    {
                        SetReagents(50);
                        m_Mobile.SendMessage("All reagents purchase amounts have been set to 50.");
                        m_Mobile.SendGump(new ItemStoneGump(m_Mobile, m_Stone, m_Groups, m_Groups[1]));

                        break;
                    }

                    case 102:
                    {
                        SetReagents(100);
                        m_Mobile.SendMessage("All reagents purchase amounts have been set to 100.");
                        m_Mobile.SendGump(new ItemStoneGump(m_Mobile, m_Stone, m_Groups, m_Groups[1]));

                        break;
                    }
                    }
                }
                else
                {
                    m_Mobile.SendGump(new ItemStoneGump(m_Mobile, m_Stone, m_Groups, m_Groups[index]));
                }

                break;
            }
            }
        }