chore: use SubdocumentArray.id in upgradesController
All checks were successful
Build / build (18) (push) Successful in 46s
Build / build (22) (push) Successful in 1m7s
Build / build (20) (push) Successful in 1m6s
Build / build (18) (pull_request) Successful in 45s
Build / build (20) (pull_request) Successful in 1m8s
Build / build (22) (pull_request) Successful in 1m4s

This commit is contained in:
Sainan 2025-03-20 13:48:26 +01:00
parent f0ebeab74e
commit c4c49ce0c3

View File

@ -69,83 +69,61 @@ export const upgradesController: RequestHandler = async (req, res) => {
} else } else
switch (operation.UpgradeRequirement) { switch (operation.UpgradeRequirement) {
case "/Lotus/Types/Items/MiscItems/OrokinReactor": case "/Lotus/Types/Items/MiscItems/OrokinReactor":
case "/Lotus/Types/Items/MiscItems/OrokinCatalyst": case "/Lotus/Types/Items/MiscItems/OrokinCatalyst": {
for (const item of inventory[payload.ItemCategory]) { const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
if (item._id.toString() == payload.ItemId.$oid) {
item.Features ??= 0; item.Features ??= 0;
item.Features |= EquipmentFeatures.DOUBLE_CAPACITY; item.Features |= EquipmentFeatures.DOUBLE_CAPACITY;
break; break;
} }
}
break;
case "/Lotus/Types/Items/MiscItems/UtilityUnlocker": case "/Lotus/Types/Items/MiscItems/UtilityUnlocker":
case "/Lotus/Types/Items/MiscItems/WeaponUtilityUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponUtilityUnlocker": {
for (const item of inventory[payload.ItemCategory]) { const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
if (item._id.toString() == payload.ItemId.$oid) {
item.Features ??= 0; item.Features ??= 0;
item.Features |= EquipmentFeatures.UTILITY_SLOT; item.Features |= EquipmentFeatures.UTILITY_SLOT;
break; break;
} }
} case "/Lotus/Types/Items/MiscItems/HeavyWeaponCatalyst": {
break;
case "/Lotus/Types/Items/MiscItems/HeavyWeaponCatalyst":
console.assert(payload.ItemCategory == "SpaceGuns"); console.assert(payload.ItemCategory == "SpaceGuns");
for (const item of inventory[payload.ItemCategory]) { const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
if (item._id.toString() == payload.ItemId.$oid) {
item.Features ??= 0; item.Features ??= 0;
item.Features |= EquipmentFeatures.GRAVIMAG_INSTALLED; item.Features |= EquipmentFeatures.GRAVIMAG_INSTALLED;
break; break;
} }
}
break;
case "/Lotus/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker":
case "/Lotus/Types/Items/MiscItems/WeaponSecondaryArcaneUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponSecondaryArcaneUnlocker":
case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker":
case "/Lotus/Types/Items/MiscItems/WeaponAmpArcaneUnlocker": case "/Lotus/Types/Items/MiscItems/WeaponAmpArcaneUnlocker": {
for (const item of inventory[payload.ItemCategory]) { const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
if (item._id.toString() == payload.ItemId.$oid) {
item.Features ??= 0; item.Features ??= 0;
item.Features |= EquipmentFeatures.ARCANE_SLOT; item.Features |= EquipmentFeatures.ARCANE_SLOT;
break; break;
} }
}
break;
case "/Lotus/Types/Items/MiscItems/Forma": case "/Lotus/Types/Items/MiscItems/Forma":
case "/Lotus/Types/Items/MiscItems/FormaUmbra": case "/Lotus/Types/Items/MiscItems/FormaUmbra":
case "/Lotus/Types/Items/MiscItems/FormaAura": case "/Lotus/Types/Items/MiscItems/FormaAura":
case "/Lotus/Types/Items/MiscItems/FormaStance": case "/Lotus/Types/Items/MiscItems/FormaStance": {
for (const item of inventory[payload.ItemCategory]) { const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
if (item._id.toString() == payload.ItemId.$oid) {
item.XP = 0; item.XP = 0;
setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue); setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue);
item.Polarized ??= 0; item.Polarized ??= 0;
item.Polarized += 1; item.Polarized += 1;
break; break;
} }
} case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker": {
break; const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker":
for (const item of inventory[payload.ItemCategory]) {
if (item._id.toString() == payload.ItemId.$oid) {
item.ModSlotPurchases ??= 0; item.ModSlotPurchases ??= 0;
item.ModSlotPurchases += 1; item.ModSlotPurchases += 1;
break; break;
} }
} case "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker": {
break; const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
case "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker":
for (const item of inventory[payload.ItemCategory]) {
if (item._id.toString() == payload.ItemId.$oid) {
item.CustomizationSlotPurchases ??= 0; item.CustomizationSlotPurchases ??= 0;
item.CustomizationSlotPurchases += 1; item.CustomizationSlotPurchases += 1;
break; break;
} }
} case "": {
break;
case "":
console.assert(operation.OperationType == "UOT_SWAP_POLARITY"); console.assert(operation.OperationType == "UOT_SWAP_POLARITY");
for (const item of inventory[payload.ItemCategory]) { const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
if (item._id.toString() == payload.ItemId.$oid) {
for (let i = 0; i != operation.PolarityRemap.length; ++i) { for (let i = 0; i != operation.PolarityRemap.length; ++i) {
if (operation.PolarityRemap[i].Slot != i) { if (operation.PolarityRemap[i].Slot != i) {
setSlotPolarity(item, i, operation.PolarityRemap[i].Value); setSlotPolarity(item, i, operation.PolarityRemap[i].Value);
@ -153,8 +131,6 @@ export const upgradesController: RequestHandler = async (req, res) => {
} }
break; break;
} }
}
break;
default: default:
throw new Error("Unsupported upgrade: " + operation.UpgradeRequirement); throw new Error("Unsupported upgrade: " + operation.UpgradeRequirement);
} }