Handle title decrease after applying alignment
This commit is contained in:
parent
521a8998bc
commit
4d3cbbb989
@ -10,3 +10,14 @@ export const getMaxStanding = (syndicate: ISyndicate, title: number): number =>
|
|||||||
}
|
}
|
||||||
return syndicate.titles.find(x => x.level == title)!.maxStanding;
|
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;
|
||||||
|
};
|
||||||
|
@ -82,7 +82,7 @@ import { handleBundleAcqusition } from "./purchaseService";
|
|||||||
import libraryDailyTasks from "@/static/fixed_responses/libraryDailyTasks.json";
|
import libraryDailyTasks from "@/static/fixed_responses/libraryDailyTasks.json";
|
||||||
import { getRandomElement, getRandomInt, getRandomWeightedReward, SRng } from "./rngService";
|
import { getRandomElement, getRandomInt, getRandomWeightedReward, SRng } from "./rngService";
|
||||||
import { createMessage } from "./inboxService";
|
import { createMessage } from "./inboxService";
|
||||||
import { getMaxStanding } from "@/src/helpers/syndicateStandingHelper";
|
import { getMaxStanding, getMinStanding } from "@/src/helpers/syndicateStandingHelper";
|
||||||
import { getNightwaveSyndicateTag, getWorldState } from "./worldStateService";
|
import { getNightwaveSyndicateTag, getWorldState } from "./worldStateService";
|
||||||
import { generateNemesisProfile, INemesisProfile } from "../helpers/nemesisHelpers";
|
import { generateNemesisProfile, INemesisProfile } from "../helpers/nemesisHelpers";
|
||||||
import { TAccountDocument } from "./loginService";
|
import { TAccountDocument } from "./loginService";
|
||||||
@ -1217,6 +1217,10 @@ export const addStanding = (
|
|||||||
const max = getMaxStanding(syndicateMeta, syndicate.Title ?? 0);
|
const max = getMaxStanding(syndicateMeta, syndicate.Title ?? 0);
|
||||||
if (syndicate.Standing + gainedStanding > max) gainedStanding = max - syndicate.Standing;
|
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 (!isMedallion || syndicateMeta.medallionsCappedByDailyLimit) {
|
||||||
if (gainedStanding > getStandingLimit(inventory, syndicateMeta.dailyLimitBin)) {
|
if (gainedStanding > getStandingLimit(inventory, syndicateMeta.dailyLimitBin)) {
|
||||||
gainedStanding = getStandingLimit(inventory, syndicateMeta.dailyLimitBin);
|
gainedStanding = getStandingLimit(inventory, syndicateMeta.dailyLimitBin);
|
||||||
@ -1225,15 +1229,26 @@ export const addStanding = (
|
|||||||
}
|
}
|
||||||
|
|
||||||
syndicate.Standing += gainedStanding;
|
syndicate.Standing += gainedStanding;
|
||||||
affiliationMods.push({
|
const affiliationMod: IAffiliationMods = {
|
||||||
Tag: syndicateTag,
|
Tag: syndicateTag,
|
||||||
Standing: gainedStanding
|
Standing: gainedStanding
|
||||||
});
|
};
|
||||||
|
affiliationMods.push(affiliationMod);
|
||||||
|
|
||||||
if (syndicateMeta.alignments && propagateAlignments) {
|
if (syndicateMeta.alignments) {
|
||||||
|
if (propagateAlignments) {
|
||||||
for (const [tag, factor] of Object.entries(syndicateMeta.alignments)) {
|
for (const [tag, factor] of Object.entries(syndicateMeta.alignments)) {
|
||||||
addStanding(inventory, tag, gainedStanding * factor, affiliationMods, isMedallion, false);
|
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`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user