From 8ffbb308c568df093b407678219026b09bd19614 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sat, 7 Jun 2025 02:16:50 -0700 Subject: [PATCH] fix: oull being considered an incorrect guess (#2125) Closes #2121 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2125 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- src/controllers/api/nemesisController.ts | 21 ++++++++++++--------- src/helpers/nemesisHelpers.ts | 3 +++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/controllers/api/nemesisController.ts b/src/controllers/api/nemesisController.ts index 435f6791..4a206d00 100644 --- a/src/controllers/api/nemesisController.ts +++ b/src/controllers/api/nemesisController.ts @@ -7,6 +7,7 @@ import { getNemesisManifest, getNemesisPasscode, getNemesisPasscodeModTypes, + GUESS_WILDCARD, IKnifeResponse } from "@/src/helpers/nemesisHelpers"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; @@ -82,7 +83,7 @@ export const nemesisController: RequestHandler = async (req, res) => { } } else { for (let i = 0; i != 3; ++i) { - if (body.guess[i] == passcode[i]) { + if (body.guess[i] == passcode[i] || body.guess[i] == GUESS_WILDCARD) { ++guessResult; } } @@ -149,16 +150,18 @@ export const nemesisController: RequestHandler = async (req, res) => { await inventory.save(); res.json(response); } else { - const passcode = getNemesisPasscode(inventory.Nemesis!); let RankIncrease: number | undefined; - if (passcode[body.position] != body.guess) { - const manifest = getNemesisManifest(inventory.Nemesis!.manifest); - if (inventory.Nemesis!.Rank + 1 < manifest.systemIndexes.length) { - inventory.Nemesis!.Rank += 1; - RankIncrease = 1; + if (body.guess != GUESS_WILDCARD) { + const passcode = getNemesisPasscode(inventory.Nemesis!); + if (passcode[body.position] != body.guess) { + const manifest = getNemesisManifest(inventory.Nemesis!.manifest); + if (inventory.Nemesis!.Rank + 1 < manifest.systemIndexes.length) { + inventory.Nemesis!.Rank += 1; + RankIncrease = 1; + } + inventory.Nemesis!.InfNodes = getInfNodes(manifest, inventory.Nemesis!.Rank); + await inventory.save(); } - inventory.Nemesis!.InfNodes = getInfNodes(manifest, inventory.Nemesis!.Rank); - await inventory.save(); } res.json({ RankIncrease }); } diff --git a/src/helpers/nemesisHelpers.ts b/src/helpers/nemesisHelpers.ts index 9d6a7a2b..0c2eebbe 100644 --- a/src/helpers/nemesisHelpers.ts +++ b/src/helpers/nemesisHelpers.ts @@ -266,6 +266,9 @@ export const getNemesisPasscodeModTypes = (nemesis: { fp: bigint; Faction: TNeme : passcode.map(i => reqiuemMods[i]); }; +export const GUESS_NONE = 8; +export const GUESS_WILDCARD = 9; + export const encodeNemesisGuess = ( symbol1: number, result1: number,