Neon Maze: a catch on the tick the last dot is eaten clears the level without losing a life
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- game-dev
Direzione di ricerca
Inizia da games/maze/scenes/GameScene.ts, in tick() intorno alle righe 419-427, dove checkCatches() viene eseguito prima di clearLevel(). Poi leggi die() e clearLevel() vicino alle righe 460-482 per vedere come la fase viene sovrascritta, e update() vicino alla riga 196 per vedere dove viene eseguito afterDeath(). Il lavoro è completato quando una cattura nel frame in cui viene mangiato l'ultimo punto costa una vita e non fa avanzare il livello; esegui npm test e aggiungi un controllo per questo caso se la suite ha un harness per questo scopo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
In Neon Maze, if a chaser catches the runner on the same tick that the last dot is eaten, the level clears and the life is never lost.
Where
games/maze/scenes/GameScene.ts:419-427(tick:checkCatches()thenif (this.dots.size === 0) this.clearLevel())games/maze/scenes/GameScene.ts:460-462,:480-482(die()sets phase'dying',clearLevel()overwrites it with'clearing')games/maze/scenes/GameScene.ts:196-204(updateonly callsafterDeath(), which takes the life, from'dying')
Details
tick() moves the runner (eating the dot), moves the chasers, then calls checkCatches(), which can call die(). It then goes on to clearLevel() with no phase check, so the 'dying' phase is replaced by 'clearing' and afterDeath() never runs.
Impact
Rare and in the player's favour: the death effects play over a level clear, no life is lost, and the run can be credited with a clear (and the maze.clear trophy) it should not have.
Steps to reproduce
- Leave one dot next to a chaser's path.
- Eat it just as an unscared chaser reaches the runner.
- The death burst plays, then the next level starts with the same lives.
Suggested fix
In tick(), return after checkCatches() if the phase is no longer 'play', or check this.phase === 'play' before calling clearLevel().
Acceptance criteria
- A catch on the frame of the last dot costs a life and does not advance the level.
Getting started
- Relevant files:
games/maze/scenes/GameScene.ts - How to run tests:
npm test
Filed by repo-audit/full-audit at de2b25b. Severity: low. Effort: S. audit-key: bug|games/maze/scenes/GameScene.ts|tick
- Lingua principale
- TypeScript
- Stelle
- 3
- Fork
- 3
- Merge medio
- 8h 13m
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TMHSDigital/GH-Arcade
-
ci good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
TMHSDigital/GH-Arcade#111 ·
-
bug good first issue severity: low
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
TMHSDigital/GH-Arcade#105 ·
-
bug good first issue severity: medium
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 84/100
TMHSDigital/GH-Arcade#88 ·
-
accessibility enhancement severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
TMHSDigital/GH-Arcade#114 ·
-
enhancement severity: low
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
TMHSDigital/GH-Arcade#113 ·
Tutte le issue di TMHSDigital/GH-Arcade
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
steelbrain/node-ssh#487 ·
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
lingdojo/kana-dojo#34127 · 1 commento · 5 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
osmlab/name-suggestion-index#13104 ·
I maintainer di solito rispondono entro 1 giorno