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: implement selling/dissolving of mods (#240)

b1e0de86
Sainan <sainan@calamity.gg>
提交于

代码差异

3 个文件 +16 -3
Modified src/controllers/api/sellController.ts +13 -2
@@ -1,7 +1,7 @@
1 1 import { RequestHandler } from "express";
2 2 import { ISellRequest } from "@/src/types/sellTypes";
3 3 import { getAccountIdForRequest } from "@/src/services/loginService";
4 import { getInventory } from "@/src/services/inventoryService";
4 import { getInventory, addMods } from "@/src/services/inventoryService";
5 5
6 6 export const sellController: RequestHandler = async (req, res) => {
7 7 const payload: ISellRequest = JSON.parse(req.body.toString());
@@ -43,7 +43,18 @@ export const sellController: RequestHandler = async (req, res) => {
43 43 // Note: sellItem.String is a uniqueName in this case
44 44 }
45 45 if (payload.Items.Upgrades) {
46 // TODO
46 payload.Items.Upgrades.forEach(sellItem => {
47 if (sellItem.Count == 0) {
48 inventory.Upgrades.pull({ _id: sellItem.String });
49 } else {
50 addMods(inventory, [
51 {
52 ItemType: sellItem.String,
53 ItemCount: sellItem.Count * -1
54 }
55 ]);
56 }
57 });
47 58 }
48 59
49 60 await inventory.save();
Modified src/models/inventoryModels/inventoryModel.ts +2 -0
@@ -2,6 +2,7 @@ import { Model, Schema, Types, model } from "mongoose";
2 2 import {
3 3 IFlavourItem,
4 4 IRawUpgrade,
5 ICrewShipSalvagedWeaponSkin,
5 6 IMiscItem,
6 7 IInventoryDatabase,
7 8 IBooster,
@@ -1001,6 +1002,7 @@ type InventoryDocumentProps = {
1001 1002 Melee: Types.DocumentArray<IWeaponDatabase>;
1002 1003 FlavourItems: Types.DocumentArray<IFlavourItem>;
1003 1004 RawUpgrades: Types.DocumentArray<IRawUpgrade>;
1005 Upgrades: Types.DocumentArray<ICrewShipSalvagedWeaponSkin>;
1004 1006 MiscItems: Types.DocumentArray<IMiscItem>;
1005 1007 Boosters: Types.DocumentArray<IBooster>;
1006 1008 OperatorLoadOuts: Types.DocumentArray<IOperatorConfigClient>;
Modified src/services/inventoryService.ts +1 -1
@@ -276,7 +276,7 @@ export const addRecipes = (inventory: IInventoryDatabaseDocument, itemsArray: IT
276 276 });
277 277 };
278 278
279 const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => {
279 export const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => {
280 280 const { RawUpgrades } = inventory;
281 281 itemsArray?.forEach(({ ItemType, ItemCount }) => {
282 282 const itemIndex = RawUpgrades.findIndex(i => i.ItemType === ItemType);