Skip to content

Commit 2c8d5cc

Browse files
authored
Merge pull request #7239 from IllianiBird/factionStandingResupply
Improvement: Implemented Faction Standing-based Resupply Weight Modifiers
2 parents a4fa7a3 + 8436905 commit 2c8d5cc

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import static megamek.common.MiscType.F_SPONSON_TURRET;
4040
import static megamek.common.enums.SkillLevel.NONE;
4141
import static mekhq.MHQConstants.BATTLE_OF_TUKAYYID;
42-
import static mekhq.campaign.force.CombatTeam.getStandardForceSize;
4342
import static mekhq.campaign.force.ForceType.CONVOY;
4443
import static mekhq.campaign.force.ForceType.STANDARD;
4544
import static mekhq.campaign.market.procurement.Procurement.getTechFaction;
@@ -78,6 +77,8 @@
7877
import mekhq.campaign.personnel.skills.SkillType;
7978
import mekhq.campaign.unit.Unit;
8079
import mekhq.campaign.universe.Faction;
80+
import mekhq.campaign.universe.factionStanding.FactionStandingUtilities;
81+
import mekhq.campaign.universe.factionStanding.FactionStandings;
8182

8283
/**
8384
* The {@code Resupply} class manages the resupply process during a campaign. It calculates the required resupply
@@ -450,7 +451,14 @@ static int calculateTargetCargoTonnage(Campaign campaign, AtBContract contract)
450451
final double baseTonnage = min(unitTonnage, tonnageCap);
451452

452453
final int TONNAGE_DIVIDER = 125;
453-
final double dropSize = baseTonnage / TONNAGE_DIVIDER;
454+
double dropSize = baseTonnage / TONNAGE_DIVIDER;
455+
456+
if (campaign.getCampaignOptions().isUseFactionStandingResupplySafe()) {
457+
FactionStandings standings = campaign.getFactionStandings();
458+
double regard = standings.getRegardForFaction(contract.getEmployerCode(), true);
459+
double resupplyMultiplier = FactionStandingUtilities.getResupplyWeightModifier(regard);
460+
dropSize *= resupplyMultiplier;
461+
}
454462

455463
return (int) max(CARGO_MINIMUM_WEIGHT, round(dropSize));
456464
}

0 commit comments

Comments
 (0)