Skip to content

Commit e61300f

Browse files
authored
Merge pull request #6212 from IllianiCBT/forceAssignmentFatigue
Added Fatigue Display when Assigning Forces to Scenarios
2 parents 6907850 + 377e431 commit e61300f

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
report.string=<html>{0}<b>{1}</b>{2} {3} - BV {4} {5}\
2+
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>{6}</i></html>
3+
fatigueReport.string=Fatigue {0}

MekHQ/src/mekhq/gui/stratcon/ScenarioWizardLanceRenderer.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,15 @@
3232
import mekhq.campaign.force.CombatTeam;
3333
import mekhq.campaign.force.Force;
3434
import mekhq.campaign.icons.enums.OperationalStatus;
35+
import mekhq.campaign.personnel.Person;
36+
import mekhq.campaign.unit.Unit;
37+
38+
import javax.swing.*;
39+
import java.awt.*;
40+
import java.util.UUID;
3541

3642
import static mekhq.campaign.icons.enums.OperationalStatus.NOT_OPERATIONAL;
43+
import static mekhq.utilities.MHQInternationalization.getFormattedTextAt;
3744
import static mekhq.utilities.ReportingUtilities.CLOSING_SPAN_TAG;
3845
import static mekhq.utilities.ReportingUtilities.spanOpeningWithCustomColor;
3946

@@ -49,6 +56,8 @@
4956
* @author NickAragua
5057
*/
5158
public class ScenarioWizardLanceRenderer extends JLabel implements ListCellRenderer<Force> {
59+
final private String RESOURCE_BUNDLE = "mekhq.resources." + getClass().getSimpleName();
60+
5261
private final Campaign campaign;
5362

5463
public ScenarioWizardLanceRenderer(Campaign campaign) {
@@ -96,10 +105,29 @@ public Component getListCellRendererComponent(final JList<? extends Force> list,
96105
String originNodeName = ", " + campaign.getForce(0).getName();
97106
forceName = forceName.replaceAll(originNodeName, "");
98107

108+
String fatigueReport = "";
109+
if (campaign.getCampaignOptions().isUseFatigue()) {
110+
int highestFatigue = 0;
111+
for (UUID unitId : force.getAllUnits(false)) {
112+
Unit unit = campaign.getUnit(unitId);
113+
114+
if (unit == null) {
115+
continue;
116+
}
117+
118+
for (Person person : unit.getCrew()) {
119+
if (person.getFatigue() > highestFatigue) {
120+
highestFatigue = person.getEffectiveFatigue(campaign);
121+
}
122+
}
123+
}
124+
fatigueReport = getFormattedTextAt(RESOURCE_BUNDLE, "fatigueReport.string", highestFatigue);
125+
}
126+
99127
// Format string
100-
setText(String.format("<html>%s<b>%s%s, %s</b> - BV %s<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>%s</i></html>",
101-
statusOpenFormat, force.getName(), statusCloseFormat, roleString,
102-
force.getTotalBV(campaign, true), forceName));
128+
setText(getFormattedTextAt(RESOURCE_BUNDLE, "report.string", statusOpenFormat, force.getName(),
129+
statusCloseFormat, roleString, force.getTotalBV(campaign, true),
130+
fatigueReport, forceName));
103131

104132
return this;
105133
}

0 commit comments

Comments
 (0)