about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--js/puzzle-dungeon/game.js17
-rw-r--r--js/puzzle-dungeon/index.html9
2 files changed, 24 insertions, 2 deletions
diff --git a/js/puzzle-dungeon/game.js b/js/puzzle-dungeon/game.js
index a41d90c..449f03f 100644
--- a/js/puzzle-dungeon/game.js
+++ b/js/puzzle-dungeon/game.js
@@ -6,6 +6,7 @@ export let player = {
     power: 10,
     level: 0,
     steps: 0,
+    par: 0,
     flashing: false
 };
 let targetPosition = { x: 0, y: 0 };
@@ -22,6 +23,18 @@ function createGrid(rows, cols) {
     return grid;
 }
 
+export let levelPar;
+function generatePar(level) {
+    let par;
+    if (level < 6) {
+        par = 7;
+    } else {
+        par = Math.floor(Math.random() * 7) + 1;
+    }
+    document.getElementById('par').textContent = `Par: ${player.par} of ${par}`;
+    return par;
+}
+
 function generateCollectables(grid, numCollectables) {
     const collectableTypes = ['potion', 'shield', 'battery'];
     const collectableColors = {
@@ -103,6 +116,7 @@ export function drawGrid(grid) {
 
 export function initializeGame() {
     grid = createGrid(10, 10);  // Reset grid
+    levelPar = generatePar(player.level);
     generateCollectables(grid, 10);  // Adjust the number as needed
     generateDamagingSpaces(grid, Math.floor(Math.random() * 7) + 1);  // Random number of damaging spaces, no more than 7
     generateTargetBlock(grid);  // Add target block
@@ -169,7 +183,8 @@ function checkForDamageOrTarget() {
 }
 
 export function alertGameOver() {
-    alert('You have lost the game!');
+    const gameStatsString = `Level: ${player.level}, Health: ${player.health}, Power: ${player.power}`;
+    alert('You have lost the game!' + '\n' + gameStatsString);
     initializeGame();
 }
 
diff --git a/js/puzzle-dungeon/index.html b/js/puzzle-dungeon/index.html
index ee6bff4..2caa203 100644
--- a/js/puzzle-dungeon/index.html
+++ b/js/puzzle-dungeon/index.html
@@ -41,6 +41,7 @@
         <span id="playerPosition">(0, 0)</span>
     </p>
     <canvas id="gameCanvas"></canvas>
+    <p id="par">Par:</p>
     <p id="playerInventory">Inventory: []</p>
     <form id="commandForm">
         <textarea id="commands" rows="10" cols="30"></textarea><br>
@@ -48,11 +49,17 @@
     </form>
     <script type="module">
         import { parseCommands } from './parser.js';
-        import { initializeGame, resizeCanvas } from './game.js';
+        import { initializeGame, resizeCanvas, player, alertGameOver, levelPar } from './game.js';
 
         document.getElementById('commandForm').addEventListener('submit', function(event) {
             event.preventDefault();
+            player.par = player.par + 1;
+            console.log(`Player command count, ${player.par}, ${levelPar}`);
             const commands = document.getElementById('commands').value;
+            if (player.par === levelPar) {
+                alertGameOver();
+                return;
+            }
             parseCommands(commands);
         });