Copy adjusted fence rep value into scav profile

This commit is contained in:
Dev 2024-03-24 22:08:32 +00:00
parent e147b90293
commit eca6f4bd75

View File

@ -473,7 +473,7 @@ export class InraidController
pmcQuest.statusTimers = quest.statusTimers; pmcQuest.statusTimers = quest.statusTimers;
for (const statusTimerKey in quest.statusTimers) for (const statusTimerKey in quest.statusTimers)
{ {
if (Number.isNaN(parseInt(statusTimerKey))) if (Number.isNaN(Number.parseInt(statusTimerKey)))
{ {
quest.statusTimers[QuestStatus[statusTimerKey]] = quest.statusTimers[statusTimerKey]; quest.statusTimers[QuestStatus[statusTimerKey]] = quest.statusTimers[statusTimerKey];
delete quest.statusTimers[statusTimerKey]; delete quest.statusTimers[statusTimerKey];
@ -563,7 +563,7 @@ export class InraidController
this.saveServer.getProfile(sessionID).characters.scav = scavData; this.saveServer.getProfile(sessionID).characters.scav = scavData;
// Scav karma // Scav karma
this.handlePostRaidPlayerScavKarmaChanges(pmcData, offraidData); this.handlePostRaidPlayerScavKarmaChanges(pmcData, offraidData, scavData);
// Scav died, regen scav loadout and set timer // Scav died, regen scav loadout and set timer
if (isDead) if (isDead)
@ -581,14 +581,20 @@ export class InraidController
* Update profile with scav karma values based on in-raid actions * Update profile with scav karma values based on in-raid actions
* @param pmcData Pmc profile * @param pmcData Pmc profile
* @param offraidData Post-raid save request * @param offraidData Post-raid save request
* @param scavData Scav profile
*/ */
protected handlePostRaidPlayerScavKarmaChanges(pmcData: IPmcData, offraidData: ISaveProgressRequestData): void protected handlePostRaidPlayerScavKarmaChanges(
pmcData: IPmcData,
offraidData: ISaveProgressRequestData,
scavData: IPmcData,
): void
{ {
const fenceId = Traders.FENCE; const fenceId = Traders.FENCE;
let fenceStanding = Number(offraidData.profile.TradersInfo[fenceId].standing); let fenceStanding = Number(offraidData.profile.TradersInfo[fenceId].standing);
// Successful extract with scav adds 0.01 standing // Client doesn't calcualte car extract rep changes, must be done manually
// Successful extracts give rep
if (offraidData.exit === PlayerRaidEndState.SURVIVED) if (offraidData.exit === PlayerRaidEndState.SURVIVED)
{ {
fenceStanding += this.inRaidConfig.scavExtractGain; fenceStanding += this.inRaidConfig.scavExtractGain;
@ -597,8 +603,13 @@ export class InraidController
// Make standing changes to pmc profile // Make standing changes to pmc profile
pmcData.TradersInfo[fenceId].standing = Math.min(Math.max(fenceStanding, -7), 15); // Ensure it stays between -7 and 15 pmcData.TradersInfo[fenceId].standing = Math.min(Math.max(fenceStanding, -7), 15); // Ensure it stays between -7 and 15
this.logger.debug(`New fence standing: ${pmcData.TradersInfo[fenceId].standing}`); this.logger.debug(`New fence standing: ${pmcData.TradersInfo[fenceId].standing}`);
this.traderHelper.lvlUp(fenceId, pmcData); this.traderHelper.lvlUp(fenceId, pmcData);
pmcData.TradersInfo[fenceId].loyaltyLevel = Math.max(pmcData.TradersInfo[fenceId].loyaltyLevel, 1); pmcData.TradersInfo[fenceId].loyaltyLevel = Math.max(pmcData.TradersInfo[fenceId].loyaltyLevel, 1);
// Copy updated fence rep values into scav profile to ensure consistency
scavData.TradersInfo[fenceId].standing = pmcData.TradersInfo[fenceId].standing;
scavData.TradersInfo[fenceId].loyaltyLevel = pmcData.TradersInfo[fenceId].loyaltyLevel;
} }
/** /**