diff --git a/MekHQ/src/mekhq/campaign/unit/Unit.java b/MekHQ/src/mekhq/campaign/unit/Unit.java index 67413d8fde..69a48d6a5f 100644 --- a/MekHQ/src/mekhq/campaign/unit/Unit.java +++ b/MekHQ/src/mekhq/campaign/unit/Unit.java @@ -3766,7 +3766,9 @@ public void resetPilotAndEntity() { // Clear any stale game data that may somehow have gotten set incorrectly getCampaign().clearGameData(entity); // Set up SPAs, Implants, Edge, etc - if (getCampaign().getCampaignOptions().isUseAbilities()) { + if (getCampaign().getCampaignOptions().isUseAbilities() + || getCampaign().getCampaignOptions().isUseEdge() + || getCampaign().getCampaignOptions().isUseImplants()) { PilotOptions options = new PilotOptions(); // MegaMek-style as it is sent to MegaMek // This double enumeration is annoying to work with for crew-served units. // Get the option names while we enumerate so they can be used later @@ -3776,9 +3778,14 @@ public void resetPilotAndEntity() { IOptionGroup group = i.nextElement(); for (Enumeration j = group.getOptions(); j.hasMoreElements();) { IOption option = j.nextElement(); - if (group.getKey().equals(PersonnelOptions.MD_ADVANTAGES)) { + if (getCampaign().getCampaignOptions().isUseImplants() + && group.getKey().equals(PersonnelOptions.MD_ADVANTAGES)) { cyberOptionNames.add(option.getName()); - } else { + } else if (getCampaign().getCampaignOptions().isUseEdge() + && group.getKey().equals(PersonnelOptions.EDGE_ADVANTAGES)) { + optionNames.add(option.getName()); + } else if(getCampaign().getCampaignOptions().isUseAbilities() + && !group.getKey().equals(PersonnelOptions.EDGE_ADVANTAGES)) { optionNames.add(option.getName()); } }