Ejemplo n.º 1
0
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                Mobile from = sender.Mobile;

                int i = 0, temp = 0;

                switch (info.ButtonID)
                {
                case 101:
                {                                 // deal
                    m_From.pokermsg = "";

                    if (!from.InRange(m_From.Location, 4))
                    {
                        m_From.roundend = true;
                        m_From.busy     = false;
                    }
                    else
                    {
                        if (m_From.roundend)
                        {
                            if (m_From.playerbet > 1000)
                            {
                                m_From.playerbet = 1000;
                            }

                            if (m_From.paydealer(from, m_From.playerbet))
                            {
                                m_From.dwin             = 0;
                                m_From.pwin             = 0;
                                m_From.roundend         = false;
                                m_From.dealercardhidden = true;
                                // clear dealer and player cards
                                for (i = 2; i <= 4; ++i)
                                {
                                    m_From.dealercards[i] = 0;
                                    m_From.playercards[i] = 0;
                                }
                                //pick card
                                m_From.dealercards[0] = m_From.pickcard(from);
                                m_From.playercards[0] = m_From.pickcard(from);
                                m_From.dealercards[1] = m_From.pickcard(from);
                                m_From.playercards[1] = m_From.pickcard(from);

                                if (m_From.CardValue(m_From.dealercards[0]) + m_From.CardValue(m_From.dealercards[1]) == 21)
                                {
                                    m_From.dbj = true;
                                }
                                else if (m_From.CardValue(m_From.playercards[1]) + m_From.CardValue(m_From.playercards[1]) == 21)
                                {
                                    m_From.pbj = true;
                                }
                                if (m_From.pbj)
                                {
                                    finishgame(from);
                                }
                            }
                            else
                            {
                                m_From.pokermsg = "You need more money!";
                            }
                        }
                        from.SendGump(new BlackjackGump(from, m_From));
                    }
                    break;
                }

                case 102:
                {                                 // hit
                    if (!m_From.roundend)
                    {
                        temp = 0;
                        for (i = 2; i <= 4; ++i)
                        {
                            if (m_From.playercards[i] == 0 && temp == 0)
                            {
                                m_From.playercards[i] = m_From.pickcard(from);
                                temp = i;
                                i    = 6;
                            }
                        }

                        if ((temp > 0 && playercardvalue() <= 21) && i != 5)
                        {
                            from.SendGump(new BlackjackGump(from, m_From));
                        }
                        else
                        {
                            finishgame(from);
                        }
                    }
                    else
                    {
                        from.SendGump(new BlackjackGump(from, m_From));
                    }
                    break;
                }

                case 103:
                {                                 //stand
                    if (!m_From.roundend)
                    {
                        finishgame(from);
                    }
                    else
                    {
                        from.SendGump(new BlackjackGump(from, m_From));
                    }
                    break;
                }

                case 104:
                {                                 //double down
                    if (!m_From.roundend)
                    {
                        temp = 0;
                        for (i = 0; i <= 4; ++i)
                        {
                            if (m_From.playercards[i] > 0)
                            {
                                temp++;
                            }
                        }

                        if (temp == 2 && m_From.paydealer(from, m_From.playerbet))
                        {
                            m_From.playerbet *= 2;
                        }

                        m_From.playercards[2] = m_From.pickcard(from);
                        finishgame(from);
                    }
                    else
                    {
                        from.SendGump(new BlackjackGump(from, m_From));
                    }
                    break;
                }

                case 105:
                {                                 // bet
                    if (m_From.roundend)
                    {
                        m_From.playerbet += 100;
                        if (m_From.playerbet > 1000)
                        {
                            m_From.playerbet = 100;
                        }
                    }
                    from.SendGump(new BlackjackGump(from, m_From));
                    break;
                }

                case 666:
                {                                 // quit
                    m_From.roundend = true;
                    m_From.busy     = false;
                    Effects.PlaySound(from.Location, from.Map, 0x1e9);
                    break;
                }
                }
            }
Ejemplo n.º 2
0
            public PokerGump(Mobile mobile, Gambler gambler)
                : base(10, 10)
            {
                m_From = gambler;

                int    i, temp = 0;
                string cardtemp = "Player:";

                Closable = false;

                AddPage(0);

                AddImageTiled(30, 100, 460, 160, 2624);
                AddAlphaRegion(90, 100, 460, 105);

                if (m_From.dwin == 2 || m_From.dwin == 1)
                {
                    cardtemp = "Player: 1";
                }

                AddLabel(35, 109, 600, cardtemp);
                AddButton(33, 243, 3, 4, 666, GumpButtonType.Reply, 0);
                if (m_From.pwin > 0)
                {
                    AddLabel(45, 129, 70, "" + m_From.pwin);
                }

                //show player cards
                for (i = 0; i <= 4; ++i)
                {
                    if (m_From.dwin == 1)
                    {
                        m_From.playercards[i] = m_From.pickcard(mobile);
                    }

                    temp = m_From.playercards[i];
                    if (temp > 0)
                    {
                        if (!NewCards)
                        {
                            AddBackground(65 + ((i + 1) * 40), 108, 35, 50, 2171);

                            cardtemp = m_From.CardSuit(temp);
                            AddLabel(80 + ((i + 1) * 40), 134, m_From.cardcolor(cardtemp), cardtemp);
                            AddLabel(72 + ((i + 1) * 40), 113, 600, m_From.CardName(temp));
                            AddLabel(65 + ((i + 1) * 40), 180, 500, "redeal");
                        }

                        if (m_From.dwin == 1 || m_From.dwin == 2)
                        {
                            if (NewCards)
                            {
                                AddCheck(25 + ((i + 1) * 75), 105, 4095 + temp, 4154, false, (i + 1));
                            }
                            else
                            {
                                AddCheck(74 + ((i + 1) * 40), 162, 210, 211, false, (i + 1));
                            }
                        }
                        else
                        {
                            if (NewCards)
                            {
                                AddImage(25 + ((i + 1) * 75), 105, 4095 + temp);
                            }
                            else
                            {
                                AddImage(74 + ((i + 1) * 40), 162, 210);
                            }
                        }
                    }
                }

                AddLabel(240, 205, 800, "Deal");
                AddButton(220, 208, 2117, 2118, 101, GumpButtonType.Reply, 0);

                AddLabel(160, 205, 800, "" + m_From.playerbet);
                AddButton(140, 208, 2117, 2118, 105, GumpButtonType.Reply, 0);

                AddLabel(130, 230, 64, m_From.pokermsg);

                if (m_From.dwin == 1)
                {
                    m_From.dwin = 2;
                }

                if (m_From.dwin == 3)
                {
                    m_From.dwin     = 0;
                    m_From.roundend = true;
                }
            }
Ejemplo n.º 3
0
            public override void OnResponse(NetState sender, RelayInfo info)
            {
                Mobile from = sender.Mobile;
                int    i;

                switch (info.ButtonID)
                {
                case 101:
                {                                  //deal
                    m_From.pokermsg = "";

                    if (!from.InRange(m_From.Location, 4))
                    {
                        m_From.roundend = true;
                        m_From.busy     = false;
                    }
                    else
                    {
                        if (m_From.dwin == 0)
                        {
                            if (m_From.paydealer(from, m_From.playerbet))
                            {
                                if ((m_From.m_current_card + 10) > 52)
                                {
                                    Effects.PlaySound(from.Location, from.Map, 0x3D);
                                    m_From.ShuffleCards();
                                }

                                for (i = 0; i <= 4; ++i)
                                {
                                    m_From.playercards[i] = 0;
                                }
                                m_From.dwin     = 1;
                                m_From.roundend = false;
                                m_From.pokermsg = "Click on the cards you want re-dealt.";
                            }
                            else
                            {
                                m_From.pokermsg = "You need more money!";
                            }
                        }
                        else if (m_From.dwin == 2)
                        {
                            m_From.dwin = 3;

                            ArrayList Selections = new ArrayList(info.Switches);

                            for (i = 0; i <= 4; ++i)
                            {
                                if (Selections.Contains(i + 1) != false)
                                {
                                    m_From.playercards[i] = m_From.pickcard(from);
                                }
                            }
                            finishpokergame(from);
                        }
                    }
                    from.SendGump(new PokerGump(from, m_From));
                    break;
                }

                case 105:
                {                                 // bet
                    if (m_From.roundend)
                    {
                        m_From.playerbet += 100;
                        if (m_From.playerbet > 500)
                        {
                            m_From.playerbet = 100;
                        }
                    }
                    from.SendGump(new PokerGump(from, m_From));
                    break;
                }

                case 666:
                {                                 // quit
                    m_From.roundend = true;
                    m_From.busy     = false;
                    Effects.PlaySound(from.Location, from.Map, 0x1e9);
                    break;
                }
                }
            }
Ejemplo n.º 4
0
		public PokerGump( Mobile mobile, Gambler gambler ) : base( 10, 10 )
		{
			m_From = gambler;

			int i,temp=0;
			string cardtemp="Player:";

			Closable = false;

			AddPage( 0 );

			AddImageTiled( 30, 100, 460, 160, 2624 );
			AddAlphaRegion( 90, 100, 460, 105 );

			if (m_From.dwin==2||m_From.dwin==1)
				cardtemp="Player: 1";

			AddLabel( 35, 109, 600, cardtemp );
			AddButton( 33, 243, 3, 4, 666, GumpButtonType.Reply, 0 );
			if (m_From.pwin>0)
				AddLabel( 45, 129, 70, ""+m_From.pwin );

			//show player cards
			for ( i = 0; i <= 4; ++i )
			{
				if (m_From.dwin==1)
					m_From.playercards[i]=m_From.pickcard(mobile);

				temp = m_From.playercards[i];
				if (temp>0)
				{
					if (!NewCards)
					{
					    AddBackground( 65 + ((i+1)*40), 108, 35, 50, 2171 );

					    cardtemp = m_From.CardSuit( temp );
					    AddLabel( 80 + ((i+1)*40), 134, m_From.cardcolor( cardtemp ), cardtemp );
					    AddLabel( 72 + ((i+1)*40), 113, 600, m_From.CardName( temp ) );
					    AddLabel( 65 + ((i+1)*40), 180, 500, "redeal" );
					}

					if (m_From.dwin==1||m_From.dwin==2)
					{
					    if (NewCards)
					        AddCheck( 25 + ((i+1)*75), 105, 4095+temp, 4154, false, (i+1) );
					    else
					        AddCheck( 74 + ((i+1)*40), 162, 210, 211, false, (i+1) );
					}
					else
					{
					    if (NewCards)
					    	AddImage ( 25 + ((i+1)*75), 105, 4095+temp);
					    else
					    	AddImage( 74 + ((i+1)*40), 162, 210 );
					}
				}
			}

			AddLabel(  240, 205, 800, "Deal" );
			AddButton(  220, 208, 2117, 2118, 101, GumpButtonType.Reply, 0 );

			AddLabel( 160, 205, 800, ""+m_From.playerbet );
			AddButton(  140, 208, 2117, 2118, 105, GumpButtonType.Reply, 0 );

			AddLabel( 130, 230, 64, m_From.pokermsg );

			if (m_From.dwin==1)
				m_From.dwin=2;

			if (m_From.dwin==3)
			{
				m_From.dwin=0;
				m_From.roundend = true;
			}
		}