using System; using Server; using Server.Items; using Server.Mobiles; using System.Collections.Generic; using Server.Network; using Server.Misc; using Server.Engines.LotterySystem; namespace Server.Gumps { public class ScratcherGump : Gump { private const int labelColor = 88; private BaseLottoTicket m_Ticket; private Mobile m_From; public ScratcherGump(BaseLottoTicket ticket, Mobile from) : base(50, 50) { m_Ticket = ticket; m_From = from; int bg = GetBackGround(); AddBackground(50, 0, 400, 200, bg); AddImage(125, 12, 0xFC4); AddImage(325, 12, 0xFC4); AddHtml(50, 20, 400, 30, String.Format("
{0}
", ScratcherLotto.GetGameType(m_Ticket.Type)), false, false); if (m_Ticket.Checked && m_Ticket.Payout > 0) AddHtml(75, 150, 200, 20, String.Format("Winnings: {0}", m_Ticket.Payout), false, false); switch (m_Ticket.Type) { case TicketType.GoldenTicket: GoldTicket(); break; case TicketType.CrazedCrafting: CrazedCrafting(); break; case TicketType.SkiesTheLimit: SkiesTheLimit(); break; } AddHtml(75, 170, 350, 20, String.Format("Lotto Association of {0}, All Rights Reserved", ServerList.ServerName), false, false); } private void GoldTicket() { int yStart = 90; if (m_Ticket.Scratch1 == 0) AddButton(80, yStart, 0x98B, 0x98B, 1, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch1 == 2) AddHtml(60, yStart, 100, 60, String.Format("
Free
"), false, false); else { string num = String.Format("{0:##,###,###}", m_Ticket.Scratch1); AddHtml(60, yStart, 100, 60, String.Format("
{0}
", num), false, false); } if (m_Ticket.Scratch2 == 0) AddButton(220, yStart, 0x98B, 0x98B, 2, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch2 == 2) AddHtml(200, yStart, 100, 60, String.Format("
Free
"), false, false); else { string num = String.Format("{0:##,###,###}", m_Ticket.Scratch2); AddHtml(200, yStart, 100, 60, String.Format("
{0}
", num), false, false); } if (m_Ticket.Scratch3 == 0) AddButton(360, yStart, 0x98B, 0x98B, 3, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch3 == 2) AddHtml(340, yStart, 100, 60, String.Format("
Free
"), false, false); else { string num = String.Format("{0:##,###,###}", m_Ticket.Scratch3); AddHtml(340, yStart, 100, 60, String.Format("
{0}
", num), false, false); } } private void CrazedCrafting() { int yStart = 75; AddImage(70, yStart - 10, 0x589); AddImage(210, yStart - 10, 0x589); AddImage(350, yStart - 10, 0x589); CrazedCrafting ticket = null; if (m_Ticket is CrazedCrafting) ticket = (CrazedCrafting)m_Ticket; if (ticket != null) { if (m_Ticket.Scratch1 == 0) AddButton(79, yStart, 0x15C3, 0x15C4, 1, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch1 == 2) AddHtml(71, yStart + 20, 80, 20, String.Format("
Free
"), false, false); else { bool wildCard = false; foreach (int num in ticket.WildCards) { if (m_Ticket.Scratch1 == num) { AddImage(80, yStart, num, 2); wildCard = true; } } if (!wildCard) { string value = String.Format("{0:##,###,###}", ticket.Scratch1); AddHtml(71, yStart + 20, 80, 20, String.Format("
{0}
", value), false, false); AddImage(80, yStart, 0x15AA, 1); } } if (m_Ticket.Scratch2 == 0) AddButton(219, yStart, 0x15C3, 0x15C4, 2, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch2 == 2) AddHtml(211, yStart + 20, 80, 20, String.Format("
Free
"), false, false); else { bool wildCard = false; foreach (int num in ticket.WildCards) { if (m_Ticket.Scratch2 == num) { AddImage(220, yStart, num, 2); wildCard = true; } } if (!wildCard) { string value = String.Format("{0:##,###,###}", ticket.Scratch2); AddHtml(211, yStart + 20, 80, 20, String.Format("
{0}
", value), false, false); AddImage(220, yStart, 0x15AA, 1); } } if (m_Ticket.Scratch3 == 0) AddButton(359, yStart, 0x15C3, 0x15C4, 3, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch3 == 2) AddHtml(351, yStart + 20, 80, 20, String.Format("
Free
"), false, false); else { bool wildCard = false; foreach (int num in ticket.WildCards) { if (m_Ticket.Scratch3 == num) { AddImage(360, yStart, num, 2); wildCard = true; } } if (!wildCard) { string value = String.Format("{0:##,###,###}", ticket.Scratch3); AddHtml(351, yStart + 20, 80, 20, String.Format("
{0}
", value), false, false); AddImage(360, yStart, 0x15AA, 1); } } } else { AddHtml(110, yStart, 80, 20, "
Void
", false, false); AddHtml(250, yStart, 80, 20, "
Void
", false, false); AddHtml(250, yStart, 80, 20, "
Void
", false, false); } } private void SkiesTheLimit() { int yStart = 90; if (m_Ticket.Scratch1 == 0) AddButton(80, yStart, 0x98B, 0x98B, 1, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch1 == 2) AddHtml(60, yStart, 100, 60, String.Format("
Free
"), false, false); else if (m_Ticket.Scratch1 == 1) { AddImage(100, yStart - 5, 0x265A); AddItem(98, yStart, 0xEEF); AddItem(108, yStart, 0xEEF); } else { string value = String.Format("{0:##,###,###}", m_Ticket.Scratch1); AddHtml(60, yStart, 100, 60, String.Format("
{0}
", value), false, false); } if (m_Ticket.Scratch2 == 0) AddButton(220, yStart, 0x98B, 0x98B, 2, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch2 == 2) AddHtml(200, yStart, 100, 60, String.Format("
Free
"), false, false); else if (m_Ticket.Scratch2 == 1) { AddImage(240, yStart - 5, 0x265A); AddItem(238, yStart, 0xEEF); AddItem(248, yStart, 0xEEF); } else { string value = String.Format("{0:##,###,###}", m_Ticket.Scratch2); AddHtml(200, yStart, 100, 60, String.Format("
{0}
", value), false, false); } if (m_Ticket.Scratch3 == 0) AddButton(360, yStart, 0x98B, 0x98B, 3, GumpButtonType.Reply, 0); else if (m_Ticket.Scratch3 == 2) AddHtml(340, yStart, 100, 60, String.Format("
Free
"), false, false); else if (m_Ticket.Scratch3 == 1) { AddImage(380, yStart - 5, 0x265A); AddItem(378, yStart, 0xEEF); AddItem(388, yStart, 0xEEF); } else { string value = String.Format("{0:##,###,###}", m_Ticket.Scratch3); AddHtml(340, yStart, 100, 60, String.Format("
{0}
", value), false, false); } } public override void OnResponse(NetState state, RelayInfo info) { int res = info.ButtonID; if (res < 4 && res > 0) { if (!m_Ticket.DoScratch(res, m_From)) m_From.SendMessage("Put some elbow greese in it next time!"); m_From.PlaySound(0x249); m_From.SendGump(new ScratcherGump(m_Ticket, m_From)); } } private int GetBackGround() { if (m_Ticket != null) { switch (m_Ticket.Type) { case TicketType.CrazedCrafting: return 0x2454; case TicketType.SkiesTheLimit: return 0x2486; case TicketType.GoldenTicket: return 0xDAC; } } return 9270; } } }