Console client: Now functional, but several features are still missing.
This commit is contained in:
@@ -39,11 +39,11 @@ namespace pokerth_lib
|
||||
{
|
||||
// Connect to the server.
|
||||
// Try IPv6 first.
|
||||
/*IPAddress[] addresses = new IPAddress[2];
|
||||
IPAddress[] addresses = new IPAddress[2];
|
||||
addresses[0] = IPAddress.Parse(m_settings.ServerSettings.IPv6Address);
|
||||
addresses[1] = IPAddress.Parse(m_settings.ServerSettings.IPv4Address);
|
||||
m_tcpClient.Connect(addresses, m_settings.ServerSettings.Port);*/
|
||||
m_tcpClient.Connect("localhost", 7234);
|
||||
m_tcpClient.Connect(addresses, m_settings.ServerSettings.Port);
|
||||
//m_tcpClient.Connect("localhost", 7234);
|
||||
}
|
||||
|
||||
public void Start()
|
||||
@@ -58,6 +58,31 @@ namespace pokerth_lib
|
||||
SendJoinGame(gameId);
|
||||
}
|
||||
|
||||
public bool WaitJoinGame(int timeout)
|
||||
{
|
||||
return m_data.JoinGameEvent.WaitOne(timeout);
|
||||
}
|
||||
|
||||
public bool WaitStartGame()
|
||||
{
|
||||
return m_data.StartGameEvent.WaitOne();
|
||||
}
|
||||
|
||||
public void MyAction(Hand.Action action, uint bet)
|
||||
{
|
||||
NetPacket a = new NetPacketPlayersAction();
|
||||
a.Properties.Add(
|
||||
NetPacket.PropType.GameState,
|
||||
Convert.ToString((int)m_data.CurHand.CurState));
|
||||
a.Properties.Add(
|
||||
NetPacket.PropType.PlayerAction,
|
||||
Convert.ToString((int)action));
|
||||
a.Properties.Add(
|
||||
NetPacket.PropType.PlayerBet,
|
||||
Convert.ToString(bet));
|
||||
m_sender.Send(a);
|
||||
}
|
||||
|
||||
public void SetTerminateFlag()
|
||||
{
|
||||
m_sender.SetTerminateFlag();
|
||||
|
||||
@@ -29,6 +29,8 @@ namespace pokerth_lib
|
||||
void VisitInitAck(NetPacket p);
|
||||
void VisitGameListNew(NetPacket p);
|
||||
void VisitGameListUpdate(NetPacket p);
|
||||
void VisitGameListPlayerJoined(NetPacket p);
|
||||
void VisitGameListPlayerLeft(NetPacket p);
|
||||
void VisitRetrievePlayerInfo(NetPacket p);
|
||||
void VisitPlayerInfo(NetPacket p);
|
||||
void VisitCreateGame(NetPacket p);
|
||||
@@ -45,7 +47,9 @@ namespace pokerth_lib
|
||||
void VisitDealFlopCards(NetPacket p);
|
||||
void VisitDealTurnCard(NetPacket p);
|
||||
void VisitDealRiverCard(NetPacket p);
|
||||
void VisitAllInShowCards(NetPacket p);
|
||||
void VisitEndOfHandShowCards(NetPacket p);
|
||||
void VisitEndOfHandHideCards(NetPacket p);
|
||||
void VisitError(NetPacket p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +91,7 @@ namespace pokerth_lib
|
||||
|
||||
public enum PropType
|
||||
{
|
||||
ErrorReason,
|
||||
RequestedVersionMajor,
|
||||
RequestedVersionMinor,
|
||||
PlayerId,
|
||||
@@ -153,7 +154,8 @@ namespace pokerth_lib
|
||||
|
||||
public enum RecordPropType
|
||||
{
|
||||
PlayerResult,
|
||||
PlayerResults,
|
||||
PlayerCards,
|
||||
}
|
||||
|
||||
public static NetPacket Create(int type, int size, BinaryReader reader)
|
||||
@@ -171,6 +173,12 @@ namespace pokerth_lib
|
||||
case NetTypeGameListUpdate :
|
||||
tmpPacket = new NetPacketGameListUpdate(size, reader);
|
||||
break;
|
||||
case NetTypeGameListPlayerJoined :
|
||||
tmpPacket = new NetPacketGameListPlayerJoined(size, reader);
|
||||
break;
|
||||
case NetTypeGameListPlayerLeft :
|
||||
tmpPacket = new NetPacketGameListPlayerLeft(size, reader);
|
||||
break;
|
||||
case NetTypeJoinGameAck :
|
||||
tmpPacket = new NetPacketJoinGameAck(size, reader);
|
||||
break;
|
||||
@@ -201,12 +209,18 @@ namespace pokerth_lib
|
||||
case NetTypeDealRiverCard :
|
||||
tmpPacket = new NetPacketDealRiverCard(size, reader);
|
||||
break;
|
||||
case NetTypeAllInShowCards :
|
||||
tmpPacket = new NetPacketAllInShowCards(size, reader);
|
||||
break;
|
||||
case NetTypeEndOfHandShowCards :
|
||||
tmpPacket = new NetPacketEndOfHandShowCards(size, reader);
|
||||
break;
|
||||
case NetTypeEndOfHandHideCards :
|
||||
tmpPacket = new NetPacketEndOfHandHideCards(size, reader);
|
||||
break;
|
||||
case NetTypeError :
|
||||
tmpPacket = new NetPacketError(size, reader);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace pokerth_lib
|
||||
|
||||
tmpRecordList.Add(tmpList);
|
||||
}
|
||||
RecordProperties.Add(RecordPropType.PlayerResult, tmpRecordList);
|
||||
RecordProperties.Add(RecordPropType.PlayerResults, tmpRecordList);
|
||||
}
|
||||
|
||||
public override void Accept(INetPacketVisitor visitor)
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace pokerth_lib
|
||||
BinaryWriter w = new BinaryWriter(memStream);
|
||||
|
||||
w.Write(IPAddress.HostToNetworkOrder((short)Type));
|
||||
w.Write(IPAddress.HostToNetworkOrder((short)8));
|
||||
w.Write(IPAddress.HostToNetworkOrder((short)12));
|
||||
w.Write(IPAddress.HostToNetworkOrder((short)
|
||||
Convert.ToUInt16(Properties[PropType.GameState])));
|
||||
w.Write(IPAddress.HostToNetworkOrder((short)
|
||||
|
||||
@@ -71,6 +71,26 @@ namespace pokerth_lib
|
||||
m_data.GameList.GetGameInfo(id).CurrentMode = mode;
|
||||
}
|
||||
|
||||
public void VisitGameListPlayerJoined(NetPacket p)
|
||||
{
|
||||
GameInfo info = m_data.GameList.GetGameInfo(
|
||||
Convert.ToUInt32(p.Properties[NetPacket.PropType.GameId]));
|
||||
List<uint> playerSlots = info.PlayerSlots;
|
||||
playerSlots.Add(
|
||||
Convert.ToUInt32(p.Properties[NetPacket.PropType.PlayerId]));
|
||||
info.PlayerSlots = playerSlots;
|
||||
}
|
||||
|
||||
public void VisitGameListPlayerLeft(NetPacket p)
|
||||
{
|
||||
GameInfo info = m_data.GameList.GetGameInfo(
|
||||
Convert.ToUInt32(p.Properties[NetPacket.PropType.GameId]));
|
||||
List<uint> playerSlots = info.PlayerSlots;
|
||||
playerSlots.Remove(
|
||||
Convert.ToUInt32(p.Properties[NetPacket.PropType.PlayerId]));
|
||||
info.PlayerSlots = playerSlots;
|
||||
}
|
||||
|
||||
public void VisitRetrievePlayerInfo(NetPacket p)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
@@ -99,6 +119,7 @@ namespace pokerth_lib
|
||||
m_data.MyGameId =
|
||||
Convert.ToUInt32(p.Properties[NetPacket.PropType.GameId]);
|
||||
m_callback.JoinedGame(m_data.GameList.GetGameInfo(m_data.MyGameId).Name);
|
||||
m_data.JoinGameEvent.Set();
|
||||
}
|
||||
|
||||
public void VisitStartEvent(NetPacket p)
|
||||
@@ -146,6 +167,7 @@ namespace pokerth_lib
|
||||
}
|
||||
|
||||
m_callback.GameStarted(strPlayers);
|
||||
m_data.StartGameEvent.Set();
|
||||
}
|
||||
|
||||
public void VisitHandStart(NetPacket p)
|
||||
@@ -250,10 +272,28 @@ namespace pokerth_lib
|
||||
m_callback.ShowRiverCards(tmpCards);
|
||||
}
|
||||
|
||||
public void VisitAllInShowCards(NetPacket p)
|
||||
{
|
||||
List<Dictionary<NetPacket.PropType, string>> tmpList
|
||||
= p.RecordProperties[NetPacket.RecordPropType.PlayerCards];
|
||||
foreach (Dictionary<NetPacket.PropType, string> i in tmpList)
|
||||
{
|
||||
uint playerId = Convert.ToUInt32(i[NetPacket.PropType.PlayerId]);
|
||||
string name = m_data.PlayerList.GetPlayerInfo(playerId).Name;
|
||||
Player curPlayer = m_data.CurHand.Players[playerId];
|
||||
int[] tmpCards = new int[2];
|
||||
tmpCards[0] = Convert.ToInt32(i[NetPacket.PropType.FirstCard]);
|
||||
tmpCards[1] = Convert.ToInt32(i[NetPacket.PropType.SecondCard]);
|
||||
curPlayer.Cards = tmpCards;
|
||||
|
||||
m_callback.ShowCards(name, tmpCards);
|
||||
}
|
||||
}
|
||||
|
||||
public void VisitEndOfHandShowCards(NetPacket p)
|
||||
{
|
||||
List<Dictionary<NetPacket.PropType, string>> tmpList
|
||||
= p.RecordProperties[NetPacket.RecordPropType.PlayerResult];
|
||||
= p.RecordProperties[NetPacket.RecordPropType.PlayerResults];
|
||||
foreach (Dictionary<NetPacket.PropType, string> i in tmpList)
|
||||
{
|
||||
uint playerId = Convert.ToUInt32(i[NetPacket.PropType.PlayerId]);
|
||||
@@ -299,6 +339,11 @@ namespace pokerth_lib
|
||||
Convert.ToUInt32(p.Properties[NetPacket.PropType.MoneyWon]));
|
||||
}
|
||||
|
||||
public void VisitError(NetPacket p)
|
||||
{
|
||||
m_callback.Error(p.Properties[NetPacket.PropType.ErrorReason]);
|
||||
}
|
||||
|
||||
private PokerTHData m_data;
|
||||
private SenderThread m_sender;
|
||||
private ICallback m_callback;
|
||||
|
||||
Reference in New Issue
Block a user