Skip to content

Commit 8b24db0

Browse files
authored
Merge pull request #5286 from IllianiCBT/stratCon_scenarioScheduleRework
Removed Predictable Scenario Generation Schedule
2 parents 6635153 + df82f23 commit 8b24db0

File tree

3 files changed

+239
-109
lines changed

3 files changed

+239
-109
lines changed

MekHQ/src/mekhq/campaign/icons/enums/LayeredForceIconOperationalStatus.java

+6-12
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,11 @@ public static LayeredForceIconOperationalStatus determineLayeredForceIconOperati
8888
return NOT_OPERATIONAL;
8989
}
9090

91-
switch (unit.getDamageState()) {
92-
case Entity.DMG_NONE:
93-
return FULLY_OPERATIONAL;
94-
case Entity.DMG_LIGHT:
95-
case Entity.DMG_MODERATE:
96-
return SUBSTANTIALLY_OPERATIONAL;
97-
case Entity.DMG_HEAVY:
98-
case Entity.DMG_CRIPPLED:
99-
return MARGINALLY_OPERATIONAL;
100-
default:
101-
return NOT_OPERATIONAL;
102-
}
91+
return switch (unit.getDamageState()) {
92+
case Entity.DMG_NONE -> FULLY_OPERATIONAL;
93+
case Entity.DMG_LIGHT, Entity.DMG_MODERATE -> SUBSTANTIALLY_OPERATIONAL;
94+
case Entity.DMG_HEAVY, Entity.DMG_CRIPPLED -> MARGINALLY_OPERATIONAL;
95+
default -> NOT_OPERATIONAL;
96+
};
10397
}
10498
}

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

+38
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,15 @@
2626
import jakarta.xml.bind.annotation.XmlElementWrapper;
2727
import jakarta.xml.bind.annotation.XmlRootElement;
2828
import jakarta.xml.bind.annotation.XmlTransient;
29+
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
30+
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
2931
import megamek.logging.MMLogger;
3032
import mekhq.campaign.mission.AtBContract;
3133
import org.w3c.dom.Node;
3234

3335
import javax.xml.namespace.QName;
3436
import java.io.PrintWriter;
37+
import java.time.LocalDate;
3538
import java.util.ArrayList;
3639
import java.util.List;
3740

@@ -63,6 +66,8 @@ public class StratconCampaignState {
6366
@XmlElement(name = "campaignTrack")
6467
private final List<StratconTrackState> tracks;
6568

69+
private List<LocalDate> weeklyScenarios;
70+
6671
@XmlTransient
6772
public AtBContract getContract() {
6873
return contract;
@@ -74,10 +79,12 @@ public void setContract(AtBContract contract) {
7479

7580
public StratconCampaignState() {
7681
tracks = new ArrayList<>();
82+
weeklyScenarios = new ArrayList<>();
7783
}
7884

7985
public StratconCampaignState(AtBContract contract) {
8086
tracks = new ArrayList<>();
87+
weeklyScenarios = new ArrayList<>();
8188
setContract(contract);
8289
}
8390

@@ -102,6 +109,21 @@ public void addTrack(StratconTrackState track) {
102109
tracks.add(track);
103110
}
104111

112+
@XmlJavaTypeAdapter(value = LocalDateAdapter.class)
113+
@XmlElementWrapper(name = "weeklyScenarios")
114+
@XmlElement(name = "weeklyScenario")
115+
public List<LocalDate> getWeeklyScenarios() {
116+
return weeklyScenarios;
117+
}
118+
119+
public void addWeeklyScenario(LocalDate weeklyScenario) {
120+
weeklyScenarios.add(weeklyScenario);
121+
}
122+
123+
public void setWeeklyScenarios(final List<LocalDate> weeklyScenarios) {
124+
this.weeklyScenarios = weeklyScenarios;
125+
}
126+
105127
public int getSupportPoints() {
106128
return supportPoints;
107129
}
@@ -232,4 +254,20 @@ public static StratconCampaignState Deserialize(Node xmlNode) {
232254

233255
return resultingCampaignState;
234256
}
257+
258+
/**
259+
* This adapter provides a way to convert between a LocalDate and the ISO-8601 string
260+
* representation of the date that is used for XML marshaling and unmarshalling in JAXB.
261+
*/
262+
public static class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
263+
@Override
264+
public String marshal(LocalDate date) {
265+
return date.toString();
266+
}
267+
268+
@Override
269+
public LocalDate unmarshal(String date) throws Exception {
270+
return LocalDate.parse(date);
271+
}
272+
}
235273
}

0 commit comments

Comments
 (0)