返回提交历史
Modified
src/controllers/api/nemesisController.ts
+21
-13
Modified
src/helpers/nemesisHelpers.ts
+1
-1
XFEstudio/SpaceNinjaServer
fix: weaken infested lich (#2181)
Closes #2180 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2181 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
145d21e3
代码差异
2 个文件
+22
-14
@@ -1,5 +1,6 @@
1
1
import { version_compare } from "@/src/helpers/inventoryHelpers";
2
2
import {
3
antivirusMods,
3
4
consumeModCharge,
4
5
decodeNemesisGuess,
5
6
encodeNemesisGuess,
@@ -134,34 +135,37 @@ export const nemesisController: RequestHandler = async (req, res) => {
134
135
for (const upgrade of body.knife!.AttachedUpgrades) {
135
136
switch (upgrade.ItemType) {
136
137
case "/Lotus/Upgrades/Mods/DataSpike/Potency/GainAntivirusAndSpeedOnUseMod":
137
antivirusGain += 10;
138
consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);
139
break;
140
138
case "/Lotus/Upgrades/Mods/DataSpike/Potency/GainAntivirusAndWeaponDamageOnUseMod":
139
case "/Lotus/Upgrades/Mods/DataSpike/Potency/GainAntivirusSmallOnSingleUseMod":
141
140
antivirusGain += 10;
142
141
consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);
143
142
break;
144
143
case "/Lotus/Upgrades/Mods/DataSpike/Potency/GainAntivirusLargeOnSingleUseMod": // Instant Secure
145
antivirusGain += 15;
146
consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);
147
break;
148
144
case "/Lotus/Upgrades/Mods/DataSpike/Potency/GainAntivirusOnUseMod": // Immuno Shield
149
145
antivirusGain += 15;
150
146
consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);
151
147
break;
152
case "/Lotus/Upgrades/Mods/DataSpike/Potency/GainAntivirusSmallOnSingleUseMod":
153
antivirusGain += 10;
154
consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);
155
break;
156
148
}
157
149
}
158
150
inventory.Nemesis!.HenchmenKilled += antivirusGain;
151
if (inventory.Nemesis!.HenchmenKilled >= 100) {
152
inventory.Nemesis!.HenchmenKilled = 100;
153
// Client doesn't seem to request mode=w for infested liches, so weakening it here.
154
inventory.Nemesis!.InfNodes = [
155
{
156
Node: getNemesisManifest(inventory.Nemesis!.manifest).showdownNode,
157
Influence: 1
158
}
159
];
160
inventory.Nemesis!.Weakened = true;
161
const upgrade = getKnifeUpgrade(inventory, dataknifeUpgrades, antivirusMods[passcode]);
162
consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);
163
}
159
164
}
160
165
161
if (inventory.Nemesis!.HenchmenKilled >= 100) {
162
inventory.Nemesis!.HenchmenKilled = 100;
166
if (inventory.Nemesis!.HenchmenKilled < 100) {
167
inventory.Nemesis!.InfNodes = getInfNodes(getNemesisManifest(inventory.Nemesis!.manifest), 0);
163
168
}
164
inventory.Nemesis!.InfNodes = getInfNodes(getNemesisManifest(inventory.Nemesis!.manifest), 0);
165
169
166
170
await inventory.save();
167
171
res.json(response);
@@ -283,6 +287,10 @@ export const nemesisController: RequestHandler = async (req, res) => {
283
287
);
284
288
//const body = getJSONfromString<INemesisWeakenRequest>(String(req.body));
285
289
290
if (inventory.Nemesis!.Weakened) {
291
logger.warn(`client is weakening an already-weakened nemesis?!`);
292
}
293
286
294
inventory.Nemesis!.InfNodes = [
287
295
{
288
296
Node: getNemesisManifest(inventory.Nemesis!.manifest).showdownNode,
@@ -248,7 +248,7 @@ const requiemMods: readonly string[] = [
248
248
"/Lotus/Upgrades/Mods/Immortal/ImmortalEightMod"
249
249
];
250
250
251
const antivirusMods: readonly string[] = [
251
export const antivirusMods: readonly string[] = [
252
252
"/Lotus/Upgrades/Mods/Immortal/AntivirusOneMod",
253
253
"/Lotus/Upgrades/Mods/Immortal/AntivirusTwoMod",
254
254
"/Lotus/Upgrades/Mods/Immortal/AntivirusThreeMod",