if (entity.getGame().getOptions().booleanOption(OptionsConstants.ADVAERORULES_AERO_SANITY) && wtype.isCapital()) { avShort *= 10; avMed *= 10; if (wtype.isCapital()) { wShortR.setText("1-12"); //$NON-NLS-1$ } else if (wtype.hasFlag(WeaponType.F_PDBAY)) { if (wtype.isCapital()) { wMedR.setText("13-24"); //$NON-NLS-1$ } else { if (wtype.isCapital()) { wLongR.setText("25-40"); //$NON-NLS-1$ } else { if (wtype.isCapital()) { wExtR.setText("41-50"); //$NON-NLS-1$ } else {
int lrv = 0; int erv = 0; final int multiplier = ((WeaponType) bay.getType()).isCapital() ? 10 : 1; EquipmentType linker = null; final Map<AmmoType, Integer> shotsByAmmoType = bay.getBayAmmo().stream().map(num -> aero.getEquipment(num))
avExt = mult * avExt; if (entity.getGame().getOptions().booleanOption(OptionsConstants.ADVAERORULES_AERO_SANITY) && wtype.isCapital()) { avShort *= 10; avMed *= 10;
public static int getTotalGunnerNeeds(Entity entity) { if (entity instanceof SmallCraft || entity instanceof Jumpship) { int nStandardW = 0; int nCapitalW = 0; for (Mounted m : entity.getTotalWeaponList()) { EquipmentType type = m.getType(); if (type instanceof BayWeapon) { continue; } if (type instanceof WeaponType) { if (((WeaponType) type).isCapital()) { nCapitalW++; } else { nStandardW++; } } } return nCapitalW + (int) Math.ceil(nStandardW / 6.0); } else if (entity instanceof Tank) { return (getFullCrewSize(entity) - 1); } else if (entity instanceof Infantry) { return getFullCrewSize(entity); } else if (entity.getCrew().getCrewType().getGunnerPos() > 0) { //Tripod, QuadVee, or dual cockpit return 1; } return 0; }
/** * 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); }
@Override public boolean isOmniPoddable() { if (type.isOmniFixedOnly()) { return false; } if (type instanceof MiscType) { return type.hasFlag(MiscType.F_MECH_EQUIPMENT) || type.hasFlag(MiscType.F_TANK_EQUIPMENT) || type.hasFlag(MiscType.F_FIGHTER_EQUIPMENT); } else if (type instanceof WeaponType) { return (type.hasFlag(WeaponType.F_MECH_WEAPON) || type.hasFlag(WeaponType.F_TANK_WEAPON) || type.hasFlag(WeaponType.F_AERO_WEAPON)) && !((WeaponType)type).isCapital(); } return true; }
@Override public boolean isOmniPoddable() { if (type.isOmniFixedOnly()) { return false; } if (type instanceof MiscType) { return type.hasFlag(MiscType.F_MECH_EQUIPMENT) || type.hasFlag(MiscType.F_TANK_EQUIPMENT) || type.hasFlag(MiscType.F_FIGHTER_EQUIPMENT); } else if (type instanceof WeaponType) { return (type.hasFlag(WeaponType.F_MECH_WEAPON) || type.hasFlag(WeaponType.F_TANK_WEAPON) || type.hasFlag(WeaponType.F_AERO_WEAPON)) && !((WeaponType)type).isCapital(); } return true; }
|| et.hasFlag(Weapon.F_TANK_WEAPON) || et.hasFlag(WeaponType.F_AERO_WEAPON)) && !((WeaponType) et).isCapital();
/** * 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); }
if(wt.isCapital() || wt.isSubCapital() || wt.hasFlag(WeaponType.F_INFANTRY)
/** * return the first bay of the right type in the right location with enough * damage to spare * * @param wtype * @param loc * @param rearMount * @return */ public Mounted getFirstBay(WeaponType wtype, int loc, boolean rearMount) { int weapDamage = wtype.getRoundShortAV(); if (wtype.isCapital()) { weapDamage *= 10; } for (Mounted m : getWeaponBayList()) { BayWeapon bay = (BayWeapon) m.getType(); int damage = bay.getRoundShortAV() + weapDamage; if ((bay.getAtClass() == wtype.getAtClass()) && (m.getLocation() == loc) && (m.isRearMounted() == rearMount) && (damage <= 700)) { return m; } } return null; }
if (weap.isCapital()) { damage *= 10;
WeaponType wtype = (WeaponType) mWeap.getType(); if (isBay) { compileWeaponBay(oldWeap, wtype.isCapital()); } else {
if (weap.isCapital()) { damage *= 10;
if (weap.isCapital()) { damage *= 10;
if (weap.isCapital()) { damage *= 10;
waa.getAimingMode(), toHit.getCover()); hit.setGeneralDamageType(generalDamageType); hit.setCapital(wtype.isCapital()); hit.setBoxCars(roll == 12); hit.setCapMisCritMod(getCapMisMod());
waa.getAimingMode(), toHit.getCover()); hit.setGeneralDamageType(generalDamageType); hit.setCapital(wtype.isCapital()); hit.setBoxCars(roll == 12); hit.setCapMisCritMod(getCapMisMod());
boolean isCap = wtype.isCapital(); ranges[0][0] = 0; ranges[0][1] = isCap ? 12 : 6;