XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

feat: additional operator appearance slots (#2712)

Closes #2710 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2712 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

4b2b184b
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

4 个文件 +20 -0
Added src/controllers/api/upgradeOperatorController.ts +16 -0
@@ -0,0 +1,16 @@
1 import { getInventory, updateCurrency } from "../../services/inventoryService.ts";
2 import { getAccountIdForRequest } from "../../services/loginService.ts";
3 import type { RequestHandler } from "express";
4
5 export const upgradeOperatorController: RequestHandler = async (req, res) => {
6 const accountId = await getAccountIdForRequest(req);
7 const inventory = await getInventory(
8 accountId,
9 "OperatorCustomizationSlotPurchases PremiumCredits PremiumCreditsFree"
10 );
11 inventory.OperatorCustomizationSlotPurchases ??= 0;
12 inventory.OperatorCustomizationSlotPurchases += 1;
13 const inventoryChanges = updateCurrency(inventory, 10, true);
14 await inventory.save();
15 res.json({ InventoryChanges: inventoryChanges });
16 };
Modified src/models/inventoryModels/inventoryModel.ts +1 -0
@@ -1564,6 +1564,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1564 1564 OperatorLoadOuts: [operatorConfigSchema],
1565 1565 //Drifter
1566 1566 AdultOperatorLoadOuts: [operatorConfigSchema],
1567 OperatorCustomizationSlotPurchases: Number,
1567 1568 // Kahl
1568 1569 KahlLoadOuts: [operatorConfigSchema],
1569 1570
Modified src/routes/api.ts +2 -0
@@ -162,6 +162,7 @@ import { updateQuestController } from "../controllers/api/updateQuestController.
162 162 import { updateSessionGetController, updateSessionPostController } from "../controllers/api/updateSessionController.ts";
163 163 import { updateSongChallengeController } from "../controllers/api/updateSongChallengeController.ts";
164 164 import { updateThemeController } from "../controllers/api/updateThemeController.ts";
165 import { upgradeOperatorController } from "../controllers/api/upgradeOperatorController.ts";
165 166 import { upgradesController } from "../controllers/api/upgradesController.ts";
166 167 import { valenceSwapController } from "../controllers/api/valenceSwapController.ts";
167 168 import { wishlistController } from "../controllers/api/wishlistController.ts";
@@ -229,6 +230,7 @@ apiRouter.get("/startLibraryPersonalTarget.php", startLibraryPersonalTargetContr
229 230 apiRouter.get("/surveys.php", surveysController);
230 231 apiRouter.get("/trading.php", tradingController);
231 232 apiRouter.get("/updateSession.php", updateSessionGetController);
233 apiRouter.get("/upgradeOperator.php", upgradeOperatorController);
232 234
233 235 // post
234 236 apiRouter.post("/abortDojoComponent.php", abortDojoComponentController);
Modified src/types/inventoryTypes/inventoryTypes.ts +1 -0
@@ -374,6 +374,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu
374 374 CrewMembers: ICrewMemberClient[];
375 375 LotusCustomization?: ILotusCustomization;
376 376 UseAdultOperatorLoadout?: boolean;
377 OperatorCustomizationSlotPurchases?: number;
377 378 NemesisAbandonedRewards: string[];
378 379 LastInventorySync?: IOid;
379 380 NextRefill?: IMongoDate;