public final class BattleServerSide extends Battle
Modifier and Type | Class and Description |
---|---|
static class |
BattleServerSide.AngelSummoningStates |
private class |
BattleServerSide.BattlePhaseAdvancer |
static class |
BattleServerSide.LegionTags |
Modifier and Type | Field and Description |
---|---|
private BattleServerSide.LegionTags |
activeLegionTag |
private boolean |
attackerElim |
private boolean |
attackerEntered |
private BattleMovementServerSide |
battleMovement |
private boolean |
battleOver |
private int |
carryDamage |
private java.util.Set<BattleHex> |
carryTargets
Set of hexes for valid carry targets
|
private boolean |
conceded |
private boolean |
defenderElim |
private static java.util.logging.Logger |
LOGGER |
private BattlePhase |
phase |
private PhaseAdvancer |
phaseAdvancer |
private int |
pointsScored |
private boolean |
preStrikeEffectsApplied |
private Server |
server |
private BattleServerSide.AngelSummoningStates |
summonState |
attacker, battleTurnNumber, defender, game
Constructor and Description |
---|
BattleServerSide(GameServerSide game,
Legion attacker,
Legion defender,
BattleServerSide.LegionTags activeLegionTag,
MasterHex masterHex,
BattlePhase phase) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
addCarryTarget(BattleHex hex) |
private void |
advancePhase() |
(package private) void |
applyCarries(CreatureServerSide target) |
private void |
applyPreStrikeEffects() |
(package private) boolean |
arePreStrikeEffectsApplied() |
private void |
checkForElimination() |
void |
cleanRefs() |
private void |
cleanup() |
private void |
cleanupOneDeadCritter(Creature critter) |
(package private) void |
clearCarryTargets() |
private void |
commitMoves() |
private void |
commitStrikes() |
(package private) void |
concede(Player player)
Mark all of the conceding player's critters as dead.
|
(package private) java.lang.String |
doMove(int tag,
BattleHex hex)
If legal, move critter to hex and return true.
|
(package private) void |
doneReinforcing()
Needs to be called when reinforcement is done.
|
(package private) void |
doneWithMoves() |
(package private) void |
doneWithStrikes()
Checks now all at same place in Server
|
(package private) java.util.Set<BattleHex> |
findTargetHexes(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 |
getActiveLegion() |
java.util.List<BattleCritter> |
getAllCritters()
Get all BattleCritters / BattleUnits
Abstract because currently implementation is different, but needed
on both side, e.g.
|
LegionServerSide |
getAttackingLegion()
Override with covariant return type to ease transition into new model.
|
Legion |
getBattleActiveLegion() |
(package private) Player |
getBattleActivePlayer() |
(package private) BattlePhase |
getBattlePhase() |
(package private) int |
getCarryDamage() |
(package private) java.util.Set<java.lang.String> |
getCarryTargetDescriptions() |
(package private) java.util.Set<BattleHex> |
getCarryTargets()
Return the set of hexes with valid carry targets.
|
(package private) CreatureServerSide |
getCreatureSS(BattleHex hex) |
LegionServerSide |
getDefendingLegion()
Override with covariant return type to ease transition into new model.
|
GameServerSide |
getGame()
Override with covariant return type to ease transition into new model.
|
private LegionServerSide |
getInactiveLegion() |
private LegionServerSide |
getLegion(BattleServerSide.LegionTags legionTag) |
(package private) BattleServerSide.AngelSummoningStates |
getSummonState() |
(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 |
isDefenderActive() |
boolean |
isForcedStrikeRemaining() |
boolean |
isInContact(BattleCritter critter,
boolean countDead)
Return true if there are any enemies adjacent to this critter.
|
private boolean |
isOver() |
(package private) void |
leaveCarryMode() |
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 |
recruitReinforcement() |
private void |
removeDeadCreatures() |
private void |
removeDeadCreaturesFromLegion(LegionServerSide legion) |
private void |
removeOffboardCreatures()
If any creatures were left off-board, kill them.
|
(package private) void |
setCarryDamage(int carryDamage) |
(package private) void |
setCarryTargets(java.util.Set<BattleHex> carryTargets) |
(package private) void |
setPreStrikeEffectsApplied(boolean preStrikeEffectsApplied) |
void |
setServer(Server server) |
(package private) void |
setSummonState(BattleServerSide.AngelSummoningStates summonState) |
private boolean |
setupFight() |
private boolean |
setupMove() |
private boolean |
setupRecruit() |
private boolean |
setupSummon() |
(package private) void |
undoMove(BattleHex hex) |
computeSkillPenaltyRangestrikeThrough, countBrambleHexes, getBattleTurnNumber, getCritter, getDirection, getLegionByPlayer, getLocation, getRange, isLOSBlocked, isLOSBlockedDir, isObstacle, isOccupied, isRangestrikePossible, setBattleTurnNumber, toLeft
private static final java.util.logging.Logger LOGGER
private Server server
private BattleServerSide.LegionTags activeLegionTag
private BattlePhase phase
private BattleServerSide.AngelSummoningStates summonState
private int carryDamage
private boolean attackerElim
private boolean defenderElim
private boolean battleOver
private boolean attackerEntered
private boolean conceded
private boolean preStrikeEffectsApplied
private final java.util.Set<BattleHex> carryTargets
private final PhaseAdvancer phaseAdvancer
private int pointsScored
private final BattleMovementServerSide battleMovement
BattleServerSide(GameServerSide game, Legion attacker, Legion defender, BattleServerSide.LegionTags activeLegionTag, MasterHex masterHex, BattlePhase phase)
public void setServer(Server server)
public void cleanRefs()
private void placeLegion(Legion legion)
private void placeCritter(CreatureServerSide critter)
private void initBattleChits(LegionServerSide legion)
void init()
public GameServerSide getGame()
public boolean isDefenderActive()
public Legion getBattleActiveLegion()
getBattleActiveLegion
in class Battle
Player getBattleActivePlayer()
public LegionServerSide getAttackingLegion()
getAttackingLegion
in class Battle
public LegionServerSide getDefendingLegion()
getDefendingLegion
in class Battle
LegionServerSide getActiveLegion()
private LegionServerSide getInactiveLegion()
private LegionServerSide getLegion(BattleServerSide.LegionTags legionTag)
BattlePhase getBattlePhase()
private boolean isOver()
private void advancePhase()
private boolean setupSummon()
private boolean setupRecruit()
private boolean setupMove()
private boolean setupFight()
BattleServerSide.AngelSummoningStates getSummonState()
void setSummonState(BattleServerSide.AngelSummoningStates summonState)
void finishSummoningAngel(boolean placeNewChit)
private boolean recruitReinforcement()
void doneReinforcing()
int getCarryDamage()
void setCarryDamage(int carryDamage)
void undoMove(BattleHex hex)
void concede(Player player)
private void removeOffboardCreatures()
private void commitMoves()
void doneWithMoves()
private void applyPreStrikeEffects()
boolean arePreStrikeEffectsApplied()
void setPreStrikeEffectsApplied(boolean preStrikeEffectsApplied)
void leaveCarryMode()
private void removeDeadCreatures()
private void removeDeadCreaturesFromLegion(LegionServerSide legion)
private void cleanupOneDeadCritter(Creature critter)
private void checkForElimination()
private void commitStrikes()
public boolean isForcedStrikeRemaining()
void doneWithStrikes()
java.util.Set<BattleHex> findTargetHexes(CreatureServerSide critter, boolean rangestrike)
battleUnit
- the striking creaturerangestrike
- Whether to include rangestrike targetsjava.util.Set<BattleHex> getCarryTargets()
java.util.Set<java.lang.String> getCarryTargetDescriptions()
void clearCarryTargets()
void setCarryTargets(java.util.Set<BattleHex> carryTargets)
void addCarryTarget(BattleHex hex)
void applyCarries(CreatureServerSide target)
java.lang.String doMove(int tag, BattleHex hex)
private void moveCritterToHexAndInformClients(CreatureServerSide critter, BattleHex hex)
private void cleanup()
public java.util.List<BattleCritter> getAllCritters()
Battle
getAllCritters
in class Battle
CreatureServerSide getCreatureSS(BattleHex hex)
public boolean isInContact(BattleCritter critter, boolean countDead)
isInContact
in class Battle
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.public int numInContact(BattleCritter striker, boolean countDead)