fix: improve detection of modular weapon category

This commit is contained in:
Sainan 2025-01-03 08:00:26 +01:00
parent f1c0c5a429
commit f8da1d74e6

View File

@ -4,18 +4,30 @@ import { getJSONfromString } from "@/src/helpers/stringHelpers";
import { TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes"; import { TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
import { getInventory, updateCurrency, addEquipment, addMiscItems } from "@/src/services/inventoryService"; import { getInventory, updateCurrency, addEquipment, addMiscItems } from "@/src/services/inventoryService";
const modularWeaponTypes: Record<string, TEquipmentKey> = { const modularWeaponTypeToCategory = (type: string): TEquipmentKey | undefined => {
"/Lotus/Weapons/SolarisUnited/Primary/LotusModularPrimaryBeam": "LongGuns", if (type.indexOf("LotusModularPrimary") != -1) {
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondary": "Pistols", return "LongGuns";
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam": "Pistols", }
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun": "Pistols", if (type.indexOf("LotusModularSecondary") != -1) {
"/Lotus/Weapons/Ostron/Melee/LotusModularWeapon": "Melee", return "Pistols";
"/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon": "OperatorAmps", }
"/Lotus/Types/Vehicles/Hoverboard/HoverboardSuit": "Hoverboards", switch (type) {
"/Lotus/Types/Friendly/Pets/MoaPets/MoaPetPowerSuit": "MoaPets", case "/Lotus/Weapons/Ostron/Melee/LotusModularWeapon":
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetAPowerSuit": "MoaPets", return "Melee";
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetBPowerSuit": "MoaPets", case "/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon":
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit": "MoaPets" return "OperatorAmps";
case "/Lotus/Types/Vehicles/Hoverboard/HoverboardSuit":
return "Hoverboards";
case "/Lotus/Types/Friendly/Pets/MoaPets/MoaPetPowerSuit":
return "MoaPets";
case "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetAPowerSuit":
return "MoaPets";
case "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetBPowerSuit":
return "MoaPets";
case "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit":
return "MoaPets";
}
return undefined;
}; };
interface IModularCraftRequest { interface IModularCraftRequest {
@ -26,10 +38,10 @@ interface IModularCraftRequest {
export const modularWeaponCraftingController: RequestHandler = async (req, res) => { export const modularWeaponCraftingController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req); const accountId = await getAccountIdForRequest(req);
const data = getJSONfromString(String(req.body)) as IModularCraftRequest; const data = getJSONfromString(String(req.body)) as IModularCraftRequest;
if (!(data.WeaponType in modularWeaponTypes)) { const category = modularWeaponTypeToCategory(data.WeaponType);
if (!category) {
throw new Error(`unknown modular weapon type: ${data.WeaponType}`); throw new Error(`unknown modular weapon type: ${data.WeaponType}`);
} }
const category = modularWeaponTypes[data.WeaponType];
// Give weapon // Give weapon
const weapon = await addEquipment(category, data.WeaponType, accountId, data.Parts); const weapon = await addEquipment(category, data.WeaponType, accountId, data.Parts);