Package net.sf.colossus.server
Class CreatureServerSide
- java.lang.Object
-
- net.sf.colossus.game.Creature
-
- net.sf.colossus.server.CreatureServerSide
-
- All Implemented Interfaces:
BattleCritter
public class CreatureServerSide extends Creature implements BattleCritter
Class Critter represents an individual Titan Character. TODO this duplicates functionality from theCreatureTypeclass, mostly due to the fact that the latter doesn't handle the Titans properly TODO a lot of the code in here is about the battle rules, often implemented in combination with the Battle class. It would be much easier if this class was just a dumb critter and the rules of battles are all in the Battle class.- Author:
- David Ripton, Romain Dolbeau
-
-
Field Summary
Fields Modifier and Type Field Description private BattleServerSidebattleprivate booleancarryPossibleprivate GameServerSidegameThe game this creature belongs to.private static java.util.logging.LoggerLOGGERprivate java.util.SortedSet<PenaltyOption>penaltyOptionsprivate inttagUnique identifier for each critter.private static inttagCounterCounter used to assign unique tags.-
Fields inherited from class net.sf.colossus.game.Creature
IMPORTANCE_ORDER, legion
-
-
Constructor Summary
Constructors Constructor Description CreatureServerSide(CreatureType creature, Legion legion, GameServerSide game)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidassignStrikePenalty(java.lang.String prompt)Side effects.(package private) booleancanStrike(Creature target)(package private) voidfindCarries(CreatureServerSide target)Side effects on penaltyOptions, Battle.carryTargetsprivate voidfindCarry(CreatureServerSide target, BattleHex neighbor)For a strike on target, find any carries (including those only allowed via strike penalty) to the creature in neighbor Side effects on penaltyOptions, Battle.carryTargetsGamegetGame()(package private) java.util.Set<PenaltyOption>getPenaltyOptions()intgetTag()inthashCode()booleanisDefender()private PenaltyOptionmatchingPenaltyOption(java.lang.String prompt)Return true if the passed prompt matches one of the stored penalty options.private booleanpossibleCarryToDir(BattleHex targetHex, int dir)Return true if carries are possible to the hex in direction dir, considering only terrain.(package private) voidsetBattleInfo(BattleHex currentHex, BattleHex startingHex, BattleServerSide battle)(package private) voidsetLegion(LegionServerSide legion)(package private) voidstrike(CreatureServerSide target)Calculate number of dice and strike number needed to hit target, and whether any carries and strike penalties are possible.private voidstrike2(CreatureServerSide target, int dice, int strikeNumber)Called after strike penalties are chosen.java.lang.StringtoString()(package private) voidundoMove()-
Methods inherited from class net.sf.colossus.game.Creature
addPoisonDamage, addSlowed, adjustHits, commitMove, getCurrentHex, getDescription, getHits, getImageNames, getLegion, getMarkerId, getMaxCount, getName, getPlayer, getPluralName, getPointValue, getPoison, getPoisonDamage, getPower, getSkill, getSlowed, getSlows, getStartingHex, getStrikingPower, getStrikingSkill, getTitanPower, getType, hasMoved, hasStruck, heal, isDead, isDemiLord, isFlier, isImmortal, isLord, isLordOrDemiLord, isNativeAt, isNativeIn, isRangestriker, isSummonable, isTitan, moveToHex, setCurrentHex, setDead, setHits, setMoved, setPoisonDamage, setSlowed, setStartingHex, setStruck, useMagicMissile, wouldDieFrom
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.colossus.game.BattleCritter
addPoisonDamage, addSlowed, getCurrentHex, getDescription, getHits, getPointValue, getPoison, getPoisonDamage, getPower, getSkill, getSlowed, getSlows, getStartingHex, getTitanPower, getType, hasMoved, hasStruck, isDead, isDemiLord, isLord, isRangestriker, isTitan, moveToHex, setCurrentHex, setDead, setHits, setMoved, setPoisonDamage, setSlowed, setStruck, useMagicMissile, wouldDieFrom
-
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
battle
private BattleServerSide battle
-
game
private final GameServerSide game
The game this creature belongs to. Never null.
-
tag
private final int tag
Unique identifier for each critter.
-
tagCounter
private static int tagCounter
Counter used to assign unique tags.
-
penaltyOptions
private final java.util.SortedSet<PenaltyOption> penaltyOptions
-
carryPossible
private boolean carryPossible
-
-
Constructor Detail
-
CreatureServerSide
public CreatureServerSide(CreatureType creature, Legion legion, GameServerSide game)
-
-
Method Detail
-
setBattleInfo
void setBattleInfo(BattleHex currentHex, BattleHex startingHex, BattleServerSide battle)
-
setLegion
void setLegion(LegionServerSide legion)
-
getGame
public Game getGame()
-
getTag
public int getTag()
- Specified by:
getTagin interfaceBattleCritter
-
isDefender
public boolean isDefender()
- Specified by:
isDefenderin interfaceBattleCritter
-
undoMove
void undoMove()
-
canStrike
boolean canStrike(Creature target)
-
strike
void strike(CreatureServerSide target)
Calculate number of dice and strike number needed to hit target, and whether any carries and strike penalties are possible. The actual striking is now deferred to strike2().
-
assignStrikePenalty
void assignStrikePenalty(java.lang.String prompt)
Side effects.
-
matchingPenaltyOption
private PenaltyOption matchingPenaltyOption(java.lang.String prompt)
Return true if the passed prompt matches one of the stored penalty options.
-
findCarries
void findCarries(CreatureServerSide target)
Side effects on penaltyOptions, Battle.carryTargets
-
possibleCarryToDir
private boolean possibleCarryToDir(BattleHex targetHex, int dir)
Return true if carries are possible to the hex in direction dir, considering only terrain.
-
findCarry
private void findCarry(CreatureServerSide target, BattleHex neighbor)
For a strike on target, find any carries (including those only allowed via strike penalty) to the creature in neighbor Side effects on penaltyOptions, Battle.carryTargets
-
strike2
private void strike2(CreatureServerSide target, int dice, int strikeNumber)
Called after strike penalties are chosen. Roll the dice and apply damage. Highlight legal carry targets.
-
getPenaltyOptions
java.util.Set<PenaltyOption> getPenaltyOptions()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-