Esempio n. 1
0
 private void ActivateGumpTimer(KenoBoard Keno, Mobile From, KenoBoard.PlayerInfo player, bool played, int PayTable, float[] PayOutTable, int CPayMethod, byte QuickPickCount, bool PickButtons, byte[] Selected, byte TotalSelected, byte[] MachinePicks)
 {
     if (m_GumpTimer != null)
     {
         m_GumpTimer.Stop();
     }
     m_GumpTimer = new InternalTimer(Keno, From, player, played, PayTable, PayOutTable, CPayMethod, QuickPickCount, PickButtons, Selected, TotalSelected, MachinePicks, TimeSpan.FromSeconds(Keno.ThrottleSeconds));//TimeSpan.FromTicks(Keno.ThrottleTicks));
     m_GumpTimer.Start();
 }
Esempio n. 2
0
 public InternalTimer(KenoBoard Keno, Mobile From, KenoBoard.PlayerInfo player, bool played, int PayTable, float[] PayOutTable, int CPayMethod, byte QuickPickCount, bool PickButtons, byte[] Selected, byte TotalSelected, byte[] MachinePicks, TimeSpan delay)
     : base(delay)
 {
     //Priority = TimerPriority.OneSecond;
     Priority         = TimerPriority.TwoFiftyMS;
     m_Keno           = Keno;
     m_From           = From;
     m_player         = player;
     m_played         = played;
     m_PayTable       = PayTable;
     m_PayOutTable    = PayOutTable;
     m_CPayMethod     = CPayMethod;
     m_QuickPickCount = QuickPickCount;
     m_PickButtons    = PickButtons;
     m_Selected       = Selected;
     m_TotalSelected  = TotalSelected;
     m_MachinePicks   = MachinePicks;
 }
Esempio n. 3
0
        public KenoGump(KenoBoard Keno, Mobile From, KenoBoard.PlayerInfo player, bool played, int PayTable, float[] PayOutTable, int CPayMethod, byte QuickPickCount, bool PickButtons, byte[] Selected, byte TotalSelected, byte[] MachinePicks)
            : base(400, 263)
        {
            m_Keno           = Keno;
            m_Selected       = Selected;
            m_TotalSelected  = TotalSelected;
            m_MachinePicks   = MachinePicks;
            m_PickButtons    = PickButtons;
            m_PayTable       = (PayMethod)PayTable;
            m_QuickPickCount = QuickPickCount;
            m_CPayMethod     = (PayMethod)CPayMethod;
            m_PayOutTable    = PayOutTable;
            m_Player         = player;
            m_From           = From;

            Closable   = true;
            Disposable = true;
            Dragable   = true;
            Resizable  = false;
            AddPage(0);
            AddBackground(0, 0, 650, 340, 9250);
            string text = String.Format("Cost: {0}", player.Cost);

            AddLabel(380, 15, 2213, text);
            AddButton(440, 15, 0x983, 0x984, 101, GumpButtonType.Reply, 0);
            AddButton(440, 25, 0x985, 0x986, 102, GumpButtonType.Reply, 0);
            AddLabel(227 - ((m_Keno.Name.Length / 2) * 7), 10, (m_Keno.Hue == 907 ? 0 : m_Keno.Hue - 1), m_Keno.Name);
            AddLabel(475, 25, 1149, "Number Selection Method");
            AddLabel(485, 50, 1149, "Special:");
            AddLabel(485, 75, 1149, "Standard");
            AddLabel(485, 100, 1149, "Quick Pick");
            AddLabel(485, 166, 1149, "Total Matched:");
            AddLabel(460, 210, 1149, "Credits:");
            AddLabel(460, 230, 1149, "Last Pay:");
            if (player.mobile.AccessLevel >= AccessLevel.GameMaster)
            {
                int paybackhue = 66;
                if (m_Keno.WinningPercentage > 95.0)
                {
                    paybackhue = 37;
                }
                AddLabel(475, 185, 1152, "Payout Percentage:");
                text = String.Format("{0:##0.00%}", m_Keno.WinningPercentage / 100);
                AddLabel(590, 185, paybackhue, text);
            }
            AddImageTiled(15, 175, 455, 4, 2624);
            AddImageTiled(450, 30, 3, 290, 2624);
            int numberx    = 20;
            int numbery    = 35;
            int bottomhalf = 0;
            int totalhit   = 0;
            int tophalf    = 0;

            AddButton(460, 50, ((m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Millionare10) ? 0xD3 : 0xD2), ((m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Edges) ? 0xD2 : 0xD3), 4000, GumpButtonType.Reply, 0);
            AddButton(460, 75, (m_PayTable == PayMethod.Standard ? 0xD3 : 0xD2), (m_PayTable == PayMethod.Standard ? 0xD2 : 0xD3), 4001, GumpButtonType.Reply, 0);
            AddButton(460, 100, (m_PayTable == PayMethod.QuickPick ? 0xD3 : 0xD2), (m_PayTable == PayMethod.QuickPick ? 0xD2 : 0xD3), 4002, GumpButtonType.Reply, 0);
            AddButton(460, 125, 4026, 4027, 520, GumpButtonType.Reply, 0);
            AddLabel(495, 125, 1149, @"View Pay Table");

            AddButton(460, 265, 4020, 4021, 200, GumpButtonType.Reply, 0);

            /*if (m_Keno.FreeSpin)
             *  AddLabel(65, 307, 1149, @"Free");
             * else */
            AddLabel(495, 265, 1149, @"Play");
            AddButton(540, 265, 4029, 4030, 201, GumpButtonType.Reply, 0); //CASHOUT
            AddLabel(575, 265, 1149, @"Cash Out");
            AddButton(457, 290, 4037, 4036, 202, GumpButtonType.Reply, 0); //ATM
            AddLabel(495, 299, 1149, @"ATM");

            if (player.mobile.AccessLevel >= AccessLevel.GameMaster)
            {
                AddButton(540, 295, 0xFAB, 0xFAD, 999, GumpButtonType.Reply, 0); //Props
                AddLabel(575, 295, 0x384, @"Props");
            }
            if (m_PayTable == PayMethod.Standard)
            {
                text = String.Format("Min: {0}", m_MinPicks);
                AddLabel(585, 68, 1149, text);
                text = String.Format("Max: {0}", m_MaxPicks);
                AddLabel(585, 83, 1149, text);
                text = String.Format(": {0}", m_TotalSelected);
                AddLabel(537, 75, 1149, text);
                DisplaySpecial(m_CPayMethod);
            }
            else if (m_PayTable == PayMethod.QuickPick)
            {
                AddButton(565, 100, 0x983, 0x984, 501, GumpButtonType.Reply, 0);
                AddButton(565, 110, 0x985, 0x986, 502, GumpButtonType.Reply, 0);
                AddLabel(550, 100, 1149, m_QuickPickCount.ToString());
                DisplaySpecial(m_CPayMethod);
            }
            else if (m_PayTable >= PayMethod.BottomHalf && m_PayTable <= PayMethod.Millionare10)
            {
                m_PayTable = m_CPayMethod;
                DisplaySpecial(m_PayTable);
                AddButton(610, 50, 0x983, 0x984, 601, GumpButtonType.Reply, 0);
                AddButton(610, 60, 0x985, 0x986, 602, GumpButtonType.Reply, 0);
            }
            for (int i = 0; i < 20; i++)
            {
                if (m_MachinePicks[i] != 255)
                {
                    m_Selected[m_MachinePicks[i]] += 2;
                }
            }
            int numberHue = 0;

            for (int i = 0; i < 80; i++)
            {
                switch (m_Selected[i])
                {
                case 0:
                    numberHue = 0;
                    break;

                case 1:
                    numberHue = 1149;
                    break;

                case 2:
                    numberHue     = 37;
                    m_Selected[i] = 0;
                    if (i < 40)
                    {
                        tophalf++;
                    }
                    else
                    {
                        bottomhalf++;
                    }
                    break;

                case 3:
                    numberHue = 66;
                    totalhit++;
                    m_Selected[i] = 1;
                    if (i < 40)
                    {
                        tophalf++;
                    }
                    else
                    {
                        bottomhalf++;
                    }
                    break;
                }
                if (m_PickButtons)
                {
                    AddButton(numberx - 3, numbery - 5, 4202, 4202, i + 1, GumpButtonType.Reply, 0);
                }
                AddLabel(numberx, numbery, numberHue, (i + 1).ToString());
                numberx += 45;
                if ((i + 1) % 10 == 0)
                {
                    numbery += 37;
                    numberx  = 20;
                }
            }
            for (int i = 0; i < 20; i++)
            {
                m_MachinePicks[i] = 255;
            }
            AddLabel(455, 155, 957, tophalf.ToString());
            AddLabel(455, 180, 957, bottomhalf.ToString());
            text = String.Format("{0}/{1}", totalhit, m_TotalSelected);
            AddLabel(575, 166, 66, text);

            if (played)
            {
                int wonhue = 957;
                int won    = (int)(m_Player.Cost * m_PayOutTable[totalhit]);
                if (won == 0)
                {
                    if (Utility.RandomDouble() < .01 && m_From != null && !m_From.Deleted)
                    {
                        if (m_From.Female)
                        {
                            m_From.PlaySound(Utility.RandomList(1372, 1373, 816, 796, 782));
                        }
                        else
                        {
                            m_From.PlaySound(Utility.RandomList(1372, 1373, 1090, 1068, 1053));
                        }
                    }
                    if ((int)m_Keno.SecurityChatter == 2)
                    {
                        text = String.Format("{0} lost {1}.", m_Player.mobile.Name, m_Player.Cost);
                        m_Keno.SecurityCamera(2, text);
                        text = String.Format("OnCredit={1}.", m_Player.mobile.Name, m_Player.OnCredit);
                        m_Keno.SecurityCamera(2, text);
                    }
                }
                else
                {
                    m_Keno.ProcessPlay(m_From, m_Player, won);
                    wonhue = 2213;
                }
                AddLabel(525, 230, wonhue, won.ToString());
                m_Keno.IncrementStats(totalhit);
                if (Utility.RandomDouble() < .0008 && m_From != null && !m_From.Deleted)
                {
                    CEOCookie(m_Keno.Hue);
                }
            }
            else
            {
                AddLabel(525, 230, 957, "0");
            }
            AddLabel(525, 210, 2213, m_Keno.OnCredit(m_From, m_Player, 0).ToString());
        }