soc.message
Class SOCDevCardAction

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

public class SOCDevCardAction
extends SOCMessage
implements SOCMessageForGame

This message from the server means that a player is drawing or playing a development card; response to SOCPlayDevCardRequest.

If a robot asks to play a dev card that they can't right now, the server sends that bot DEVCARDACTION(-1, CANNOT_PLAY, cardtype).

Before v2.0.00, this message type was DEVCARD (class name SOCDevCard).

Author:
Robert S Thomas
See Also:
SOCInventoryItemAction, Serialized Form

Field Summary
private  int actionType
          Action type
static int ADDNEW
          dev card action ADDNEW: Add as new to player's hand
static int ADDOLD
          dev card action ADDOLD: Add as old to player's hand
static int CANNOT_PLAY
          dev card action CANNOT_PLAY: The bot can't play the requested card at this time.
private  int cardType
          The type of development card, like SOCDevCardConstants.ROADS
static int DRAW
          dev card action DRAW (Buy): Add as new to player's hand
private  java.lang.String game
          Name of game
static int PLAY
          dev card action PLAY: remove as old from player's hand
private  int playerNumber
          Player number
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
SOCDevCardAction(java.lang.String ga, int pn, int ac, int ct)
          Create a DevCardAction message.
 
Method Summary
 int getAction()
           
 int getCardType()
           
 java.lang.String getGame()
          Name of game this message is for.
 int getPlayerNumber()
           
static SOCDevCardAction parseDataStr(java.lang.String s)
          Parse the command String into a DevCard message
 java.lang.String toCmd()
          DEVCARDACTION sep game sep2 playerNumber sep2 actionType sep2 cardType
static java.lang.String toCmd(java.lang.String ga, int pn, int ac, int ct)
          DEVCARDACTION sep game sep2 playerNumber sep2 actionType sep2 cardType
 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

DRAW

public static final int DRAW
dev card action DRAW (Buy): Add as new to player's hand

See Also:
Constant Field Values

PLAY

public static final int PLAY
dev card action PLAY: remove as old from player's hand

See Also:
Constant Field Values

ADDNEW

public static final int ADDNEW
dev card action ADDNEW: Add as new to player's hand

See Also:
Constant Field Values

ADDOLD

public static final int ADDOLD
dev card action ADDOLD: Add as old to player's hand

See Also:
Constant Field Values

CANNOT_PLAY

public static final int CANNOT_PLAY
dev card action CANNOT_PLAY: The bot can't play the requested card at this time. This is sent only to the requesting robot, so playerNumber is always -1 in this message.

Since:
1.1.17
See Also:
Constant Field Values

game

private java.lang.String game
Name of game


playerNumber

private int playerNumber
Player number


cardType

private int cardType
The type of development card, like SOCDevCardConstants.ROADS


actionType

private int actionType
Action type

Constructor Detail

SOCDevCardAction

public SOCDevCardAction(java.lang.String ga,
                        int pn,
                        int ac,
                        int ct)
Create a DevCardAction message.

Parameters:
ga - name of the game
pn - the player number, or -1 for action type CANNOT_PLAY
ac - the type of action
ct - the type of card, like SOCDevCardConstants.ROADS
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

getPlayerNumber

public int getPlayerNumber()
Returns:
the player number, or -1 for action type CANNOT_PLAY

getAction

public int getAction()
Returns:
the action type, like DRAW

getCardType

public int getCardType()
Returns:
the card type, like SOCDevCardConstants.ROADS

toCmd

public java.lang.String toCmd()
DEVCARDACTION sep game sep2 playerNumber sep2 actionType sep2 cardType

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

toCmd

public static java.lang.String toCmd(java.lang.String ga,
                                     int pn,
                                     int ac,
                                     int ct)
DEVCARDACTION sep game sep2 playerNumber sep2 actionType sep2 cardType

Parameters:
ga - the game name
pn - the player number
ac - the type of action
ct - the type of card
Returns:
the command string

parseDataStr

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

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