use of megamek.common.weapons.autocannons.LBXACWeapon in project megameklab by MegaMek.
the class DropTargetCriticalList method mousePressed.
public void mousePressed(MouseEvent e) {
if (buildView) {
if (e.getButton() == MouseEvent.BUTTON2) {
setSelectedIndex(locationToIndex(e.getPoint()));
removeCrit();
} else if (e.getButton() == MouseEvent.BUTTON3) {
setSelectedIndex(locationToIndex(e.getPoint()));
if ((e.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) != 0) {
removeCrit();
return;
}
int location = getCritLocation();
JPopupMenu popup = new JPopupMenu();
CriticalSlot cs = getCrit();
final Mounted mount = getMounted();
if ((e.getModifiersEx() & InputEvent.ALT_DOWN_MASK) != 0) {
changeWeaponFacing(!mount.isRearMounted());
return;
}
if (mount != null && (e.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) != 0) {
changeOmniMounting(!mount.isOmniPodMounted());
return;
}
if (mount != null && !((getUnit().getEntityType() & Entity.ETYPE_QUADVEE) == Entity.ETYPE_QUADVEE && mount.getType() instanceof MiscType && mount.getType().hasFlag(MiscType.F_TRACKS))) {
JMenuItem info;
if (!UnitUtil.isFixedLocationSpreadEquipment(mount.getType())) {
popup.setAutoscrolls(true);
info = new JMenuItem("Remove " + mount.getName());
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
removeCrit();
}
});
popup.add(info);
}
info = new JMenuItem("Delete " + mount.getName());
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
removeMount();
}
});
if (!((getUnit() instanceof BattleArmor) && UnitUtil.isFixedLocationSpreadEquipment(mount.getType()))) {
popup.add(info);
}
// Allow making this a sort weapon
if ((mount.getType() instanceof WeaponType) && !mount.isSquadSupportWeapon() && mount.getLocation() == BattleArmor.LOC_SQUAD && (getUnit() instanceof BattleArmor) && ((BattleArmor) getUnit()).getChassisType() != BattleArmor.CHASSIS_TYPE_QUAD) {
info = new JMenuItem("Mount as squad support weapon");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mount.setSquadSupportWeapon(true);
if (refresh != null) {
refresh.refreshAll();
}
}
});
popup.add(info);
}
// Adding ammo as a squad support mount is slightly different
if ((mount.getType() instanceof AmmoType) && !mount.getType().hasFlag(WeaponType.F_MISSILE) && !mount.isSquadSupportWeapon() && mount.getLocation() == BattleArmor.LOC_SQUAD && (getUnit() instanceof BattleArmor) && ((BattleArmor) getUnit()).getChassisType() != BattleArmor.CHASSIS_TYPE_QUAD) {
boolean enabled = false;
for (Mounted weapon : getUnit().getWeaponList()) {
WeaponType wtype = (WeaponType) weapon.getType();
if (weapon.isSquadSupportWeapon() && AmmoType.isAmmoValid(mount, wtype)) {
enabled = true;
}
}
info = new JMenuItem("Mount as squad support weapon");
info.setEnabled(enabled);
info.setToolTipText("Ammo can only be squad mounted along " + "with a weapon that uses it");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mount.setSquadSupportWeapon(true);
if (refresh != null) {
refresh.refreshAll();
}
}
});
popup.add(info);
}
// Allow removing squad support weapon
if (mount.isSquadSupportWeapon()) {
info = new JMenuItem("Remove squad support weapon mount");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mount.setSquadSupportWeapon(false);
// squad support weapon
for (Mounted ammo : getUnit().getAmmo()) {
ammo.setSquadSupportWeapon(false);
}
if (refresh != null) {
refresh.refreshAll();
}
}
});
popup.add(info);
}
// Right-clicked on a DWP that has an attached weapon
if (mount.getType().hasFlag(MiscType.F_DETACHABLE_WEAPON_PACK) && mount.getLinked() != null) {
info = new JMenuItem("Remove attached weapon");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Mounted attached = mount.getLinked();
attached.setDWPMounted(false);
mount.setLinked(null);
mount.setLinkedBy(null);
attached.setLinked(null);
attached.setLinkedBy(null);
if (refresh != null) {
refresh.refreshAll();
}
}
});
popup.add(info);
}
// Right-clicked on a AP Mount that has an attached weapon
if (mount.getType().hasFlag(MiscType.F_AP_MOUNT) && mount.getLinked() != null) {
info = new JMenuItem("Remove attached weapon");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Mounted attached = mount.getLinked();
attached.setAPMMounted(false);
mount.setLinked(null);
mount.setLinkedBy(null);
attached.setLinked(null);
attached.setLinkedBy(null);
if (refresh != null) {
refresh.refreshAll();
}
}
});
popup.add(info);
}
if ((mount.getLocation() != Mech.LOC_LARM) && (mount.getLocation() != Mech.LOC_RARM)) {
if (mount.getType() instanceof WeaponType) {
if (getUnit().hasWorkingMisc(MiscType.F_QUAD_TURRET, -1, mount.getLocation()) || getUnit().hasWorkingMisc(MiscType.F_SHOULDER_TURRET, -1, mount.getLocation()) || (getUnit().hasWorkingMisc(MiscType.F_HEAD_TURRET, -1, Mech.LOC_CT) && (mount.getLocation() == Mech.LOC_HEAD))) {
if (!mount.isMechTurretMounted()) {
info = new JMenuItem("Mount " + mount.getName() + " in Turret");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
changeTurretMount(true);
}
});
popup.add(info);
} else {
info = new JMenuItem("Remove " + mount.getName() + " from Turret");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
changeTurretMount(false);
}
});
popup.add(info);
}
}
}
if (!(getUnit() instanceof BattleArmor) && ((mount.getType() instanceof WeaponType) || ((mount.getType() instanceof MiscType) && mount.getType().hasFlag(MiscType.F_LIFTHOIST)))) {
if (!mount.isRearMounted()) {
info = new JMenuItem("Make " + mount.getName() + " Rear Facing");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
changeWeaponFacing(true);
}
});
popup.add(info);
} else {
info = new JMenuItem("Make " + mount.getName() + " Forward Facing");
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
changeWeaponFacing(false);
}
});
popup.add(info);
}
}
}
// Allow number of shots selection
if ((getUnit() instanceof BattleArmor) && mount.getType() instanceof AmmoType) {
AmmoType at = (AmmoType) mount.getType();
int maxNumShots = TestBattleArmor.NUM_SHOTS_PER_CRIT;
int stepSize = 1;
if (at.getAmmoType() == AmmoType.T_BA_TUBE) {
maxNumShots = TestBattleArmor.NUM_SHOTS_PER_CRIT_TA;
stepSize = 2;
}
for (int i = at.getShots(); i <= maxNumShots; i += stepSize) {
if (i == mount.getBaseShotsLeft()) {
continue;
}
info = new JMenuItem("Set Shots: " + i);
final int shots = i;
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mount.setShotsLeft(shots);
if (refresh != null) {
refresh.refreshAll();
}
}
});
popup.add(info);
}
}
if (getUnit().isOmni() && !mount.getType().isOmniFixedOnly()) {
if (mount.isOmniPodMounted()) {
info = new JMenuItem("Change to fixed mount");
info.addActionListener(ev -> changeOmniMounting(false));
popup.add(info);
} else if (UnitUtil.canPodMount(getUnit(), mount)) {
info = new JMenuItem("Change to pod mount");
info.addActionListener(ev -> changeOmniMounting(true));
popup.add(info);
}
}
}
if ((getUnit() instanceof BipedMech || getUnit() instanceof TripodMech) && ((location == Mech.LOC_LARM) || (location == Mech.LOC_RARM))) {
boolean canHaveLowerArm = true;
if (getUnit().isOmni()) {
int numCrits = getUnit().getNumberOfCriticals(location);
for (int slot = 0; slot < numCrits; slot++) {
CriticalSlot crit = getUnit().getCritical(location, slot);
if (crit == null) {
continue;
}
if (crit.getType() == CriticalSlot.TYPE_SYSTEM) {
continue;
}
Mounted m = crit.getMount();
if ((m.getType() instanceof GaussWeapon) || (m.getType() instanceof ACWeapon) || (m.getType() instanceof UACWeapon) || (m.getType() instanceof LBXACWeapon) || (m.getType() instanceof PPCWeapon)) {
canHaveLowerArm = false;
}
}
}
popup.addSeparator();
popup.setAutoscrolls(true);
if (canHaveLowerArm && ((getUnit().getCritical(location, 3) == null) || (getUnit().getCritical(location, 3).getType() != CriticalSlot.TYPE_SYSTEM))) {
JMenuItem info = new JMenuItem("Add Hand");
info.setActionCommand(Integer.toString(location));
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addHand(Integer.parseInt(e.getActionCommand()));
}
});
popup.add(info);
} else if ((getUnit().getCritical(location, 3) != null) && (getUnit().getCritical(location, 3).getType() == CriticalSlot.TYPE_SYSTEM)) {
JMenuItem info = new JMenuItem("Remove Hand");
info.setActionCommand(Integer.toString(location));
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
removeHand(Integer.parseInt(e.getActionCommand()));
}
});
popup.add(info);
}
if (canHaveLowerArm && ((getUnit().getCritical(location, 2) == null) || (getUnit().getCritical(location, 2).getType() != CriticalSlot.TYPE_SYSTEM))) {
JMenuItem info = new JMenuItem("Add Lower Arm");
info.setActionCommand(Integer.toString(location));
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addArm(Integer.parseInt(e.getActionCommand()));
}
});
popup.add(info);
} else if ((getUnit().getCritical(location, 2) != null) && (getUnit().getCritical(location, 2).getType() == CriticalSlot.TYPE_SYSTEM)) {
JMenuItem info = new JMenuItem("Remove Lower Arm");
info.setActionCommand(Integer.toString(location));
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
removeArm(Integer.parseInt(e.getActionCommand()));
}
});
popup.add(info);
}
}
if (UnitUtil.isArmorable(cs) && !(getUnit() instanceof BattleArmor) && eSource.getTechManager().isLegal(Entity.getArmoredComponentTechAdvancement())) {
popup.addSeparator();
if (cs.isArmored()) {
JMenuItem info = new JMenuItem("Remove Armoring");
info.setActionCommand(Integer.toString(location));
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
changeArmoring();
}
});
popup.add(info);
} else if (!(getUnit() instanceof Mech && ((Mech) getUnit()).isSuperHeavy())) {
JMenuItem info = new JMenuItem("Add Armoring");
info.setActionCommand(Integer.toString(location));
info.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
changeArmoring();
}
});
popup.add(info);
}
}
if (popup.getComponentCount() > 0) {
popup.show(this, e.getX(), e.getY());
}
}
}
}
use of megamek.common.weapons.autocannons.LBXACWeapon in project megameklab by MegaMek.
the class StringUtils method getEquipmentInfo.
public static String getEquipmentInfo(Aero unit, Mounted mount) {
String info = "";
if (mount.getType() instanceof WeaponType) {
WeaponType weapon = (WeaponType) mount.getType();
if (weapon instanceof InfantryWeapon) {
info = Integer.toString(weapon.getDamage());
if (weapon.hasFlag(WeaponType.F_BALLISTIC)) {
info += " (B)";
} else if (weapon.hasFlag(WeaponType.F_ENERGY)) {
info += " (E)";
} else if (weapon.hasFlag(WeaponType.F_MISSILE)) {
info += " (M)";
} else if (weapon.hasFlag(WeaponType.F_INF_POINT_BLANK)) {
info += " (P)";
}
if (weapon.hasFlag(WeaponType.F_INF_BURST)) {
info += "B";
}
if (weapon.hasFlag(WeaponType.F_INF_AA)) {
info += "A";
}
if (weapon.hasFlag(WeaponType.F_FLAMER)) {
info += "F";
}
if (weapon.hasFlag(WeaponType.F_INF_NONPENETRATING)) {
info += "N";
}
} else if (weapon.hasFlag(WeaponType.F_MGA)) {
info = "[T]";
} else if (weapon instanceof ISC3M) {
info = "[E]";
} else if (weapon.getDamage() < 0) {
if (weapon instanceof SRMWeapon) {
info = "[M,C]";
} else if ((weapon instanceof LRMWeapon) || (weapon instanceof MekMortarWeapon)) {
info = "[M,C,S]";
} else if ((weapon instanceof MRMWeapon) || (weapon instanceof RLWeapon)) {
info = "[M,C]";
} else if ((weapon instanceof ISSnubNosePPC) || (weapon instanceof ISBombastLaser)) {
info = "[DE,V]";
} else if (weapon instanceof ISVariableSpeedPulseLaserSmall) {
info = "[P,V]";
} else if (weapon instanceof ISVariableSpeedPulseLaserMedium) {
info = "[P,V]";
} else if (weapon instanceof ISVariableSpeedPulseLaserLarge) {
info = "[P,V]";
} else if (weapon instanceof ISHGaussRifle) {
info = "[DB,X]";
} else if (weapon instanceof ISPlasmaRifle) {
info = "[DE,H,AI]";
} else if (weapon instanceof CLPlasmaCannon) {
info = "[DE,H,AI]";
} else if (weapon instanceof HAGWeapon) {
info = "[C,F]";
} else if (weapon instanceof ArtilleryWeapon) {
info = "[AE,S,F]";
} else if (weapon instanceof ArtilleryCannonWeapon) {
info = "[DB,AE]";
} else if (weapon instanceof ThunderBoltWeapon) {
info = "[M]";
} else if (weapon instanceof NarcWeapon) {
info = "[M]";
} else {
info = "";
}
} else if (weapon instanceof UACWeapon) {
info = "[DB,R/C]";
} else {
info = " [";
if (weapon.hasFlag(WeaponType.F_BALLISTIC)) {
info += "DB,";
}
if (UnitUtil.isAMS(weapon) || (weapon instanceof BPodWeapon)) {
info += "PD,";
} else if (weapon.hasFlag(WeaponType.F_PULSE)) {
info += "P,";
} else if (weapon.hasFlag(WeaponType.F_ENERGY)) {
info += "DE,";
}
if ((weapon instanceof LBXACWeapon) || (weapon instanceof ISSilverBulletGauss)) {
info += "C/F,";
}
if (UnitUtil.hasSwitchableAmmo(weapon)) {
info += "S,";
}
if ((weapon instanceof MGWeapon) || (weapon instanceof BPodWeapon) || (weapon instanceof CLERPulseLaserSmall) || (weapon instanceof ISXPulseLaserSmall) || (weapon instanceof ISPulseLaserSmall) || (weapon instanceof CLPulseLaserSmall) || (weapon instanceof CLPulseLaserMicro)) {
info += "AI,";
}
if (weapon instanceof FlamerWeapon) {
info += "H,AI,";
}
if (weapon.isExplosive(mount) && !(weapon instanceof ACWeapon) && (!(weapon instanceof PPCWeapon) || ((mount.getLinkedBy() != null) && mount.getLinkedBy().getType().hasFlag(MiscType.F_PPC_CAPACITOR)))) {
info += "X,";
}
if (weapon.hasFlag(WeaponType.F_ONESHOT)) {
info += "OS,";
}
info = info.substring(0, info.length() - 1) + "]";
}
} else {
info = "[E]";
}
return info;
}
use of megamek.common.weapons.autocannons.LBXACWeapon in project megameklab by MegaMek.
the class StringUtils method getEquipmentInfo.
public static String getEquipmentInfo(Entity unit, Mounted mount) {
String info = "";
if (mount.getType() instanceof WeaponType) {
WeaponType weapon = (WeaponType) mount.getType();
if (weapon instanceof InfantryWeapon) {
info = Integer.toString(weapon.getDamage());
if (weapon.hasFlag(WeaponType.F_BALLISTIC)) {
info += " (B)";
} else if (weapon.hasFlag(WeaponType.F_ENERGY)) {
info += " (E)";
} else if (weapon.hasFlag(WeaponType.F_MISSILE)) {
info += " (M)";
} else if (weapon.hasFlag(WeaponType.F_INF_POINT_BLANK)) {
info += " (P)";
}
if (weapon.hasFlag(WeaponType.F_INF_BURST)) {
info += "B";
}
if (weapon.hasFlag(WeaponType.F_INF_AA)) {
info += "A";
}
if (weapon.hasFlag(WeaponType.F_FLAMER)) {
info += "F";
}
if (weapon.hasFlag(WeaponType.F_INF_NONPENETRATING)) {
info += "N";
}
} else if (weapon.hasFlag(WeaponType.F_MGA)) {
info = " [T]";
} else if ((weapon instanceof ISC3M) || (weapon instanceof TAGWeapon)) {
info = " [E]";
} else if (weapon instanceof ISC3RemoteSensorLauncher) {
info = " [M,E]";
} else if (weapon.getDamage() < 0) {
if (weapon instanceof StreakSRMWeapon) {
info = "2/Msl [M,C]";
} else if ((weapon instanceof SRMWeapon) || (weapon instanceof MekMortarWeapon)) {
info = "2/Msl [M,C,S]";
} else if ((weapon instanceof StreakLRMWeapon)) {
info = "1/Msl [M,C]";
} else if ((weapon instanceof LRMWeapon)) {
info = "1/Msl [M,C,S]";
} else if ((weapon instanceof MRMWeapon) || (weapon instanceof RLWeapon)) {
info = "1/Msl [M,C]";
} else if (weapon instanceof ISSnubNosePPC) {
info = "10/8/5 [DE,V]";
} else if ((weapon instanceof ISBALaserVSPSmall) || (weapon instanceof ISBALaserVSPSmall)) {
info = "5/4/3 [P,V]";
} else if ((weapon instanceof ISBALaserVSPMedium) || (weapon instanceof ISBALaserVSPMedium)) {
info = "9/7/5 [P,V]";
} else if (weapon instanceof ISVariableSpeedPulseLaserLarge) {
info = "11/9/7 [P,V]";
} else if (weapon instanceof ISHGaussRifle) {
info = "25/20/10 [DB,X]";
} else if (weapon instanceof ISPlasmaRifle) {
info = "10 [DE,H,AI]";
} else if (weapon instanceof CLPlasmaCannon) {
info = "[DE,H,AI]";
} else if (weapon instanceof HAGWeapon) {
info = Integer.toString(weapon.getRackSize());
info += " [C,F,X]";
} else if (weapon instanceof ArtilleryWeapon) {
info = Integer.toString(weapon.getRackSize());
info += "[AE,S,F]";
} else if (weapon instanceof ArtilleryCannonWeapon) {
info = Integer.toString(weapon.getRackSize());
info += "[DB,AE]";
} else if (weapon instanceof ThunderBoltWeapon) {
if (weapon instanceof ISThunderBolt5) {
info = "5";
} else if (weapon instanceof ISThunderBolt10) {
info = "10";
} else if (weapon instanceof ISThunderBolt15) {
info = "15";
} else if (weapon instanceof ISThunderBolt20) {
info = "20";
}
info += "[M]";
} else if (weapon instanceof NarcWeapon) {
info = "[M]";
} else if (weapon instanceof ISBAPopUpMineLauncher) {
info = "4";
} else {
info = Integer.toString(weapon.getRackSize());
}
} else if (weapon instanceof UACWeapon) {
info = Integer.toString(weapon.getDamage());
info += "/Sht [DB,R/C]";
} else if ((weapon instanceof ISVehicularGrenadeLauncher) || (weapon instanceof CLVehicularGrenadeLauncher)) {
info = "[AE,OS]";
} else {
if (!UnitUtil.isAMS(weapon)) {
info = Integer.toString(weapon.getDamage());
}
info += " [";
if (weapon.hasFlag(WeaponType.F_BALLISTIC) && !UnitUtil.isAMS(weapon)) {
info += "DB,";
}
if (UnitUtil.isAMS(weapon) || (weapon.hasFlag(WeaponType.F_B_POD))) {
info += "PD,";
} else if (weapon.hasFlag(WeaponType.F_PULSE)) {
info += "P,";
} else if (weapon.hasFlag(WeaponType.F_ENERGY) || weapon.hasFlag(WeaponType.F_PLASMA)) {
info += "DE,";
}
if (weapon instanceof ISBombastLaser) {
info += "V,";
}
if ((weapon instanceof LBXACWeapon) || (weapon instanceof ISSilverBulletGauss)) {
info += "C/F/";
}
if (weapon instanceof CLBALBX) {
info += "C,F,";
}
if (UnitUtil.hasSwitchableAmmo(weapon)) {
info += "S,";
}
if (weapon.hasFlag(WeaponType.F_FLAMER) || weapon.hasFlag(WeaponType.F_PLASMA)) {
info += "H,";
}
if ((weapon instanceof MGWeapon) || (weapon instanceof BPodWeapon) || (weapon instanceof CLERPulseLaserSmall) || (weapon instanceof CLBAERPulseLaserSmall) || (weapon instanceof ISXPulseLaserSmall) || (weapon instanceof ISPulseLaserSmall) || (weapon instanceof ISBALaserPulseSmall) || (weapon instanceof CLPulseLaserSmall) || (weapon instanceof CLBAPulseLaserSmall) || (weapon instanceof CLPulseLaserMicro) || (weapon instanceof CLBAPulseLaserMicro) || (weapon.hasFlag(WeaponType.F_FLAMER) || (weapon.hasFlag(WeaponType.F_BURST_FIRE)))) {
info += "AI,";
}
if (weapon.isExplosive(mount) && !(weapon instanceof ACWeapon) && (!(weapon instanceof PPCWeapon) || ((mount.getLinkedBy() != null) && mount.getLinkedBy().getType().hasFlag(MiscType.F_PPC_CAPACITOR)))) {
info += "X,";
}
if (weapon.hasFlag(WeaponType.F_ONESHOT)) {
info += "OS,";
}
info = info.substring(0, info.length() - 1) + "]";
}
} else if ((mount.getType() instanceof MiscType) && (mount.getType().hasFlag(MiscType.F_CLUB) || mount.getType().hasFlag(MiscType.F_HAND_WEAPON))) {
if (mount.getType().hasSubType(MiscType.S_VIBRO_LARGE) || mount.getType().hasSubType(MiscType.S_VIBRO_MEDIUM) || mount.getType().hasSubType(MiscType.S_VIBRO_SMALL)) {
// manually set vibros to active to get correct damage
mount.setMode(1);
}
if (mount.getType().hasSubType(MiscType.S_CLAW) || mount.getType().hasSubType(MiscType.S_CLAW_THB)) {
info = Integer.toString((int) Math.ceil(unit.getWeight() / 7.0));
} else {
info = Integer.toString(ClubAttackAction.getDamageFor(unit, mount, false));
}
} else if ((mount.getType() instanceof MiscType) && (mount.getType().hasFlag(MiscType.F_AP_POD))) {
info = "[PD,OS,AI]";
} else if ((mount.getType() instanceof MiscType) && mount.getType().hasFlag(MiscType.F_TALON)) {
info = Integer.toString(KickAttackAction.getDamageFor(unit, Mech.LOC_LLEG, false));
} else {
info = " [E]";
}
return info;
}
use of megamek.common.weapons.autocannons.LBXACWeapon in project megameklab by MegaMek.
the class UnitUtil method removeOmniArmActuators.
public static void removeOmniArmActuators(Mech mech) {
if ((mech instanceof BipedMech) || (mech instanceof TripodMech)) {
boolean leftACGaussPPC = false;
boolean rightACGaussPPC = false;
for (Mounted weapon : mech.getWeaponList()) {
if ((weapon.getLocation() == Mech.LOC_LARM) && ((weapon.getType() instanceof ACWeapon) || (weapon.getType() instanceof GaussWeapon) || (weapon.getType() instanceof LBXACWeapon) || (weapon.getType() instanceof UACWeapon) || (weapon.getType() instanceof PPCWeapon))) {
leftACGaussPPC = true;
}
if ((weapon.getLocation() == Mech.LOC_RARM) && ((weapon.getType() instanceof ACWeapon) || (weapon.getType() instanceof GaussWeapon) || (weapon.getType() instanceof LBXACWeapon) || (weapon.getType() instanceof UACWeapon) || (weapon.getType() instanceof PPCWeapon))) {
rightACGaussPPC = true;
}
}
if (leftACGaussPPC) {
removeArm(mech, Mech.LOC_LARM);
UnitUtil.compactCriticals(mech, Mech.LOC_LARM);
}
if (rightACGaussPPC) {
removeArm(mech, Mech.LOC_RARM);
UnitUtil.compactCriticals(mech, Mech.LOC_RARM);
}
}
}
Aggregations