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

chore: use SubdocumentArray.id in upgradesController (#1238)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1238

88c5999d
Sainan <sainan@calamity.inc>
提交于

代码差异

1 个文件 +43 -67
Modified src/controllers/api/upgradesController.ts +43 -67
@@ -69,92 +69,68 @@ export const upgradesController: RequestHandler = async (req, res) => {
69 69 } else
70 70 switch (operation.UpgradeRequirement) {
71 71 case "/Lotus/Types/Items/MiscItems/OrokinReactor":
72 case "/Lotus/Types/Items/MiscItems/OrokinCatalyst":
73 for (const item of inventory[payload.ItemCategory]) {
74 if (item._id.toString() == payload.ItemId.$oid) {
75 item.Features ??= 0;
76 item.Features |= EquipmentFeatures.DOUBLE_CAPACITY;
77 break;
78 }
79 }
72 case "/Lotus/Types/Items/MiscItems/OrokinCatalyst": {
73 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
74 item.Features ??= 0;
75 item.Features |= EquipmentFeatures.DOUBLE_CAPACITY;
80 76 break;
77 }
81 78 case "/Lotus/Types/Items/MiscItems/UtilityUnlocker":
82 case "/Lotus/Types/Items/MiscItems/WeaponUtilityUnlocker":
83 for (const item of inventory[payload.ItemCategory]) {
84 if (item._id.toString() == payload.ItemId.$oid) {
85 item.Features ??= 0;
86 item.Features |= EquipmentFeatures.UTILITY_SLOT;
87 break;
88 }
89 }
79 case "/Lotus/Types/Items/MiscItems/WeaponUtilityUnlocker": {
80 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
81 item.Features ??= 0;
82 item.Features |= EquipmentFeatures.UTILITY_SLOT;
90 83 break;
91 case "/Lotus/Types/Items/MiscItems/HeavyWeaponCatalyst":
84 }
85 case "/Lotus/Types/Items/MiscItems/HeavyWeaponCatalyst": {
92 86 console.assert(payload.ItemCategory == "SpaceGuns");
93 for (const item of inventory[payload.ItemCategory]) {
94 if (item._id.toString() == payload.ItemId.$oid) {
95 item.Features ??= 0;
96 item.Features |= EquipmentFeatures.GRAVIMAG_INSTALLED;
97 break;
98 }
99 }
87 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
88 item.Features ??= 0;
89 item.Features |= EquipmentFeatures.GRAVIMAG_INSTALLED;
100 90 break;
91 }
101 92 case "/Lotus/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker":
102 93 case "/Lotus/Types/Items/MiscItems/WeaponSecondaryArcaneUnlocker":
103 94 case "/Lotus/Types/Items/MiscItems/WeaponMeleeArcaneUnlocker":
104 case "/Lotus/Types/Items/MiscItems/WeaponAmpArcaneUnlocker":
105 for (const item of inventory[payload.ItemCategory]) {
106 if (item._id.toString() == payload.ItemId.$oid) {
107 item.Features ??= 0;
108 item.Features |= EquipmentFeatures.ARCANE_SLOT;
109 break;
110 }
111 }
95 case "/Lotus/Types/Items/MiscItems/WeaponAmpArcaneUnlocker": {
96 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
97 item.Features ??= 0;
98 item.Features |= EquipmentFeatures.ARCANE_SLOT;
112 99 break;
100 }
113 101 case "/Lotus/Types/Items/MiscItems/Forma":
114 102 case "/Lotus/Types/Items/MiscItems/FormaUmbra":
115 103 case "/Lotus/Types/Items/MiscItems/FormaAura":
116 case "/Lotus/Types/Items/MiscItems/FormaStance":
117 for (const item of inventory[payload.ItemCategory]) {
118 if (item._id.toString() == payload.ItemId.$oid) {
119 item.XP = 0;
120 setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue);
121 item.Polarized ??= 0;
122 item.Polarized += 1;
123 break;
124 }
125 }
104 case "/Lotus/Types/Items/MiscItems/FormaStance": {
105 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
106 item.XP = 0;
107 setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue);
108 item.Polarized ??= 0;
109 item.Polarized += 1;
126 110 break;
127 case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker":
128 for (const item of inventory[payload.ItemCategory]) {
129 if (item._id.toString() == payload.ItemId.$oid) {
130 item.ModSlotPurchases ??= 0;
131 item.ModSlotPurchases += 1;
132 break;
133 }
134 }
111 }
112 case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker": {
113 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
114 item.ModSlotPurchases ??= 0;
115 item.ModSlotPurchases += 1;
135 116 break;
136 case "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker":
137 for (const item of inventory[payload.ItemCategory]) {
138 if (item._id.toString() == payload.ItemId.$oid) {
139 item.CustomizationSlotPurchases ??= 0;
140 item.CustomizationSlotPurchases += 1;
141 break;
142 }
143 }
117 }
118 case "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker": {
119 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
120 item.CustomizationSlotPurchases ??= 0;
121 item.CustomizationSlotPurchases += 1;
144 122 break;
145 case "":
123 }
124 case "": {
146 125 console.assert(operation.OperationType == "UOT_SWAP_POLARITY");
147 for (const item of inventory[payload.ItemCategory]) {
148 if (item._id.toString() == payload.ItemId.$oid) {
149 for (let i = 0; i != operation.PolarityRemap.length; ++i) {
150 if (operation.PolarityRemap[i].Slot != i) {
151 setSlotPolarity(item, i, operation.PolarityRemap[i].Value);
152 }
153 }
154 break;
126 const item = inventory[payload.ItemCategory].id(payload.ItemId.$oid)!;
127 for (let i = 0; i != operation.PolarityRemap.length; ++i) {
128 if (operation.PolarityRemap[i].Slot != i) {
129 setSlotPolarity(item, i, operation.PolarityRemap[i].Value);
155 130 }
156 131 }
157 132 break;
133 }
158 134 default:
159 135 throw new Error("Unsupported upgrade: " + operation.UpgradeRequirement);
160 136 }