Package net.sf.colossus.server
Class BattleServerSide
java.lang.Object
net.sf.colossus.game.Battle
net.sf.colossus.server.BattleServerSide
Class Battle holds data about a Titan battle.
It has utility functions related to incrementing the phase, managing
moves, and managing strikes.
- Author:
- David Ripton, Romain Dolbeau
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
private class
static enum
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BattleServerSide.LegionTags
private boolean
private boolean
private final BattleMovementServerSide
private boolean
private int
Set of hexes for valid carry targetsprivate boolean
private boolean
private static final Logger
private BattlePhase
private final PhaseAdvancer
private int
private boolean
private Server
Fields inherited from class net.sf.colossus.game.Battle
attacker, battleTurnNumber, defender, game
-
Constructor Summary
ConstructorsConstructorDescriptionBattleServerSide
(GameServerSide game, Legion attacker, Legion defender, BattleServerSide.LegionTags activeLegionTag, MasterHex masterHex, BattlePhase phase) -
Method Summary
Modifier and TypeMethodDescription(package private) void
addCarryTarget
(BattleHex hex) private void
(package private) void
applyCarries
(CreatureServerSide target) private void
(package private) boolean
private void
void
private void
cleanup()
private void
cleanupOneDeadCritter
(Creature critter) (package private) void
private void
private void
(package private) void
Mark all of the conceding player's critters as dead.(package private) String
If legal, move critter to hex and return true.(package private) void
Needs to be called when reinforcement is done.(package private) void
(package private) void
Checks now all at same place in ServerfindTargetHexes
(CreatureServerSide critter, boolean rangestrike) Return a set of hexes containing targets that the critter may strike(package private) void
finishSummoningAngel
(boolean placeNewChit) Called from Game after the SummonAngel finishes.(package private) LegionServerSide
Get all BattleCritters / BattleUnits Abstract because currently implementation is different, but needed on both side, e.g.Override with covariant return type to ease transition into new model.(package private) Player
(package private) BattlePhase
(package private) int
Return the set of hexes with valid carry targets.(package private) CreatureServerSide
getCreatureSS
(BattleHex hex) Override with covariant return type to ease transition into new model.getGame()
Override with covariant return type to ease transition into new model.private LegionServerSide
private LegionServerSide
getLegion
(BattleServerSide.LegionTags legionTag) (package private) BattleServerSide.AngelSummoningStates
(package private) void
init()
We need to do two-stage construction so that game.battle is non-null earlier.private void
initBattleChits
(LegionServerSide legion) boolean
boolean
boolean
isInContact
(BattleCritter critter, boolean countDead) Return true if there are any enemies adjacent to this critter.private boolean
isOver()
(package private) void
private void
moveCritterToHexAndInformClients
(CreatureServerSide critter, BattleHex hex) int
numInContact
(BattleCritter striker, boolean countDead) Return the number of enemy creatures in contact with this critter.private void
placeCritter
(CreatureServerSide critter) private void
placeLegion
(Legion legion) private boolean
private void
private void
private void
If any creatures were left off-board, kill them.(package private) void
setCarryDamage
(int carryDamage) (package private) void
setCarryTargets
(Set<BattleHex> carryTargets) (package private) void
setPreStrikeEffectsApplied
(boolean preStrikeEffectsApplied) void
(package private) void
setSummonState
(BattleServerSide.AngelSummoningStates summonState) private boolean
private boolean
private boolean
private boolean
(package private) void
Methods inherited from class net.sf.colossus.game.Battle
computeSkillPenaltyRangestrikeThrough, countBrambleHexes, getBattleTurnNumber, getCritter, getDirection, getLegionByPlayer, getLocation, getRange, isLOSBlocked, isLOSBlockedDir, isObstacle, isOccupied, isRangestrikePossible, setBattleTurnNumber, toLeft
-
Field Details
-
LOGGER
-
server
-
activeLegionTag
-
phase
-
summonState
-
carryDamage
private int carryDamage -
attackerElim
private boolean attackerElim -
defenderElim
private boolean defenderElim -
battleOver
private boolean battleOver -
attackerEntered
private boolean attackerEntered -
conceded
private boolean conceded -
preStrikeEffectsApplied
private boolean preStrikeEffectsApplied -
carryTargets
Set of hexes for valid carry targets -
phaseAdvancer
-
pointsScored
private int pointsScored -
battleMovement
-
-
Constructor Details
-
BattleServerSide
BattleServerSide(GameServerSide game, Legion attacker, Legion defender, BattleServerSide.LegionTags activeLegionTag, MasterHex masterHex, BattlePhase phase)
-
-
Method Details
-
setServer
-
cleanRefs
public void cleanRefs() -
placeLegion
-
placeCritter
-
initBattleChits
-
init
void init()We need to do two-stage construction so that game.battle is non-null earlier. -
getGame
Override with covariant return type to ease transition into new model. -
isDefenderActive
public boolean isDefenderActive() -
getBattleActiveLegion
- Specified by:
getBattleActiveLegion
in classBattle
-
getBattleActivePlayer
Player getBattleActivePlayer() -
getAttackingLegion
Override with covariant return type to ease transition into new model.- Overrides:
getAttackingLegion
in classBattle
-
getDefendingLegion
Override with covariant return type to ease transition into new model.- Overrides:
getDefendingLegion
in classBattle
-
getActiveLegion
LegionServerSide getActiveLegion() -
getInactiveLegion
-
getLegion
-
getBattlePhase
BattlePhase getBattlePhase() -
isOver
private boolean isOver() -
advancePhase
private void advancePhase() -
setupSummon
private boolean setupSummon() -
setupRecruit
private boolean setupRecruit() -
setupMove
private boolean setupMove() -
setupFight
private boolean setupFight() -
getSummonState
BattleServerSide.AngelSummoningStates getSummonState() -
setSummonState
-
finishSummoningAngel
void finishSummoningAngel(boolean placeNewChit) Called from Game after the SummonAngel finishes. -
recruitReinforcement
private boolean recruitReinforcement() -
doneReinforcing
void doneReinforcing()Needs to be called when reinforcement is done. -
getCarryDamage
int getCarryDamage() -
setCarryDamage
void setCarryDamage(int carryDamage) -
undoMove
-
concede
Mark all of the conceding player's critters as dead. -
removeOffboardCreatures
private void removeOffboardCreatures()If any creatures were left off-board, kill them. If they were newly summoned or recruited, unsummon or unrecruit them instead. -
commitMoves
private void commitMoves() -
doneWithMoves
void doneWithMoves() -
applyPreStrikeEffects
private void applyPreStrikeEffects() -
arePreStrikeEffectsApplied
boolean arePreStrikeEffectsApplied() -
setPreStrikeEffectsApplied
void setPreStrikeEffectsApplied(boolean preStrikeEffectsApplied) -
leaveCarryMode
void leaveCarryMode() -
removeDeadCreatures
private void removeDeadCreatures() -
removeDeadCreaturesFromLegion
-
cleanupOneDeadCritter
-
checkForElimination
private void checkForElimination() -
commitStrikes
private void commitStrikes() -
isForcedStrikeRemaining
public boolean isForcedStrikeRemaining() -
doneWithStrikes
void doneWithStrikes()Checks now all at same place in Server -
findTargetHexes
Return a set of hexes containing targets that the critter may strike- Parameters:
rangestrike
- Whether to include rangestrike targetsbattleUnit
- the striking creature- Returns:
- a set of hexes containing targets
-
getCarryTargets
Return the set of hexes with valid carry targets. -
getCarryTargetDescriptions
-
clearCarryTargets
void clearCarryTargets() -
setCarryTargets
-
addCarryTarget
-
applyCarries
-
doMove
If legal, move critter to hex and return true. Else return false. -
moveCritterToHexAndInformClients
-
cleanup
private void cleanup() -
getAllCritters
Description copied from class:Battle
Get all BattleCritters / BattleUnits Abstract because currently implementation is different, but needed on both side, e.g. for BattleMovement- Specified by:
getAllCritters
in classBattle
-
getCreatureSS
-
isInContact
Return true if there are any enemies adjacent to this critter.- Specified by:
isInContact
in classBattle
- Parameters:
critter
- The critter to check whether it is in contact with any enemy crittercountDead
- Dead critters count as being in contact only if countDead is true.
-
numInContact
Return the number of enemy creatures in contact with this critter. Dead critters count as being in contact only if countDead is true.
-