private void setupMediumLaser() { Mockito.when(mockWeaponType.getHeat()).thenReturn(3); Mockito.when(mockWeaponType.getDamage()).thenReturn(5); Mockito.when(mockWeaponType.getShortRange()).thenReturn(3); Mockito.when(mockWeaponType.getMediumRange()).thenReturn(6); Mockito.when(mockWeaponType.getLongRange()).thenReturn(9); Mockito.when(mockWeapon.getDesc()).thenReturn("Medium Laser"); }
private void setupPPC() { Mockito.when(mockWeaponType.getHeat()).thenReturn(10); Mockito.when(mockWeaponType.getDamage()).thenReturn(10); Mockito.when(mockWeaponType.getShortRange()).thenReturn(6); Mockito.when(mockWeaponType.getMediumRange()).thenReturn(12); Mockito.when(mockWeaponType.getLongRange()).thenReturn(18); Mockito.when(mockWeapon.getDesc()).thenReturn("PPC"); }
private void setupCGR() { Mockito.when(mockWeaponType.getHeat()).thenReturn(1); Mockito.when(mockWeaponType.getDamage()).thenReturn(15); Mockito.when(mockWeaponType.getShortRange()).thenReturn(7); Mockito.when(mockWeaponType.getMediumRange()).thenReturn(15); Mockito.when(mockWeaponType.getLongRange()).thenReturn(22); Mockito.when(mockWeapon.getDesc()).thenReturn("Gauss Rifle (C)"); }
/** * 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; }
if (EquipmentType.get(ms.getEquipmentNames().get(i)) instanceof WeaponType) { final WeaponType weapon = (WeaponType)EquipmentType.get(ms.getEquipmentNames().get(i)); if (weapon.getLongRange() < range) { continue;
&& !en.isBattleForceRearLocation(m.getLocation())) .map(m -> (WeaponType)m.getType()) .filter(w -> w.getLongRange() >= MEDIUM_RANGE) .mapToInt(WeaponType::getHeat) .sum();
/** * One gunner is required for each capital weapon and each six standard scale weapons, rounding up * @return The vessel's minimum gunner requirements. */ public static int requiredGunners(Jumpship vessel) { int capitalWeapons = 0; int stdWeapons = 0; for (Mounted m : vessel.getTotalWeaponList()) { if ((m.getType() instanceof BayWeapon) || (((WeaponType)m.getType()).getLongRange() <= 1)) { continue; } if (m.getType().hasFlag(WeaponType.F_MASS_DRIVER)) { capitalWeapons += 10; } else if (((WeaponType)m.getType()).isCapital() || (m.getType() instanceof ScreenLauncherWeapon)) { capitalWeapons++; } else { stdWeapons++; } } return capitalWeapons + (int)Math.ceil(stdWeapons / 6.0); }
return wp.getMediumRange(); case COL_LONG: return wp.getLongRange(); case COL_LEVEL: return TechConstants.getSimpleLevelName(TechConstants
/** * One gunner is required for each capital weapon and each six standard scale weapons, rounding up * @return The vessel's minimum gunner requirements. */ public static int requiredGunners(Aero aero) { if (!aero.isLargeCraft() && !aero.hasETypeFlag(Entity.ETYPE_SMALL_CRAFT)) { return 0; } int capitalWeapons = 0; int stdWeapons = 0; for (Mounted m : aero.getTotalWeaponList()) { if (m.getType() instanceof BayWeapon) { continue; } if ((((WeaponType)m.getType()).getLongRange() <= 1) // MML range depends on ammo, and getLongRange() returns 0 && (((WeaponType) m.getType()).getAmmoType() != AmmoType.T_MML)) { continue; } if (((WeaponType)m.getType()).isCapital() || (m.getType() instanceof ScreenLauncherWeapon)) { capitalWeapons++; } else { stdWeapons++; } } return capitalWeapons + (int)Math.ceil(stdWeapons / 6.0); }
} else if (nRange <= wtype.getMediumRange()) { } else if (nRange <= wtype.getLongRange()) { toReturn--;
} else if (nRange <= wtype.getMediumRange()) { } else if (nRange <= wtype.getLongRange()) { toReturn--;
protected boolean hasViableWeapons() { int totalDmg = 0; boolean hasRangeSixPlus = false; List<Mounted> weaponList = getTotalWeaponList(); for (Mounted weapon : weaponList) { if (weapon.isCrippled()) { continue; } WeaponType type = (WeaponType) weapon.getType(); if (type.getDamage() == WeaponType.DAMAGE_VARIABLE) { } else if (type.getDamage() == WeaponType.DAMAGE_ARTILLERY) { return true; } else if (type.getDamage() == WeaponType.DAMAGE_BY_CLUSTERTABLE) { totalDmg += type.getRackSize(); } else if (type.getDamage() == WeaponType.DAMAGE_SPECIAL) { if (type instanceof ISBAPopUpMineLauncher) { totalDmg += 4; } } else { totalDmg += type.getDamage(); } if (type.getLongRange() >= 6) { hasRangeSixPlus = true; } } return (totalDmg >= 5) || hasRangeSixPlus; }
} else if (nRange <= wtype.getMediumRange()) { } else if (nRange <= wtype.getLongRange()) { toReturn--;
} else if (nRange <= wtype.getMediumRange()) { } else if (nRange <= wtype.getLongRange()) { toReturn--;
} else if (nRange <= wtype.getMediumRange()) { } else if (nRange <= wtype.getLongRange()) { toReturn--;
} else if (nRange <= wtype.getMediumRange()) { } else if (nRange <= wtype.getLongRange()) { toReturn--;
public int getMaxWeaponRange() { // Aeros on the ground map must shoot along their flight path, giving // them effectively 0 range if (isAero() && isAirborne() && game.getBoard().onGround()) { return 0; } int maxRange = 0; if ((ETYPE_MECH == getEntityType()) || (ETYPE_INFANTRY == getEntityType()) || (ETYPE_PROTOMECH == getEntityType())) { // account for physical attacks. maxRange = 1; } for (Mounted weapon : getWeaponList()) { if (!weapon.isReady()) { continue; } WeaponType type = (WeaponType) weapon.getType(); int range = (game.getOptions().booleanOption( OptionsConstants.ADVCOMBAT_TACOPS_RANGE) ? type.getExtremeRange() : type.getLongRange()); if (range > maxRange) { maxRange = range; } } return maxRange; }
WeaponType weaponType = (WeaponType) bayWeapon.getType(); int maxRange = game.getOptions().booleanOption(OptionsConstants.ADVCOMBAT_TACOPS_RANGE) ? weaponType.getExtremeRange() : weaponType.getLongRange(); int targetDistance = getShooter().getPosition().distance(getTarget().getPosition());
&& (wtype.getName() != "ATM 12")) { if (getEntity(entNum).getC3Master() != null) { av_range += ((wtype.getLongRange()) * 1.25); } else { av_range += wtype.getLongRange();
int sRange = getShortRange(); int mRange = getMediumRange(); int lRange = getLongRange(); int eRange = getExtremeRange(); boolean hasLoadedAmmo = (weapon.getLinked() != null);