public double adjustBattleForceDamageForMinRange(double damage) { return damage * (12 - getMinimumRange()) / 12.0; }
if (wtype.getMinimumRange() > 0) { wMinR.setText(Integer.toString(wtype.getMinimumRange())); } else { wMinR.setText("---"); //$NON-NLS-1$
@Override protected int calcDamagePerHit() { AmmoType atype = (AmmoType) ammo.getType(); double toReturn = atype.getDamagePerShot(); int minRange; if (ae.isAirborne()) { minRange = wtype.getATRanges()[RangeType.RANGE_MINIMUM]; } else { minRange = wtype.getMinimumRange(); } if ((nRange <= minRange) && !weapon.isHotLoaded()) { toReturn /= 2; toReturn = Math.floor(toReturn); } if ((target instanceof Infantry) && !(target instanceof BattleArmor)) { toReturn = Compute.directBlowInfantryDamage(toReturn, bDirect ? toHit.getMoS() / 3 : 0, wtype.getInfantryDamageClass(), ((Infantry) target).isMechanized(), toHit.getThruBldg() != null, ae.getId(), calcDmgPerHitReport); } else if (bDirect) { toReturn = Math.min(toReturn + (toHit.getMoS() / 3), toReturn * 2); } return (int) Math.ceil(toReturn); }
/** * Damage calculation for BattleForce and AlphaStrike * @param range - the range in hexes * @return - damage in BattleForce scale */ public double getBattleForceDamage(int range) { double damage = 0; if (range <= getLongRange()) { //Variable damage weapons that cannot reach into the BF long range band use LR damage for the MR band if (getDamage() == DAMAGE_VARIABLE && range == BattleForceElement.MEDIUM_RANGE && getLongRange() < BattleForceElement.LONG_RANGE) { damage = getDamage(BattleForceElement.LONG_RANGE); } else { damage = getDamage(range); } if (range == BattleForceElement.SHORT_RANGE && getMinimumRange() > 0) { damage = adjustBattleForceDamageForMinRange(damage); } if (getToHitModifier() != 0) { damage -= damage * getToHitModifier() * 0.05; } } return damage / 10.0; }
range_brackets[RANGE_LONG] = weapon.getLongRange(); range_brackets[3] = weapon.getExtremeRange(); range_brackets[4] = weapon.getMinimumRange();
Mockito.when(mockWeaponType.getAmmoType()).thenReturn(AmmoType.T_AC); Mockito.when(mockWeaponType.getRanges(Mockito.eq(mockWeapon))).thenReturn(new int[]{3, 6, 12, 18, 24}); Mockito.when(mockWeaponType.getMinimumRange()).thenReturn(3); Mockito.when(mockWeaponType.hasFlag(Mockito.eq(WeaponType.F_DIRECT_FIRE))).thenReturn(true);
&& (nRange <= wtype.getMinimumRange())) { rackSize = rackSize / 2 + rackSize % 2; minRangeELRMAttack = true;
public int[] getRanges(Mounted weapon) { int minRange = getMinimumRange(); int sRange = getShortRange(); int mRange = getMediumRange();
int weapon_min_range = weapon.getMinimumRange();
toHit.addModifier(TH_EXTREME_RANGE); } else if (RangeType.RANGE_MINIMUM == range) { toHit.addModifier((weaponType.getMinimumRange() - distance) + 1, TH_MINIMUM_RANGE);