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 theMasterHexclass. 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>aliasesThe other MasterBoardTerrain using the same recruit treeprivate BattleHex[][]battleHexesprivate java.awt.Colorcolorprivate java.lang.StringdisplayNameThe name displayed on the Masterboard.private BattleHex[]entrancesprivate java.util.Map<HazardTerrain,java.lang.Integer>hazardNumberMapprivate java.util.Map<java.lang.Character,java.lang.Integer>hazardSideNumberMapprivate java.util.Map<HazardHexside,java.lang.Integer>hexsideHazardNumberMapprivate java.lang.StringidThe (unique) identifier of this terrain.private booleanisAliasWhether this terrain uses another Terrain recruit tree.private booleanisTowerWhether 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.LoggerLOGGER(package private) IRecruitingrecruitingSubTreeThe recruiting tree of this terrainprivate java.util.List<java.lang.String>startListTODO this should be a List... private java.lang.StringsubtitleSubtitle, 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 voidaddAlias(MasterBoardTerrain t)intcompareTo(MasterBoardTerrain m)booleanequals(java.lang.Object obj)java.util.Set<MasterBoardTerrain>getAliases()java.awt.ColorgetColor()java.lang.StringgetDisplayName()BattleHexgetEntrance(EntrySide entrySide)intgetHazardCount(HazardTerrain terrain)intgetHazardHexsideCount(HazardHexside hazard)intgetHazardSideCount(char hazardSide)BattleHexgetHexByLabel(java.lang.String label)Look for the Hex matching the Label in this terrain.java.lang.StringgetId()IRecruitinggetRecruitingSubTree()java.util.List<java.lang.String>getStartList()java.lang.StringgetSubtitle()inthashCode()booleanhasNativeCombatBonus(CreatureType creature)booleanhasStartList()booleanisAlias()booleanisTower()voidsetHazardNumberMap(java.util.Map<HazardTerrain,java.lang.Integer> hazardNumberMap)voidsetHazardSideNumberMap(java.util.Map<java.lang.Character,java.lang.Integer> hazardSideNumberMap)voidsetHexsideHazardNumberMap(java.util.Map<HazardHexside,java.lang.Integer> hexsideHazardNumberMap)voidsetRecruitingSubTree(IRecruiting rst)voidsetStartList(java.util.List<java.lang.String> startList)voidsetSubtitle(java.lang.String s)voidsetTower(boolean isTower)private voidsetupEntrances()private voidsetupHexArrays()private voidsetupHexesGameState()Add terrain, hexsides, elevation, and exits to hexes.private voidsetupNeighbors()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:
compareToin 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:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
-