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

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

代码差异

1 个文件 +15 -7
Modified src/controllers/api/nemesisController.ts +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