soc.message
Class SOCGameState

java.lang.Object
  extended by soc.message.SOCMessage
      extended by soc.message.SOCGameState
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, SOCMessageForGame

public class SOCGameState
extends SOCMessage
implements SOCMessageForGame

This message communicates the current state of the game.

For some states, such as SOCGame.WAITING_FOR_ROB_CHOOSE_PLAYER, another message (such as SOCChoosePlayerRequest) will follow to prompt the current player. For others, such as SOCGame.WAITING_FOR_DISCOVERY or SOCGame.WAITING_FOR_ROBBER_OR_PIRATE, it's implied that the player must decide and respond.

For SOCGame.WAITING_FOR_ROBBER_OR_PIRATE, the player should respond with SOCChoosePlayer; see that message's javadoc.

When a new game is starting, leaving state NEW, the server sends the new game state and then sends SOCStartGame.

Author:
Robert S Thomas <thomas@infolab.northwestern.edu>
See Also:
SOCGame.getGameState(), Serialized Form

Field Summary
private  java.lang.String game
          Name of game
private static long serialVersionUID
           
private  int state
          Game state
 
Fields inherited from class soc.message.SOCMessage
ACCEPTOFFER, ADMINPING, ADMINRESET, AUTHREQUEST, BANKTRADE, BCASTTEXTMSG, BOARDLAYOUT, BOARDLAYOUT2, BOARDSPECIALEDGE, BUILDREQUEST, BUYCARDREQUEST, CANCELBUILDREQUEST, CHANGEFACE, CHANNELS, CHOOSEPLAYER, CHOOSEPLAYERREQUEST, CLEAROFFER, CLEARTRADEMSG, CREATEACCOUNT, DEBUGFREEPLACE, DELETECHANNEL, DELETEGAME, DEVCARDACTION, DEVCARDCOUNT, DICERESULT, DICERESULTRESOURCES, DISCARD, DISCARDREQUEST, DISCOVERYPICK, ENDTURN, FIRSTPLAYER, GAME_NONE, GAMEMEMBERS, GAMEOPTIONGETDEFAULTS, GAMEOPTIONGETINFOS, GAMEOPTIONINFO, GAMES, GAMESERVERTEXT, GAMESTATE, GAMESTATS, GAMESWITHOPTIONS, GAMETEXTMSG, IMAROBOT, INVENTORYITEMACTION, JOIN, JOINAUTH, JOINGAME, JOINGAMEAUTH, LARGESTARMY, LASTSETTLEMENT, LEAVE, LEAVEALL, LEAVEGAME, LEGALEDGES, LOCALIZEDSTRINGS, LONGESTROAD, MAKEOFFER, MEMBERS, messageType, MONOPOLYPICK, MOVEPIECE, MOVEPIECEREQUEST, MOVEROBBER, NEWCHANNEL, NEWGAME, NEWGAMEWITHOPTIONS, NEWGAMEWITHOPTIONSREQUEST, NULLMESSAGE, PICKRESOURCES, PICKRESOURCESREQUEST, PIECEVALUE, PLAYDEVCARDREQUEST, PLAYERELEMENT, PLAYERELEMENTS, PLAYERSTATS, POTENTIALSETTLEMENTS, PUTPIECE, REJECTCONNECTION, REJECTOFFER, REMOVEPIECE, RESETBOARDAUTH, RESETBOARDREJECT, RESETBOARDREQUEST, RESETBOARDVOTE, RESETBOARDVOTEREQUEST, RESOURCECOUNT, REVEALFOGHEX, ROBOTDISMISS, ROBOTJOINGAMEREQUEST, ROLLDICE, ROLLDICEPROMPT, ROLLDICEREQUEST, SCENARIOINFO, sep, sep_char, sep2, sep2_char, SERVERPING, SETPLAYEDDEVCARD, SETSEATLOCK, SETSPECIALITEM, SETTURN, SETUPDONE, SIMPLEACTION, SIMPLEREQUEST, SITDOWN, STARTGAME, STATUSMESSAGE, SVPTEXTMSG, TEXTMSG, TIMINGPING, TURN, UPDATEROBOTPARAMS, VERSION
 
Constructor Summary
SOCGameState(java.lang.String ga, int gs)
          Create a GameState message.
 
Method Summary
 java.lang.String getGame()
          Name of game this message is for.
 int getState()
           
static SOCGameState parseDataStr(java.lang.String s)
          Parse the command String into a GameState message
 java.lang.String toCmd()
          GAMESTATE sep game sep2 state
static java.lang.String toCmd(java.lang.String ga, int gs)
          GAMESTATE sep game sep2 state
 java.lang.String toString()
          Simple human-readable representation, used for debug purposes.
 
Methods inherited from class soc.message.SOCMessage
arrayIntoStringBuf, enumIntoStringBuf, getClassNameShort, getMaximumVersion, getMinimumVersion, getType, isSingleLineAndSafe, isSingleLineAndSafe, toMsg
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface soc.message.SOCMessageForGame
getType
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

game

private java.lang.String game
Name of game


state

private int state
Game state

Constructor Detail

SOCGameState

public SOCGameState(java.lang.String ga,
                    int gs)
Create a GameState message.

Parameters:
ga - name of the game
gs - game state
Method Detail

getGame

public java.lang.String getGame()
Description copied from interface: SOCMessageForGame
Name of game this message is for. Must not be null if message is in per-game structures or code.

At the server, the message treater dispatches incoming SOCMessageForGames based on their getGame():

Specified by:
getGame in interface SOCMessageForGame
Returns:
the game name
See Also:
SOCMessage.GAME_NONE

getState

public int getState()
Returns:
the game state

toCmd

public java.lang.String toCmd()
GAMESTATE sep game sep2 state

Specified by:
toCmd in class SOCMessage
Returns:
the command String

toCmd

public static java.lang.String toCmd(java.lang.String ga,
                                     int gs)
GAMESTATE sep game sep2 state

Parameters:
ga - the game name
gs - the game state
Returns:
the command string

parseDataStr

public static SOCGameState parseDataStr(java.lang.String s)
Parse the command String into a GameState message

Parameters:
s - the String to parse
Returns:
a GameState message, or null of the data is garbled

toString

public java.lang.String toString()
Description copied from class: SOCMessage
Simple human-readable representation, used for debug purposes.

Specified by:
toString in class SOCMessage
Returns:
a human readable form of the message