Skip to content

Commit 949b673

Browse files
authored
Merge pull request #7342 from IllianiBird/rankNumericFix
Fix: Fixed Multiple Incorrect Cases of `getRankLevel` vs. `getRankNumeric`
2 parents 68f1b68 + 39f3ace commit 949b673

File tree

11 files changed

+42
-33
lines changed

11 files changed

+42
-33
lines changed

MekHQ/src/mekhq/campaign/Campaign.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3222,7 +3222,7 @@ public Person findBestInRole(PersonnelRole role, String primary, @Nullable Strin
32223222
int adjustedReputation = person.getAdjustedReputation(isUseAgingEffects,
32233223
isClanCampaign,
32243224
currentDay,
3225-
person.getRankLevel());
3225+
person.getRankNumeric());
32263226

32273227
if (((person.getPrimaryRole() == role) || (person.getSecondaryRole() == role)) &&
32283228
(person.getSkill(primary) != null)) {
@@ -3254,7 +3254,7 @@ public Person findBestInRole(PersonnelRole role, String primary, @Nullable Strin
32543254
int bestInRoleAdjustedReputation = bestInRole.getAdjustedReputation(isUseAgingEffects,
32553255
isClanCampaign,
32563256
currentDay,
3257-
bestInRole.getRankLevel());
3257+
bestInRole.getRankNumeric());
32583258
bestInRoleSecondarySkill = secondarySkill.getTotalSkillLevel(bestInRole.getOptions(),
32593259
bestInRole.getATOWAttributes(),
32603260
bestInRoleAdjustedReputation);
@@ -3292,7 +3292,7 @@ public Person findBestInRole(PersonnelRole role, String skill) {
32923292
int adjustedReputation = person.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
32933293
isClanCampaign(),
32943294
currentDay,
3295-
person.getRankLevel());
3295+
person.getRankNumeric());
32963296
Skill skill = person.getSkill(skillName);
32973297

32983298
int totalSkillLevel = Integer.MIN_VALUE;
@@ -3483,7 +3483,7 @@ public int getPatientsFor(Person doctor) {
34833483
int adjustedReputation = person.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
34843484
isClanCampaign(),
34853485
currentDay,
3486-
person.getRankLevel());
3486+
person.getRankNumeric());
34873487
Skill skill = person.getSkill(skillName);
34883488

34893489
int totalSkillLevel = Integer.MIN_VALUE;
@@ -3513,7 +3513,7 @@ public int getPatientsFor(Person doctor) {
35133513
int adjustedReputation = person.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
35143514
isClanCampaign(),
35153515
currentDay,
3516-
person.getRankLevel());
3516+
person.getRankNumeric());
35173517
Skill skill = person.getSkill(skillName);
35183518

35193519
int totalSkillLevel = Integer.MIN_VALUE;
@@ -3748,7 +3748,7 @@ public List<Person> getLogisticsPersonnel() {
37483748
int adjustedReputation = person1.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
37493749
isClanCampaign(),
37503750
currentDay,
3751-
person1.getRankLevel());
3751+
person1.getRankNumeric());
37523752
Skill skill = person1.getBestTechSkill();
37533753

37543754
int person1SkillLevel = Integer.MIN_VALUE;
@@ -3762,7 +3762,7 @@ public List<Person> getLogisticsPersonnel() {
37623762
adjustedReputation = person2.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
37633763
isClanCampaign(),
37643764
currentDay,
3765-
person2.getRankLevel());
3765+
person2.getRankNumeric());
37663766
skill = person2.getBestTechSkill();
37673767

37683768
int person2SkillLevel = Integer.MIN_VALUE;
@@ -3778,7 +3778,7 @@ public List<Person> getLogisticsPersonnel() {
37783778
int adjustedReputation = person1.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
37793779
isClanCampaign(),
37803780
currentDay,
3781-
person1.getRankLevel());
3781+
person1.getRankNumeric());
37823782
Skill skill = person1.getSkill(S_TECH);
37833783

37843784
int person1SkillLevel = Integer.MIN_VALUE;
@@ -3792,7 +3792,7 @@ public List<Person> getLogisticsPersonnel() {
37923792
adjustedReputation = person2.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
37933793
isClanCampaign(),
37943794
currentDay,
3795-
person2.getRankLevel());
3795+
person2.getRankNumeric());
37963796
skill = person2.getSkill(S_TECH);
37973797

37983798
int person2SkillLevel = Integer.MIN_VALUE;
@@ -8244,7 +8244,7 @@ public TargetRoll getTargetForAcquisition(final IAcquisitionWork acquisition, fi
82448244
int adjustedReputation = person.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
82458245
isClanCampaign(),
82468246
currentDay,
8247-
person.getRankLevel());
8247+
person.getRankNumeric());
82488248

82498249
TargetRoll target = new TargetRoll(skill.getFinalSkillValue(person.getOptions(), person.getATOWAttributes()),
82508250
skill.getSkillLevel(person.getOptions(), person.getATOWAttributes(), adjustedReputation).toString());

MekHQ/src/mekhq/campaign/market/contractMarket/AtbMonthlyContractMarket.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,7 @@ private void setContractClauses(AtBContract contract, int unitRatingMod, Campaig
756756
int adjustedReputation = adminCommand.getAdjustedReputation(isUseAgeEffects,
757757
isClanCampaign,
758758
today,
759-
adminCommand.getRankLevel());
759+
adminCommand.getRankNumeric());
760760

761761
adminCommandExp = skill.getExperienceLevel(options, attributes, adjustedReputation);
762762
}
@@ -770,7 +770,7 @@ private void setContractClauses(AtBContract contract, int unitRatingMod, Campaig
770770
int adjustedReputation = adminTransport.getAdjustedReputation(isUseAgeEffects,
771771
isClanCampaign,
772772
today,
773-
adminTransport.getRankLevel());
773+
adminTransport.getRankNumeric());
774774

775775
adminTransportExp = skill.getExperienceLevel(options, attributes, adjustedReputation);
776776
}
@@ -784,7 +784,7 @@ private void setContractClauses(AtBContract contract, int unitRatingMod, Campaig
784784
int adjustedReputation = adminLogistics.getAdjustedReputation(isUseAgeEffects,
785785
isClanCampaign,
786786
today,
787-
adminLogistics.getRankLevel());
787+
adminLogistics.getRankNumeric());
788788

789789
adminLogisticsExp = skill.getExperienceLevel(options, attributes, adjustedReputation);
790790
}

MekHQ/src/mekhq/campaign/mission/resupplyAndCaches/Resupply.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,7 @@ private void calculateNegotiationSkill() {
794794
int reputation = negotiator.getAdjustedReputation(campaign.getCampaignOptions().isUseAgeEffects(),
795795
campaign.isClanCampaign(),
796796
campaign.getLocalDate(),
797-
negotiator.getRankLevel());
797+
negotiator.getRankNumeric());
798798
int skillLevel = skill.getFinalSkillValue(negotiator.getOptions(),
799799
negotiator.getATOWAttributes(),
800800
reputation);

MekHQ/src/mekhq/campaign/personnel/Person.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3753,6 +3753,11 @@ public Rank getRank() {
37533753
return getRankSystem().getRank(getRankNumeric());
37543754
}
37553755

3756+
/**
3757+
* Retrieves the index of the character's rank
3758+
*
3759+
* @return the numeric value of the rank as an {@link Integer}
3760+
*/
37563761
public int getRankNumeric() {
37573762
return rank;
37583763
}
@@ -3761,6 +3766,13 @@ public void setRank(final int rank) {
37613766
this.rank = rank;
37623767
}
37633768

3769+
/**
3770+
* Retrieves the character's rank <b>sub-level</b>. Predominantly used in ComStar rank styles.
3771+
*
3772+
* <p><b>Important:</b> You almost always want to use {@link #getRankNumeric()} instead.</p>
3773+
*
3774+
* @return the rank level as an integer
3775+
*/
37643776
public int getRankLevel() {
37653777
return rankLevel;
37663778
}
@@ -3974,7 +3986,7 @@ public int getExperienceLevel(final Campaign campaign, final boolean secondary)
39743986
final int adjustedReputation = getAdjustedReputation(campaignOptions.isUseAgeEffects(),
39753987
campaign.isClanCampaign(),
39763988
campaign.getLocalDate(),
3977-
rankLevel);
3989+
rank);
39783990

39793991
// Optional skills such as Admin for Techs are not counted towards the character's experience level, except
39803992
// in the special case of Vehicle Gunners. So we only want to fetch the base professions.
@@ -4336,7 +4348,7 @@ public int getSkillLevel(final String skillName, boolean isUseAgingEffects, bool
43364348
LocalDate today) {
43374349
final Skill skill = getSkill(skillName);
43384350

4339-
int adjustedReputation = getAdjustedReputation(isUseAgingEffects, isClanCampaign, today, rankLevel);
4351+
int adjustedReputation = getAdjustedReputation(isUseAgingEffects, isClanCampaign, today, rank);
43404352

43414353
return (skill == null) ? 0 : skill.getExperienceLevel(options, atowAttributes, adjustedReputation);
43424354
}
@@ -5569,19 +5581,19 @@ public int getReputation() {
55695581
* @param isUseAgingEffects Indicates whether aging effects should be applied to the reputation calculation.
55705582
* @param isClanCampaign Indicates whether the current campaign is specific to a clan.
55715583
* @param today The current date used to calculate the character's age.
5572-
* @param rankLevel The rank index of the character, which can adjust the reputation modifier in clan-based
5584+
* @param rankNumeric The rank index of the character, which can adjust the reputation modifier in clan-based
55735585
* campaigns.
55745586
*
55755587
* @return The adjusted reputation value, accounting for factors like age, clan campaign status, bloodname
55765588
* possession, and rank. If aging effects are disabled, the base reputation value is returned.
55775589
*/
55785590
public int getAdjustedReputation(boolean isUseAgingEffects, boolean isClanCampaign, LocalDate today,
5579-
int rankLevel) {
5591+
int rankNumeric) {
55805592
int modifier = isUseAgingEffects ?
55815593
getReputationAgeModifier(getAge(today),
55825594
isClanCampaign,
55835595
!isNullOrBlank(bloodname),
5584-
rankLevel) :
5596+
rankNumeric) :
55855597
0;
55865598
return reputation + modifier;
55875599
}

MekHQ/src/mekhq/campaign/personnel/turnoverAndRetention/RetirementDefectionTracker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ public static int getCombinedSkillValues(Campaign campaign, String skillType) {
728728
int adjustedReputation = person.getAdjustedReputation(isUseAgingEffects,
729729
isClanCampaign,
730730
today,
731-
person.getRankLevel());
731+
person.getRankNumeric());
732732
int skillLevel = skill.getTotalSkillLevel(person.getOptions(),
733733
person.getATOWAttributes(),
734734
adjustedReputation);

MekHQ/src/mekhq/campaign/rating/CamOpsReputation/CommandRating.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ private static int getATOWTraitValues(Person commander, boolean isUseAgingEffect
145145
int reputation = commander.getAdjustedReputation(isUseAgingEffects,
146146
isClanCampaign,
147147
today,
148-
commander.getRankLevel());
148+
commander.getRankNumeric());
149149
if (reputation < 0) {
150150
traitScore -= 1;
151151
} else if (reputation > 0) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ private static List<Person> getSortedAdminTransportPersonnel(Campaign campaign)
268268
isUseAgingEffects,
269269
isClanCampaign,
270270
today,
271-
p2.getRankLevel()), getSkillValue(p1, isUseAgingEffects, isClanCampaign, today, p1.getRankLevel())));
271+
p2.getRankNumeric()), getSkillValue(p1, isUseAgingEffects, isClanCampaign, today, p1.getRankNumeric())));
272272
return adminTransport;
273273
}
274274

MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ public void actionPerformed(ActionEvent action) {
638638
int adjustedReputation = selectedPerson.getAdjustedReputation(getCampaignOptions().isUseAgeEffects(),
639639
getCampaign().isClanCampaign(),
640640
getCampaign().getLocalDate(),
641-
selectedPerson.getRankLevel());
641+
selectedPerson.getRankNumeric());
642642

643643
PerformanceLogger.improvedSkill(getCampaign(),
644644
selectedPerson,
@@ -3170,7 +3170,7 @@ protected Optional<JPopupMenu> createPopupMenu() {
31703170
int adjustedReputation = person.getAdjustedReputation(getCampaignOptions().isUseAgeEffects(),
31713171
getCampaign().isClanCampaign(),
31723172
getCampaign().getLocalDate(),
3173-
person.getRankLevel());
3173+
person.getRankNumeric());
31743174

31753175
for (int i = 0; i < SkillType.getSkillList().length; i++) {
31763176
String typeName = SkillType.getSkillList()[i];
@@ -3331,10 +3331,7 @@ protected Optional<JPopupMenu> createPopupMenu() {
33313331
traitsMenu.add(menuItem);
33323332

33333333
// Reputation
3334-
int reputation = person.getAdjustedReputation(getCampaignOptions().isUseAgeEffects(),
3335-
getCampaign().isClanCampaign(),
3336-
getCampaign().getLocalDate(),
3337-
person.getRankLevel());
3334+
int reputation = person.getReputation();
33383335
target = reputation + 1;
33393336
menuItem = new JMenuItem(String.format(resources.getString("spendOnReputation.text"), target, traitCost));
33403337
menuItem.setToolTipText(wordWrap(String.format(resources.getString("spendOnReputation.tooltip"),

MekHQ/src/mekhq/gui/dialog/BatchXPDialog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ private void spendXP() {
393393
int adjustedReputation = person.getAdjustedReputation(campaignOptions.isUseAgeEffects(),
394394
campaign.isClanCampaign(),
395395
campaign.getLocalDate(),
396-
person.getRankLevel());
396+
person.getRankNumeric());
397397

398398
PerformanceLogger.improvedSkill(campaign,
399399
person,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -878,7 +878,7 @@ public String getCellValue(final Campaign campaign, final PersonnelMarket person
878878
person.getAdjustedReputation(isUseAgeEffects,
879879
isClanCampaign,
880880
today,
881-
person.getRankLevel()))) :
881+
person.getRankNumeric()))) :
882882
"-";
883883
case INJURIES:
884884
if (campaign.getCampaignOptions().isUseAdvancedMedical()) {
@@ -941,7 +941,7 @@ public String getCellValue(final Campaign campaign, final PersonnelMarket person
941941
return Integer.toString(person.getAdjustedReputation(isUseAgeEffects,
942942
isClanCampaign,
943943
today,
944-
person.getRankLevel()));
944+
person.getRankNumeric()));
945945
case UNLUCKY:
946946
return Integer.toString(person.getUnlucky());
947947
case BLOODMARK:

0 commit comments

Comments
 (0)