/** * BattleForce-scale damage for BattleArmor, using cluster hits table based on squad size. * AlphaStrike uses a different method. * @param range - the range in hexes * @param baSquadSize - the number of suits in the squad/point/level i * @return - damage in BattleForce scale */ public double getBattleForceDamage(int range, int baSquadSize) { return Compute.calculateClusterHitTableAmount(7, baSquadSize) * getBattleForceDamage(range); }
protected double getConvInfantryStandardDamage(int range, Infantry inf) { if (inf.getPrimaryWeapon() == null) { int baseDamage = (int)Math.ceil(inf.getDamagePerTrooper() * inf.getShootingStrength()); return Compute.calculateClusterHitTableAmount(7, baseDamage) / 10.0; } else { return 0; } }
@Override public double getBattleForceDamage(int range) { if (range > getLongRange()) { return 0; } double damage = Compute.calculateClusterHitTableAmount(7, getRackSize()) * 2; if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } return damage / 10.0; }
@Override public double getBattleForceDamage(int range, int baSquadSize) { if (range > getLongRange()) { return 0; } double damage = Compute.calculateClusterHitTableAmount(7, getRackSize() * baSquadSize); if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } return damage / 10.0; }
@Override public double getBattleForceDamage(int range) { double damage = 0; if (range <= getLongRange()) { damage = Compute.calculateClusterHitTableAmount(7, getRackSize()) / 10.0; damage *= 1.05; // -1 to hit if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } } return damage; }
/** * non-squad size version for AlphaStrike base damage */ @Override public double getBattleForceDamage(int range) { if (range > getLongRange()) { return 0; } double damage = Compute.calculateClusterHitTableAmount(8, getRackSize()) * 2; if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } return damage / 10.0; }
@Override public double getBattleForceDamage(int range) { double damage = 0; if (range <= getLongRange()) { damage = Compute.calculateClusterHitTableAmount(7, getRackSize()) / 10.0; damage *= 1.05; // -1 to hit if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } } return damage; }
@Override public double getBattleForceDamage(int range, int baSquadSize) { if (range > getLongRange()) { return 0; } double damage = Compute.calculateClusterHitTableAmount(8, getRackSize() * baSquadSize); if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } return damage / 10.0; }
@Override public double getBattleForceDamage(int range, int baSquadSize) { double damage = 0; if (range <= getLongRange()) { damage = Compute.calculateClusterHitTableAmount(7, getDamage() * baSquadSize); damage *= 1.05; // -1 to hit if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } } return damage / 10.0; } }
@Override public double getBattleForceDamage(int range, Mounted fcs) { double damage = 0; if (range > getLongRange()) { return damage; } if (fcs != null && fcs.getType() instanceof MiscType && ((MiscType)fcs.getType()).hasFlag(MiscType.F_APOLLO)) { damage = Compute.calculateClusterHitTableAmount(6, getRackSize()); } else { damage = Compute.calculateClusterHitTableAmount(7, getRackSize()); damage *= 0.95; // +1 to hit } if (range == 0 && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } return damage / 10.0; } }
/** * non-squad size version for AlphaStrike base damage */ @Override public double getBattleForceDamage(int range) { double damage = 0; if (range <= getLongRange()) { damage = Compute.calculateClusterHitTableAmount(7, getDamage()); damage *= 1.05; // -1 to hit if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } } return damage / 10.0; }
@Override public double getBattleForceDamage(int range) { double damage = 0; if (range <= getLongRange()) { int clusterRoll; if (range < BattleForceElement.MEDIUM_RANGE) { clusterRoll = 9; } else if (range < BattleForceElement.LONG_RANGE) { clusterRoll = 7; } else { clusterRoll = 5; } damage = Compute.calculateClusterHitTableAmount(clusterRoll, getRackSize()); if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } } return damage / 10.0; }
@Override public double getBattleForceDamage(int range, Mounted fcs) { int clusterRoll = 7; if (fcs != null && fcs.getType() instanceof MiscType) { if (((MiscType)fcs.getType()).hasFlag(MiscType.F_ARTEMIS)) { clusterRoll = 9; } else if (((MiscType)fcs.getType()).hasFlag(MiscType.F_ARTEMIS_PROTO)) { clusterRoll = 8; } else if (((MiscType)fcs.getType()).hasFlag(MiscType.F_ARTEMIS_V)) { clusterRoll = 10; } } double damage = Compute.calculateClusterHitTableAmount(clusterRoll, getRackSize()); if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } if (range < BattleForceElement.MEDIUM_RANGE) { damage *= 2; } else if (range < BattleForceElement.LONG_RANGE) { damage *= 1.5; } return damage / 10.0; }
@Override public double getBattleForceDamage(int range, Mounted fcs) { if (range > getLongRange()) { return 0; } int clusterRoll = 7; if (fcs != null && fcs.getType() instanceof MiscType) { if (((MiscType)fcs.getType()).hasFlag(MiscType.F_ARTEMIS)) { clusterRoll = 9; } else if (((MiscType)fcs.getType()).hasFlag(MiscType.F_ARTEMIS_PROTO)) { clusterRoll = 8; } else if (((MiscType)fcs.getType()).hasFlag(MiscType.F_ARTEMIS_V)) { clusterRoll = 10; } } double damage = Compute.calculateClusterHitTableAmount(clusterRoll, getRackSize()); if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } return damage / 10.0; }