Skip to content

Commit d255903

Browse files
authored
Merge pull request #6555 from IllianiCBT/attributesOnTable
Added Attribute Columns to Personnel Table
2 parents cc3c220 + d0cf999 commit d255903

File tree

4 files changed

+111
-8
lines changed

4 files changed

+111
-8
lines changed

MekHQ/resources/mekhq/resources/GUI.properties

+11-1
Original file line numberDiff line numberDiff line change
@@ -946,6 +946,13 @@ PersonnelTableModelColumn.AMBITION.text=Ambition
946946
PersonnelTableModelColumn.GREED.text=Greed
947947
PersonnelTableModelColumn.SOCIAL.text=Social
948948
PersonnelTableModelColumn.REASONING.text=Reasoning
949+
PersonnelTableModelColumn.STRENGTH.text=Strength
950+
PersonnelTableModelColumn.BODY.text=Body
951+
PersonnelTableModelColumn.REFLEXES.text=Reflexes
952+
PersonnelTableModelColumn.DEXTERITY.text=Dexterity
953+
PersonnelTableModelColumn.INTELLIGENCE.text=Intelligence
954+
PersonnelTableModelColumn.WILLPOWER.text=Willpower
955+
PersonnelTableModelColumn.CHARISMA.text=Charisma
949956
#### PersonnelTabView Enum
950957
PersonnelTabView.GRAPHIC.text=Graphic
951958
PersonnelTabView.GRAPHIC.toolTipText=View the person's portrait, their current unit assignment, and their force, all shown with their graphics.
@@ -972,7 +979,10 @@ PersonnelTabView.FLAGS.toolTipText=View the various flags that may be saved for
972979
PersonnelTabView.PERSONALITY.text=Personality
973980
PersonnelTabView.PERSONALITY.toolTipText=View a character's personality traits.
974981
PersonnelTabView.TRAITS.text=Traits
975-
PersonnelTabView.TRAITS.toolTipText=View a character's Connections, Wealth, and Reputation.
982+
PersonnelTabView.TRAITS.toolTipText=View a character's Connections, Wealth, Reputation, Unlucky, and Edge.
983+
PersonnelTabView.ATTRIBUTES.text=Attributes
984+
PersonnelTabView.ATTRIBUTES.toolTipText=View a character's Strength, Body, Reflexes, Dexterity, Intelligence, Willpower,\
985+
\ and Edge.
976986
PersonnelTabView.OTHER.text=Other
977987
PersonnelTabView.OTHER.toolTipText=View various values for a person that are otherwise isolated to export.
978988
##### Menus

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

+8-5
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,20 @@ public enum PersonnelTabView {
3535
//region Enum Declarations
3636
GRAPHIC("PersonnelTabView.GRAPHIC.text", "PersonnelTabView.GRAPHIC.toolTipText"),
3737
GENERAL("PersonnelTabView.GENERAL.text", "PersonnelTabView.GENERAL.toolTipText"),
38-
PILOT_GUNNERY_SKILLS("PersonnelTabView.PILOT_GUNNERY_SKILLS.text", "PersonnelTabView.PILOT_GUNNERY_SKILLS.toolTipText"),
38+
PILOT_GUNNERY_SKILLS("PersonnelTabView.PILOT_GUNNERY_SKILLS.text",
39+
"PersonnelTabView.PILOT_GUNNERY_SKILLS.toolTipText"),
3940
INFANTRY_SKILLS("PersonnelTabView.INFANTRY_SKILLS.text", "PersonnelTabView.INFANTRY_SKILLS.toolTipText"),
4041
TACTICAL_SKILLS("PersonnelTabView.TACTICAL_SKILLS.text", "PersonnelTabView.TACTICAL_SKILLS.toolTipText"),
4142
TECHNICAL_SKILLS("PersonnelTabView.TECHNICAL_SKILLS.text", "PersonnelTabView.TECHNICAL_SKILLS.toolTipText"),
42-
ADMINISTRATIVE_SKILLS("PersonnelTabView.ADMINISTRATIVE_SKILLS.text", "PersonnelTabView.ADMINISTRATIVE_SKILLS.toolTipText"),
43+
ADMINISTRATIVE_SKILLS("PersonnelTabView.ADMINISTRATIVE_SKILLS.text",
44+
"PersonnelTabView.ADMINISTRATIVE_SKILLS.toolTipText"),
45+
TRAITS("PersonnelTabView.TRAITS.text", "PersonnelTabView.TRAITS.toolTipText"),
46+
ATTRIBUTES("PersonnelTabView.ATTRIBUTES.text", "PersonnelTabView.ATTRIBUTES.toolTipText"),
47+
PERSONALITY("PersonnelTabView.PERSONALITY.text", "PersonnelTabView.PERSONALITY.toolTipText"),
4348
BIOGRAPHICAL("PersonnelTabView.BIOGRAPHICAL.text", "PersonnelTabView.BIOGRAPHICAL.toolTipText"),
4449
FLUFF("PersonnelTabView.FLUFF.text", "PersonnelTabView.FLUFF.toolTipText"),
4550
DATES("PersonnelTabView.DATES.text", "PersonnelTabView.DATES.toolTipText"),
4651
FLAGS("PersonnelTabView.FLAGS.text", "PersonnelTabView.FLAGS.toolTipText"),
47-
PERSONALITY("PersonnelTabView.PERSONALITY.text", "PersonnelTabView.PERSONALITY.toolTipText"),
48-
TRAITS("PersonnelTabView.TRAITS.text", "PersonnelTabView.TRAITS.toolTipText"),
4952
OTHER("PersonnelTabView.OTHER.text", "PersonnelTabView.OTHER.toolTipText");
5053
//endregion Enum Declarations
5154

@@ -57,7 +60,7 @@ public enum PersonnelTabView {
5760
//region Constructors
5861
PersonnelTabView(final String name, final String toolTipText) {
5962
final ResourceBundle resources = ResourceBundle.getBundle("mekhq.resources.GUI",
60-
MekHQ.getMHQOptions().getLocale());
63+
MekHQ.getMHQOptions().getLocale());
6164
this.name = resources.getString(name);
6265
this.toolTipText = resources.getString(toolTipText);
6366
}

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

+85-2
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import mekhq.campaign.personnel.PersonnelOptions;
5353
import mekhq.campaign.personnel.enums.GenderDescriptors;
5454
import mekhq.campaign.personnel.skills.SkillType;
55+
import mekhq.campaign.personnel.skills.enums.SkillAttribute;
5556
import mekhq.campaign.randomEvents.personalities.enums.Aggression;
5657
import mekhq.campaign.randomEvents.personalities.enums.Ambition;
5758
import mekhq.campaign.randomEvents.personalities.enums.Greed;
@@ -144,7 +145,14 @@ public enum PersonnelTableModelColumn {
144145
AMBITION("PersonnelTableModelColumn.AMBITION.text"),
145146
GREED("PersonnelTableModelColumn.GREED.text"),
146147
SOCIAL("PersonnelTableModelColumn.SOCIAL.text"),
147-
REASONING("PersonnelTableModelColumn.REASONING.text");
148+
REASONING("PersonnelTableModelColumn.REASONING.text"),
149+
STRENGTH("PersonnelTableModelColumn.STRENGTH.text"),
150+
BODY("PersonnelTableModelColumn.BODY.text"),
151+
REFLEXES("PersonnelTableModelColumn.REFLEXES.text"),
152+
DEXTERITY("PersonnelTableModelColumn.DEXTERITY.text"),
153+
INTELLIGENCE("PersonnelTableModelColumn.INTELLIGENCE.text"),
154+
WILLPOWER("PersonnelTableModelColumn.WILLPOWER.text"),
155+
CHARISMA("PersonnelTableModelColumn.CHARISMA.text");
148156

149157
// endregion Enum Declarations
150158

@@ -464,6 +472,8 @@ public boolean isSocial() {
464472
}
465473

466474
/**
475+
* When this is removed {@link #isATOWIntelligence()} should be renamed to just 'isIntelligence()'
476+
*
467477
* @deprecated replaced by {@link #isReasoning()}
468478
*/
469479
@Deprecated(since = "0.50.05", forRemoval = true)
@@ -475,6 +485,45 @@ public boolean isReasoning() {
475485
return this == REASONING;
476486
}
477487

488+
public boolean isStrength() {
489+
return this == STRENGTH;
490+
}
491+
492+
public boolean isBody() {
493+
return this == BODY;
494+
}
495+
496+
public boolean isReflexes() {
497+
return this == REFLEXES;
498+
}
499+
500+
public boolean isDexterity() {
501+
return this == DEXTERITY;
502+
}
503+
504+
public boolean isATOWIntelligence() {
505+
return this == INTELLIGENCE;
506+
}
507+
508+
public boolean isWillpower() {
509+
return this == WILLPOWER;
510+
}
511+
512+
public boolean isCharisma() {
513+
return this == CHARISMA;
514+
}
515+
516+
public boolean isATOWAttribute() {
517+
return isStrength() ||
518+
isBody() ||
519+
isReflexes() ||
520+
isDexterity() ||
521+
isATOWIntelligence() ||
522+
isWillpower() ||
523+
isCharisma();
524+
}
525+
526+
478527
public boolean isPersonality() {
479528
return isAggression() || isAmbition() || isGreed() || isSocial() || isReasoning();
480529
}
@@ -845,6 +894,20 @@ public String getCellValue(final Campaign campaign, final PersonnelMarket person
845894
Reasoning reasoning = person.getReasoning();
846895

847896
return String.valueOf(reasoning.ordinal());
897+
case STRENGTH:
898+
return String.valueOf(person.getAttributeScore(SkillAttribute.STRENGTH));
899+
case BODY:
900+
return String.valueOf(person.getAttributeScore(SkillAttribute.BODY));
901+
case REFLEXES:
902+
return String.valueOf(person.getAttributeScore(SkillAttribute.REFLEXES));
903+
case DEXTERITY:
904+
return String.valueOf(person.getAttributeScore(SkillAttribute.DEXTERITY));
905+
case INTELLIGENCE:
906+
return String.valueOf(person.getAttributeScore(SkillAttribute.INTELLIGENCE));
907+
case WILLPOWER:
908+
return String.valueOf(person.getAttributeScore(SkillAttribute.WILLPOWER));
909+
case CHARISMA:
910+
return String.valueOf(person.getAttributeScore(SkillAttribute.CHARISMA));
848911
default:
849912
return "UNIMPLEMENTED";
850913
}
@@ -1026,6 +1089,19 @@ yield switch (this) {
10261089
case EDGE -> campaign.getCampaignOptions().isUseEdge();
10271090
default -> false;
10281091
};
1092+
case ATTRIBUTES -> switch (this) {
1093+
case RANK,
1094+
FIRST_NAME,
1095+
LAST_NAME,
1096+
STRENGTH,
1097+
BODY,
1098+
REFLEXES,
1099+
DEXTERITY,
1100+
INTELLIGENCE,
1101+
WILLPOWER,
1102+
CHARISMA -> true;
1103+
default -> false;
1104+
};
10291105
case OTHER -> switch (this) {
10301106
case RANK, FIRST_NAME, LAST_NAME -> true;
10311107
case TOUGHNESS -> campaign.getCampaignOptions().isUseToughness();
@@ -1080,7 +1156,14 @@ public Comparator<?> getComparator(final Campaign campaign) {
10801156
SPA_COUNT,
10811157
IMPLANT_COUNT,
10821158
LOYALTY,
1083-
REASONING -> new IntegerStringSorter();
1159+
REASONING,
1160+
STRENGTH,
1161+
BODY,
1162+
REFLEXES,
1163+
DEXTERITY,
1164+
INTELLIGENCE,
1165+
WILLPOWER,
1166+
CHARISMA -> new IntegerStringSorter();
10841167
case SALARY -> new FormattedNumberSorter();
10851168
default -> new NaturalOrderComparator();
10861169
};

MekHQ/unittests/mekhq/gui/enums/PersonnelTableModelColumnTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -902,6 +902,13 @@ public void testGetComparator() {
902902
case IMPLANT_COUNT:
903903
case LOYALTY:
904904
case REASONING:
905+
case STRENGTH:
906+
case BODY:
907+
case REFLEXES:
908+
case DEXTERITY:
909+
case INTELLIGENCE:
910+
case WILLPOWER:
911+
case CHARISMA:
905912
assertInstanceOf(IntegerStringSorter.class, personnelTableModelColumn.getComparator(mockCampaign));
906913
break;
907914
case SALARY:

0 commit comments

Comments
 (0)