From 45feff682b04cc2da797bdeccb2b0324334c8531 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Tue, 8 Jul 2025 20:52:14 -0700 Subject: [PATCH] feat: give on call crew gear item for command rank 9 (#2450) Closes #2445 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2450 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/controllers/api/playerSkillsController.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/controllers/api/playerSkillsController.ts b/src/controllers/api/playerSkillsController.ts index 5c8b301a..05319b35 100644 --- a/src/controllers/api/playerSkillsController.ts +++ b/src/controllers/api/playerSkillsController.ts @@ -1,25 +1,39 @@ import { getJSONfromString } from "@/src/helpers/stringHelpers"; -import { getInventory } from "@/src/services/inventoryService"; +import { addConsumables, getInventory } from "@/src/services/inventoryService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { IPlayerSkills } from "@/src/types/inventoryTypes/inventoryTypes"; +import { IInventoryChanges } from "@/src/types/purchaseTypes"; import { RequestHandler } from "express"; export const playerSkillsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); - const inventory = await getInventory(accountId, "PlayerSkills"); + const inventory = await getInventory(accountId, "PlayerSkills Consumables"); const request = getJSONfromString(String(req.body)); const oldRank: number = inventory.PlayerSkills[request.Skill as keyof IPlayerSkills]; const cost = (request.Pool == "LPP_DRIFTER" ? drifterCosts[oldRank] : 1 << oldRank) * 1000; inventory.PlayerSkills[request.Pool as keyof IPlayerSkills] -= cost; inventory.PlayerSkills[request.Skill as keyof IPlayerSkills]++; - await inventory.save(); + const inventoryChanges: IInventoryChanges = {}; + if (request.Skill == "LPS_COMMAND" && inventory.PlayerSkills.LPS_COMMAND == 9) { + const consumablesChanges = [ + { + ItemType: "/Lotus/Types/Restoratives/Consumable/CrewmateBall", + ItemCount: 1 + } + ]; + addConsumables(inventory, consumablesChanges); + inventoryChanges.Consumables = consumablesChanges; + } + + await inventory.save(); res.json({ Pool: request.Pool, PoolInc: -cost, Skill: request.Skill, - Rank: oldRank + 1 + Rank: oldRank + 1, + InventoryChanges: inventoryChanges }); };