返回提交历史
Modified
src/controllers/api/nemesisController.ts
+15
-7
XFEstudio/SpaceNinjaServer
chore: some sanity checking around nemesis guessing (#4467)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4467 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
59931ab3
代码差异
1 个文件
+15
-7
@@ -101,6 +101,7 @@ export const nemesisController: RequestHandler = async (req, res) => {
101
101
"Nemesis LoadOutPresets CurrentLoadOutIds DataKnives Upgrades RawUpgrades"
102
102
);
103
103
const body = getJSONfromString<INemesisRequiemRequest>(String(req.body));
104
logger.debug(`nemesis guess request:`, body);
104
105
if (inventory.Nemesis!.Faction == "FC_INFESTATION") {
105
106
const guess: number[] = [body.guess & 0xf, (body.guess >> 4) & 0xf, (body.guess >> 8) & 0xf];
106
107
const passcode = getNemesisPasscode(inventory.Nemesis!)[0];
@@ -193,17 +194,24 @@ export const nemesisController: RequestHandler = async (req, res) => {
193
194
);
194
195
}
195
196
197
const entry = decodeNemesisGuess(
198
inventory.Nemesis!.GuessHistory[inventory.Nemesis!.GuessHistory.length - 1]
199
);
200
201
for (let i = 0; i != body.position; ++i) {
202
if (entry[i].result == GUESS_INCORRECT) {
203
throw new Error(`you were already wrong, don't keep pushing, lil bro`);
204
}
205
}
206
196
207
// Evaluate guess
197
208
const correct =
198
209
body.guess == GUESS_WILDCARD || getNemesisPasscode(inventory.Nemesis!)[body.position] == body.guess;
199
210
200
211
// Update entry
201
const guess = decodeNemesisGuess(
202
inventory.Nemesis!.GuessHistory[inventory.Nemesis!.GuessHistory.length - 1]
203
);
204
guess[body.position].symbol = body.guess;
205
guess[body.position].result = correct ? GUESS_CORRECT : GUESS_INCORRECT;
206
inventory.Nemesis!.GuessHistory[inventory.Nemesis!.GuessHistory.length - 1] = encodeNemesisGuess(guess);
212
entry[body.position].symbol = body.guess;
213
entry[body.position].result = correct ? GUESS_CORRECT : GUESS_INCORRECT;
214
inventory.Nemesis!.GuessHistory[inventory.Nemesis!.GuessHistory.length - 1] = encodeNemesisGuess(entry);
207
215
208
216
const response: INemesisRequiemResponse = {};
209
217
if (correct) {
@@ -383,7 +391,7 @@ interface INemesisStartRequest {
383
391
}
384
392
385
393
interface INemesisPrespawnCheckRequest {
386
guess: number[]; // .length == 3
394
guess: [number, number, number];
387
395
potency?: number[];
388
396
}
389
397