From 86e848275489b8a4d5ffef67f9a070a7b06c0566 Mon Sep 17 00:00:00 2001 From: nbillard Date: Tue, 6 Dec 2022 07:30:42 +0100 Subject: [PATCH] auto next level --- modules/fillLevelsSelection.mjs | 23 ----------------------- modules/levelSelection.mjs | 33 +++++++++++++++++++++++++++++++++ script.js | 6 ++++-- 3 files changed, 37 insertions(+), 25 deletions(-) delete mode 100644 modules/fillLevelsSelection.mjs create mode 100644 modules/levelSelection.mjs diff --git a/modules/fillLevelsSelection.mjs b/modules/fillLevelsSelection.mjs deleted file mode 100644 index 4e72d7d..0000000 --- a/modules/fillLevelsSelection.mjs +++ /dev/null @@ -1,23 +0,0 @@ -import { levelsBlueprint } from '/modules/levels.mjs' -import { generatePlayground } from '/modules/playground.mjs' -import { Timer } from '/modules/timer.mjs' - -export const fillLevelsSelection = (gameState, ctx) => { - let levelList = document.getElementById('level-list'); - for (let i = 0; i < levelsBlueprint.length; ++i) { - let listElement = document.createElement("li"); - let selectionButton = document.createElement("button"); - selectionButton.setAttribute("array-index", i); - selectionButton.addEventListener("click", (click) => { - let blueprint = levelsBlueprint[ - click.srcElement.getAttribute("array-index") - ]; - gameState.playground = generatePlayground(blueprint.structure, canvas.width, canvas.height); - gameState.timer = new Timer(blueprint.time, gameState.timer.expireFunction); - gameState.playground.draw(ctx, gameState.width, gameState.height); - }); - selectionButton.innerText = "Level" + i; - listElement.appendChild(selectionButton); - levelList.appendChild(listElement); - } -} diff --git a/modules/levelSelection.mjs b/modules/levelSelection.mjs new file mode 100644 index 0000000..0108498 --- /dev/null +++ b/modules/levelSelection.mjs @@ -0,0 +1,33 @@ +import { levelsBlueprint } from '/modules/levels.mjs' +import { generatePlayground } from '/modules/playground.mjs' +import { Timer } from '/modules/timer.mjs' + +export const selectLevel = (ctx, gameState, id) => { + gameState.playground = generatePlayground(levelsBlueprint[id].structure, gameState.width, gameState.height); + // TODO transfer expireFunction without a fail + const expireFunc = gameState.timer.expireFunction; + console.log(expireFunc); + gameState.timer = new Timer(levelsBlueprint[id].time, gameState.timer.expireFunction); + gameState.playground.draw(ctx, gameState.width, gameState.height); +} + +export const fillLevelsSelection = (gameState, ctx) => { + let levelList = document.getElementById('level-list'); + for (let i = 0; i < levelsBlueprint.length; ++i) { + let listElement = document.createElement("li"); + let selectionButton = document.createElement("button"); + selectionButton.setAttribute("array-index", i); + selectionButton.addEventListener("click", (click) => { + selectLevel(ctx, gameState, click.srcElement.getAttribute("array-index")); + // let blueprint = levelsBlueprint[ + // click.srcElement.getAttribute("array-index") + // ]; + // gameState.playground = generatePlayground(blueprint.structure, gameState.width, gameState.height); + // gameState.timer = new Timer(blueprint.time, gameState.timer.expireFunction); + // gameState.playground.draw(ctx, gameState.width, gameState.height); + }); + selectionButton.innerText = "Level" + i; + listElement.appendChild(selectionButton); + levelList.appendChild(listElement); + } +} diff --git a/script.js b/script.js index f36abd7..d30e1c5 100644 --- a/script.js +++ b/script.js @@ -1,7 +1,7 @@ import { generatePlayground } from '/modules/playground.mjs' import { levelsBlueprint } from '/modules/levels.mjs' import { MoveDirection } from '/modules/enums.mjs' -import { fillLevelsSelection } from '/modules/fillLevelsSelection.mjs' +import { fillLevelsSelection, selectLevel } from '/modules/levelSelection.mjs' import { Timer } from '/modules/timer.mjs' import { TutorialControler } from '/modules/tutorialControler.mjs' @@ -15,6 +15,7 @@ let gameState = { alert("Les vaches mangent le foin"); }), playable: false, + levelId: 0, }; let tutorial = new TutorialControler(); @@ -43,7 +44,8 @@ window.addEventListener("keydown", (event) => { } gameState.playground.draw(ctx, canvas.width, canvas.height); if (gameState.playground.isSolved()) { - alert("bravo"); + gameState.levelId++; + selectLevel(ctx, gameState, gameState.levelId); } } else { tutorial.next();