feat: helminth gaining subsume slots (#677)

This commit is contained in:
Sainan 2024-12-31 04:46:12 +01:00 committed by GitHub
parent a16158aedd
commit 3e54977d4b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,7 +3,7 @@ import { getAccountIdForRequest } from "@/src/services/loginService";
import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { getJSONfromString } from "@/src/helpers/stringHelpers";
import { getInventory, addMiscItems } from "@/src/services/inventoryService"; import { getInventory, addMiscItems } from "@/src/services/inventoryService";
import { IOid } from "@/src/types/commonTypes"; import { IOid } from "@/src/types/commonTypes";
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes"; import { IInfestedFoundry, IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
import { ExportMisc } from "warframe-public-export-plus"; import { ExportMisc } from "warframe-public-export-plus";
export const infestedFoundryController: RequestHandler = async (req, res) => { export const infestedFoundryController: RequestHandler = async (req, res) => {
@ -60,7 +60,6 @@ export const infestedFoundryController: RequestHandler = async (req, res) => {
const inventory = await getInventory(accountId); const inventory = await getInventory(accountId);
inventory.InfestedFoundry ??= {}; inventory.InfestedFoundry ??= {};
inventory.InfestedFoundry.Resources ??= []; inventory.InfestedFoundry.Resources ??= [];
inventory.InfestedFoundry.XP ??= 0;
const miscItemChanges: IMiscItem[] = []; const miscItemChanges: IMiscItem[] = [];
let totalPercentagePointsGained = 0; let totalPercentagePointsGained = 0;
@ -89,7 +88,7 @@ export const infestedFoundryController: RequestHandler = async (req, res) => {
} }
} }
inventory.InfestedFoundry.XP += 666 * totalPercentagePointsGained; addInfestedFoundryXP(inventory.InfestedFoundry, 666 * totalPercentagePointsGained);
addMiscItems(inventory, miscItemChanges); addMiscItems(inventory, miscItemChanges);
await inventory.save(); await inventory.save();
@ -97,7 +96,8 @@ export const infestedFoundryController: RequestHandler = async (req, res) => {
InventoryChanges: { InventoryChanges: {
InfestedFoundry: { InfestedFoundry: {
XP: inventory.InfestedFoundry.XP, XP: inventory.InfestedFoundry.XP,
Resources: inventory.InfestedFoundry.Resources Resources: inventory.InfestedFoundry.Resources,
Slots: inventory.InfestedFoundry.Slots
} }
}, },
MiscItems: miscItemChanges MiscItems: miscItemChanges
@ -147,3 +147,21 @@ const colorToShard: Record<string, string> = {
ACC_PURPLE: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalViolet", ACC_PURPLE: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalViolet",
ACC_PURPLE_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalVioletMythic" ACC_PURPLE_MYTHIC: "/Lotus/Types/Gameplay/NarmerSorties/ArchonCrystalVioletMythic"
}; };
const addInfestedFoundryXP = (infestedFoundry: IInfestedFoundry, delta: number): void => {
infestedFoundry.XP ??= 0;
const prevXP = infestedFoundry.XP;
infestedFoundry.XP += delta;
if (prevXP < 2250_00 && infestedFoundry.XP >= 2250_00) {
infestedFoundry.Slots ??= 0;
infestedFoundry.Slots += 3;
}
if (prevXP < 15750_00 && infestedFoundry.XP >= 15750_00) {
infestedFoundry.Slots ??= 0;
infestedFoundry.Slots += 10;
}
if (prevXP < 39375_00 && infestedFoundry.XP >= 39375_00) {
infestedFoundry.Slots ??= 0;
infestedFoundry.Slots += 20;
}
};