XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +22 -14
Modified src/controllers/api/nemesisController.ts +21 -13
@@ -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,
Modified src/helpers/nemesisHelpers.ts +1 -1
@@ -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",