Skip to content

Commit 2b0eaf8

Browse files
authored
Merge pull request #8493 from IllianiBird/academySkillParsingFix
Fix #8448: Fixed Academy Award Incorrectly Treating XP & None as a Skill
2 parents a879f11 + e14ad97 commit 2b0eaf8

File tree

2 files changed

+15
-29
lines changed

2 files changed

+15
-29
lines changed

MekHQ/src/mekhq/campaign/personnel/education/Academy.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -827,26 +827,19 @@ public String getTooltip(Campaign campaign, List<Person> personnel, int courseIn
827827

828828
if (personnel.size() == 1) {
829829
for (String skillName : skillNames) {
830-
String skillParsed;
831-
if (skillName.equalsIgnoreCase("none")) {
832-
tooltip.append(skillName).append("<br>");
833-
continue;
834-
} else if (skillName.equalsIgnoreCase("xp")) {
835-
tooltip.append(skillName).append(" (");
836-
} else {
837-
skillParsed = skillParser(skillName);
838-
tooltip.append(skillParsed).append(" (");
839-
}
840-
841830
if (skillName.equalsIgnoreCase("xp")) {
831+
tooltip.append(skillName.toUpperCase()).append(" (");
832+
842833
if (EducationLevel.parseToInt(person.getEduHighestEducation()) >= educationLevel) {
843834
tooltip.append(resources.getString("nothingToLearn.text")).append(")<br>");
844835
} else {
845836
tooltip.append(educationLevel * campaign.getCampaignOptions().getCurriculumXpRate())
846837
.append(")<br>");
847838
}
848-
} else {
849-
skillParsed = skillParser(skillName);
839+
} else if (!skillName.equalsIgnoreCase("none")) {
840+
String skillParsed = skillParser(skillName);
841+
tooltip.append(skillParsed).append(" (");
842+
850843
Skill skill = person.getSkill(skillParsed);
851844

852845
if (skill != null) {

MekHQ/src/mekhq/campaign/personnel/education/EducationController.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,7 @@
4747
import static mekhq.campaign.personnel.PersonnelOptions.COMPULSION_OTHER_FACTION_HATE;
4848
import static mekhq.campaign.personnel.PersonnelOptions.COMPULSION_PIRATE_HATE;
4949
import static mekhq.campaign.personnel.PersonnelOptions.FLAW_IN_FOR_LIFE;
50-
import static mekhq.campaign.personnel.skills.SkillType.EXP_ELITE;
51-
import static mekhq.campaign.personnel.skills.SkillType.EXP_GREEN;
52-
import static mekhq.campaign.personnel.skills.SkillType.EXP_HEROIC;
53-
import static mekhq.campaign.personnel.skills.SkillType.EXP_LEGENDARY;
5450
import static mekhq.campaign.personnel.skills.SkillType.EXP_REGULAR;
55-
import static mekhq.campaign.personnel.skills.SkillType.EXP_ULTRA_GREEN;
5651
import static mekhq.campaign.personnel.skills.SkillType.EXP_VETERAN;
5752
import static mekhq.utilities.MHQInternationalization.getFormattedTextAt;
5853
import static mekhq.utilities.ReportingUtilities.CLOSING_SPAN_TAG;
@@ -1830,8 +1825,15 @@ private static void addBonus(Campaign campaign, Person person, Academy academy,
18301825
for (int i = 0; i < bonusCount; i++) {
18311826
int roll = randomInt(curriculum.size());
18321827

1833-
try {
1834-
String skillParsed = Academy.skillParser(curriculum.get(roll));
1828+
String skillName = curriculum.get(roll);
1829+
if (skillName.equalsIgnoreCase("xp")) {
1830+
person.awardXP(campaign, campaign.getCampaignOptions().getCurriculumXpRate());
1831+
1832+
campaign.addReport(PERSONNEL, String.format(resources.getString("bonusXp.text"),
1833+
person.getFirstName(),
1834+
campaign.getCampaignOptions().getCurriculumXpRate()));
1835+
} else if (!skillName.equalsIgnoreCase("none")) {
1836+
String skillParsed = Academy.skillParser(skillName);
18351837

18361838
// if 'person' already has a +1 bonus for the skill, we give them XP, instead
18371839
if (person.getSkill(skillParsed).getBonus() < 1) {
@@ -1845,15 +1847,6 @@ private static void addBonus(Campaign campaign, Person person, Academy academy,
18451847
} else {
18461848
person.awardXP(campaign, campaign.getCampaignOptions().getCurriculumXpRate());
18471849

1848-
campaign.addReport(PERSONNEL, String.format(resources.getString("bonusXp.text"),
1849-
person.getFirstName(),
1850-
campaign.getCampaignOptions().getCurriculumXpRate()));
1851-
}
1852-
} catch (Exception e) {
1853-
// if we get this, it means the 'skill' was XP or None
1854-
if (curriculum.get(roll).equalsIgnoreCase("xp")) {
1855-
person.awardXP(campaign, campaign.getCampaignOptions().getCurriculumXpRate());
1856-
18571850
campaign.addReport(PERSONNEL, String.format(resources.getString("bonusXp.text"),
18581851
person.getFirstName(),
18591852
campaign.getCampaignOptions().getCurriculumXpRate()));

0 commit comments

Comments
 (0)