@Override protected double updateAVforAmmo(double current_av, AmmoType atype, WeaponType bayWType, int range, int wId) { //AR10 munitions if (atype.getAmmoType() == AmmoType.T_AR10) { if (atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE)) { current_av = 4; } else if (atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK)) { current_av = 3; } else if (atype.hasFlag(AmmoType.F_PEACEMAKER)) { current_av = 1000; } else if (atype.hasFlag(AmmoType.F_SANTA_ANNA)) { current_av = 100; } else { current_av = 2; } } //Nuclear Warheads for non-AR10 missiles if (atype.hasFlag(AmmoType.F_SANTA_ANNA)) { current_av = 100; } else if (atype.hasFlag(AmmoType.F_PEACEMAKER)) { current_av = 1000; } return current_av; }
@Override protected double updateAVforAmmo(double current_av, AmmoType atype, WeaponType bayWType, int range, int wId) { //AR10 munitions if (atype.getAmmoType() == AmmoType.T_AR10) { if (atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE)) { current_av = 4; } else if (atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK)) { current_av = 3; } else if (atype.hasFlag(AmmoType.F_PEACEMAKER)) { current_av = 1000; } else if (atype.hasFlag(AmmoType.F_SANTA_ANNA)) { current_av = 100; } else { current_av = 2; } } //Nuclear Warheads for non-AR10 missiles if (atype.hasFlag(AmmoType.F_SANTA_ANNA)) { current_av = 100; } else if (atype.hasFlag(AmmoType.F_PEACEMAKER)) { current_av = 1000; } return current_av; } /**
if (hasFlag(F_MML_LRM) != ((AmmoType) other).hasFlag(F_MML_LRM)) { return false; if (hasFlag(F_AR10_BARRACUDA) != ((AmmoType) other) .hasFlag(F_AR10_BARRACUDA)) { return false; if (hasFlag(F_AR10_WHITE_SHARK) != ((AmmoType) other) .hasFlag(F_AR10_WHITE_SHARK)) { return false; if (hasFlag(F_AR10_KILLER_WHALE) != ((AmmoType) other) .hasFlag(F_AR10_KILLER_WHALE)) { return false;
for (final Mounted ammo : ammoList) { final AmmoType type = (AmmoType) ammo.getType(); if ((null == mmlLrm) && type.hasFlag(AmmoType.F_MML_LRM)) { mmlLrm = ammo; } else if (null == mmlSrm) {
/** * Calculate the attack value based on range * * @return an <code>int</code> representing the attack value at that range. */ @Override protected int calcAttackValue() { int av = 0; AmmoType atype = (AmmoType) ammo.getType(); if (atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE)) { av = 4; } else if (atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK)) { av = 3; } else { av = 2; } if (bDirect) { av = Math.min(av + (toHit.getMoS() / 3), av * 2); } if (bGlancing) { av = (int) Math.floor(av / 2.0); } av = (int) Math.floor(getBracketingMultiplier() * av); return av; }
if ((atype.getMunitionType() & (AmmoType.M_ARTEMIS_CAPABLE | AmmoType.M_ARTEMIS_V_CAPABLE)) == 0) { return Messages.getString(atype.hasFlag(AmmoType.F_MML_LRM)? "CustomMechDialog.LRM" : "CustomMechDialog.SRM"); //$NON-NLS-1$ //$NON-NLS-2$ } else { return Messages.getString(atype.hasFlag(AmmoType.F_MML_LRM)? "CustomMechDialog.LRMArtemis" : "CustomMechDialog.SRMArtemis"); //$NON-NLS-1$ //$NON-NLS-2$ if (atype.hasFlag(AmmoType.F_CAP_MISSILE)) { String tele = atype.hasFlag(AmmoType.F_TELE_MISSILE)? "-T":""; if (atype.hasFlag(AmmoType.F_PEACEMAKER)) { return Messages.getString("CustomMechDialog.Peacemaker") + tele; //$NON-NLS-1$ } else if (atype.hasFlag(AmmoType.F_SANTA_ANNA)) { return Messages.getString("CustomMechDialog.SantaAnna") + tele; //$NON-NLS-1$ } else if (atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE)) { return Messages.getString("CustomMechDialog.KillerWhale") + tele; //$NON-NLS-1$ } else if (atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK)) { return Messages.getString("CustomMechDialog.WhiteShark") + tele; //$NON-NLS-1$ } else if (atype.hasFlag(AmmoType.F_AR10_BARRACUDA)) { return Messages.getString("CustomMechDialog.Barracuda") + tele; //$NON-NLS-1$
protected int getCritMod(AmmoType atype) { if (atype == null || atype.getAmmoType() == AmmoType.T_PIRANHA) { return 0; } if (atype.getAmmoType() == AmmoType.T_WHITE_SHARK || atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK) // Santa Anna, per IO rules || atype.hasFlag(AmmoType.F_SANTA_ANNA)) { return 9; } else if (atype.getAmmoType() == AmmoType.T_KRAKEN_T || atype.getAmmoType() == AmmoType.T_KRAKENM // Peacemaker, per IO rules || atype.hasFlag(AmmoType.F_PEACEMAKER)) { return 8; } else if (atype.getAmmoType() == AmmoType.T_KILLER_WHALE || atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE) || atype.getAmmoType() == AmmoType.T_MANTA_RAY || atype.getAmmoType() == AmmoType.T_ALAMO) { return 10; } else if (atype.getAmmoType() == AmmoType.T_STINGRAY) { return 12; } else { return 11; } }
protected int getCritMod(AmmoType atype) { if (atype == null || atype.getAmmoType() == AmmoType.T_PIRANHA) { return 0; } if (atype.getAmmoType() == AmmoType.T_WHITE_SHARK || atype.getAmmoType() == AmmoType.T_WHITE_SHARK_T || atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK) // Santa Anna, per IO rules || atype.hasFlag(AmmoType.F_SANTA_ANNA)) { return 9; } else if (atype.getAmmoType() == AmmoType.T_KRAKEN_T || atype.getAmmoType() == AmmoType.T_KRAKENM // Peacemaker, per IO rules || atype.hasFlag(AmmoType.F_PEACEMAKER)) { return 8; } else if (atype.getAmmoType() == AmmoType.T_KILLER_WHALE || atype.getAmmoType() == AmmoType.T_KILLER_WHALE_T || atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE) || atype.getAmmoType() == AmmoType.T_MANTA_RAY || atype.getAmmoType() == AmmoType.T_ALAMO) { return 10; } else if (atype.getAmmoType() == AmmoType.T_STINGRAY) { return 12; } else { return 11; } }
/** * Sets the hotloading parameter for this weapons ammo. * * @param hotload */ public void setHotLoad(boolean hotload) { if (getType() instanceof WeaponType) { Mounted link = getLinked(); if ((link == null) || !(link.getType() instanceof AmmoType)) { return; } if (((AmmoType) link.getType()).hasFlag(AmmoType.F_HOTLOAD)) { link.hotloaded = hotload; } } if (getType() instanceof AmmoType) { if (((AmmoType) getType()).hasFlag(AmmoType.F_HOTLOAD)) { hotloaded = hotload; } } }
|| atype.hasFlag(AmmoType.F_AR10_WHITE_SHARK) || atype.hasFlag(AmmoType.F_SANTA_ANNA)) { return 9; } else if (atype.getAmmoType() == AmmoType.T_KILLER_WHALE || atype.getAmmoType() == AmmoType.T_KILLER_WHALE_T || atype.hasFlag(AmmoType.F_AR10_KILLER_WHALE) || atype.getAmmoType() == AmmoType.T_MANTA_RAY || atype.getAmmoType() == AmmoType.T_ALAMO) { || atype.getAmmoType() == AmmoType.T_KRAKENM || atype.hasFlag(AmmoType.F_PEACEMAKER)) { return 8; } else if (atype.getAmmoType() == AmmoType.T_STINGRAY) {
break; if ((null == mmlLrm) && ammoType.hasFlag(AmmoType.F_MML_LRM)) { mmlLrm = ammo; } else if (null == mmlSrm) {
@Override protected AttackHandler getCorrectHandler(ToHitData toHit, WeaponAttackAction waa, IGame game, Server server) { AmmoType atype = (AmmoType) game.getEntity(waa.getEntityId()) .getEquipment(waa.getWeaponId()).getLinked().getType(); if (atype.hasFlag(AmmoType.F_TELE_MISSILE) && game.getBoard().inSpace()) return new KillerWhaleTHandler(toHit, waa, game, server); return new KillerWhaleHandler(toHit, waa, game, server); } }
@Override protected AttackHandler getCorrectHandler(ToHitData toHit, WeaponAttackAction waa, IGame game, Server server) { AmmoType atype = (AmmoType) game.getEntity(waa.getEntityId()) .getEquipment(waa.getWeaponId()).getLinked().getType(); if (atype.hasFlag(AmmoType.F_TELE_MISSILE) && game.getBoard().inSpace()) { return new TeleMissileHandler(toHit, waa, game, server); } return new KillerWhaleHandler(toHit, waa, game, server); } }
@Override protected AttackHandler getCorrectHandler(ToHitData toHit, WeaponAttackAction waa, IGame game, Server server) { AmmoType atype = (AmmoType) game.getEntity(waa.getEntityId()) .getEquipment(waa.getWeaponId()).getLinked().getType(); if (atype.hasFlag(AmmoType.F_TELE_MISSILE) && game.getBoard().inSpace()) return new BarracudaTHandler(toHit, waa, game, server); return new BarracudaHandler(toHit, waa, game, server); } }
@Override protected AttackHandler getCorrectHandler(ToHitData toHit, WeaponAttackAction waa, IGame game, Server server) { AmmoType atype = (AmmoType) game.getEntity(waa.getEntityId()) .getEquipment(waa.getWeaponId()).getLinked().getType(); if (atype.hasFlag(AmmoType.F_TELE_MISSILE) && game.getBoard().inSpace()) { return new TeleMissileHandler(toHit, waa, game, server); } return new CapitalMissileHandler (toHit, waa, game, server); } }
@Override protected AttackHandler getCorrectHandler(ToHitData toHit, WeaponAttackAction waa, IGame game, Server server) { AmmoType atype = (AmmoType) game.getEntity(waa.getEntityId()) .getEquipment(waa.getWeaponId()).getLinked().getType(); if (atype.hasFlag(AmmoType.F_TELE_MISSILE) && game.getBoard().inSpace()) { return new TeleMissileHandler(toHit, waa, game, server); } return new AR10Handler(toHit, waa, game, server); } }
@Override protected AttackHandler getCorrectHandler(ToHitData toHit, WeaponAttackAction waa, IGame game, Server server) { AmmoType atype = (AmmoType) game.getEntity(waa.getEntityId()) .getEquipment(waa.getWeaponId()).getLinked().getType(); if (atype.hasFlag(AmmoType.F_TELE_MISSILE) && game.getBoard().inSpace()) return new WhiteSharkTHandler(toHit, waa, game, server); return new WhiteSharkHandler(toHit, waa, game, server); } }
public int getMaxRange(Mounted weapon) { if(null != weapon) { if (getAmmoType() == AmmoType.T_ATM) { AmmoType atype = (AmmoType) weapon.getLinked().getType(); if ((atype.getAmmoType() == AmmoType.T_ATM) && (atype.getMunitionType() == AmmoType.M_EXTENDED_RANGE)) { return RANGE_EXT; } else if ((atype.getAmmoType() == AmmoType.T_ATM) && (atype.getMunitionType() == AmmoType.M_HIGH_EXPLOSIVE)) { return RANGE_SHORT; } } if (getAmmoType() == AmmoType.T_MML) { AmmoType atype = (AmmoType) weapon.getLinked().getType(); if (atype.hasFlag(AmmoType.F_MML_LRM) || (getAmmoType() == AmmoType.T_LRM_TORPEDO)) { return RANGE_LONG; } else { return RANGE_SHORT; } } } return maxRange; }
private boolean includeMunition(AmmoType atype) { if (!atype.canAeroUse() || (atype.getAmmoType() != at) || (atype.getRackSize() != rackSize) || ((atype.getTechBase() != techBase) && (atype.getTechBase() != AmmoType.TECH_BASE_ALL) && (techBase != AmmoType.TECH_BASE_ALL)) || !atype.isLegal(game.getOptions().intOption(OptionsConstants.ALLOWED_YEAR), SimpleTechLevel.getGameTechLevel(game), techBase == AmmoType.TECH_BASE_CLAN, false)) { return false; } if (atype.hasFlag(AmmoType.F_NUCLEAR) && !game.getOptions().booleanOption( OptionsConstants.ADVAERORULES_AT2_NUKES)) { return false; } if ((atype.getMunitionType() & AmmoType.M_ARTEMIS_CAPABLE) != 0) { return entity.hasWorkingMisc(MiscType.F_ARTEMIS) || entity.hasWorkingMisc(MiscType.F_ARTEMIS_PROTO); } if ((atype.getMunitionType() & AmmoType.M_ARTEMIS_V_CAPABLE) != 0) { return entity.hasWorkingMisc(MiscType.F_ARTEMIS_V); } return true; }