From cc019216313a8a5c0c9c72658be2e439a35ea5aa Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 18 May 2024 15:03:52 -0400 Subject: [PATCH] feat(scenes): show solved pipes before going to next level --- src/constants/pipes.ts | 14 ++++++++++++++ src/scenes/game.ts | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/constants/pipes.ts b/src/constants/pipes.ts index daa37f5..28af51f 100644 --- a/src/constants/pipes.ts +++ b/src/constants/pipes.ts @@ -26,6 +26,20 @@ export enum FilledPipe { '╋' = '╋', } +export enum EmptyToFilledPipe { + '═' = '━', + '║' = '┃', + '╔' = '┏', + '╗' = '┓', + '╚' = '┗', + '╝' = '┛', + '╠' = '┣', + '╣' = '┫', + '╦' = '┳', + '╩' = '┻', + '╬' = '╋', +} + export enum DirectionPipe { '△' = '△', '▷' = '▷', diff --git a/src/scenes/game.ts b/src/scenes/game.ts index c920b43..68f2768 100644 --- a/src/scenes/game.ts +++ b/src/scenes/game.ts @@ -1,4 +1,4 @@ -import { Scene, Tag } from '../constants' +import { EmptyToFilledPipe, Scene, Tag } from '../constants' import { checkSolution, rotatePipe } from '../helpers' import { getLevel, hasLevel } from '../levels' @@ -16,10 +16,22 @@ scene(Scene.game, (levelNumber: number) => { }) onClick(Tag.pipe, (pipe) => { - rotatePipe(pipe) + if (!checkSolution(level)) { + rotatePipe(pipe) + } if (checkSolution(level)) { - go(Scene.game, levelNumber + 1) + level.get(Tag.pipe).forEach((pipe) => { + pipe.use( + sprite( + EmptyToFilledPipe[pipe.solution as keyof typeof EmptyToFilledPipe], + ), + ) + }) + + wait(1, () => { + go(Scene.game, levelNumber + 1) + }) } }) })