From 4d3cbbb989f1626088fe598cb174559d6005d7cf Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sat, 14 Jun 2025 05:41:00 +0200 Subject: [PATCH] Handle title decrease after applying alignment --- src/helpers/syndicateStandingHelper.ts | 11 +++++++++++ src/services/inventoryService.ts | 27 ++++++++++++++++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/helpers/syndicateStandingHelper.ts b/src/helpers/syndicateStandingHelper.ts index a412bdbf..ac478dda 100644 --- a/src/helpers/syndicateStandingHelper.ts +++ b/src/helpers/syndicateStandingHelper.ts @@ -10,3 +10,14 @@ export const getMaxStanding = (syndicate: ISyndicate, title: number): number => } return syndicate.titles.find(x => x.level == title)!.maxStanding; }; + +export const getMinStanding = (syndicate: ISyndicate, title: number): number => { + if (!syndicate.titles) { + // LibrarySyndicate + return 0; + } + if (title == 0) { + return syndicate.titles.find(x => x.level == -1)!.maxStanding; + } + return syndicate.titles.find(x => x.level == title)!.minStanding; +}; diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 9721bcfe..ad53cad5 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -82,7 +82,7 @@ import { handleBundleAcqusition } from "./purchaseService"; import libraryDailyTasks from "@/static/fixed_responses/libraryDailyTasks.json"; import { getRandomElement, getRandomInt, getRandomWeightedReward, SRng } from "./rngService"; import { createMessage } from "./inboxService"; -import { getMaxStanding } from "@/src/helpers/syndicateStandingHelper"; +import { getMaxStanding, getMinStanding } from "@/src/helpers/syndicateStandingHelper"; import { getNightwaveSyndicateTag, getWorldState } from "./worldStateService"; import { generateNemesisProfile, INemesisProfile } from "../helpers/nemesisHelpers"; import { TAccountDocument } from "./loginService"; @@ -1217,6 +1217,10 @@ export const addStanding = ( const max = getMaxStanding(syndicateMeta, syndicate.Title ?? 0); if (syndicate.Standing + gainedStanding > max) gainedStanding = max - syndicate.Standing; + if (syndicate.Title == -2 && syndicate.Standing + gainedStanding < -71000) { + gainedStanding = -71000 + syndicate.Standing; + } + if (!isMedallion || syndicateMeta.medallionsCappedByDailyLimit) { if (gainedStanding > getStandingLimit(inventory, syndicateMeta.dailyLimitBin)) { gainedStanding = getStandingLimit(inventory, syndicateMeta.dailyLimitBin); @@ -1225,14 +1229,25 @@ export const addStanding = ( } syndicate.Standing += gainedStanding; - affiliationMods.push({ + const affiliationMod: IAffiliationMods = { Tag: syndicateTag, Standing: gainedStanding - }); + }; + affiliationMods.push(affiliationMod); - if (syndicateMeta.alignments && propagateAlignments) { - for (const [tag, factor] of Object.entries(syndicateMeta.alignments)) { - addStanding(inventory, tag, gainedStanding * factor, affiliationMods, isMedallion, false); + if (syndicateMeta.alignments) { + if (propagateAlignments) { + for (const [tag, factor] of Object.entries(syndicateMeta.alignments)) { + addStanding(inventory, tag, gainedStanding * factor, affiliationMods, isMedallion, false); + } + } else { + while (syndicate.Standing < getMinStanding(syndicateMeta, syndicate.Title ?? 0)) { + syndicate.Title ??= 0; + syndicate.Title -= 1; + affiliationMod.Title ??= 0; + affiliationMod.Title -= 1; + logger.debug(`${syndicateTag} is decreasing to title ${syndicate.Title} after applying alignment`); + } } } };