返回提交历史
Modified
src/controllers/api/upgradesController.ts
+43
-67
XFEstudio/SpaceNinjaServer
chore: use SubdocumentArray.id in upgradesController (#1238)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1238
88c5999d
代码差异
1 个文件
+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
}