feat: additional operator appearance slots (#2712)
Some checks failed
Build Docker image / docker-amd64 (push) Waiting to run
Build / build (push) Has been cancelled
Build Docker image / docker-arm64 (push) Has been cancelled

Closes #2710

Reviewed-on: #2712
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-08-28 05:50:13 -07:00 committed by Sainan
parent dc401de1e9
commit 4b2b184b8f
4 changed files with 20 additions and 0 deletions

View File

@ -0,0 +1,16 @@
import { getInventory, updateCurrency } from "../../services/inventoryService.ts";
import { getAccountIdForRequest } from "../../services/loginService.ts";
import type { RequestHandler } from "express";
export const upgradeOperatorController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req);
const inventory = await getInventory(
accountId,
"OperatorCustomizationSlotPurchases PremiumCredits PremiumCreditsFree"
);
inventory.OperatorCustomizationSlotPurchases ??= 0;
inventory.OperatorCustomizationSlotPurchases += 1;
const inventoryChanges = updateCurrency(inventory, 10, true);
await inventory.save();
res.json({ InventoryChanges: inventoryChanges });
};

View File

@ -1564,6 +1564,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
OperatorLoadOuts: [operatorConfigSchema],
//Drifter
AdultOperatorLoadOuts: [operatorConfigSchema],
OperatorCustomizationSlotPurchases: Number,
// Kahl
KahlLoadOuts: [operatorConfigSchema],

View File

@ -162,6 +162,7 @@ import { updateQuestController } from "../controllers/api/updateQuestController.
import { updateSessionGetController, updateSessionPostController } from "../controllers/api/updateSessionController.ts";
import { updateSongChallengeController } from "../controllers/api/updateSongChallengeController.ts";
import { updateThemeController } from "../controllers/api/updateThemeController.ts";
import { upgradeOperatorController } from "../controllers/api/upgradeOperatorController.ts";
import { upgradesController } from "../controllers/api/upgradesController.ts";
import { valenceSwapController } from "../controllers/api/valenceSwapController.ts";
import { wishlistController } from "../controllers/api/wishlistController.ts";
@ -229,6 +230,7 @@ apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetContr
apiRouter.get("/surveys.php", surveysController);
apiRouter.get("/trading.php", tradingController);
apiRouter.get("/updateSession.php", updateSessionGetController);
apiRouter.get("/upgradeOperator.php", upgradeOperatorController);
// post
apiRouter.post("/abortDojoComponent.php", abortDojoComponentController);

View File

@ -374,6 +374,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
CrewMembers: ICrewMemberClient[];
LotusCustomization?: ILotusCustomization;
UseAdultOperatorLoadout?: boolean;
OperatorCustomizationSlotPurchases?: number;
NemesisAbandonedRewards: string[];
LastInventorySync?: IOid;
NextRefill?: IMongoDate;