Package net.sf.colossus.server
Class PlayerServerSide
- java.lang.Object
-
- net.sf.colossus.game.Player
-
- net.sf.colossus.server.PlayerServerSide
-
- All Implemented Interfaces:
java.lang.Comparable<PlayerServerSide>
public final class PlayerServerSide extends Player implements java.lang.Comparable<PlayerServerSide>
Class Player holds the data for one player in a Titan game.- Author:
- David Ripton
-
-
Field Summary
Fields Modifier and Type Field Description private LegionServerSidedonorThe legion which gave a summonable creature.private java.lang.StringfirstMarkerprivate java.util.List<Legion>legionsBackupprivate static java.util.logging.LoggerLOGGERprivate intmovementRollTODO this might be better as a state inGamesince there is always only one per game, not per playerprivate java.lang.StringplayersEliminatedBackupprivate LegionpreviousUndoRecruitLegionprivate doublescoreprivate booleansummonedprivate booleanteleportedTODOPlayerClientSidejust checks if any legion has teleported.private booleantitanEliminated
-
Constructor Summary
Constructors Constructor Description PlayerServerSide(java.lang.String name, GameServerSide game, java.lang.String shortTypeName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidaddPoints(double points, boolean halfPoints)Add points to this player's score.(package private) voidawardPoints(int points, LegionServerSide legion, boolean halfPoints)Award points and handle all acquiring related issues.voidbackupLoadedData()(package private) booleancanRecruit()Return true if any legion can recruit.(package private) voidcommitMoves()intcompareTo(PlayerServerSide other)Players are sorted in order of decreasing starting tower.(package private) voidcomputeMarkersAvailable()Set markersAvailable based on other available information.(package private) intcountMobileLegions()Return the number of this player's legions that have legal non-teleport moves remaining.(package private) voiddie(Player slayer)Turns the player dead.(package private) voideliminateTitan()(package private) LegionServerSidegetDonor()(package private) java.lang.StringgetFirstMarker()GameServerSidegetGame()Overridden to return specific flavor of Game until the upper class is sufficient.java.util.List<LegionServerSide>getLegions()TODO remove once noone needs the specific version anymore(package private) intgetMovementRoll()intgetMovementRollSS()intgetScore()(package private) java.lang.StringgetStatusInfo(boolean treatDeadAsAlive)Return a colon-separated string with a bunch of info for the status screen.voidhandleSlaying(Player slayer)(package private) booleanhasSummoned()booleanhasTeleported()(package private) voidinitMarkersAvailable()(package private) voidinitMarkersAvailable(java.lang.String shortColor)(package private) booleanisTitanEliminated()(package private) intlegionsMoved()Return the number of this player's legions that have moved.(package private) voidrecombineIllegalSplits()(package private) voidremoveEmptyLegions()Remove all of this player's zero-height legions.(package private) voidresetTurnState()booleanresyncBackupData()(package private) introllMovement()(package private) voidsetDonor(LegionServerSide donor)(package private) voidsetFirstMarker(java.lang.String firstMarker)(package private) voidsetMovementRoll(int movementRoll)voidsetScore(int score)(package private) voidsetSummoned(boolean summoned)(package private) voidsetTeleported(boolean teleported)voidsetType(java.lang.String shortTypeName)(package private) booleansplitLegionHasForcedMove()Return true if two or more of this player's legions share a hex and they have a legal non-teleport move.(package private) voidtakeMulligan()(package private) voidtruncScore()Remove half-points.(package private) voidundoAllMoves()(package private) voidundoMove(Legion legion)(package private) voidundoRecruit(Legion legion)Tell legion to do undo the recruiting and trigger needed messages to be sent to clients(package private) voidundoReinforcement(Legion legion)Tell legion to do undo the reinforcement and trigger needed messages to be sent to clients (quite similar to undorecuit, but not exactly the same)(package private) voidundoSplit(Legion splitoff)-
Methods inherited from class net.sf.colossus.game.Player
addLegion, addMarkerAvailable, addPlayerElim, canTitanTeleport, clearMarkersAvailable, getAngelBasename, getColor, getDeadBeforeSave, getFirstAvailableMarker, getLegionByMarkerId, getMarkersAvailable, getMulligansLeft, getName, getNumber, getNumCreatures, getNumLegions, getNumMarkersAvailable, getPlayersElim, getShortColor, getStartingTower, getTitanBasename, getTitanLegion, getTitanPower, getTotalPointValue, getType, hasLegion, hasMoved, isAI, isDead, isHuman, isLocalHuman, isMarkerAvailable, isNetwork, isNone, removeAllLegions, removeLegion, removeMarkerAvailable, selectMarkerId, setColor, setDead, setDeadBeforeSave, setMulligansLeft, setName, setPlayersElim, setStartingTower, toString
-
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
score
private double score
-
summoned
private boolean summoned
-
teleported
private boolean teleported
TODOPlayerClientSidejust checks if any legion has teleported. Pick one version and move up intoPlayer.
-
movementRoll
private int movementRoll
TODO this might be better as a state inGamesince there is always only one per game, not per player
-
titanEliminated
private boolean titanEliminated
-
donor
private LegionServerSide donor
The legion which gave a summonable creature.
-
firstMarker
private java.lang.String firstMarker
-
playersEliminatedBackup
private java.lang.String playersEliminatedBackup
-
legionsBackup
private final java.util.List<Legion> legionsBackup
-
previousUndoRecruitLegion
private Legion previousUndoRecruitLegion
-
-
Constructor Detail
-
PlayerServerSide
PlayerServerSide(java.lang.String name, GameServerSide game, java.lang.String shortTypeName)
-
-
Method Detail
-
getGame
public GameServerSide getGame()
Overridden to return specific flavor of Game until the upper class is sufficient.
-
initMarkersAvailable
void initMarkersAvailable()
-
initMarkersAvailable
void initMarkersAvailable(java.lang.String shortColor)
-
computeMarkersAvailable
void computeMarkersAvailable()
Set markersAvailable based on other available information. NOTE: to be used only during loading a Game!
-
setFirstMarker
void setFirstMarker(java.lang.String firstMarker)
-
getFirstMarker
java.lang.String getFirstMarker()
-
compareTo
public int compareTo(PlayerServerSide other)
Players are sorted in order of decreasing starting tower. This is inconsistent with equals().- Specified by:
compareToin interfacejava.lang.Comparable<PlayerServerSide>
-
hasTeleported
public boolean hasTeleported()
- Overrides:
hasTeleportedin classPlayer
-
setTeleported
void setTeleported(boolean teleported)
-
hasSummoned
boolean hasSummoned()
-
setSummoned
void setSummoned(boolean summoned)
-
getDonor
LegionServerSide getDonor()
-
setDonor
void setDonor(LegionServerSide donor)
-
removeEmptyLegions
void removeEmptyLegions()
Remove all of this player's zero-height legions.
-
getLegions
public java.util.List<LegionServerSide> getLegions()
TODO remove once noone needs the specific version anymore- Overrides:
getLegionsin classPlayer
-
legionsMoved
int legionsMoved()
Return the number of this player's legions that have moved.
-
countMobileLegions
int countMobileLegions()
Return the number of this player's legions that have legal non-teleport moves remaining.
-
commitMoves
void commitMoves()
-
getMovementRollSS
public int getMovementRollSS()
-
getMovementRoll
int getMovementRoll()
-
setMovementRoll
void setMovementRoll(int movementRoll)
-
resetTurnState
void resetTurnState()
-
rollMovement
int rollMovement()
-
takeMulligan
void takeMulligan()
-
undoMove
void undoMove(Legion legion)
-
undoAllMoves
void undoAllMoves()
-
splitLegionHasForcedMove
boolean splitLegionHasForcedMove()
Return true if two or more of this player's legions share a hex and they have a legal non-teleport move.
-
canRecruit
boolean canRecruit()
Return true if any legion can recruit.
-
undoRecruit
void undoRecruit(Legion legion)
Tell legion to do undo the recruiting and trigger needed messages to be sent to clients- Parameters:
legion- The legion which undoes the recruiting
-
undoReinforcement
void undoReinforcement(Legion legion)
Tell legion to do undo the reinforcement and trigger needed messages to be sent to clients (quite similar to undorecuit, but not exactly the same)- Parameters:
legion- The legion which cancels the reinforcement
-
undoSplit
void undoSplit(Legion splitoff)
-
recombineIllegalSplits
void recombineIllegalSplits()
-
addPoints
void addPoints(double points, boolean halfPoints)Add points to this player's score. Update the status window to reflect the addition.
-
truncScore
void truncScore()
Remove half-points.
-
awardPoints
void awardPoints(int points, LegionServerSide legion, boolean halfPoints)Award points and handle all acquiring related issues. Note that this is not used for adding points for cleaning up legions of a dead player!- Parameters:
points- the points to awardlegion- the legion which is entitled to acquire due to thathalfPoints- this are already halfPoints (from fleeing)
-
die
void die(Player slayer)
Turns the player dead. This method calculates the points other players get, adds them to their score and then cleans up this player and marks him dead. TODO is it really the Player's role to assign points? I'd rather see that responsibility with the Game object TODO the slayer could be non-null if we introduce a null object (some object called e.g. "NOONE" that behaves like a Player as far as possible, giving a name and swallowing points)- Parameters:
slayer- The player who killed us. May be null if we just gave up or it is a draw.
-
handleSlaying
public void handleSlaying(Player slayer)
-
eliminateTitan
void eliminateTitan()
-
isTitanEliminated
boolean isTitanEliminated()
-
getStatusInfo
java.lang.String getStatusInfo(boolean treatDeadAsAlive)
Return a colon-separated string with a bunch of info for the status screen.
-
backupLoadedData
public void backupLoadedData()
-
resyncBackupData
public boolean resyncBackupData()
-
-