soc.message
Class SOCChoosePlayer

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

public class SOCChoosePlayer
extends SOCMessage
implements SOCMessageForGame

This message from client to server has a few purposes, all related to robbing:

getChoice() gets the client's choice.

Also sent from server to client (v2.0.00+) to prompt the client to choose to rob cloth or rob a resource from the victim; getChoice() is the victim player number.

Author:
Robert S. Thomas <thomas@infolab.northwestern.edu>
See Also:
Serialized Form

Field Summary
private  int choice
          The number of the chosen player, or CHOICE_NO_PLAYER to choose no one, or CHOICE_MOVE_ROBBER to move the robber or CHOICE_MOVE_PIRATE to move the pirate ship.
static int CHOICE_MOVE_PIRATE
          Constant for getChoice() in game state WAITING_FOR_ROBBER_OR_PIRATE: move Pirate Ship (not robber).
static int CHOICE_MOVE_ROBBER
          Constant for getChoice() in game state WAITING_FOR_ROBBER_OR_PIRATE: move Robber (not pirate ship).
static int CHOICE_NO_PLAYER
          Constant for getChoice() in response to server's SOCChoosePlayerRequest, if player has chosen to not rob from any player.
private  java.lang.String game
          Name of game
private static long serialVersionUID
           
 
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
SOCChoosePlayer(java.lang.String ga, int ch)
          Create a ChoosePlayer message.
 
Method Summary
 int getChoice()
           
 java.lang.String getGame()
          Name of game this message is for.
static SOCChoosePlayer parseDataStr(java.lang.String s)
          Parse the command String into a ChoosePlayer message
 java.lang.String toCmd()
          CHOOSEPLAYER sep game sep2 choice
static java.lang.String toCmd(java.lang.String ga, int ch)
          CHOOSEPLAYER sep game sep2 choice
 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

CHOICE_NO_PLAYER

public static final int CHOICE_NO_PLAYER
Constant for getChoice() in response to server's SOCChoosePlayerRequest, if player has chosen to not rob from any player.

Since:
2.0.00
See Also:
Constant Field Values

CHOICE_MOVE_ROBBER

public static final int CHOICE_MOVE_ROBBER
Constant for getChoice() in game state WAITING_FOR_ROBBER_OR_PIRATE: move Robber (not pirate ship).

Since:
2.0.00
See Also:
Constant Field Values

CHOICE_MOVE_PIRATE

public static final int CHOICE_MOVE_PIRATE
Constant for getChoice() in game state WAITING_FOR_ROBBER_OR_PIRATE: move Pirate Ship (not robber).

Since:
2.0.00
See Also:
Constant Field Values

game

private java.lang.String game
Name of game


choice

private int choice
The number of the chosen player, or CHOICE_NO_PLAYER to choose no one, or CHOICE_MOVE_ROBBER to move the robber or CHOICE_MOVE_PIRATE to move the pirate ship.

Constructor Detail

SOCChoosePlayer

public SOCChoosePlayer(java.lang.String ga,
                       int ch)
Create a ChoosePlayer message.

Parameters:
ga - the name of the game
ch - the number of the chosen player, or CHOICE_NO_PLAYER to choose no one, or CHOICE_MOVE_ROBBER to move the robber or CHOICE_MOVE_PIRATE to move the pirate ship.
For WAITING_FOR_ROB_CLOTH_OR_RESOURCE, use ch = playerNumber to rob a resource; to rob cloth, use ch = -(playerNumber + 1).
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 name of the game
See Also:
SOCMessage.GAME_NONE

getChoice

public int getChoice()
Returns:
the number of the chosen player, or CHOICE_NO_PLAYER to choose no one, or CHOICE_MOVE_ROBBER to move the robber or CHOICE_MOVE_PIRATE to move the pirate ship.
For WAITING_FOR_ROB_CLOTH_OR_RESOURCE, getChoice() >= 0 means rob a resource from that player number, and getChoice() < 0 means rob cloth from player number (-getChoice()) - 1.

toCmd

public java.lang.String toCmd()
CHOOSEPLAYER sep game sep2 choice

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

toCmd

public static java.lang.String toCmd(java.lang.String ga,
                                     int ch)
CHOOSEPLAYER sep game sep2 choice

Parameters:
ga - the name of the game
ch - the number of the chosen player; see SOCChoosePlayer(String, int) for meaning
Returns:
the command string

parseDataStr

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

Parameters:
s - the String to parse
Returns:
a ChoosePlayer 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