Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Education Module Handler for Injured Personnel #4563

Merged
merged 4 commits into from
Aug 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 37 additions & 42 deletions MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -1622,67 +1622,62 @@ protected Optional<JPopupMenu> createPopupMenu() {
//endregion Awards Menu

//region Education Menu
// TODO remove this once we have the Personnel Histories module
// this tells mhq that all characters over 16 have completed high school.
// this helps grandfather in existing campaign personnel.
if ((person.getAge(gui.getCampaign().getLocalDate()) >= 16) && (EducationLevel.parseToInt(person.getEduHighestEducation()) < 1)) {
person.setEduHighestEducation(EducationLevel.HIGH_SCHOOL);
}

if (gui.getCampaign().getCampaignOptions().isUseEducationModule()) {
JMenu academyMenu = new JMenu(resources.getString("eduEducation.text"));

// we use 'campaign' a lot here, so let's store it, so we don't have to re-call it every time
Campaign campaign = gui.getCampaign();

if (StaticChecks.areAllActive(selected)) {
// this next block preps variables for use by the menu & tooltip
List<String> academySetNames = AcademyFactory.getInstance().getAllSetNames();
Collections.sort(academySetNames);

// this filters out any academy sets that are disabled in Campaign Options,
// or not applicable for the current campaign faction
if (academySetNames.contains("Local Academies")) {
if (!campaign.getCampaignOptions().isEnableLocalAcademies()) {
academySetNames.remove("Local Academies");
if (Arrays.stream(selected).noneMatch(prospectiveStudent -> person.needsFixing())) {
// this next block preps variables for use by the menu & tooltip
List<String> academySetNames = AcademyFactory.getInstance().getAllSetNames();
Collections.sort(academySetNames);

// this filters out any academy sets that are disabled in Campaign Options,
// or not applicable for the current campaign faction
if (academySetNames.contains("Local Academies")) {
if (!campaign.getCampaignOptions().isEnableLocalAcademies()) {
academySetNames.remove("Local Academies");
}
}
}

if (academySetNames.contains("Prestigious Academies")) {
if (!campaign.getCampaignOptions().isEnablePrestigiousAcademies()) {
academySetNames.remove("Prestigious Academies");
if (academySetNames.contains("Prestigious Academies")) {
if (!campaign.getCampaignOptions().isEnablePrestigiousAcademies()) {
academySetNames.remove("Prestigious Academies");
}
}
}

if (academySetNames.contains("Unit Education")) {
if (!campaign.getCampaignOptions().isEnableUnitEducation()) {
academySetNames.remove("Unit Education");
if (academySetNames.contains("Unit Education")) {
if (!campaign.getCampaignOptions().isEnableUnitEducation()) {
academySetNames.remove("Unit Education");
}
}
}

// We then start processing the remaining academy sets
for (String setName : academySetNames) {
JMenu setAcademyMenu = new JMenu(setName);
// We then start processing the remaining academy sets
for (String setName : academySetNames) {
JMenu setAcademyMenu = new JMenu(setName);

// we filter each academy into one of these three categories
JMenu civilianMenu = new JMenu(resources.getString("eduCivilian.text"));
JMenu militaryMenu = new JMenu(resources.getString("eduMilitary.text"));
// we filter each academy into one of these three categories
JMenu civilianMenu = new JMenu(resources.getString("eduCivilian.text"));
JMenu militaryMenu = new JMenu(resources.getString("eduMilitary.text"));

setAcademyMenu.add(civilianMenu);
setAcademyMenu.add(militaryMenu);
setAcademyMenu.add(civilianMenu);
setAcademyMenu.add(militaryMenu);

List<Academy> academiesOfSet = AcademyFactory.getInstance().getAllAcademiesForSet(setName);
Collections.sort(academiesOfSet);
List<Academy> academiesOfSet = AcademyFactory.getInstance().getAllAcademiesForSet(setName);
Collections.sort(academiesOfSet);

for (Academy academy : academiesOfSet) {
// time to start filtering the academies
if (oneSelected) {
buildEducationMenusSingleton(campaign, person, academy, militaryMenu, civilianMenu);
} else {
buildEducationMenusMassEnroll(campaign, Arrays.asList(selected), academy, militaryMenu, civilianMenu);
for (Academy academy : academiesOfSet) {
// time to start filtering the academies
if (oneSelected) {
buildEducationMenusSingleton(campaign, person, academy, militaryMenu, civilianMenu);
} else {
buildEducationMenusMassEnroll(campaign, Arrays.asList(selected), academy, militaryMenu, civilianMenu);
}
}
academyMenu.add(setAcademyMenu);
}
academyMenu.add(setAcademyMenu);
}
}

Expand Down