From a7020591b11783e535821068dac32dc6fe4a6676 Mon Sep 17 00:00:00 2001 From: Saanvi S Date: Wed, 18 Sep 2024 21:39:56 +0530 Subject: [PATCH] dungenrun (#2120) * sau dungenrun * sau dungenrun * Update dungenrun.js * update in the levels and one key for collection --------- Co-authored-by: Cheru Berhanu --- games/dungenrun.js | 268 ++++++++++++++++++++++++++++++++++++++++ games/img/dungenrun.png | Bin 0 -> 21249 bytes 2 files changed, 268 insertions(+) create mode 100644 games/dungenrun.js create mode 100644 games/img/dungenrun.png diff --git a/games/dungenrun.js b/games/dungenrun.js new file mode 100644 index 0000000000..1290ae6a14 --- /dev/null +++ b/games/dungenrun.js @@ -0,0 +1,268 @@ +/* + +@title: dungen run +@description : move to exit from start collecting keys give you automatic points +use A S W D for movement & I to reset game +@author: Saurav Alva & Gaurav Alva +@tags: [] +@addedOn: 2024-08-15 +*/ + + + +const background = "b"; +const wall = "w"; +const player = "p"; +const key = "k"; +const exit = "e"; + +let hasKey = false; +let level = 0; +let points = 0; + +setLegend( + [background, bitmap` +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000`], + [wall, bitmap` +0000000000000000 +0CC99FFLL1122FF0 +03CC99FFLL1122F0 +093CC99FFLL11220 +0993CC99FFLL1120 +0F993CC99FFLL110 +0FF993CC99FFLL10 +0LFF993CC99FFLL0 +0LLFF993CC99FFL0 +01LLFF993CC99FF0 +011LLFF993CC99F0 +0211LLFF993CC990 +02211LLFF993CC90 +0F2211LLFF993CC0 +0FF2211LLFF993C0 +0000000000000000`], + [player, bitmap` +.....000000..... +....06666FF0.... +...0666666FF0... +..003333333300.. +.06666666666660. +066F00000000F660 +06F0900900000F60 +.0F0010010000F0. +..00C29C290000.. +...0F9999F000... +....0FFFF0300... +...03999333330.. +..093999303990.. +..090777770990.. +...0070007700... +....090..090....`], + [key, bitmap` +................ +................ +................ +................ +................ +..........66666. +........666FFF6. +........66FFFF6F +66666666666FFF6F +6.6.....6F66FF6F +........66F66F6. +..........66666. +................ +................ +................ +................`], + [exit, bitmap` +0000000000000000 +0333333333333330 +0300000000000030 +0300000000000030 +0300000000000030 +0300000000000030 +0307770077700030 +0307006067666030 +0307700607060030 +0307006067060030 +0307770077700030 +0300000000000030 +0300000000000030 +0300000000000030 +0333333333333330 +0000000000000000`] +); + +setSolids([player, wall]); + +let levels = [ + map` +.......wwwwwwwwwwe +.......w...ww..... +wwwwwwwwww..w.wwww +.w.......w.ww.w.w. +.wwww.w.ww.w..w.w. +.w..www.........w. +.w.....wwww.w...w. +ww.ww...k...w...w. +....w.w..w.ww.wwww +www.w.w.www...w... +.pw.w.w....w....w. +w....wwwwww.w..ww. +w.ww.w...w..ww.w.w +www.wwww.wwww.ww.w`, // Level 1 + map` +......wwwwwwwwwwww +......w.w........w +wwwwwww..ww.w.w..w +ww..w..w..w..w..ww +w.w.w.wwwew.www..w +w.w.w...www...ww.w +w.w.w.w.ww..w..w.w +w.w.w.w.k..w..ww.w +w.w...w..www...w.w +w.w.w.w.w....w.w.w +w.ww..w.w.wwww.w.w +w..w.ww.w....w.w.e +wpw...w.ww.ww..www +w...w.wwwww.wwwwww`, // Level 2 + map` +.......wwwwwwwwwww +.......w....w..w.w +wwwwwwww..w......w +pwww.....w.w.www.w +...w.w.ww...k..w.w +w..ww....w..www..w +w.ww..ww.ww.w....w +w......w.w..w.ww.w +w.wwwww..w..w.w..w +w.w.....ww.w..ww.w +w.w.wwww..w..w...w +w..ww....w..w....w +w.wwwwwwwwewwwwwww +www.w.w.wwwww.w.ww`, // Level 3 + map` +.......wwwwwwwwwww +.......we......... +wwwwwwwwwwww..w... +w..w.w......w.www. +wwww.w.wwwww..w... +w......w....ww..w. +wwwwwwew.ww..w.ww. +w....www...w.w.... +wwww.w.www.w..www. +ww...w.....ww..k.. +ww.wwww.w.ww.w.www +ww......w....w.w.. +p.wwwwwww.wwww.w.. +w.................`, // Level 4 + map` +.......wwwwwwwwwww +.......w........ww +wwwwwwww.wwww..w.w +.w..w........w..ww +..w....www.ww.w..w +wwwww.ww.ww.www.ww +w.........w.w.w..w +w.wwww..w...w.w.ww +w....w.wwww...w.ww +wwww.w....w..w..ww +w..w.wwwkw.ww..w.w +wp.w.w..w.w...ww.w +.......w..w.w....e +wwwww.wwwwwwww.www`, // Level 5 - Boss Level + map` +.......wwwwwwwwwww +.......w..w......w +wwwwwwwww..w.www.w +w....w...w.w.w.w.w +.pw.w.wwww.w...w.w +www.w.w....www.w.w +....w.w.ww..w..w.w +w.www.w..w..w..w.w +w....w..w.w.w..w.w +w.w.ww.wwww.ww.w.w +w.w....ww......w.w +w.ww.w..w.wwww.w.w +ww.w.wwww....kww.w +wwwwww.www.www.wew`, // Level 6 - Boss Level + map` +.......wwwwwwwwwww +.......w........ww +wwwwwwww.wwww..w.w +.w..w........w..ww +..w....www.ww.w..w +wwwww.ww.w..www.ww +w.........w.wkw..w +w.wwww..w...w.w.ww +w....w.wwww...w.ww +ww.w.w....w..w..ww +w..w.www.w.ww..w.w +wp.w....w.....w..w +w.w..w.w.wew.w.www +wwwwwww.w.wwwwwwww`, // Level 7 - Boss Level +]; + +setBackground(background); +setMap(levels[level]); + +onInput("w", () => getFirst(player).y -= 1); +onInput("a", () => getFirst(player).x -= 1); +onInput("s", () => getFirst(player).y += 1); +onInput("d", () => getFirst(player).x += 1); +onInput("i", resetGame); // Reset game on pressing 'i' + + + afterInput(() => { + if (tilesWith(player, key).length > 0) { + getFirst(key).remove(); + points += 5; // Add points for collecting a key + hasKey = true; + } + + if (tilesWith(player, exit).length > 0) { + level += 1; + if (level < levels.length) { + setMap(levels[level]); + } else { + addText("You Win!", { x: 6, y: 2, color: color`2` }); + addText(`Points: ${points}`, { x: 6, y: 4, color: color`2` }); + resetGame(); // Reset game after displaying the win message + } + } + + displayStatus(); +}); + + +function resetGame() { + level = 0; + points = 0; + hasKey = false; + setMap(levels[level]); + displayStatus(); +} + +function displayStatus() { + clearText(); + addText(`lvl: ${level + 1}`, { x: 0, y: 0, color: color`2` }); + addText(`Pts: ${points}`, { x: 0, y: 1, color: color`2` }); +} + +displayStatus(); // Initial status display + diff --git a/games/img/dungenrun.png b/games/img/dungenrun.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e591928d45d72a7463ad4ad692afab35bd3344 GIT binary patch literal 21249 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