diff --git a/MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties b/MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties index efaccbeb82..1431ad35bb 100644 --- a/MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties +++ b/MekHQ/resources/mekhq/resources/CampaignOptionsDialog.properties @@ -54,6 +54,10 @@ lblReputation.tooltip=Which reputation method should your campaign be graded aga
Recommended: Campaign Operations lblManualUnitRatingModifier.text=Manual Modifier lblManualUnitRatingModifier.tooltip=This allows you to manually adjust your reputation rating. +lblResetCriminalRecord.text=Reset Criminal Record \u26A0 \uD83C\uDF1F +lblResetCriminalRecord.tooltip=Reset date of last crime and all penalties to Reputation from crime.\ +
\ +
Warning: The Reputation report won't update to reflect this change until the next Monday. lblClampReputationPayMultiplier.text=Clamp Reputation Pay Multiplier \u26A0 \u2714 \u2728 lblClampReputationPayMultiplier.tooltip=When using CamOps Reputation your unit's reputation score\ \ affects contract pay. This option clamps the reputation-based multiplier between 50 and 200%.\ diff --git a/MekHQ/src/mekhq/gui/campaignOptions/contents/GeneralTab.java b/MekHQ/src/mekhq/gui/campaignOptions/contents/GeneralTab.java index c17db0e2fc..b05e2177e0 100644 --- a/MekHQ/src/mekhq/gui/campaignOptions/contents/GeneralTab.java +++ b/MekHQ/src/mekhq/gui/campaignOptions/contents/GeneralTab.java @@ -102,6 +102,7 @@ public class GeneralTab { private MMComboBox unitRatingMethodCombo; private JLabel lblManualUnitRatingModifier; private JSpinner manualUnitRatingModifier; + private JCheckBox chkResetCriminalRecord; private JCheckBox chkClampReputationPayMultiplier; private JCheckBox chkReduceReputationPerformanceModifier; private JCheckBox chkReputationPerformanceModifierCutOff; @@ -198,6 +199,7 @@ public AbstractMHQScrollablePanel createGeneralTab() { resources.getString("lblReputation.tooltip"))); lblManualUnitRatingModifier = new CampaignOptionsLabel("ManualUnitRatingModifier"); manualUnitRatingModifier = new CampaignOptionsSpinner("ManualUnitRatingModifier", 0, -1000, 1000, 1); + chkResetCriminalRecord = new CampaignOptionsCheckBox("ResetCriminalRecord"); chkClampReputationPayMultiplier = new CampaignOptionsCheckBox("ClampReputationPayMultiplier"); chkReduceReputationPerformanceModifier = new CampaignOptionsCheckBox("ReduceReputationPerformanceModifier"); chkReputationPerformanceModifierCutOff = new CampaignOptionsCheckBox("ReputationPerformanceModifierCutOff"); @@ -273,6 +275,8 @@ public AbstractMHQScrollablePanel createGeneralTab() { panel.add(manualUnitRatingModifier, layout); layout.gridy++; layout.gridwidth = 3; + panel.add(chkResetCriminalRecord, layout); + layout.gridy++; panel.add(chkClampReputationPayMultiplier, layout); layout.gridy++; panel.add(chkReduceReputationPerformanceModifier, layout); @@ -366,6 +370,7 @@ private void initialize() { lblManualUnitRatingModifier = new JLabel(); manualUnitRatingModifier = new JSpinner(); + chkResetCriminalRecord = new JCheckBox(); chkClampReputationPayMultiplier = new JCheckBox(); chkReduceReputationPerformanceModifier = new JCheckBox(); chkReputationPerformanceModifierCutOff = new JCheckBox(); @@ -546,7 +551,7 @@ public void loadValuesFromCampaignOptions() { * the campaign's default faction is used. */ public void loadValuesFromCampaignOptions(@Nullable CampaignOptions presetCampaignOptions, - @Nullable LocalDate presetDate, @Nullable Faction presetFaction) { + @Nullable LocalDate presetDate, @Nullable Faction presetFaction) { CampaignOptions options = presetCampaignOptions; if (presetCampaignOptions == null) { options = this.campaignOptions; @@ -587,7 +592,7 @@ public void loadValuesFromCampaignOptions(@Nullable CampaignOptions presetCampai * @param isSaveAction A boolean indicating if this is a save action. */ public void applyCampaignOptionsToCampaign(@Nullable CampaignOptions presetCampaignOptions, boolean isStartUp, - boolean isSaveAction) { + boolean isSaveAction) { // First, we apply any updates to the campaign if (!isSaveAction) { campaign.setName(txtName.getText()); @@ -622,6 +627,13 @@ public void applyCampaignOptionsToCampaign(@Nullable CampaignOptions presetCampa options.setUnitRatingMethod(unitRatingMethodCombo.getSelectedItem()); options.setManualUnitRatingModifier((int) manualUnitRatingModifier.getValue()); + + if (chkResetCriminalRecord.isSelected()) { + campaign.setDateOfLastCrime(null); + campaign.setCrimeRating(0); + campaign.setCrimePirateModifier(0); + } + options.setClampReputationPayMultiplier(chkClampReputationPayMultiplier.isSelected()); options.setReduceReputationPerformanceModifier(chkReduceReputationPerformanceModifier.isSelected()); options.setReputationPerformanceModifierCutOff(chkReputationPerformanceModifierCutOff.isSelected());