&& (muniType == AmmoType.M_SEMIGUIDED ||
&& (muniType == AmmoType.M_SEMIGUIDED || muniType == AmmoType.M_SWARM_I || muniType == AmmoType.M_FLARE || muniType == AmmoType.M_FRAGMENTATION ||
    private void setupMunitions() {        GridBagLayout gbl = new GridBagLayout();        panMunitions.setLayout(gbl);        GridBagConstraints gbc = new GridBagConstraints();        int row = 0;        for (Mounted m : entity.getAmmo()) {            AmmoType at = (AmmoType) m.getType();            ArrayList vTypes = new ArrayList();            Vector vAllTypes = AmmoType.getMunitionsFor(at.getAmmoType());            if (vAllTypes == null) {                continue;            }            for (int x = 0, n = vAllTypes.size(); x < n; x++) {                AmmoType atCheck = (AmmoType) vAllTypes.elementAt(x);                boolean bTechMatch = TechConstants.isLegal(entity.getTechLevel(), atCheck.getTechLevel());                                                // allow all lvl2 IS units to use level 1 ammo                // lvl1 IS units don't need to be allowed to use lvl1 ammo,                // because there is no special lvl1 ammo, therefore it doesn't                // need to show up in this display.                if (!bTechMatch && entity.getTechLevel() == TechConstants.T_IS_LEVEL_2 &&                        atCheck.getTechLevel() == TechConstants.T_IS_LEVEL_1) {                    bTechMatch = true;                }                                // if is_eq_limits is unchecked allow l1 guys to use l2 stuff                if (!clientgui.getClient().game.getOptions().booleanOption("is_eq_limits") //$NON-NLS-1$                        && entity.getTechLevel() == TechConstants.T_IS_LEVEL_1                        && atCheck.getTechLevel() == TechConstants.T_IS_LEVEL_2) {                    bTechMatch = true;                }                // Possibly allow level 3 ammos, possibly not.                if (clientgui.getClient().game.getOptions().booleanOption("allow_level_3_ammo")) {                    if (!clientgui.getClient().game.getOptions().booleanOption("is_eq_limits")) {                        if (entity.getTechLevel() == TechConstants.T_CLAN_LEVEL_2                                && atCheck.getTechLevel() == TechConstants.T_CLAN_LEVEL_3) {                            bTechMatch = true;                        }                        if (((entity.getTechLevel() == TechConstants.T_IS_LEVEL_1) || (entity.getTechLevel() == TechConstants.T_IS_LEVEL_2))                                && (atCheck.getTechLevel() == TechConstants.T_IS_LEVEL_3)) {                            bTechMatch = true;                        }                    }                } else if ((atCheck.getTechLevel() == TechConstants.T_IS_LEVEL_3) || (atCheck.getTechLevel() == TechConstants.T_CLAN_LEVEL_3)) {                    bTechMatch = false;                }                                //allow mixed Tech Mechs to use both IS and Clan ammo of any                // level (since mixed tech is always level 3)                if (entity.isMixedTech()) {                    bTechMatch = true;                }                // If clan_ignore_eq_limits is unchecked,                // do NOT allow Clans to use IS-only ammo.                // N.B. play bit-shifting games to allow "incendiary"                //      to be combined to other munition types.                long muniType = atCheck.getMunitionType();                muniType &= ~AmmoType.M_INCENDIARY_LRM;                if (!clientgui.getClient().game.getOptions().booleanOption("clan_ignore_eq_limits") //$NON-NLS-1$                        && entity.isClan()                        && (muniType == AmmoType.M_SEMIGUIDED ||                        muniType == AmmoType.M_THUNDER_AUGMENTED ||                        muniType == AmmoType.M_THUNDER_INFERNO ||                        muniType == AmmoType.M_THUNDER_VIBRABOMB ||                        muniType == AmmoType.M_THUNDER_ACTIVE ||                        muniType == AmmoType.M_INFERNO_IV ||                        muniType == AmmoType.M_VIBRABOMB_IV ||                        muniType == AmmoType.M_LISTEN_KILL ||                        muniType == AmmoType.M_ANTI_TSM)) {                    bTechMatch = false;                }                if (!clientgui.getClient().game.getOptions().booleanOption("minefields") && //$NON-NLS-1$                        AmmoType.canDeliverMinefield(atCheck)) {                    continue;                }                // Only Protos can use Proto-specific ammo                if (atCheck.hasFlag(AmmoType.F_PROTOMECH) &&                        !(entity instanceof Protomech)) {                    continue;                }                // When dealing with machine guns, Protos can only                //  use proto-specific machine gun ammo                if (entity instanceof Protomech &&                        atCheck.hasFlag(AmmoType.F_MG) &&                        !atCheck.hasFlag(AmmoType.F_PROTOMECH)) {                    continue;                }                // Battle Armor ammo can't be selected at all.                // All other ammo types need to match on rack size and tech.                if (bTechMatch &&                        atCheck.getRackSize() == at.getRackSize() &&                        !atCheck.hasFlag(AmmoType.F_BATTLEARMOR) &&                        atCheck.getTonnage(entity) == at.getTonnage(entity)) {                    vTypes.add(atCheck);                }            }            if (vTypes.size() < 2 && !client.game.getOptions().booleanOption("lobby_ammo_dump")) { //$NON-NLS-1$                continue;            }            gbc.gridy = row++;            // Protomechs need special choice panels.            MunitionChoicePanel mcp;            if (entity instanceof Protomech) {                mcp = new ProtomechMunitionChoicePanel(m, vTypes);            } else {                mcp = new MunitionChoicePanel(m, vTypes);            }            gbl.setConstraints(mcp, gbc);            panMunitions.add(mcp);            m_vMunitions.add(mcp);        }    }