Skip to content

Commit 2af86fa

Browse files
committed
Refined objective handling and enhanced scenario highlights
Added strategic objective consideration to StratCon rule evaluations, ensuring attached unit modifiers and turning points trigger when applicable. Improved ScenarioTableModel by visually distinguishing objectives and turning points using specific icons and custom HTML styling.
1 parent fea135d commit 2af86fa

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

MekHQ/src/mekhq/campaign/stratcon/StratconRulesManager.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -686,23 +686,25 @@ private static void determineIfTurningPointScenario(AtBContract contract, Stratc
686686
return;
687687
}
688688

689+
boolean isObjective = scenario.isStrategicObjective();
690+
689691
if (template == null || !template.getStratConScenarioType().isResupply()) {
690692
ContractCommandRights commandRights = contract.getCommandRights();
691693
switch (commandRights) {
692694
case INTEGRATED -> {
693695
scenario.setTurningPoint(true);
694-
if (randomInt(3) == 0) {
696+
if (randomInt(3) == 0 || isObjective) {
695697
setAttachedUnitsModifier(scenario, contract);
696698
}
697699
}
698700
case HOUSE, LIAISON -> {
699-
if (randomInt(3) == 0) {
701+
if (randomInt(3) == 0 || isObjective) {
700702
scenario.setTurningPoint(true);
701703
setAttachedUnitsModifier(scenario, contract);
702704
}
703705
}
704706
case INDEPENDENT -> {
705-
if (randomInt(3) == 0) {
707+
if (randomInt(3) == 0 || isObjective) {
706708
scenario.setTurningPoint(true);
707709
}
708710
}

MekHQ/src/mekhq/gui/model/ScenarioTableModel.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Objects;
3737
import java.util.ResourceBundle;
3838

39+
import static mekhq.campaign.mission.enums.ScenarioStatus.CURRENT;
3940
import static mekhq.utilities.ReportingUtilities.CLOSING_SPAN_TAG;
4041
import static mekhq.utilities.ReportingUtilities.spanOpeningWithCustomColor;
4142

@@ -114,16 +115,30 @@ public Object getValueAt(int row, int col) {
114115
if (col == COL_NAME) {
115116
if (campaign.getCampaignOptions().isUseStratCon()) {
116117
if (scenario instanceof AtBScenario) {
118+
if (scenario.getStatus() != CURRENT) {
119+
return scenario.getName();
120+
}
121+
117122
StratconScenario stratconScenario = ((AtBScenario) scenario).getStratconScenario(campaign);
118123

119124
if (stratconScenario != null) {
120125
boolean isTurningPoint = stratconScenario.isTurningPoint();
121126
String openingSpan = isTurningPoint
122127
? spanOpeningWithCustomColor(MekHQ.getMHQOptions().getFontColorWarningHexColor())
123128
: "";
124-
String closingSpan = isTurningPoint ? CLOSING_SPAN_TAG : "";
125-
return String.format("<html>%s%s%s</html", openingSpan,
126-
scenario.getName(), closingSpan);
129+
130+
String colorblindHelper = isTurningPoint ? " \u26A0" : "";
131+
132+
boolean isObjective = stratconScenario.isStrategicObjective();
133+
openingSpan = isObjective
134+
? spanOpeningWithCustomColor(MekHQ.getMHQOptions().getFontColorNegativeHexColor())
135+
: openingSpan;
136+
colorblindHelper += isObjective ? " \u26A1" : "";
137+
138+
String closingSpan = isTurningPoint || isObjective ? CLOSING_SPAN_TAG : "";
139+
140+
return String.format("<html>%s%s%s%s</html", openingSpan,
141+
scenario.getName(), closingSpan, colorblindHelper);
127142
}
128143
}
129144
}

0 commit comments

Comments
 (0)