soc.message
Class SOCBuyCardRequest

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

public class SOCBuyCardRequest
extends SOCMessage
implements SOCMessageForGame

This message means that the player wants to buy a development card. During game state PLAY1, this is a normal buy request. When sent during other game states, and other players' turns, this is a request to start the 6-player Special Building Phase.

If the player can buy a card, the server replies to the client with DEVCARDACTION(SOCDevCardAction.DRAW, typeconstant), and to all other players with DEVCARDACTION(SOCDevCardAction.DRAW, SOCDevCardConstants.UNKNOWN).

If there are no cards remaining to buy, or the player otherwise can't buy a card right now (not enough resources, for example), the server will send them a text response denying the buy. For the robots' benefit, robot clients will be sent a CANCELBUILDREQUEST(-2) message. (-2 == soc.robot.SOCPossiblePiece.CARD)

Author:
Robert S Thomas
See Also:
Serialized Form

Field Summary
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
SOCBuyCardRequest(java.lang.String ga)
          Create a BuyCardRequest message.
 
Method Summary
 java.lang.String getGame()
          Name of game this message is for.
static SOCBuyCardRequest parseDataStr(java.lang.String s)
          Parse the command String into a BuyCardRequest message
 java.lang.String toCmd()
          BUYCARDREQUEST sep game
static java.lang.String toCmd(java.lang.String ga)
          BUYCARDREQUEST sep game
 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

Constructor Detail

SOCBuyCardRequest

public SOCBuyCardRequest(java.lang.String ga)
Create a BuyCardRequest message.

Parameters:
ga - name of game
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

toCmd

public java.lang.String toCmd()
BUYCARDREQUEST sep game

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

toCmd

public static java.lang.String toCmd(java.lang.String ga)
BUYCARDREQUEST sep game

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

parseDataStr

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

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