From aac1aa11ebd304373ac9a6c0fb6bd129e7b2920c Mon Sep 17 00:00:00 2001 From: elioat Date: Sun, 7 Jul 2024 16:38:51 -0400 Subject: * --- js/puzzle-dungeon/game.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'js/puzzle-dungeon/game.js') diff --git a/js/puzzle-dungeon/game.js b/js/puzzle-dungeon/game.js index 8b53da9..179ea4e 100644 --- a/js/puzzle-dungeon/game.js +++ b/js/puzzle-dungeon/game.js @@ -130,10 +130,10 @@ export function drawGrid(grid) { export function initializeGame() { grid = createGrid(10, 10); // reset grid levelPar = generatePar(player.level); - generateCollectables(grid, 10); // how many collectables? - generateDamagingSpaces(grid, Math.floor(Math.random() * 7) + 1); // random number of damaging spaces, no more than 7 + generateCollectables(grid, Math.floor(Math.random() * 7) + 1); // how many collectables? + generateDamagingSpaces(grid, Math.floor(Math.random() * 22) + 1); // random number of damaging spaces, no more than 22 generateTargetBlock(grid); - generateTraps(grid, Math.floor(Math.random() * 3) + 1); // random number of traps, no more than 3 + generateTraps(grid, Math.floor(Math.random() * 10) + 1); // random number of traps, no more than 10 if (player.level === 0) { player.inventory = []; @@ -200,17 +200,22 @@ function checkForDamageOrTarget() { flashPlayer(); } } else if (cell && cell.type === 'trap') { - const item = player.inventory.pop(); - if (item) { - console.log(`Stepped on trap, removed ${item} from inventory`); + const itemIndex = Math.floor(Math.random() * player.inventory.length); + player.inventory.splice(itemIndex, 1); + console.log(`Stepped on a trap and lost an item`); + player.health -= Math.floor(Math.random() * 5) + 1; + console.log(`Stepped on a trap and took damage, health is now ${player.health}`); + if (player.health <= 0) { + alertGameOver(); + return; } else { - player.power -= Math.floor(Math.random() * 3) + 1; - console.log('Stepped on trap, drained some power'); + alert('Ouch! You hit a trap.'); + flashPlayer(); } } else if (x === targetPosition.x && y === targetPosition.y) { player.level += 1; console.log(`Reached target block, level is now ${player.level}`); - initializeGame(); // Generate new level and reset player position + initializeGame(); // generate a new level and reset player position to 0,0 } } -- cgit 1.4.1-2-gfad0