Class BattleArmor

All Implemented Interfaces:
Serializable, BTObject, CombatRole, Deployable, ForceAssignable, InGameObject, ITechnology, ITurnOrdered, PhaseUpdated, RoundUpdated, Targetable, Transporter

public class BattleArmor extends Infantry
This class represents a squad or point of battle armor equipped infantry, sometimes referred to as "Elementals". Much of the behaviour of a battle armor unit is identical to that of an infantry platoon, and is rather different from that of a Mek or Tank. This was originally coded using the legacy programming style of putting constants first in tests so the compiler catches the "= for ==" errors.
See Also:
  • Field Details

    • MANIPULATOR_NONE

      public static final int MANIPULATOR_NONE
      See Also:
    • MANIPULATOR_ARMORED_GLOVE

      public static final int MANIPULATOR_ARMORED_GLOVE
      See Also:
    • MANIPULATOR_BASIC

      public static final int MANIPULATOR_BASIC
      See Also:
    • MANIPULATOR_BASIC_MINE_CLEARANCE

      public static final int MANIPULATOR_BASIC_MINE_CLEARANCE
      See Also:
    • MANIPULATOR_BATTLE

      public static final int MANIPULATOR_BATTLE
      See Also:
    • MANIPULATOR_BATTLE_MAGNET

      public static final int MANIPULATOR_BATTLE_MAGNET
      See Also:
    • MANIPULATOR_BATTLE_VIBRO

      public static final int MANIPULATOR_BATTLE_VIBRO
      See Also:
    • MANIPULATOR_HEAVY_BATTLE

      public static final int MANIPULATOR_HEAVY_BATTLE
      See Also:
    • MANIPULATOR_HEAVY_BATTLE_MAGNET

      public static final int MANIPULATOR_HEAVY_BATTLE_MAGNET
      See Also:
    • MANIPULATOR_HEAVY_BATTLE_VIBRO

      public static final int MANIPULATOR_HEAVY_BATTLE_VIBRO
      See Also:
    • MANIPULATOR_SALVAGE_ARM

      public static final int MANIPULATOR_SALVAGE_ARM
      See Also:
    • MANIPULATOR_CARGO_LIFTER

      public static final int MANIPULATOR_CARGO_LIFTER
      See Also:
    • MANIPULATOR_INDUSTRIAL_DRILL

      public static final int MANIPULATOR_INDUSTRIAL_DRILL
      See Also:
    • MANIPULATOR_TYPE_STRINGS

      public static final String[] MANIPULATOR_TYPE_STRINGS
      A list of the internal names for the different manipulator types. The indices in this collection correspond to the MANIPULATOR defines in BattleArmor. These names should match the internal name for the manipulator's MiscType entry.
    • MANIPULATOR_NAME_STRINGS

      public static final String[] MANIPULATOR_NAME_STRINGS
      A list of the display names for the different manipulator types. The indices in this collection correspond to the MANIPULATOR defines in BattleArmor. These names should match the name for the manipulator's MiscType entry.
    • CHASSIS_TYPE_BIPED

      public static final int CHASSIS_TYPE_BIPED
      See Also:
    • CHASSIS_TYPE_QUAD

      public static final int CHASSIS_TYPE_QUAD
      See Also:
    • myCost

      protected int myCost
      The cost of this unit. This value should be set when the unit's file is read.
    • DISPOSABLE_SRM2_AMMO

      public static final String DISPOSABLE_SRM2_AMMO
      Internal name of the Inner disposable SRM2 ammo pack.
      See Also:
    • DISPOSABLE_NARC_AMMO

      public static final String DISPOSABLE_NARC_AMMO
      Internal name of the disposable NARC ammo pack.
      See Also:
    • MINE_LAUNCHER

      public static final String MINE_LAUNCHER
      The internal name for the Mine Launcher weapon.
      See Also:
    • ADVANCED_ARMOR

      public static final String ADVANCED_ARMOR
      The internal name for advanced.
    • STANDARD_PROTOTYPE

      public static final String STANDARD_PROTOTYPE
      The internal name for standard Prototype.
    • STEALTH_PROTOTYPE

      public static final String STEALTH_PROTOTYPE
      The internal name for stealth Prototype.
    • BASIC_STEALTH_ARMOR

      public static final String BASIC_STEALTH_ARMOR
      The internal name for basic Stealth armor.
    • STANDARD_STEALTH_ARMOR

      public static final String STANDARD_STEALTH_ARMOR
      The internal name for standard Stealth armor.
    • IMPROVED_STEALTH_ARMOR

      public static final String IMPROVED_STEALTH_ARMOR
      The internal name for improved Stealth armor.
    • MIMETIC_ARMOR

      public static final String MIMETIC_ARMOR
      The internal name for Mimetic armor.
    • FIRE_RESISTANT

      public static final String FIRE_RESISTANT
      The internal name for fire-resistant armor.
    • CAMO_SYSTEM

      public static final String CAMO_SYSTEM
      The internal name for Simple Camo equipment.
      See Also:
    • SINGLE_HEX_ECM

      public static final String SINGLE_HEX_ECM
      The internal name for Single-Hex ECM equipment.
      See Also:
    • BA_MAX_MEN

      public static final int BA_MAX_MEN
      /** The maximum number of men in a battle armor squad.
      See Also:
    • LOC_SQUAD

      public static final int LOC_SQUAD
      The location for infantry equipment.
      See Also:
    • LOC_TROOPER_1

      public static final int LOC_TROOPER_1
      See Also:
    • LOC_TROOPER_2

      public static final int LOC_TROOPER_2
      See Also:
    • LOC_TROOPER_3

      public static final int LOC_TROOPER_3
      See Also:
    • LOC_TROOPER_4

      public static final int LOC_TROOPER_4
      See Also:
    • LOC_TROOPER_5

      public static final int LOC_TROOPER_5
      See Also:
    • LOC_TROOPER_6

      public static final int LOC_TROOPER_6
      See Also:
    • MOUNT_LOC_NONE

      public static final int MOUNT_LOC_NONE
      The location for mounted equipment on BA
      See Also:
    • MOUNT_LOC_BODY

      public static final int MOUNT_LOC_BODY
      See Also:
    • MOUNT_LOC_RARM

      public static final int MOUNT_LOC_RARM
      See Also:
    • MOUNT_LOC_LARM

      public static final int MOUNT_LOC_LARM
      See Also:
    • MOUNT_LOC_TURRET

      public static final int MOUNT_LOC_TURRET
      See Also:
    • MOUNT_LOC_NAMES

      public static final String[] MOUNT_LOC_NAMES
    • MOUNT_NUM_LOCS

      public static final int MOUNT_NUM_LOCS
      How many mount locations are possible?
      See Also:
    • TA_BATTLEARMOR

      protected static final TechAdvancement[] TA_BATTLEARMOR
  • Constructor Details

    • BattleArmor

      public BattleArmor()
      Generate a new, blank, battle armor unit. Hopefully, we'll be loaded from somewhere.
  • Method Details

    • getLocationAbbrs

      public String[] getLocationAbbrs()
      Overrides:
      getLocationAbbrs in class Infantry
    • getBaMountLocAbbr

      public String[] getBaMountLocAbbr()
    • getBaMountLocAbbr

      public static String getBaMountLocAbbr(int loc)
    • getLocationNames

      public String[] getLocationNames()
      Overrides:
      getLocationNames in class Infantry
    • locations

      public int locations()
      Returns the number of Troopers in the BattleArmor squad, since locations for BattleArmor correspond to the different suits instead of the actual mount locations for equipment.
      Overrides:
      locations in class Infantry
    • getUnitType

      public int getUnitType()
      Overrides:
      getUnitType in class Infantry
      See Also:
    • exoskeletonTechAdvancement

      public static TechAdvancement exoskeletonTechAdvancement()
    • getConstructionTechAdvancement

      public static TechAdvancement getConstructionTechAdvancement(int weightClass)
    • getConstructionTechAdvancement

      public TechAdvancement getConstructionTechAdvancement()
      Description copied from class: Entity
      return - the base construction option tech advancement
      Overrides:
      getConstructionTechAdvancement in class Infantry
    • getOriginalJumpMP

      public int getOriginalJumpMP()
      Returns this entity's original jumping mp.
      Overrides:
      getOriginalJumpMP in class Entity
    • getWalkMP

      public int getWalkMP(MPCalculationSetting mpCalculationSetting)
      Overrides:
      getWalkMP in class Infantry
    • getRunMP

      public int getRunMP(MPCalculationSetting mpCalculationSetting)
      Overrides:
      getRunMP in class Infantry
    • hasMyomerBooster

      public boolean hasMyomerBooster()
      does this ba mount a myomer booster?
      Returns:
    • getJumpMP

      public int getJumpMP(MPCalculationSetting mpCalculationSetting)
      Overrides:
      getJumpMP in class Infantry
    • getMovementString

      public String getMovementString(EntityMovementType mtype)
      Returns the name of the type of movement used. This is Infantry-specific.
      Overrides:
      getMovementString in class Infantry
    • getMovementAbbr

      public String getMovementAbbr(EntityMovementType mtype)
      Returns the abbreviation of the type of movement used. This is Infantry-specific.
      Overrides:
      getMovementAbbr in class Infantry
    • rollHitLocation

      public HitData rollHitLocation(int table, int side, int aimedLocation, AimingMode aimingMode, int cover)
      Battle Armor units can only get hit in undestroyed troopers.
      Overrides:
      rollHitLocation in class Infantry
    • rollHitLocation

      public HitData rollHitLocation(int side, int aimedLocation, AimingMode aimingMode, boolean isAttackingConvInfantry)
      Battle Armor units can only get hit in undestroyed troopers.
      Parameters:
      isAttackingConvInfantry - Set to true when attacked by CI, as these cannot score TacOps crits
    • rollHitLocation

      public HitData rollHitLocation(int table, int side)
      Description copied from class: Entity
      Rolls up a hit location
      Overrides:
      rollHitLocation in class Infantry
    • getTrooperAtLocation

      public HitData getTrooperAtLocation(HitData hit, Entity transport)
      For level 3 rules, each trooper occupies a specific location precondition: hit is a location covered by BA
      Overrides:
      getTrooperAtLocation in class Entity
    • getTransferLocation

      public HitData getTransferLocation(HitData hit)
      Battle Armor units don't transfer damage.
      Overrides:
      getTransferLocation in class Infantry
    • getArmor

      public int getArmor(int loc, boolean rear)
      Battle Armor units have no armor on their squad location.
      Overrides:
      getArmor in class Entity
      See Also:
    • getOArmor

      public int getOArmor(int loc, boolean rear)
      Battle Armor units have no armor on their squad location.
      Overrides:
      getOArmor in class Entity
      Parameters:
      loc - the location to check.
      rear - if true inspect the rear armor, else check the front.
      See Also:
    • getInternal

      public int getInternal(int loc)
      Battle Armor units have no internals on their squad location.
      Overrides:
      getInternal in class Infantry
      See Also:
    • getOInternal

      public int getOInternal(int loc)
      Battle Armor units have no internals on their squad location.
      Overrides:
      getOInternal in class Infantry
      See Also:
    • getOriginalTrooperCount

      public int getOriginalTrooperCount()
      Overrides:
      getOriginalTrooperCount in class Infantry
      Returns:
      The full original strength of this infantry unit; for conventional infantry, this is the original trooper count, for BA the original squad size.
    • autoSetInternal

      public void autoSetInternal()
      Set the troopers in the unit to the appropriate values.
      Overrides:
      autoSetInternal in class Infantry
    • setInternal

      public void setInternal(int value)
      Set the troopers in the unit to the given values.
    • addEquipment

      public void addEquipment(Mounted<?> mounted, int loc, boolean rearMounted) throws LocationFullException
      Mounts the specified equipment in the specified location.
      Overrides:
      addEquipment in class Infantry
      Throws:
      LocationFullException
    • getNoOfSlots

      protected int[] getNoOfSlots()
      Battle Armor units have as many critical slots as they need to hold their equipment.
      Overrides:
      getNoOfSlots in class Infantry
    • hasHittableCriticals

      public boolean hasHittableCriticals(int loc)
      Trooper's equipment dies when they do.
      Overrides:
      hasHittableCriticals in class Infantry
    • newRound

      public void newRound(int roundNumber)
      Prepare the entity for a new round of action.
      Specified by:
      newRound in interface RoundUpdated
      Overrides:
      newRound in class Infantry
      Parameters:
      roundNumber - the int number of the new round
    • applyDamage

      public void applyDamage()
      Update the unit to reflect damages taken in this phase.
      Overrides:
      applyDamage in class Infantry
    • getShootingStrength

      public int getShootingStrength()
      Get the number of men in the unit (before damage is applied).
      Overrides:
      getShootingStrength in class Infantry
      Returns:
      The number of troopers in the platoon before damage of the current phase is applied.
      See Also:
    • setCost

      public void setCost(int inC)
    • isBurdened

      public boolean isBurdened()
      Determines if the battle armor unit is burdened with un-jettisoned equipment. This can prevent the unit from jumping or using their special Anti-Mek attacks.
      Returns:
      true if the unit hasn't jettisoned its equipment yet, false if it has.
    • canMakeAntiMekAttacks

      public boolean canMakeAntiMekAttacks()
      Overrides:
      canMakeAntiMekAttacks in class Infantry
      Returns:
      True for all infantry that are allowed AM attacks. Mechanized infantry and infantry units with encumbering armor or field guns are not allowed to make AM attacks, while all other infantry are. Note that a conventional infantry unit without Anti-Mek gear (15 kg per trooper) can still make AM attacks but has a fixed 8 AM skill rating.
    • hasDWP

      public boolean hasDWP()
      does this BA have an unjettisoned DWP?
      Returns:
    • canMountDWP

      public boolean canMountDWP()
      Returns true if this BattleArmor can use a detachable weapon pack. A BattleArmor must have 2 or more walking MP and be Medium or heavier to mount DWP. Used in MML!
      Returns:
      True if this BA can use a detachable weapon pack
    • getStealthName

      public String getStealthName()
      Returns the name of the stealth Armor used by the BA. Mostly for MegaMekLab Usage.
      Returns:
      name of the stealth armor.
    • getCamoName

      public String getCamoName()
    • getShortStealthMod

      public int getShortStealthMod()
      Public interface to the BattleArmors short range stealth modifier
      Returns:
      shortStealthMod
    • getMediumStealthMod

      public int getMediumStealthMod()
      Public interface to the BattleArmors medium range stealth modifier
      Returns:
      mediumStealthMod
    • getLongStealthMod

      public int getLongStealthMod()
      Public interface to the BattleArmors long range stealth modifier
      Returns:
      longStealthMod
    • isEligibleForPavementOrRoadBonus

      public boolean isEligibleForPavementOrRoadBonus()
      Description copied from class: Entity
      Tanks and certain other units can get a +1 bonus to MP if their move is entirely on pavement.
      Overrides:
      isEligibleForPavementOrRoadBonus in class Infantry
      Returns:
      true if the Entity gets a movement bonus on pavement
    • isStealthActive

      public boolean isStealthActive()
      Determine if this unit has an active stealth system.

      Sub-classes are encouraged to override this method.

      Overrides:
      isStealthActive in class Entity
      Returns:
      true if this unit has a stealth system that is currently active, false if there is no stealth system or if it is inactive.
    • isMimetic

      public boolean isMimetic()
    • hasCamoSystem

      public boolean hasCamoSystem()
    • isStealthy

      public boolean isStealthy()
      Overrides:
      isStealthy in class Infantry
      Returns:
      True if this infantry has any type of stealth system.
    • getStealthModifier

      public TargetRoll getStealthModifier(int range, Entity ae)
      Determine the stealth modifier for firing at this unit from the given range. If the value supplied for range is not one of the Entity class range constants, an IllegalArgumentException will be thrown.

      Sub-classes are encouraged to override this method.

      Overrides:
      getStealthModifier in class Infantry
      Parameters:
      range - - an int value that must match one of the Compute class range constants.
      ae - - the entity making the attack.
      Returns:
      a TargetRoll value that contains the stealth modifier for the given range.
    • getCost

      public double getCost(CalculationReport calcReport, boolean ignoreAmmo)
      Description copied from class: Entity
      Calculates and returns the C-bill cost of the unit. The parameter ignoreAmmo can be used to include or exclude ("dry cost") the cost of ammunition on the unit. A report for the cost calculation will be written to the given calcReport.
      Overrides:
      getCost in class Infantry
      Parameters:
      calcReport - A CalculationReport to write the report for the cost calculation to
      ignoreAmmo - When true, the cost of ammo on the unit will be excluded from the cost
      Returns:
      The cost in C-Bills of the 'Mek in question.
    • getAlternateCost

      public double getAlternateCost()
      Description copied from class: Infantry
      The alternate cost here is used by MekHQ to create costs that reflect just the cost of equipment. The motive costs here are based on the costs associated with an auto-rifle platoon.
      Overrides:
      getAlternateCost in class Infantry
      Returns:
      An alternative cost that will be added to the MekSummaryCache - at the moment it is primarily used to rework infantry costs for MekHQ, but it could be applied to other unit types as well - defaults to -1, so there is no confusion.
    • hasEiCockpit

      public boolean hasEiCockpit()
      Overrides:
      hasEiCockpit in class Entity
    • setWeightClass

      public void setWeightClass(int inWC)
    • getTrooperWeight

      public double getTrooperWeight()
    • getWeightClass

      public int getWeightClass()
      Overrides:
      getWeightClass in class Entity
    • getTroopers

      public int getTroopers()
    • setTroopers

      public void setTroopers(int troopers)
    • setChassisType

      public void setChassisType(int inCT)
    • getChassisType

      public int getChassisType()
    • canAssaultDrop

      public boolean canAssaultDrop()
      Overrides:
      canAssaultDrop in class Infantry
    • isNuclearHardened

      public boolean isNuclearHardened()
      Description copied from class: Entity
      Checks if the unit is hardened against nuclear strikes.
      Overrides:
      isNuclearHardened in class Infantry
      Returns:
      true if this is a hardened unit.
    • isTrooperActive

      public boolean isTrooperActive(int trooperNum)
    • getNumberActiverTroopers

      public int getNumberActiverTroopers()
    • getRandomTrooper

      public int getRandomTrooper()
    • loadWeapon

      public boolean loadWeapon(WeaponMounted mounted, AmmoMounted mountedAmmo)
      Description copied from class: Entity
      Tries to load the specified weapon with the specified ammo. Returns true if successful, false otherwise.
      Overrides:
      loadWeapon in class Entity
    • loadWeaponWithSameAmmo

      public boolean loadWeaponWithSameAmmo(WeaponMounted mounted, AmmoMounted mountedAmmo)
      Description copied from class: Entity
      Tries to load the specified weapon with the specified ammo. Returns true if successful, false otherwise.
      Overrides:
      loadWeaponWithSameAmmo in class Entity
    • getVibroClaws

      public int getVibroClaws()
      Description copied from class: Entity
      Return how many BA vibroclaws this Entity is equipped with
      Overrides:
      getVibroClaws in class Entity
    • isFireResistant

      public boolean isFireResistant()
      return if this BA has fire resistant armor
      Returns:
    • isReflective

      public boolean isReflective()
      return if this BA has laser reflective armor
      Returns:
    • isReactive

      public boolean isReactive()
      return if this BA has reactive armor
      Returns:
    • hasImprovedSensors

      public boolean hasImprovedSensors()
      return if this BA has improved sensors
      Returns:
    • hasActiveProbe

      public boolean hasActiveProbe()
      return if the BA has any kind of active probe
      Returns:
    • canTransferCriticals

      public boolean canTransferCriticals(int loc)
      Description copied from class: Entity
      Returns true if this location should transfer criticals to the next location inwards. Checks to see that every critical in this location is either already totally destroyed (not just hit) or was never hittable to begin with.
      Overrides:
      canTransferCriticals in class Entity
    • canDoMechanizedBA

      public boolean canDoMechanizedBA()
      can this BattleArmor ride as Mechanized BA?
      Returns:
    • getWeight

      public double getWeight()
      Overrides:
      getWeight in class Infantry
      Returns:
      the tonnage of the Entity, not its weight
    • getAlternateWeight

      public double getAlternateWeight()
    • getWeaponArc

      public int getWeaponArc(int weaponNumber)
      Description copied from class: Entity
      Returns the Rules.ARC that the weapon, specified by number, fires into.
      Overrides:
      getWeaponArc in class Infantry
      Parameters:
      weaponNumber - integer equipment number, index from equipment list
      Returns:
      arc the specified weapon is in
    • isHardenedArmorDamaged

      public boolean isHardenedArmorDamaged(HitData hit)
      Description copied from class: Entity
      do we have a half-hit hardened armor point in the location struck by this?
      Overrides:
      isHardenedArmorDamaged in class Entity
      Returns:
    • setIsExoskeleton

      public void setIsExoskeleton(boolean exoskeleton)
    • isExoskeleton

      public boolean isExoskeleton()
    • isCrippled

      public boolean isCrippled()
      Description copied from class: Entity
      Returns TRUE if the entity meets the requirements for crippling damage as detailed in TW pg 258.
      Overrides:
      isCrippled in class Infantry
      Returns:
      boolean
    • isDmgHeavy

      public boolean isDmgHeavy()
      Description copied from class: Entity
      Returns TRUE if the entity has been heavily damaged.
      Overrides:
      isDmgHeavy in class Infantry
      Returns:
      boolean
    • isDmgModerate

      public boolean isDmgModerate()
      Description copied from class: Entity
      Returns TRUE if the entity has been moderately damaged.
      Overrides:
      isDmgModerate in class Infantry
      Returns:
      boolean
    • isDmgLight

      public boolean isDmgLight()
      Description copied from class: Entity
      Returns TRUE if the entity has been lightly damaged.
      Overrides:
      isDmgLight in class Infantry
      Returns:
      boolean
    • calculateSwarmDamage

      public int calculateSwarmDamage()
    • isConventionalInfantry

      public boolean isConventionalInfantry()
      Description copied from interface: BTObject
      Returns true when this object is a Conventional Infantry unit or of type CI for Alpha Strike. Returns false for any type of unit group even if it is of the right type.
      Specified by:
      isConventionalInfantry in interface BTObject
      Overrides:
      isConventionalInfantry in class Infantry
      Returns:
      True when this is a Conventional Infantry unit
    • getEntityType

      public long getEntityType()
      Overrides:
      getEntityType in class Infantry
    • getMaximumJumpMP

      public int getMaximumJumpMP()
    • getMaximumJumpMP

      public int getMaximumJumpMP(boolean ignoreEquipment)
      Returns the maximum jump MP that this BA can have.
      Parameters:
      ignoreEquipment - If true, bonuses from equipment like partial wing and jump booster are ignored. This is important for construction purposes, where we shouldn't allow the JSpinner to select these values.
      Returns:
    • getMaximumWalkMP

      public int getMaximumWalkMP()
    • getMaximumArmorPoints

      public int getMaximumArmorPoints()
    • setArmorType

      public void setArmorType(int armType)
      Overrides:
      setArmorType in class Entity
    • getArmCrits

      public int getArmCrits()
    • getBodyCrits

      public int getBodyCrits()
    • getTurretCapacity

      public int getTurretCapacity()
    • setTurretSize

      public void setTurretSize(int capacity)
    • hasModularTurretMount

      public boolean hasModularTurretMount()
    • setModularTurret

      public void setModularTurret(boolean modular)
    • getTotalCrits

      public int getTotalCrits()
    • getNumCrits

      public int getNumCrits(int loc)
    • getNumAllowedAntiMekWeapons

      public int getNumAllowedAntiMekWeapons(int loc)
      Returns the number of allowed anti-mek weapons the supplied location can mount. The body can mount a set number of anti-mek weapons and a set number of anti-personnel, however for the arms can mount 2 AP or 1 AP and 1 AM.
      Parameters:
      loc -
      Returns:
    • getNumAllowedAntiPersonnelWeapons

      public int getNumAllowedAntiPersonnelWeapons(int loc, int trooper)
      Returns the number of allowed anti-personnel weapons the location can mount. The body can mount a set number of anti-mek weapons and a set number of anti-personnel, however the arms can mount 2 AP or 1 AP and 1 AM.
      Parameters:
      loc -
      Returns:
    • doomedInExtremeTemp

      public boolean doomedInExtremeTemp()
      Overrides:
      doomedInExtremeTemp in class Infantry
      Returns:
      True when this unit will not survive temperatures outside of -30 to +50 C.
    • doomedInVacuum

      public boolean doomedInVacuum()
      Overrides:
      doomedInVacuum in class Infantry
      Returns:
      True when this unit will not survive vacuum conditions.
    • hasMagneticClamps

      public boolean hasMagneticClamps()
      Convenience method for determining if the BA has magnetic clamps.
      Returns:
      true if the unit has at least one magnetic clamp, else false
    • getLeftManipulatorName

      public String getLeftManipulatorName()
      Returns the EquipmentType internal name for the manipulator mounted in the left arm of this BattleArmor squad.
      Returns:
    • getRightManipulatorName

      public String getRightManipulatorName()
      Returns the EquipmentType internal name for the manipulator mounted in the right arm of this BattleArmor squad.
      Returns:
    • getLeftManipulator

      public Mounted<?> getLeftManipulator()
      Returns the Mounted for the manipulator mounted in the left arm of this BattleArmor squad.
      Returns:
    • getRightManipulator

      public Mounted<?> getRightManipulator()
      Returns the Mounted for the manipulator mounted in the right arm of this BattleArmor squad.
      Returns:
    • isClanExoWithoutHarjel

      public boolean isClanExoWithoutHarjel()
    • setClanExoWithoutHarjel

      public void setClanExoWithoutHarjel(boolean clanExoWithoutHarjel)
    • getLocationDamage

      public String getLocationDamage(int loc)
      Overrides:
      getLocationDamage in class Infantry
    • getSpriteDrawPriority

      public int getSpriteDrawPriority()
      Used to determine the draw priority of different Entity subclasses. This allows different unit types to always be draw above/below other types.
      Overrides:
      getSpriteDrawPriority in class Infantry
      Returns:
    • isFieldWeapon

      protected boolean isFieldWeapon(Mounted<?> equipment)
      Overrides:
      isFieldWeapon in class Infantry
      Returns:
      True when the given Mounted is a Field Gun or Artillery. On BA, always returns false.
    • isBattleArmor

      public boolean isBattleArmor()
      Description copied from interface: BTObject
      Returns true when this object is a BattleArmor unit or of type BA for Alpha Strike. Returns false for any type of unit group even if it is of the right type.
      Returns:
      True when this is a BattleArmor unit
    • firstArmorIndex

      public int firstArmorIndex()
      Overrides:
      firstArmorIndex in class Entity
      Returns:
      The index of the first armored location (skipping vehicle body, et. al.)
    • getGenericBattleValue

      public int getGenericBattleValue()
      Description copied from class: Entity
      Calculates a "generic" Battle Value that is based on the average of all units of this type and tonnage. The purpose of this generic Battle Value is to allow a comparison of this unit's actual BV to that for units of its class. This can be used to balance forces without respect to unit or pilot quality.

      The generic BV values are calculated by a statistical elasticity model based on all data from the MegaMek database.

      Overrides:
      getGenericBattleValue in class Infantry
      Returns:
      The generic Battle value for this unit based on its tonnage and type