Skip to content

Commit bec4700

Browse files
authored
Merge pull request #7306 from IllianiBird/techTimeMaxPatientsDisplay
Improvement: Added Daily Max Tech Minutes and Max Patient Count to Personnel Tab Tech Skills Display
2 parents 2067f34 + 3d40586 commit bec4700

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

MekHQ/resources/mekhq/resources/GUI.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,9 +957,10 @@ PersonnelTableModelColumn.TECH_MECHANIC.text=Mechanic
957957
PersonnelTableModelColumn.TECH_BA.text=Tech/BA
958958
PersonnelTableModelColumn.TECH_VESSEL.text=Tech/Vessel
959959
PersonnelTableModelColumn.MEDICAL.text=Medical
960+
PersonnelTableModelColumn.TECH_MINUTES.text=Max Minutes
961+
PersonnelTableModelColumn.MEDICAL_CAPACITY.text=Max Patients
960962
PersonnelTableModelColumn.ADMINISTRATION.text=Admin
961963
PersonnelTableModelColumn.NEGOTIATION.text=Negotiation
962-
PersonnelTableModelColumn.SCROUNGE.text=Scrounge
963964
PersonnelTableModelColumn.INJURIES.text=Injuries
964965
PersonnelTableModelColumn.KILLS.text=Kills
965966
PersonnelTableModelColumn.SALARY.text=Salary

MekHQ/src/mekhq/gui/enums/PersonnelTableModelColumn.java

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import megamek.common.util.sorter.NaturalOrderComparator;
5353
import mekhq.MekHQ;
5454
import mekhq.campaign.Campaign;
55+
import mekhq.campaign.CampaignOptions;
5556
import mekhq.campaign.force.Force;
5657
import mekhq.campaign.market.PersonnelMarket;
5758
import mekhq.campaign.personnel.Person;
@@ -116,6 +117,8 @@ public enum PersonnelTableModelColumn {
116117
TECH_BA("PersonnelTableModelColumn.TECH_BA.text"),
117118
TECH_VESSEL("PersonnelTableModelColumn.TECH_VESSEL.text"),
118119
MEDICAL("PersonnelTableModelColumn.MEDICAL.text"),
120+
TECH_MINUTES("PersonnelTableModelColumn.TECH_MINUTES.text"),
121+
MEDICAL_CAPACITY("PersonnelTableModelColumn.MEDICAL_CAPACITY.text"),
119122
ADMINISTRATION("PersonnelTableModelColumn.ADMINISTRATION.text"),
120123
NEGOTIATION("PersonnelTableModelColumn.NEGOTIATION.text"),
121124
INJURIES("PersonnelTableModelColumn.INJURIES.text"),
@@ -333,6 +336,14 @@ public boolean isMedical() {
333336
return this == MEDICAL;
334337
}
335338

339+
public boolean isTechMinutes() {
340+
return this == TECH_MINUTES;
341+
}
342+
343+
public boolean isMedicalCapacity() {
344+
return this == MEDICAL_CAPACITY;
345+
}
346+
336347
public boolean isAdministration() {
337348
return this == ADMINISTRATION;
338349
}
@@ -544,9 +555,13 @@ public String getCellValue(final Campaign campaign, final PersonnelMarket person
544555

545556
String sign;
546557

547-
boolean isUseAgeEffects = campaign.getCampaignOptions().isUseAgeEffects();
548-
boolean isClanCampaign = campaign.isClanCampaign();
549-
LocalDate today = campaign.getLocalDate();
558+
final boolean isClanCampaign = campaign.isClanCampaign();
559+
final LocalDate today = campaign.getLocalDate();
560+
final CampaignOptions campaignOptions = campaign.getCampaignOptions();
561+
final boolean isUseAgeEffects = campaignOptions.isUseAgeEffects();
562+
final boolean isUseTechAdmin = campaignOptions.isTechsUseAdministration();
563+
final int baseBedCapacity = campaignOptions.getMaximumPatients();
564+
final boolean isUseMedicalAdmin = campaignOptions.isDoctorsUseAdministration();
550565

551566
switch (this) {
552567
case PERSON:
@@ -828,11 +843,23 @@ public String getCellValue(final Campaign campaign, final PersonnelMarket person
828843
Integer.toString(person.getSkill(SkillType.S_TECH_VESSEL)
829844
.getFinalSkillValue(options, attributes)) :
830845
"-";
846+
case TECH_MINUTES:
847+
if (person.isTechExpanded()) {
848+
return String.valueOf(person.getDailyAvailableTechTime(isUseTechAdmin));
849+
} else {
850+
return "0";
851+
}
831852
case MEDICAL:
832853
return person.hasSkill(SkillType.S_SURGERY) ?
833854
Integer.toString(person.getSkill(SkillType.S_SURGERY)
834855
.getFinalSkillValue(options, attributes)) :
835856
"-";
857+
case MEDICAL_CAPACITY:
858+
if (person.isDoctor()) {
859+
return String.valueOf(person.getDoctorMedicalCapacity(isUseMedicalAdmin, baseBedCapacity));
860+
} else {
861+
return "0";
862+
}
836863
case ADMINISTRATION:
837864
return person.hasSkill(SkillType.S_ADMIN) ?
838865
Integer.toString(person.getSkill(SkillType.S_ADMIN)
@@ -1103,7 +1130,9 @@ yield switch (this) {
11031130
TECH_MECHANIC,
11041131
TECH_BA,
11051132
TECH_VESSEL,
1106-
MEDICAL -> true;
1133+
TECH_MINUTES,
1134+
MEDICAL,
1135+
MEDICAL_CAPACITY -> true;
11071136
default -> false;
11081137
};
11091138
case ADMINISTRATIVE_SKILLS -> switch (this) {

0 commit comments

Comments
 (0)