From 641bbb5feb7dffff0515a9932f0cce5cfbc261b1 Mon Sep 17 00:00:00 2001 From: adityaNair0714 <142933477+adityaNair0714@users.noreply.github.com> Date: Fri, 31 May 2024 09:53:23 -0700 Subject: [PATCH] Kitchen Nightmares (#1729) * Add files via upload * Add files via upload * Add files via upload * Fixing metadata, filepaths, etc --------- Co-authored-by: Graham Darcey --- games/img/kitchen_nightmares.png | Bin 0 -> 7060 bytes games/kitchen_nightmares.js | 298 +++++++++++++++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 games/img/kitchen_nightmares.png create mode 100644 games/kitchen_nightmares.js diff --git a/games/img/kitchen_nightmares.png b/games/img/kitchen_nightmares.png new file mode 100644 index 0000000000000000000000000000000000000000..f46802216bac7fcd110e166daeaae38f830e3048 GIT binary patch literal 7060 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 JP|oP}{{gJJzm@<1 literal 0 HcmV?d00001 diff --git a/games/kitchen_nightmares.js b/games/kitchen_nightmares.js new file mode 100644 index 0000000000..6044ef6128 --- /dev/null +++ b/games/kitchen_nightmares.js @@ -0,0 +1,298 @@ +/* +@title: Kitchen Nightmares +@tags: [] +@img: "" +@addedOn: 2024-05-31 +@author: Aditya Nair +*/ +const background = "b"; +const player = "p"; +const tomatoV = "v"; +const tomatoH = "h"; +let isDead = false; +let score = 0; +let highScore = 0; + + +setLegend( + [tomatoV ,bitmap` +.........00..... +.........0...... +......0000000... +....0003333300.. +....0333333330.. +....0333333330.. +....0333333330.. +....0333333330.. +....033333330... +....003333300... +.....0003330.... +.......00000.... +................ +................ +................ +................`], + [ player, bitmap` +................ +.....00000...... +....0022200..... +....0222220..... +...002222200.... +...022222220.... +...022222220.... +...000000000.... +...0CCCCCCC0.... +..00C00C00C00... +..0CC00C00CC0... +..0CCCCCCCCC0... +..0CCC333CCC0... +..00CCCCCCC00... +...000000000.... +................` ], + [background,bitmap` +2222002000000002 +2222002000000002 +2222020000002002 +2222020000000022 +2222222000000022 +2222222000000022 +2222222020002022 +2222222220202202 +2222202220202222 +2222222222220222 +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [tomatoH ,bitmap` +........000..... +........0....... +.....000000..... +....03333330.... +...0333333330... +...0333333330... +...0333333330... +...0333333330... +...0333333330... +...0333333330... +....03333330.... +.....000000..... +................ +................ +................ +................`] +) +setBackground(background); +setSolids([]) + +let level = 0 +const levels = [ + map` +........ +........ +........ +........ +........ +........ +......p. +........` +] + + +//methods +setMap(levels[level]) +setPushables({ + [ player ]: [] +}) + +onInput("i", () => + { + if (isDead) + clearText(); + score = 0; + isDead = false; + } + +); + +onInput("w", () => + { + if (!isDead) + getFirst(player).y -= 1; + }); + +onInput("a", () => + { + if (!isDead) + getFirst(player).x -= 1; + }); + +onInput("s", () => + { + if (!isDead) + getFirst(player).y += 1; + }); + +onInput("d", () => + { + if (!isDead) + getFirst(player).x += 1; +}); + +function spawntomatoV() +{ + let x = Math.floor(Math.random() * 8); + let y = 0; + addSprite(x, y, tomatoV); +} + +function spawntomatoH() +{ + let x = 0 + let y = Math.floor(Math.random() * 8); + addSprite(x, y, tomatoH); +} + +function movetomatosV() +{ + let tomatos = getAll(tomatoV); + + for (let i = 0; i < tomatos.length; i++) + { + tomatos[i].y += 1; + } +} + +function movetomatosH() +{ + let tomatos = getAll(tomatoH); + + for (let i = 0; i < tomatos.length; i++) + { + tomatos[i].x += 1; + } +} + +function despawntomatosV() +{ + let tomatoArray = getAll(tomatoV); + + for (let i = 0; i < tomatoArray.length; i++) + { + if (tomatoArray[i].y >= 7) + { + tomatoArray[i].remove(); + if (!isDead) + score++; + } + } +} + +function despawntomatosH() +{ + let tomatoArray = getAll(tomatoH); + + for (let i = 0; i < tomatoArray.length; i++) + { + if (tomatoArray[i].x >= 7) + { + tomatoArray[i].remove(); + score++; + } + } +} +function despawntomatos() +{ +let tomatoArray = getAll(tomatoH); + + for (let i = 0; i < tomatoArray.length; i++) + { + tomatoArray[i].remove(); + } + + tomatoArray = getAll(tomatoV); + + for (let i = 0; i < tomatoArray.length; i++) + { + tomatoArray[i].remove(); + } +} + +function tomatoTouchingPlayer() +{ + let tomatoArrayV = getAll(tomatoV); + let tomatoArrayH = getAll(tomatoH); + let p = getFirst(player); + + for (let i = 0; i < tomatoArrayV.length; i++) + { + if (tomatoArrayV[i].x == p.x && tomatoArrayV[i].y == p.y) + { + isDead = true; + return true; + } + } + + for (let i = 0; i < tomatoArrayH.length; i++) + { + if (tomatoArrayH[i].x == p.x && tomatoArrayH[i].y == p.y) + { + isDead = true; + return true; + } + } + + return false; +} + +var gameLoop = setInterval(() => { + if (!isDead) + { + despawntomatosV(); + despawntomatosH(); + movetomatosV(); + movetomatosH(); + spawntomatoV(); + spawntomatoH(); + } + + if (tomatoTouchingPlayer()) + { + if (score > highScore) + { + highScore = score; + } + isDead = true; + despawntomatos(); + + { + addText("YOU DIED!", { + x: 6, + y: 7, + color: color`2` + }); + + addText("Score " + score.toString(), { + x: 6, + y: 8, + color: color`2` + }); + + addText("HighScore " + highScore.toString(), { + x: 4, + y: 9, + color: color`6` + }); + addText("i to Restart", { + x: 4, + y: 10, + color: color`2` + }); + } + } +}, 1000); + + +