forked from OpenWF/SpaceNinjaServer
		
	chore: use SubdocumentArray.id in upgradesController (#1238)
Reviewed-on: OpenWF/SpaceNinjaServer#1238
This commit is contained in:
		
							parent
							
								
									f0ebeab74e
								
							
						
					
					
						commit
						88c5999d07
					
				@ -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);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user