/** * 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; }
int weapon_mod = weapon.getToHitModifier();
Mockito.when(mockWeaponType.getToHitModifier()).thenReturn(-2); expected = new ToHitData(mockShooter.getCrew().getGunnery(), FireControl.TH_GUNNERY); expected.addModifier(FireControl.TH_MEDIUM_RANGE); mockTarget, mockTargetState, mockWeapon, mockGame)); Mockito.when(mockWeaponType.getToHitModifier()).thenReturn(0);
if (0 != weaponType.getToHitModifier()) { toHit.addModifier(weaponType.getToHitModifier(), TH_WEAPON_MOD);
if (wtype.getToHitModifier() != 0) { toHit.addModifier(wtype.getToHitModifier(), "weapon to-hit modifier"); int nRange = ae.getPosition().distance(target.getPosition()); int[] nRanges = wtype.getRanges(weapon); int modifier = wtype.getToHitModifier(); toHit.addModifier((int) damage, "weapon to-hit modifier"); } else if (wtype.getToHitModifier() != 0) { toHit.addModifier(wtype.getToHitModifier(), "weapon to-hit modifier");