public class TerrainRecruitLoader extends java.lang.Object implements IVariantInitializer
CreatureType
Modifier and Type | Class and Description |
---|---|
private class |
TerrainRecruitLoader.CreatureAndNumber
Helper class, associating a Creature and a number.
|
static class |
TerrainRecruitLoader.NullTerrainRecruitLoader |
private class |
TerrainRecruitLoader.RecruitNumber
Used internally to associate a creature name and the number of
creatures needed to recruit it.
|
private class |
TerrainRecruitLoader.StartingNumber
Used internally to associate a creature name and the number received
when starting a game.
|
Modifier and Type | Field and Description |
---|---|
private static java.util.List<Variant.AcquirableData> |
acquirableList
The list of Acquirable Creature, as acquirableData.
|
private int |
aquirableRecruitmentsValue |
private AllCreatureType |
creatureTypes
The AllCreatureType object to use, needed to convert from String (name)
to the actual CreatureType.
|
private static RecruitGraph |
graph
Representation of the Recruiting Graph (for use)
(sometimes called Recruiting Tree).
|
static java.lang.String |
Keyword_AnyNonLord |
static java.lang.String |
Keyword_Anything |
static java.lang.String |
Keyword_DemiLord |
static java.lang.String |
Keyword_Lord |
static java.lang.String |
Keyword_Special |
private static java.util.logging.Logger |
LOGGER |
private static java.util.Map<java.lang.String,CustomRecruitBase> |
nameToInstance
support for the custom recruiting functions ; map the class name to an
instance of the class.
|
private static java.util.Map<MasterBoardTerrain,java.lang.Boolean> |
strToBelow
Map a terrain to a boolean,
telling if a Creature can recruit in the usual way or not.
|
private static java.util.Map<MasterBoardTerrain,java.util.List<TerrainRecruitLoader.RecruitNumber>> |
strToRecruits
Map a terrain to a list of recruits.
|
private static java.util.Map<MasterBoardTerrain,java.lang.String> |
strToRnd
Map a terrain to an
optional BattlelandsRandomizer filename.
|
private static java.util.Map<MasterBoardTerrain,java.util.List<TerrainRecruitLoader.StartingNumber>> |
strToStarters
Map a terrain to a list of recruits.
|
private static java.util.Map<java.lang.String,MasterBoardTerrain> |
terrains
A map from the terrain names to the terrains.
|
private int |
titanImprove
Base amount of points needed for Titan improvement.
|
private int |
titanTeleport
Amount of points needed for Titan Teleport.
|
Constructor and Description |
---|
TerrainRecruitLoader(java.io.InputStream terIS,
AllCreatureType creatureTypes) |
Modifier and Type | Method and Description |
---|---|
private static void |
addToGraph(java.util.List<TerrainRecruitLoader.RecruitNumber> rl,
MasterBoardTerrain t)
Add an entire terrain recruiting list to the Recruiting Graph.
|
static boolean |
anonymousRecruitLegal(CreatureType recruit,
MasterBoardTerrain terrain,
MasterHex hex) |
private RecruitingSubTree |
buildRecruitingSubTree(java.util.List<TerrainRecruitLoader.RecruitNumber> rl,
boolean regularRecruit) |
java.util.List<Variant.AcquirableData> |
getAcquirablesList() |
static ICustomRecruitBase |
getCustomRecruitBase(java.lang.String specialString) |
static java.util.List<CreatureType> |
getPossibleRecruiters(MasterBoardTerrain terrain,
MasterHex hex)
Give a modifiable list of the possible recruiters in a terrain.
|
static java.util.List<CreatureType> |
getPossibleRecruits(MasterBoardTerrain terrain,
MasterHex hex)
Give a modifiable list of the possible recruits in a terrain.
|
static RecruitGraph |
getRecruitGraph()
to obtain the recruit graph
|
static CreatureType[] |
getStartingCreatures(MasterHex hex)
Give an array of the starting creatures, those available in the first
turn and in a particular kind of Tower.
|
protected static MasterBoardTerrain |
getTerrainById(java.lang.String id) |
static java.lang.String |
getTerrainRandomName(MasterBoardTerrain masterBoardTerrain)
Give the name of the random filename to use to generate this terrain,
or null if it's a static Battlelands.
|
java.util.Collection<MasterBoardTerrain> |
getTerrains()
Return a collection of all possible terrains.
|
int |
getTitanImprovementValue()
To obtain the base amount of points needed for Titan improvement.
|
int |
getTitanTeleportValue()
To obtain the amount of points needed for Titan teleport.
|
private void |
handleAcquirable(org.jdom.Element el) |
private void |
handleAlias(org.jdom.Element el) |
private void |
handleTerrain(org.jdom.Element el) |
private static boolean |
isConcreteCreature(java.lang.String name) |
static boolean |
isStartCreature(CreatureType type)
Tell whether given type is in the loaded variant a start creature,
i.e.
|
static int |
numberOfRecruiterNeeded(CreatureType recruiter,
CreatureType recruit,
MasterBoardTerrain terrain,
MasterHex hex)
Give the number of a given recruiters needed to recruit a given
Creature.
|
static void |
setCaretaker(Caretaker caretaker)
set the Caretaker used by the graph
(needed to know what creatures are still available)
|
private static final java.util.logging.Logger LOGGER
public static final java.lang.String Keyword_Anything
public static final java.lang.String Keyword_AnyNonLord
public static final java.lang.String Keyword_Lord
public static final java.lang.String Keyword_DemiLord
public static final java.lang.String Keyword_Special
private int aquirableRecruitmentsValue
private int titanImprove
private int titanTeleport
private static java.util.Map<MasterBoardTerrain,java.util.List<TerrainRecruitLoader.RecruitNumber>> strToRecruits
MasterBoardTerrain
private static java.util.Map<MasterBoardTerrain,java.util.List<TerrainRecruitLoader.StartingNumber>> strToStarters
MasterBoardTerrain
private static java.util.Map<MasterBoardTerrain,java.lang.Boolean> strToBelow
MasterBoardTerrain
private static java.util.Map<MasterBoardTerrain,java.lang.String> strToRnd
MasterBoardTerrain
private static java.util.Map<java.lang.String,MasterBoardTerrain> terrains
private static java.util.List<Variant.AcquirableData> acquirableList
Variant.AcquirableData
private static java.util.Map<java.lang.String,CustomRecruitBase> nameToInstance
private static RecruitGraph graph
private final AllCreatureType creatureTypes
public TerrainRecruitLoader(java.io.InputStream terIS, AllCreatureType creatureTypes)
public static void setCaretaker(Caretaker caretaker)
private static boolean isConcreteCreature(java.lang.String name)
private static void addToGraph(java.util.List<TerrainRecruitLoader.RecruitNumber> rl, MasterBoardTerrain t)
rl
- The list of RecruitNumber to add to the graph.private void handleTerrain(org.jdom.Element el) throws org.jdom.JDOMException
org.jdom.JDOMException
private RecruitingSubTree buildRecruitingSubTree(java.util.List<TerrainRecruitLoader.RecruitNumber> rl, boolean regularRecruit)
private void handleAlias(org.jdom.Element el) throws ParseException
ParseException
private void handleAcquirable(org.jdom.Element el) throws org.jdom.JDOMException, ParseException
org.jdom.JDOMException
ParseException
public java.util.Collection<MasterBoardTerrain> getTerrains()
getTerrains
in interface IVariantInitializer
MasterBoardTerrain
.protected static MasterBoardTerrain getTerrainById(java.lang.String id)
public static ICustomRecruitBase getCustomRecruitBase(java.lang.String specialString)
public static CreatureType[] getStartingCreatures(MasterHex hex)
hex
- The specific Tower considered.CreatureType
public static boolean isStartCreature(CreatureType type)
type
- public static java.lang.String getTerrainRandomName(MasterBoardTerrain masterBoardTerrain)
masterBoardTerrain
- A master board terrain.public static java.util.List<CreatureType> getPossibleRecruits(MasterBoardTerrain terrain, MasterHex hex)
terrain
- The terrain to consider.hex
- The specific hex to consider. It shouldn't be null during
the actual recruiting, but it can be null when doing evaluation (it's
only used for special recruiting in custom variants).CreatureType
public static java.util.List<CreatureType> getPossibleRecruiters(MasterBoardTerrain terrain, MasterHex hex)
terrain
- String representing a terrain.CreatureType
public static int numberOfRecruiterNeeded(CreatureType recruiter, CreatureType recruit, MasterBoardTerrain terrain, MasterHex hex)
recruiter
- The Creature that wish to recruit.recruit
- The Creature that is to be recruited.terrain
- String representing a terrain, in which the
recruiting occurs.CreatureType
public static boolean anonymousRecruitLegal(CreatureType recruit, MasterBoardTerrain terrain, MasterHex hex)
public int getTitanImprovementValue()
getTitanImprovementValue
in interface IVariantInitializer
public int getTitanTeleportValue()
getTitanTeleportValue
in interface IVariantInitializer
public static RecruitGraph getRecruitGraph()
public java.util.List<Variant.AcquirableData> getAcquirablesList()
getAcquirablesList
in interface IVariantInitializer