Skip to content

Commit 1011296

Browse files
authored
Merge pull request #7201 from IllianiBird/comingOfAgeRPSkills
Improvement: #7199 Added Coming of Age RP Skill Generation
2 parents 9899d2e + 4d6f00c commit 1011296

File tree

4 files changed

+50
-12
lines changed

4 files changed

+50
-12
lines changed

MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1897,7 +1897,11 @@ lblComingOfAgeAbilities.tooltip=If checked, all characters will be awarded a sin
18971897
<br><b>Recommendation:</b> This was balanced around the pool of SPAs being rather large, due to the addition of ATOW\
18981898
\ SPAs. If you are working with a smaller SPA pool, perhaps due to disabling those SPAs, you might want to leave\
18991899
\ this off.
1900-
lblATOWAttributesPanel.text=A Time of War Traits
1900+
lblComingOfAgeRPSkills.text=Award Coming of Age RP Skills \u26A0 <span style="color:#C344C3;">\u2605</span>
1901+
lblComingOfAgeRPSkills.tooltip=If checked, all characters will be awarded random RP skills SPA when they turn 16.\
1902+
<br>\
1903+
<br><b>Warning:</b> This option relies on the RP skill chances found in the 'Secondary Skills' panel.
1904+
lblATOWAttributesPanel.text=A Time of War Traits and Attributes
19011905
lblUseAttributes.text=Use Attributes \u26A0
19021906
lblUseAttributes.tooltip=If checked, characters will be generated with <i>A Time of War</i> Attribute scores.\
19031907
<br>\

MekHQ/src/mekhq/campaign/Campaign.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import static mekhq.campaign.CampaignOptions.S_TECH;
4242
import static mekhq.campaign.CampaignOptions.TRANSIT_UNIT_MONTH;
4343
import static mekhq.campaign.CampaignOptions.TRANSIT_UNIT_WEEK;
44-
import static mekhq.campaign.force.CombatTeam.getStandardForceSize;
4544
import static mekhq.campaign.force.CombatTeam.recalculateCombatTeams;
4645
import static mekhq.campaign.force.Force.FORCE_NONE;
4746
import static mekhq.campaign.force.Force.FORCE_ORIGIN;
@@ -110,7 +109,6 @@
110109
import megamek.client.ui.util.PlayerColour;
111110
import megamek.codeUtilities.ObjectUtility;
112111
import megamek.common.*;
113-
import megamek.common.BombType.BombTypeEnum;
114112
import megamek.common.ITechnology.AvailabilityValue;
115113
import megamek.common.annotations.Nullable;
116114
import megamek.common.enums.Gender;
@@ -195,8 +193,10 @@
195193
import mekhq.campaign.personnel.enums.Phenotype;
196194
import mekhq.campaign.personnel.enums.SplittingSurnameStyle;
197195
import mekhq.campaign.personnel.generator.AbstractPersonnelGenerator;
196+
import mekhq.campaign.personnel.generator.AbstractSkillGenerator;
198197
import mekhq.campaign.personnel.generator.AbstractSpecialAbilityGenerator;
199198
import mekhq.campaign.personnel.generator.DefaultPersonnelGenerator;
199+
import mekhq.campaign.personnel.generator.DefaultSkillGenerator;
200200
import mekhq.campaign.personnel.generator.DefaultSpecialAbilityGenerator;
201201
import mekhq.campaign.personnel.generator.RandomPortraitGenerator;
202202
import mekhq.campaign.personnel.generator.SingleSpecialAbilityGenerator;
@@ -5342,22 +5342,31 @@ private void processAnniversaries(Person person) {
53425342
}
53435343
}
53445344

5345-
if (campaignOptions.isShowLifeEventDialogComingOfAge()) {
5346-
if ((age == 16) && (isBirthday)) {
5347-
new ComingOfAgeAnnouncement(this, person);
5348-
}
5349-
}
5350-
53515345
if (campaignOptions.isUseAgeEffects() && isBirthday) {
53525346
// This is where we update all the aging modifiers for the character.
53535347
updateAllSkillAgeModifiers(currentDay, person);
53545348
applyAgingSPA(age, person);
53555349
}
53565350

5357-
if (campaignOptions.isRewardComingOfAgeAbilities() && isBirthday && (person.getAge(currentDay) == 16)) {
5358-
SingleSpecialAbilityGenerator singleSpecialAbilityGenerator = new SingleSpecialAbilityGenerator();
5359-
singleSpecialAbilityGenerator.rollSPA(this, person);
5351+
// Coming of Age Events
5352+
if (isBirthday && (person.getAge(currentDay) == 16)) {
5353+
if (campaignOptions.isRewardComingOfAgeAbilities()) {
5354+
SingleSpecialAbilityGenerator singleSpecialAbilityGenerator = new SingleSpecialAbilityGenerator();
5355+
singleSpecialAbilityGenerator.rollSPA(this, person);
5356+
}
5357+
5358+
if (campaignOptions.isRewardComingOfAgeRPSkills()) {
5359+
AbstractSkillGenerator skillGenerator = new DefaultSkillGenerator(rskillPrefs);
5360+
skillGenerator.generateRoleplaySkills(person);
5361+
}
5362+
5363+
// We want the event trigger to fire before the dialog is shown, so that the character will have finished
5364+
// updating in the gui before the player has a chance to jump to them
53605365
MekHQ.triggerEvent(new PersonChangedEvent(person));
5366+
5367+
if (campaignOptions.isShowLifeEventDialogComingOfAge()) {
5368+
new ComingOfAgeAnnouncement(this, person);
5369+
}
53615370
}
53625371
}
53635372

MekHQ/src/mekhq/campaign/CampaignOptions.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ public static String getTechLevelName(final int techLevel) {
246246
private boolean displayAssignmentRecord;
247247
private boolean displayPerformanceRecord;
248248
private boolean rewardComingOfAgeAbilities;
249+
private boolean rewardComingOfAgeRPSkills;
249250

250251
// Expanded Personnel Information
251252
private boolean useTimeInService;
@@ -801,6 +802,7 @@ public CampaignOptions() {
801802
setDisplayKillRecord(false);
802803
setDisplayMedicalRecord(false);
803804
setRewardComingOfAgeAbilities(false);
805+
setRewardComingOfAgeRPSkills(false);
804806

805807
// Expanded Personnel Information
806808
setUseTimeInService(false);
@@ -1705,6 +1707,14 @@ public void setRewardComingOfAgeAbilities(final boolean rewardComingOfAgeAbiliti
17051707
this.rewardComingOfAgeAbilities = rewardComingOfAgeAbilities;
17061708
}
17071709

1710+
public boolean isRewardComingOfAgeRPSkills() {
1711+
return rewardComingOfAgeRPSkills;
1712+
}
1713+
1714+
public void setRewardComingOfAgeRPSkills(final boolean rewardComingOfAgeRPSkills) {
1715+
this.rewardComingOfAgeRPSkills = rewardComingOfAgeRPSkills;
1716+
}
1717+
17081718
public boolean isUseFatigue() {
17091719
return useFatigue;
17101720
}
@@ -5010,6 +5020,7 @@ public void writeToXml(final PrintWriter pw, int indent) {
50105020
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "displayAssignmentRecord", isDisplayAssignmentRecord());
50115021
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "displayPerformanceRecord", isDisplayPerformanceRecord());
50125022
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "rewardComingOfAgeAbilities", isRewardComingOfAgeAbilities());
5023+
MHQXMLUtility.writeSimpleXMLTag(pw, indent, "rewardComingOfAgeRPSkills", isRewardComingOfAgeRPSkills());
50135024
// endregion General Personnel
50145025

50155026
// region Expanded Personnel Information
@@ -5846,6 +5857,8 @@ public static CampaignOptions generateCampaignOptionsFromXml(Node parentNod, Ver
58465857
campaignOptions.setDisplayPerformanceRecord(Boolean.parseBoolean(nodeContents));
58475858
} else if (nodeName.equalsIgnoreCase("rewardComingOfAgeAbilities")) {
58485859
campaignOptions.setRewardComingOfAgeAbilities(Boolean.parseBoolean(nodeContents));
5860+
} else if (nodeName.equalsIgnoreCase("rewardComingOfAgeRPSkills")) {
5861+
campaignOptions.setRewardComingOfAgeRPSkills(Boolean.parseBoolean(nodeContents));
58495862
// endregion General Personnel
58505863

58515864
// region Expanded Personnel Information

MekHQ/src/mekhq/gui/campaignOptions/contents/AdvancementTab.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ public class AdvancementTab {
122122
private CampaignOptionsHeaderPanel skillRandomizationHeader;
123123
private JCheckBox chkExtraRandomness;
124124
private JCheckBox chkComingOfAgeSPAs;
125+
private JCheckBox chkRewardComingOfAgeRPSkills;
125126

126127
private JPanel pnlPhenotype;
127128
private JLabel[] phenotypeLabels;
@@ -577,6 +578,7 @@ private void initializeSkillRandomizationTab() {
577578
pnlATOWAttributes = new JPanel();
578579
chkRandomizeTraits = new JCheckBox();
579580
chkComingOfAgeSPAs = new JCheckBox();
581+
chkRewardComingOfAgeRPSkills = new JCheckBox();
580582

581583
pnlPhenotype = new JPanel();
582584
phenotypeLabels = new JLabel[] {}; // This will be initialized properly later
@@ -664,9 +666,14 @@ public JPanel skillRandomizationTab() {
664666
// Contents
665667
chkExtraRandomness = new CampaignOptionsCheckBox("ExtraRandomness");
666668
chkExtraRandomness.addMouseListener(createTipPanelUpdater(skillRandomizationHeader, "ExtraRandomness"));
669+
667670
chkComingOfAgeSPAs = new CampaignOptionsCheckBox("ComingOfAgeAbilities");
668671
chkComingOfAgeSPAs.addMouseListener(createTipPanelUpdater(skillRandomizationHeader, "ComingOfAgeAbilities"));
669672

673+
chkRewardComingOfAgeRPSkills = new CampaignOptionsCheckBox("ComingOfAgeRPSkills");
674+
chkRewardComingOfAgeRPSkills.addMouseListener(createTipPanelUpdater(skillRandomizationHeader,
675+
"ComingOfAgeRPSkills"));
676+
670677
pnlPhenotype = createPhenotypePanel();
671678
pnlRandomAbilities = createAbilityPanel();
672679
pnlSkillGroups = createSkillGroupPanel();
@@ -686,6 +693,9 @@ public JPanel skillRandomizationTab() {
686693
layout.gridy++;
687694
panel.add(chkComingOfAgeSPAs, layout);
688695

696+
layout.gridy++;
697+
panel.add(chkRewardComingOfAgeRPSkills, layout);
698+
689699
layout.gridx = 0;
690700
layout.gridy++;
691701
panel.add(pnlPhenotype, layout);
@@ -1279,6 +1289,7 @@ public void loadValuesFromCampaignOptions(@Nullable CampaignOptions presetCampai
12791289
chkRandomizeAttributes.setSelected(skillPreferences.isRandomizeAttributes());
12801290
chkRandomizeTraits.setSelected(skillPreferences.isRandomizeTraits());
12811291
chkComingOfAgeSPAs.setSelected(options.isRewardComingOfAgeAbilities());
1292+
chkRewardComingOfAgeRPSkills.setSelected(options.isRewardComingOfAgeRPSkills());
12821293
final int[] phenotypeProbabilities = options.getPhenotypeProbabilities();
12831294
for (int i = 0; i < phenotypeSpinners.length; i++) {
12841295
phenotypeSpinners[i].setValue(phenotypeProbabilities[i]);
@@ -1372,6 +1383,7 @@ public void applyCampaignOptionsToCampaign(@Nullable CampaignOptions presetCampa
13721383
options.setAdminXP((int) spnAdminWeeklyXP.getValue());
13731384
options.setAdminXPPeriod((int) spnAdminWeeklyXPPeriod.getValue());
13741385
options.setRewardComingOfAgeAbilities(chkComingOfAgeSPAs.isSelected());
1386+
options.setRewardComingOfAgeRPSkills(chkRewardComingOfAgeRPSkills.isSelected());
13751387

13761388
//start Skill Randomization Tab
13771389
skillPreferences.setRandomizeSkill(chkExtraRandomness.isSelected());

0 commit comments

Comments
 (0)