返回提交历史
Added
src/controllers/api/umbraController.ts
+27
-0
Modified
src/routes/api.ts
+2
-0
Modified
src/services/inventoryService.ts
+1
-1
XFEstudio/XFESpaceNinjaServer
feat: echoes of umbra (#2177)
Having this item in the inventory unlocks the helminth option which is helpfully called "remove cyst" to install and uninstall it on a frame. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2177 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
6c2055a2
代码差异
3 个文件
+30
-1
@@ -0,0 +1,27 @@
1
import { fromMongoDate, fromOid } from "@/src/helpers/inventoryHelpers";
2
import { getJSONfromString } from "@/src/helpers/stringHelpers";
3
import { addMiscItem, getInventory } from "@/src/services/inventoryService";
4
import { getAccountIdForRequest } from "@/src/services/loginService";
5
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
6
import { RequestHandler } from "express";
7
8
export const umbraController: RequestHandler = async (req, res) => {
9
const accountId = await getAccountIdForRequest(req);
10
const inventory = await getInventory(accountId, "Suits MiscItems");
11
const payload = getJSONfromString<IUmbraRequest>(String(req.body));
12
for (const clientSuit of payload.Suits) {
13
const dbSuit = inventory.Suits.id(fromOid(clientSuit.ItemId))!;
14
if (clientSuit.UmbraDate) {
15
addMiscItem(inventory, "/Lotus/Types/Items/MiscItems/UmbraEchoes", -1);
16
dbSuit.UmbraDate = fromMongoDate(clientSuit.UmbraDate);
17
} else {
18
dbSuit.UmbraDate = undefined;
19
}
20
}
21
await inventory.save();
22
res.end();
23
};
24
25
interface IUmbraRequest {
26
Suits: IEquipmentClient[];
27
}
@@ -148,6 +148,7 @@ import { syndicateStandingBonusController } from "@/src/controllers/api/syndicat
148
148
import { tauntHistoryController } from "@/src/controllers/api/tauntHistoryController";
149
149
import { tradingController } from "@/src/controllers/api/tradingController";
150
150
import { trainingResultController } from "@/src/controllers/api/trainingResultController";
151
import { umbraController } from "@/src/controllers/api/umbraController";
151
152
import { unlockShipFeatureController } from "@/src/controllers/api/unlockShipFeatureController";
152
153
import { updateAlignmentController } from "@/src/controllers/api/updateAlignmentController";
153
154
import { updateChallengeProgressController } from "@/src/controllers/api/updateChallengeProgressController";
@@ -329,6 +330,7 @@ apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
329
330
apiRouter.post("/syndicateStandingBonus.php", syndicateStandingBonusController);
330
331
apiRouter.post("/tauntHistory.php", tauntHistoryController);
331
332
apiRouter.post("/trainingResult.php", trainingResultController);
333
apiRouter.post("/umbra.php", umbraController);
332
334
apiRouter.post("/unlockShipFeature.php", unlockShipFeatureController);
333
335
apiRouter.post("/updateAlignment.php", updateAlignmentController);
334
336
apiRouter.post("/updateChallengeProgress.php", updateChallengeProgressController);
@@ -1580,7 +1580,7 @@ export const addMiscItem = (
1580
1580
inventory: TInventoryDatabaseDocument,
1581
1581
type: string,
1582
1582
count: number,
1583
inventoryChanges: IInventoryChanges
1583
inventoryChanges: IInventoryChanges = {}
1584
1584
): void => {
1585
1585
const miscItemChanges: IMiscItem[] = [
1586
1586
{