Ejemplo n.º 1
0
 public void AddTicket(PowerBallTicket ticket)
 {
     if (!m_Tickets.Contains(ticket))
     {
         m_Tickets.Add(ticket);
     }
 }
Ejemplo n.º 2
0
 public void RemoveTicket(PowerBallTicket ticket)
 {
     if (m_Tickets.Contains(ticket))
     {
         m_Tickets.Remove(ticket);
     }
 }
Ejemplo n.º 3
0
        public void TestMethod_MatchThreeWhite()
        {
            // Arrange
            var winningTicket    = new PowerBallTicket(1, 2, 3, 7, 6, 7);
            var myTicket         = new PowerBallTicket(5, 4, 3, 2, 1, 6);
            var expectedWinnings = 7;

            // Act
            var actualWinnings = myTicket.getWinnings(winningTicket);

            // Assert
            Assert.AreEqual(expectedWinnings, actualWinnings);
        }
Ejemplo n.º 4
0
        public void TestMethod_Jackpot()
        {
            // Arrange
            var winningTicket    = new PowerBallTicket(1, 2, 3, 4, 5, 6);
            var myTicket         = new PowerBallTicket(5, 4, 3, 2, 1, 6);
            var expectedWinnings = 1000000000;

            // Act
            var actualWinnings = myTicket.getWinnings(winningTicket);

            // Assert
            Assert.AreEqual(expectedWinnings, actualWinnings);
        }
Ejemplo n.º 5
0
        public void TestMethod_MatchFourWhiteAndRed()
        {
            // Arrange
            var winningTicket    = new PowerBallTicket(1, 2, 3, 4, 6, 6);
            var myTicket         = new PowerBallTicket(5, 4, 3, 2, 1, 6);
            var expectedWinnings = 50000;

            // Act
            var actualWinnings = myTicket.getWinnings(winningTicket);

            // Assert
            Assert.AreEqual(expectedWinnings, actualWinnings);
        }
Ejemplo n.º 6
0
        public void TestMethod_TestRandomPowerBallTicket()
        {
            // Arrange
            var         numbers          = new int[] { 1, 2, 3, 4, 5, 6 };
            var         expectedWinnings = 100000000;
            NotSoRandom random           = new NotSoRandom(numbers);

            // Act
            var myTicket      = new PowerBallTicket(random);
            var winningTicket = new PowerBallTicket(random);

            // Assert
            Assert.AreEqual(expectedWinnings, myTicket.getWinnings(winningTicket));
        }
Ejemplo n.º 7
0
        public PowerballTicketGump(PowerBallTicket ticket, Mobile from, bool powerBall)
            : base(50, 50)
        {
            m_Ticket = ticket;
            m_From   = from;

            if (ticket.Owner == null)
            {
                ticket.Owner = from;
            }

            int gameNumber = 0;

            if (PowerBall.Game != null)
            {
                gameNumber = PowerBall.Game.GameNumber;
            }

            int    entries = ticket.Entries.Count;
            int    yoffSet = 25;
            string title   = String.Format("<BASEFONT SIZE=8 COLOR=#FF0000><Center>Powerball</Center></BASEFONT>");

            AddBackground(50, 0, 300, 200 + (yoffSet * entries), 9270);
            AddHtml(65, 170 + (yoffSet * entries), 350, 20, String.Format("<Basefont Size=2>Lotto Association of {0}, All Rights Reserved</Basefont>", ServerList.ServerName), false, false);

            AddHtml(50, 20, 300, 30, title, false, false);
            AddLabel(65, 50, labelColor, String.Format("Picks: {0}", entries));
            AddLabel(65, 70, labelColor, String.Format("Game:  {0}", m_Ticket.GameNumber));

            if (ticket.GameNumber == gameNumber && entries < maxEntries)
            {
                AddHtml(180, 50, 80, 16, "<BASEFONT COLOR=#FFFFFF>Powerball</BASEFONT>", false, false);
                AddRadio(260, 50, 0x25F8, 0x25FB, powerBall, 0);
                AddHtml(180, 80, 80, 16, "<BASEFONT COLOR=#FFFFFF>No Powerball</BASEFONT>", false, false);
                AddRadio(260, 80, 0x25F8, 0x25FB, !powerBall, 1);

                AddLabel(245, 120, labelColor, "Quick Picks");
                AddButton(321, 123, 0x837, 0x838, 2, GumpButtonType.Reply, 0); //Quick Pick
            }

            if (entries > 0)
            {
                AddLabel(65, 120, labelColor, "Pick");

                for (int i = 0; i < ticket.Entries.Count; ++i)
                {
                    TicketEntry entry = ticket.Entries[i];
                    int         index = i + 1;

                    List <int> entryList = new List <int>();
                    entryList.Add(entry.One);
                    entryList.Add(entry.Two);
                    entryList.Add(entry.Three);
                    entryList.Add(entry.Four);
                    entryList.Add(entry.Five);

                    AddLabel(75, 150 + (i * yoffSet), labelColor, String.Format("{0}", index.ToString()));
                    AddHtml(270, 150 + (i * yoffSet), 50, 16, String.Format("<BASEFONT COLOR=#FF0000>{0}</BASEFONT>", entry.PowerBall > 0 ? entry.PowerBall.ToString() : "<B>-</B>"), false, false);
                    AddHtml(310, 150 + (i * yoffSet), 50, 16, entry.Winner ? "<BASEFONT COLOR=#FFFFFF><b>*</b></BASEFONT>" : "", false, false);

                    for (int j = entryList.Count - 1; j >= 0; --j)
                    {
                        AddHtml(105 + (j * 30), 150 + (i * yoffSet), 50, 16, String.Format("<BASEFONT COLOR=#FFFFFF>{0}</BASEFONT>", entryList[j]), false, false);
                    }

                    ColUtility.Free(entryList);
                }
            }

            if (entries < maxEntries && ticket.GameNumber == gameNumber)
            {
                int yStart = 130 + (yoffSet * (entries));

                AddButton(75, yStart + (yoffSet + 2), 0x837, 0x838, 1, GumpButtonType.Reply, 0);

                AddTextEntry(100, yStart + yoffSet, 20, 16, labelColor, 1, "*");
                AddTextEntry(130, yStart + yoffSet, 20, 16, labelColor, 2, "*");
                AddTextEntry(160, yStart + yoffSet, 20, 16, labelColor, 3, "*");
                AddTextEntry(190, yStart + yoffSet, 20, 16, labelColor, 4, "*");
                AddTextEntry(220, yStart + yoffSet, 20, 16, labelColor, 5, "*");
                AddTextEntry(250, yStart + yoffSet, 20, 16, labelColor, 6, "*");
            }
        }
Ejemplo n.º 8
0
 public PowerballTicketGump(PowerBallTicket ticket, Mobile from) : this(ticket, from, true)
 {
 }
Ejemplo n.º 9
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            switch (info.ButtonID)
            {
            default:
            case 0: break;

            case 1:
            {
                Container pack = m_From.Backpack;

                if (PowerBall.Instance != null && PowerBall.Game != null && PowerBall.Instance.CanBuyTickets)
                {
                    int cost = PowerBall.Game.TicketCost;
                    if (pack != null && pack.GetAmount(typeof(Gold)) >= cost)
                    {
                        pack.ConsumeTotal(typeof(Gold), cost);
                        m_From.SendMessage("You purchase a Powerball ticket with {0} gold from your backpack.", cost);
                        pack.DropItem(new PowerBallTicket(m_From, m_PowerBall));

                        if (PowerBall.Instance != null)
                        {
                            PowerBall.Instance.Profit += cost;
                        }
                    }
                    else if (Banker.Withdraw(m_From, cost, true))
                    {
                        var ticket = new PowerBallTicket(m_From, m_PowerBall);

                        if (!pack.TryDropItem(m_From, ticket, false))
                        {
                            m_From.SendMessage("There is no room in your pack, so the ticket was placed in your bank box!");
                            m_From.BankBox.DropItem(ticket);
                        }

                        if (PowerBall.Instance != null)
                        {
                            PowerBall.Instance.Profit += cost;
                        }
                    }
                    else
                    {
                        m_From.SendLocalizedMessage(500191);         //Begging thy pardon, but thy bank account lacks these funds.
                    }
                }

                m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From));
                break;
            }

            case 2:      //Reset all stats
            {
                if (m_From.AccessLevel == AccessLevel.Player)
                {
                    break;
                }

                for (int i = 0; i < PowerBallStats.PicksStats.Count; ++i)
                {
                    PowerBallStats.PicksStats.Clear();
                }

                for (int i = 0; i < PowerBallStats.JackpotStats.Count; ++i)
                {
                    PowerBallStats.JackpotStats.Clear();
                }

                if (PowerBall.Instance != null)
                {
                    PowerBall.Game.InvalidateProperties();
                    PowerBall.Game.UpdateSatellites();
                }

                m_From.SendMessage("Stats erased!");
                m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From));

                break;
            }

            case 3:
            {
                if (m_From.AccessLevel == AccessLevel.Player)
                {
                    break;
                }

                if (!m_PowerBall.DoJackpot)
                {
                    m_PowerBall.DoJackpot = true;
                    m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From));
                    m_From.SendMessage("Next picks will result in a jackpot!");
                }

                break;
            }

            case 4:
            {
                if (m_From.AccessLevel == AccessLevel.Player)
                {
                    break;
                }

                if (m_PowerBall.IsActive)
                {
                    m_PowerBall.IsActive = false;
                    m_From.SendMessage("Powerball set to inactive.");
                }
                else
                {
                    m_PowerBall.IsActive = true;
                    m_From.SendMessage("Powerball set to active.");
                }
                m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From));
                break;
            }
            }
        }
Ejemplo n.º 10
0
        public void CheckForWinners()
        {
            if (m_Picks == null || m_Tickets == null || m_Tickets.Count == 0)
            {
                return;
            }

            List <TicketEntry>            jackpotList = new List <TicketEntry>();
            Dictionary <TicketEntry, int> prizeTable  = new Dictionary <TicketEntry, int>();

            for (int i = 0; i < m_Tickets.Count; ++i)
            {
                PowerBallTicket ticket = m_Tickets[i];
                ticket.Checked = true;

                foreach (TicketEntry entry in ticket.Entries)
                {
                    int  matches   = 0;
                    bool powerball = false;

                    for (int j = 0; j < m_Picks.Count; ++j)
                    {
                        if (j == m_Picks.Count - 1)
                        {
                            if (entry.PowerBall == m_Picks[j])
                            {
                                powerball = true;
                            }
                        }

                        else if (entry.One == m_Picks[j] || entry.Two == m_Picks[j] || entry.Three == m_Picks[j] || entry.Four == m_Picks[j] || entry.Five == m_Picks[j])
                        {
                            matches++;
                        }
                    }

                    if (matches == 5 && powerball)
                    {
                        jackpotList.Add(entry);
                        entry.Winner = true;
                        m_Jackpot    = true;
                    }

                    if (matches >= 3 && !entry.Winner && !prizeTable.ContainsKey(entry))
                    {
                        prizeTable.Add(entry, matches);
                        entry.Winner = true;
                    }

                    if (powerball && !m_Jackpot)
                    {
                        entry.Ticket.Payout += 500;
                        m_Profit            -= 500;
                        m_Payout            += 500;

                        entry.Winner = true;
                    }
                }
            }

            DistributeAwards(jackpotList, prizeTable);
        }
Ejemplo n.º 11
0
 public void TestMethod_ArrayConstuctorThrows()
 {
     // Arrange
     var numbers  = new int[] { 5, 5, 5, 5, 5, 5, 5 };
     var myTicket = new PowerBallTicket(numbers);
 }
Ejemplo n.º 12
0
 public void TestMethod_DoubleWhite()
 {
     // Arrange
     var myTicket = new PowerBallTicket(5, 5, 5, 5, 5, 5);
 }
Ejemplo n.º 13
0
 public void TestMethod_InvalidWhite()
 {
     // Arrange
     var myTicket = new PowerBallTicket(5, 4, 3, 2, 0, 1);
 }
Ejemplo n.º 14
0
 public void TestMethod_InvalidRed()
 {
     // Arrange
     var myTicket = new PowerBallTicket(5, 4, 3, 2, 1, 0);
 }