/** * Method computes how much damage a dial down weapon has done * * @param weapon * @param wtype * @param range * @return new damage */ public static int dialDownDamage(Mounted weapon, WeaponType wtype, int range) { int toReturn = wtype.getDamage(range); if (!wtype.hasModes()) { return toReturn; } String damage = weapon.curMode().getName(); // Vehicle flamers have damage and heat modes so lets make sure this is // an actual dial down Damage. if ((damage.trim().toLowerCase().indexOf("damage") == 0) && (damage.trim().length() > 6)) { toReturn = Integer.parseInt(damage.substring(6).trim()); } return Math.min(wtype.getDamage(range), toReturn); }
/** * * adjustment factor on attack value for fighter squadrons */ protected double getBracketingMultiplier() { double mult = 1.0; if (wtype.hasModes() && weapon.curMode().equals("Bracket 80%")) { mult = 0.8; } if (wtype.hasModes() && weapon.curMode().equals("Bracket 60%")) { mult = 0.6; } if (wtype.hasModes() && weapon.curMode().equals("Bracket 40%")) { mult = 0.4; } return mult; }
/** * Method computes how much heat a dial down weapon generates * * @param weapon * @param wtype * @param range * @return Heat, minimum of 1; */ public static int dialDownHeat(Mounted weapon, WeaponType wtype, int range) { int toReturn = wtype.getHeat(); if (!wtype.hasModes()) { return toReturn; } int damage = wtype.getDamage(range); int newDamage = Compute.dialDownDamage(weapon, wtype, range); toReturn = Math.max(1, wtype.getHeat() - Math.max(0, damage - newDamage)); return toReturn; }
} else if (wtype.hasFlag(WeaponType.F_PDBAY)) { if (wtype.hasModes() && weapon.curMode().equals("Point Defense")) { wShortR.setText("1"); //$NON-NLS-1$ } else {
&& wtype.hasModes() && (unitDisplay.getClientGUI() != null) && unitDisplay.getClientGUI().getClient().getGame().getOptions().booleanOption( OptionsConstants.ADVCOMBAT_TACOPS_ENERGY_WEAPONS)) { } else if (wtype.hasFlag(WeaponType.F_PDBAY)) { if (wtype.hasModes() && mounted.curMode().equals("Point Defense")) { shortR = 1; wShortR.setText("1"); //$NON-NLS-1$
if (wtype.hasModes()) { wn.append(' ');
&& wtype.hasModes()) { toReturn = Compute.dialDownDamage(weapon, wtype, nRange);
&& wtype.hasModes()) { toReturn = Compute.dialDownDamage(weapon, wtype, nRange);
&& wtype.hasModes()) { toReturn = Compute.dialDownDamage(weapon, wtype, nRange);
&& wtype.hasModes()) { toReturn = Compute.dialDownDamage(weapon, wtype, nRange);
&& wtype.hasModes()) || wtype.hasFlag(WeaponType.F_BOMBAST_LASER)) { toReturn = Compute.dialDownDamage(weapon, wtype, nRange);
&& wtype.hasModes() && weapon.curMode().equals("Field Inhibitor OFF")) { int rollTarget = 0;
|| (wtype.getAmmoType() == AmmoType.T_AC_IMP) || (wtype.getAmmoType() == AmmoType.T_PAC)) && wtype.hasModes() && (ignoreMode || mode.equals("Rapid"))) { nShots = 2;
hit.setSingleAV(attackValue); boolean isIndirect = wtype.hasModes() && weapon.curMode().equals("Indirect");
if (wtype.hasFlag(WeaponType.F_ENERGY) && wtype.hasModes()) { heat = Compute.dialDownHeat(this, wtype);
if (hasModes() && weapon.curMode().equals("Point Defense")) { sRange = 1; } else {
if (wtype.hasModes() && (weapon.curMode().equals("Bracket 80%") || weapon.curMode().equals("Bracket 60%") || weapon.curMode().equals("Bracket 40%")) if (wtype.hasModes() && weapon.curMode().equals("Bracket 80%") && (weapon.getBayWeapons().size() < 2)) { return "not enough weapons to bracket at this level"; if (wtype.hasModes() && weapon.curMode().equals("Bracket 60%") && (weapon.getBayWeapons().size() < 3)) { return "not enough weapons to bracket at this level"; if (wtype.hasModes() && weapon.curMode().equals("Bracket 40%") && (weapon.getBayWeapons().size() < 4)) { return "not enough weapons to bracket at this level"; } else if (wtype.hasModes() && weapon.curMode().equals("Point Defense")) { return "Weapon in Point Defense Mode"; return "no working MGs remaining"; if (wtype.hasFlag(WeaponType.F_MGA) && wtype.hasModes() && weapon.curMode().equals("Off")) { return "MG Array is disabled"; } else if (wtype.hasFlag(WeaponType.F_MG)) { if ((wtype instanceof GaussWeapon) && wtype.hasModes() && weapon.curMode().equals("Powered Down")) { return "Weapon is powered down";
bMekTankStealthActive = ae.isStealthActive(); boolean isIndirect = (wtype.hasModes() && weapon.curMode().equals("Indirect")); if (wtype.hasModes() && weapon.curMode().equals("AAA")) { aaaMod = 2; if (wtype.hasModes() && weapon.curMode().equals("AAA") && te.isLargeCraft()) { toHit.addModifier(+1, "AAA mode at large craft"); if (wtype.hasModes() && weapon.curMode().equals("Bracket 80%")) { toHit.addModifier(-1, "Bracketing 80%"); if (wtype.hasModes() && weapon.curMode().equals("Bracket 60%")) { toHit.addModifier(-2, "Bracketing 60%"); if (wtype.hasModes() && weapon.curMode().equals("Bracket 40%")) { toHit.addModifier(-3, "Bracketing 40%");