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: valence swap (#1244)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1244

31ad97e2
Sainan <sainan@calamity.inc>
提交于

代码差异

2 个文件 +39 -0
Added src/controllers/api/valenceSwapController.ts +37 -0
@@ -0,0 +1,37 @@
1 import { getInventory } from "@/src/services/inventoryService";
2 import { getAccountIdForRequest } from "@/src/services/loginService";
3 import { IOid } from "@/src/types/commonTypes";
4 import { TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
5 import { RequestHandler } from "express";
6
7 export const valenceSwapController: RequestHandler = async (req, res) => {
8 const accountId = await getAccountIdForRequest(req);
9 const body = JSON.parse(String(req.body)) as IValenceSwapRequest;
10 const inventory = await getInventory(accountId, body.WeaponCategory);
11 const weapon = inventory[body.WeaponCategory].id(body.WeaponId.$oid)!;
12
13 const upgradeFingerprint = JSON.parse(weapon.UpgradeFingerprint!) as IInnateDamageFingerprint;
14 upgradeFingerprint.buffs[0].Tag = body.NewValenceUpgradeTag;
15 weapon.UpgradeFingerprint = JSON.stringify(upgradeFingerprint);
16
17 await inventory.save();
18 res.json({
19 InventoryChanges: {
20 [body.WeaponCategory]: [weapon.toJSON()]
21 }
22 });
23 };
24
25 interface IValenceSwapRequest {
26 WeaponId: IOid;
27 WeaponCategory: TEquipmentKey;
28 NewValenceUpgradeTag: string;
29 }
30
31 interface IInnateDamageFingerprint {
32 compat: string;
33 buffs: {
34 Tag: string;
35 Value: number;
36 }[];
37 }
Modified src/routes/api.ts +2 -0
@@ -113,6 +113,7 @@ import { updateSessionGetController, updateSessionPostController } from "@/src/c
113 113 import { updateSongChallengeController } from "@/src/controllers/api/updateSongChallengeController";
114 114 import { updateThemeController } from "@/src/controllers/api/updateThemeController";
115 115 import { upgradesController } from "@/src/controllers/api/upgradesController";
116 import { valenceSwapController } from "@/src/controllers/api/valenceSwapController";
116 117
117 118 const apiRouter = express.Router();
118 119
@@ -241,5 +242,6 @@ apiRouter.post("/updateSession.php", updateSessionPostController);
241 242 apiRouter.post("/updateSongChallenge.php", updateSongChallengeController);
242 243 apiRouter.post("/updateTheme.php", updateThemeController);
243 244 apiRouter.post("/upgrades.php", upgradesController);
245 apiRouter.post("/valenceSwap.php", valenceSwapController);
244 246
245 247 export { apiRouter };