Package net.sf.colossus.variant
Class MasterBoardTerrain
- java.lang.Object
-
- net.sf.colossus.variant.MasterBoardTerrain
-
- All Implemented Interfaces:
java.lang.Comparable<MasterBoardTerrain>
public class MasterBoardTerrain extends java.lang.Object implements java.lang.Comparable<MasterBoardTerrain>
A master board terrain. This class describes a terrain on the master board, including its name, color and the layout of a generic battle land. It can occur multiple times on a master board layout attached to theMasterHex
class. Battle land information could probably split out into another class, which could then be immutable.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<MasterBoardTerrain>
aliases
The other MasterBoardTerrain using the same recruit treeprivate BattleHex[][]
battleHexes
private java.awt.Color
color
private java.lang.String
displayName
The name displayed on the Masterboard.private BattleHex[]
entrances
private java.util.Map<HazardTerrain,java.lang.Integer>
hazardNumberMap
private java.util.Map<java.lang.Character,java.lang.Integer>
hazardSideNumberMap
private java.util.Map<HazardHexside,java.lang.Integer>
hexsideHazardNumberMap
private java.lang.String
id
The (unique) identifier of this terrain.private boolean
isAlias
Whether this terrain uses another Terrain recruit tree.private boolean
isTower
Whether this is a Tower-like building, with regards to starting the game, not recruiting or defender entering in a non-default location on the Battlemap.private static java.util.logging.Logger
LOGGER
(package private) IRecruiting
recruitingSubTree
The recruiting tree of this terrainprivate java.util.List<java.lang.String>
startList
TODO this should be a List... private java.lang.String
subtitle
Subtitle, for the Battlelands.
-
Constructor Summary
Constructors Constructor Description MasterBoardTerrain(java.lang.String id, java.lang.String displayName, java.awt.Color color)
MasterBoardTerrain(java.lang.String id, java.lang.String displayName, java.awt.Color color, boolean isAlias)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAlias(MasterBoardTerrain t)
int
compareTo(MasterBoardTerrain m)
boolean
equals(java.lang.Object obj)
java.util.Set<MasterBoardTerrain>
getAliases()
java.awt.Color
getColor()
java.lang.String
getDisplayName()
BattleHex
getEntrance(EntrySide entrySide)
int
getHazardCount(HazardTerrain terrain)
int
getHazardHexsideCount(HazardHexside hazard)
int
getHazardSideCount(char hazardSide)
BattleHex
getHexByLabel(java.lang.String label)
Look for the Hex matching the Label in this terrain.java.lang.String
getId()
IRecruiting
getRecruitingSubTree()
java.util.List<java.lang.String>
getStartList()
java.lang.String
getSubtitle()
int
hashCode()
boolean
hasNativeCombatBonus(CreatureType creature)
boolean
hasStartList()
boolean
isAlias()
boolean
isTower()
void
setHazardNumberMap(java.util.Map<HazardTerrain,java.lang.Integer> hazardNumberMap)
void
setHazardSideNumberMap(java.util.Map<java.lang.Character,java.lang.Integer> hazardSideNumberMap)
void
setHexsideHazardNumberMap(java.util.Map<HazardHexside,java.lang.Integer> hexsideHazardNumberMap)
void
setRecruitingSubTree(IRecruiting rst)
void
setStartList(java.util.List<java.lang.String> startList)
void
setSubtitle(java.lang.String s)
void
setTower(boolean isTower)
private void
setupEntrances()
private void
setupHexArrays()
private void
setupHexesGameState()
Add terrain, hexsides, elevation, and exits to hexes.private void
setupNeighbors()
Add references to neighbor hexes.
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
id
private final java.lang.String id
The (unique) identifier of this terrain. Should also be used for all Battlelands purpose.
-
displayName
private final java.lang.String displayName
The name displayed on the Masterboard. Should also be used for all recruiting purpose. WARNING: this is not done that way yet. It shoud be, so that a single name on the Masterboard will represent a single recruiting branch, even if it' backed by several different Battlelands. This would also remove a lot of duplicated entries in the Full Recruit Tree. WIP. ADDITIONAL WARNING: What about variant such as Balrog? The recruitment is Hex-specific, not Terrain-specific...
-
subtitle
private java.lang.String subtitle
Subtitle, for the Battlelands. Cosmetic only, but nice
-
color
private final java.awt.Color color
-
startList
private java.util.List<java.lang.String> startList
TODO this should be a List... or a List ??? If non-null, this is the list of hexes a defending legion will start in, in a similar way to the Tower in the Default variant.
-
isTower
private boolean isTower
Whether this is a Tower-like building, with regards to starting the game, not recruiting or defender entering in a non-default location on the Battlemap.
-
hazardNumberMap
private java.util.Map<HazardTerrain,java.lang.Integer> hazardNumberMap
-
hazardSideNumberMap
private java.util.Map<java.lang.Character,java.lang.Integer> hazardSideNumberMap
-
hexsideHazardNumberMap
private java.util.Map<HazardHexside,java.lang.Integer> hexsideHazardNumberMap
-
aliases
private final java.util.Set<MasterBoardTerrain> aliases
The other MasterBoardTerrain using the same recruit tree
-
isAlias
private final boolean isAlias
Whether this terrain uses another Terrain recruit tree.
-
battleHexes
private final BattleHex[][] battleHexes
-
entrances
private final BattleHex[] entrances
-
recruitingSubTree
IRecruiting recruitingSubTree
The recruiting tree of this terrain
-
-
Method Detail
-
setupHexArrays
private void setupHexArrays()
-
setupEntrances
private void setupEntrances()
-
setupNeighbors
private void setupNeighbors()
Add references to neighbor hexes.
-
setupHexesGameState
private void setupHexesGameState()
Add terrain, hexsides, elevation, and exits to hexes. Cliffs are bidirectional; other hexside obstacles are noted only on the high side, since they only interfere with uphill movement.
-
getHexByLabel
public BattleHex getHexByLabel(java.lang.String label)
Look for the Hex matching the Label in this terrain.
-
setRecruitingSubTree
public void setRecruitingSubTree(IRecruiting rst)
-
getRecruitingSubTree
public IRecruiting getRecruitingSubTree()
-
compareTo
public int compareTo(MasterBoardTerrain m)
- Specified by:
compareTo
in interfacejava.lang.Comparable<MasterBoardTerrain>
-
addAlias
public void addAlias(MasterBoardTerrain t)
-
isAlias
public boolean isAlias()
-
getAliases
public java.util.Set<MasterBoardTerrain> getAliases()
-
getId
public java.lang.String getId()
-
getDisplayName
public java.lang.String getDisplayName()
-
getSubtitle
public java.lang.String getSubtitle()
-
setSubtitle
public void setSubtitle(java.lang.String s)
-
getColor
public java.awt.Color getColor()
-
hasNativeCombatBonus
public boolean hasNativeCombatBonus(CreatureType creature)
-
setStartList
public void setStartList(java.util.List<java.lang.String> startList)
-
getStartList
public java.util.List<java.lang.String> getStartList()
-
setTower
public void setTower(boolean isTower)
-
isTower
public boolean isTower()
-
hasStartList
public boolean hasStartList()
-
setHazardNumberMap
public void setHazardNumberMap(java.util.Map<HazardTerrain,java.lang.Integer> hazardNumberMap)
-
getHazardCount
public int getHazardCount(HazardTerrain terrain)
-
setHazardSideNumberMap
public void setHazardSideNumberMap(java.util.Map<java.lang.Character,java.lang.Integer> hazardSideNumberMap)
-
getHazardSideCount
public int getHazardSideCount(char hazardSide)
-
setHexsideHazardNumberMap
public void setHexsideHazardNumberMap(java.util.Map<HazardHexside,java.lang.Integer> hexsideHazardNumberMap)
-
getHazardHexsideCount
public int getHazardHexsideCount(HazardHexside hazard)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
-