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; } } }
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; } }
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; } } }
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; } }