Neon Maze: a catch on the tick the last dot is eaten clears the level without losing a life
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- game-dev
Línea de trabajo
Empieza en games/maze/scenes/GameScene.ts, en tick() alrededor de las líneas 419-427, donde checkCatches() se ejecuta antes de clearLevel(). Luego lee die() y clearLevel() cerca de las líneas 460-482 para ver cómo se sobrescribe la fase, y update() cerca de la línea 196 para ver dónde se ejecuta afterDeath(). Está terminado cuando una captura en el fotograma en que se come el último punto cuesta una vida y no avanza el nivel; ejecuta npm test y añade una comprobación para ese caso si la suite tiene un harness para ello.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- TypeScript
- Estrellas
- 3
- Forks
- 3
- Merge medio
- 8 h 13 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TMHSDigital/GH-Arcade
-
ci good first issue severity: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
TMHSDigital/GH-Arcade#111 ·
-
bug good first issue severity: low
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
TMHSDigital/GH-Arcade#105 ·
-
bug good first issue severity: medium
Dificultad 2/5 Menos de una hora Aptitud para principiantes 84/100
TMHSDigital/GH-Arcade#88 ·
-
Add a game speed assist settingAbiertoaccessibility enhancement severity: low
Dificultad 4/5 3-5 días Aptitud para principiantes 40/100
TMHSDigital/GH-Arcade#114 ·
-
enhancement severity: low
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
TMHSDigital/GH-Arcade#113 ·
Todos los issues de TMHSDigital/GH-Arcade
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
steelbrain/node-ssh#487 ·
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
lingdojo/kana-dojo#34127 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
osmlab/name-suggestion-index#13104 ·
Los mantenedores suelen responder en 1 día