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());