public final class PlayerServerSide extends Player implements java.lang.Comparable<PlayerServerSide>
Modifier and Type | Field and Description |
---|---|
private LegionServerSide |
donor
The legion which gave a summonable creature.
|
private java.lang.String |
firstMarker |
private java.util.List<Legion> |
legionsBackup |
private static java.util.logging.Logger |
LOGGER |
private int |
movementRoll
TODO this might be better as a state in
Game since there is
always only one per game, not per player |
private java.lang.String |
playersEliminatedBackup |
private double |
score |
private boolean |
summoned |
private boolean |
teleported
TODO
PlayerClientSide just checks if any legion has teleported. |
private boolean |
titanEliminated |
Constructor and Description |
---|
PlayerServerSide(java.lang.String name,
GameServerSide game,
java.lang.String shortTypeName) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
addPoints(double points,
boolean halfPoints)
Add points to this player's score.
|
(package private) void |
awardPoints(int points,
LegionServerSide legion,
boolean halfPoints)
Award points and handle all acquiring related issues.
|
void |
backupLoadedData() |
(package private) boolean |
canRecruit()
Return true if any legion can recruit.
|
(package private) void |
commitMoves() |
int |
compareTo(PlayerServerSide other)
Players are sorted in order of decreasing starting tower.
|
(package private) void |
computeMarkersAvailable()
Set markersAvailable based on other available information.
|
(package private) int |
countMobileLegions()
Return the number of this player's legions that have legal
non-teleport moves remaining.
|
(package private) void |
die(Player slayer)
Turns the player dead.
|
(package private) void |
eliminateTitan() |
(package private) LegionServerSide |
getDonor() |
(package private) java.lang.String |
getFirstMarker() |
GameServerSide |
getGame()
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) int |
getMovementRoll() |
int |
getMovementRollSS() |
int |
getScore() |
(package private) java.lang.String |
getStatusInfo(boolean treatDeadAsAlive)
Return a colon-separated string with a bunch of info for
the status screen.
|
void |
handleSlaying(Player slayer) |
(package private) boolean |
hasSummoned() |
boolean |
hasTeleported() |
(package private) void |
initMarkersAvailable() |
(package private) void |
initMarkersAvailable(java.lang.String shortColor) |
(package private) boolean |
isTitanEliminated() |
(package private) int |
legionsMoved()
Return the number of this player's legions that have moved.
|
(package private) void |
recombineIllegalSplits() |
(package private) void |
removeEmptyLegions()
Remove all of this player's zero-height legions.
|
(package private) void |
resetTurnState() |
boolean |
resyncBackupData() |
(package private) int |
rollMovement() |
(package private) void |
setDonor(LegionServerSide donor) |
(package private) void |
setFirstMarker(java.lang.String firstMarker) |
(package private) void |
setMovementRoll(int movementRoll) |
void |
setScore(int score) |
(package private) void |
setSummoned(boolean summoned) |
(package private) void |
setTeleported(boolean teleported) |
void |
setType(java.lang.String shortTypeName) |
(package private) boolean |
splitLegionHasForcedMove()
Return true if two or more of this player's legions share
a hex and they have a legal non-teleport move.
|
(package private) void |
takeMulligan() |
(package private) void |
truncScore()
Remove half-points.
|
(package private) void |
undoAllMoves() |
(package private) void |
undoMove(Legion legion) |
(package private) void |
undoRecruit(Legion legion)
Tell legion to do undo the recruiting and trigger needed messages
to be sent to clients
|
(package private) 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)
|
(package private) void |
undoSplit(Legion splitoff) |
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
private static final java.util.logging.Logger LOGGER
private double score
private boolean summoned
private boolean teleported
PlayerClientSide
just checks if any legion has teleported.
Pick one version and move up into Player
.private int movementRoll
Game
since there is
always only one per game, not per playerprivate boolean titanEliminated
private LegionServerSide donor
private java.lang.String firstMarker
private java.lang.String playersEliminatedBackup
private final java.util.List<Legion> legionsBackup
PlayerServerSide(java.lang.String name, GameServerSide game, java.lang.String shortTypeName)
public GameServerSide getGame()
void initMarkersAvailable()
void initMarkersAvailable(java.lang.String shortColor)
void computeMarkersAvailable()
void setFirstMarker(java.lang.String firstMarker)
java.lang.String getFirstMarker()
public int compareTo(PlayerServerSide other)
compareTo
in interface java.lang.Comparable<PlayerServerSide>
public boolean hasTeleported()
hasTeleported
in class Player
void setTeleported(boolean teleported)
boolean hasSummoned()
void setSummoned(boolean summoned)
LegionServerSide getDonor()
void setDonor(LegionServerSide donor)
void removeEmptyLegions()
public java.util.List<LegionServerSide> getLegions()
getLegions
in class Player
int legionsMoved()
int countMobileLegions()
void commitMoves()
public int getMovementRollSS()
int getMovementRoll()
void setMovementRoll(int movementRoll)
void resetTurnState()
int rollMovement()
void takeMulligan()
void undoMove(Legion legion)
void undoAllMoves()
boolean splitLegionHasForcedMove()
boolean canRecruit()
void undoRecruit(Legion legion)
legion
- The legion which undoes the recruitingvoid undoReinforcement(Legion legion)
legion
- The legion which cancels the reinforcementvoid undoSplit(Legion splitoff)
void recombineIllegalSplits()
void addPoints(double points, boolean halfPoints)
void truncScore()
void awardPoints(int points, LegionServerSide legion, boolean halfPoints)
points
- the points to awardlegion
- the legion which is entitled to acquire due to thathalfPoints
- this are already halfPoints (from fleeing)void die(Player slayer)
slayer
- The player who killed us. May be null if we just gave up or it is a draw.public void handleSlaying(Player slayer)
void eliminateTitan()
boolean isTitanEliminated()
java.lang.String getStatusInfo(boolean treatDeadAsAlive)
public void backupLoadedData()
public boolean resyncBackupData()