Package megamek.client.generator
Class TeamLoadOutGenerator
java.lang.Object
megamek.client.generator.TeamLoadOutGenerator
Notes: check out - RATGenerator.java - ForceDescriptor.java for era-based search examples
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected booleanprotected intprotected Stringprotected booleanprotected GameOptionsprotected intprotected SimpleTechLevelstatic final Stringprotected booleanprotected booleanstatic floatstatic Properties
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic voidapplyWeightsToMunitionTree(megamek.client.generator.MunitionWeightCollection mwc, MunitionTree mt) Turn a selection of the computed munition weights into imperatives to load in the MunitionTreestatic DoublecastPropertyDouble(String field, Double defValue) Use values from the Properties file defined in TeamLoadOutGenerator class if available; else use provided defaultstatic intcastPropertyInt(String field, int defValue) booleancheckLegality(AmmoType aType, String faction, String techBase, boolean mixedTech) Calculates legality of ammo types given a faction, tech base (IS/CL), mixed tech, and the instance's already-set year, tech level, and option for showing extinct equipment.protected voidclampAmmoShots(Entity entity, float binFillRatio) Applies specified ammo fill ratio to all binsgenerateExternalOrdnance(int bombUnits, boolean airOnly, boolean isPirate, int quality, int year, String faction, String techBase, boolean mixedTech) Randomly generate a set of external ordnance up to the number of indicated bomb units.static MunitionTreegenerateMunitionTree(ReconfigurationParameters reconfigurationParameters, ArrayList<Entity> entities, String defaultSettingsFile) static MunitionTreegenerateMunitionTree(ReconfigurationParameters reconfigurationParameters, ArrayList<Entity> ownTeamEntities, String defaultSettingsFile, megamek.client.generator.MunitionWeightCollection munitionWeightCollection) Generate the list of desired ammo load-outs for this team.generateParameters(ArrayList<Entity> ownEntities, String ownFaction, Team t) static ReconfigurationParametersgenerateParameters(ArrayList<Entity> ownTeamEntities, ArrayList<Entity> etEntities, String friendlyFaction, ArrayList<String> enemyFactions, boolean blind, boolean darkEnvironment, boolean groundMap, boolean spaceEnvironment, int rating, float fillRatio) static ReconfigurationParametersgenerateParameters(Game g, GameOptions gOpts, ArrayList<Entity> ownEntities, String friendlyFaction, ArrayList<Entity> enemyEntities, ArrayList<String> enemyFactions, int rating, float fillRatio) static ReconfigurationParametersgenerateParameters(Game g, GameOptions gOpts, ArrayList<Entity> ownEntities, String friendlyFaction, Team team) Create the parameters that will determine how to configure ammo loadouts for this teamgenerateParameters(Team team) static MunitionTreevoidpopulateAeroBombs(List<Entity> entityList, int year, boolean hasGroundTargets, int quality, boolean isPirate, String faction) Helper function to load bombs onto a random portion of units that can carry themvoidrandomizeBotTeamConfiguration(Team team, String faction) Configure Bot Team with all munitions randomizedvoidreconfigureAero(Entity entity, MunitionTree munitionTree, String faction) TODO: implement in 0.50.1 with other new errata changes This method should mirror reconfigureEntity but with more restrictions based on the types of alternate munitions allowed by Aerospace rules.voidreconfigureEntities(ArrayList<Entity> entities, String faction, MunitionTree mt, ReconfigurationParameters reconfigurationParameters) More generic reconfiguration function that acts on sets of units, not teamsvoidreconfigureEntity(Entity e, MunitionTree mt, String faction) Wrapper that assumes full bins, mostly for testingvoidreconfigureEntity(Entity entity, MunitionTree mt, String faction, float binFillRatio) Method to apply a MunitionTree to a specific unit.voidreconfigureTeam(Team team, String faction, String adfFile) Wrapper to load a file of preset munition imperativesvoidsetTrueRandom(boolean value) voidvoidupdateOptionValues(GameOptions gameOpts) 
- 
Field Details- 
LOAD_OUT_SETTINGS_PATH
- 
weightProperties
- 
UNSET_FILL_RATIOpublic static float UNSET_FILL_RATIO
- 
AP_MUNITIONS
- 
FLAK_MUNITIONS
- 
ACCURATE_MUNITIONS
- 
HIGH_POWER_MUNITIONS
- 
ANTI_INF_MUNITIONS
- 
ANTI_BA_MUNITIONS
- 
HEAT_MUNITIONS
- 
ILLUMINATION_MUNITIONS
- 
UTILITY_MUNITIONS
- 
GUIDED_MUNITIONS
- 
TAG_GUIDED_MUNITIONS
- 
NARC_GUIDED_MUNITIONS
- 
SEEKING_MUNITIONS
- 
AMMO_REDUCING_MUNITIONS
- 
TYPE_LIST
- 
TYPE_MAP
- 
gameOptions
- 
allowedYearprotected int allowedYear
- 
gameTechLevelprotected int gameTechLevel
- 
legalLevel
- 
eraBasedTechLevelprotected boolean eraBasedTechLevel
- 
advAeroRulesprotected boolean advAeroRules
- 
showExtinctprotected boolean showExtinct
- 
trueRandomprotected boolean trueRandom
- 
defaultBotMunitionsFile
 
- 
- 
Constructor Details- 
TeamLoadOutGenerator
 
- 
- 
Method Details- 
updateOptionValuespublic void updateOptionValues()
- 
updateOptionValues
- 
checkLegalityCalculates legality of ammo types given a faction, tech base (IS/CL), mixed tech, and the instance's already-set year, tech level, and option for showing extinct equipment.- Parameters:
- aType- the AmmoType of the munition under consideration. q.v.
- faction- MM-style faction code, per factions.xml and FactionRecord keys
- techBase- either 'IS' or 'CL', used for clan boolean check.
- mixedTech- makes munitions checks more lenient by allowing faction to access both IS and CL tech bases.
- Returns:
- boolean true if legal for combination of inputs, false otherwise. Determines if an AmmoType is loaded.
 
- 
castPropertyDoubleUse values from the Properties file defined in TeamLoadOutGenerator class if available; else use provided default- Parameters:
- field- Field name in property file
- defValue- Default value to use
- Returns:
- Double read value or default
 
- 
castPropertyInt
- 
setTrueRandompublic void setTrueRandom(boolean value) 
- 
generateParameters
- 
generateParameterspublic ReconfigurationParameters generateParameters(ArrayList<Entity> ownEntities, String ownFaction, Team t) 
- 
generateParameterspublic static ReconfigurationParameters generateParameters(Game g, GameOptions gOpts, ArrayList<Entity> ownEntities, String friendlyFaction, Team team) Create the parameters that will determine how to configure ammo loadouts for this team- Parameters:
- g-- GameObject
- gOpts-- GameOptionsObject
- ownEntities-- EntityList of own entities
- friendlyFaction- Friendly Faction Name
- team-- TeamObject
- Returns:
- ReconfigurationParameters with information about enemy and friendly forces
 
- 
generateParameterspublic static ReconfigurationParameters generateParameters(Game g, GameOptions gOpts, ArrayList<Entity> ownEntities, String friendlyFaction, ArrayList<Entity> enemyEntities, ArrayList<String> enemyFactions, int rating, float fillRatio) 
- 
generateParameters
- 
generateMunitionTreepublic static MunitionTree generateMunitionTree(ReconfigurationParameters reconfigurationParameters, ArrayList<Entity> entities, String defaultSettingsFile) 
- 
generateMunitionTreepublic static MunitionTree generateMunitionTree(ReconfigurationParameters reconfigurationParameters, ArrayList<Entity> ownTeamEntities, String defaultSettingsFile, megamek.client.generator.MunitionWeightCollection munitionWeightCollection) Generate the list of desired ammo load-outs for this team. TODO: implement generateDetailedMunitionTree with more complex breakdowns per unit type NOTE: if sub-classing this generator, should only need to override this method.- Parameters:
- reconfigurationParameters-- ReconfigurationParametersObject
- defaultSettingsFile- File name to settings file.
- Returns:
- generated MunitionTree with imperatives for each weapon type
 
- 
applyWeightsToMunitionTreepublic static void applyWeightsToMunitionTree(megamek.client.generator.MunitionWeightCollection mwc, MunitionTree mt) Turn a selection of the computed munition weights into imperatives to load in the MunitionTree- Parameters:
- mt-- MunitionTreeObject
- mwc-- MunitionWeightCollectionObject
 
- 
reconfigureTeamWrapper to load a file of preset munition imperatives- Parameters:
- team-- TeamObject
- faction- Related Faction
- adfFile- Munitions File.
 
- 
reconfigureEntitiespublic void reconfigureEntities(ArrayList<Entity> entities, String faction, MunitionTree mt, ReconfigurationParameters reconfigurationParameters) More generic reconfiguration function that acts on sets of units, not teams- Parameters:
- entities- ArrayList of entities, including ground and air units
- faction- String code for entities' main faction
- mt- MunitionTree defining all applicable load out imperatives
 
- 
randomizeBotTeamConfigurationConfigure Bot Team with all munitions randomized- Parameters:
- team-- TeamObject
- faction- Related Faction to team
 
- 
generateRandomizedMT
- 
reconfigureEntityWrapper that assumes full bins, mostly for testing- Parameters:
- e-- Entitywith Ammo Bins
- mt-- MunitionTreeAmmo used
- faction- Related Faction
 
- 
reconfigureEntityMethod to apply a MunitionTree to a specific unit. Main application logic- Parameters:
- entity-- Entitywith Ammo Bins
- mt-- MunitionTreeAmmo used
- faction- Related Faction
- binFillRatio- float setting the max fill rate for all bins in this entity (mostly for Pirates)
 
- 
clampAmmoShotsApplies specified ammo fill ratio to all bins- Parameters:
- entity-- EntityUnit tow work with.
- binFillRatio- How full to make bins.
 
- 
reconfigureAeroTODO: implement in 0.50.1 with other new errata changes This method should mirror reconfigureEntity but with more restrictions based on the types of alternate munitions allowed by Aerospace rules.- Parameters:
- entity-- EntityUnit to work with.
- munitionTree-- MunitionTreeAmmo Tree
- faction- Related Faction
 
- 
populateAeroBombspublic void populateAeroBombs(List<Entity> entityList, int year, boolean hasGroundTargets, int quality, boolean isPirate, String faction) Helper function to load bombs onto a random portion of units that can carry them- Parameters:
- entityList- The list of entities to process
- hasGroundTargets- true to select air-to-ground ordnance, false for air-to-air only
- quality- IUnitRating enum for force quality (A/A* through F)
- isPirate- true to use specific pirate ordnance loadouts
 
- 
generateExternalOrdnancepublic BombLoadout generateExternalOrdnance(int bombUnits, boolean airOnly, boolean isPirate, int quality, int year, String faction, String techBase, boolean mixedTech) Randomly generate a set of external ordnance up to the number of indicated bomb units. Lower rated forces are more likely to get simpler types (HE and rockets). Because TAG is only useful as one-per-fighter, it should be handled elsewhere.- Parameters:
- bombUnits- how many bomb units to generate, some types count as more than one unit so returned counts may be lower than this but never higher
- airOnly- true to only select air-to-air ordnance
- isPirate- true if force is pirate, specific low-tech/high chaos selections
- quality- force rating to work with
- year- current year, for tech filter
- Returns:
- BombLoadoutof integers, with each element being a bomb count using BombUnit enums as the lookup e.g. [BombUnit.HE] will get the number of HE bombs.
 
 
-