From 0f4c1df1aa57f8745ac16256e4c8820475512758 Mon Sep 17 00:00:00 2001 From: LayanJethwa <84594346+LayanJethwa@users.noreply.github.com> Date: Thu, 2 Jan 2025 18:26:52 +0000 Subject: [PATCH] [Sprig App] Frost and Fire (#2753) Sprig App - Frost and Fire --- games/Frost-and-Fire.js | 1841 ++++++++++++++++++++++++++++++++++ games/img/Frost-and-Fire.png | Bin 0 -> 8004 bytes 2 files changed, 1841 insertions(+) create mode 100644 games/Frost-and-Fire.js create mode 100644 games/img/Frost-and-Fire.png diff --git a/games/Frost-and-Fire.js b/games/Frost-and-Fire.js new file mode 100644 index 0000000000..7c6b789815 --- /dev/null +++ b/games/Frost-and-Fire.js @@ -0,0 +1,1841 @@ +/* +First time? Check out the tutorial game: +https://sprig.hackclub.com/gallery/getting_started + +@title: Magic +@author: Layan Jethwa +@tags: [] +@addedOn: 2024-00-00 +*/ + +var isdead = false + +const platform = "m" +const platform_l = "l" +const platform_r = "r" +const platform_lava = "7" +const platform_lava2 = "8" +const platform_lava3 = "9" +const ladder = "a" +const player = "p" +const player2 = "!" +const player3 = "£" +const player4 = "$" +const player5 = "%" +const player6 = "^" +const background = "b" +const n_ladder = "n" +const o_ladder = "o" +const wall = "w" +const t_wall = "t" +const lava = "v" +const stone = "1" +const stone2 = "2" +const stone3 = "3" +const under = "4" +const under2 = "5" +const under3 = "6" +const enemy = "e" +const dead = "d" +const key = "k" +const door = "h" +const playerb = '*' +const playerb2 = '(' +const playerb3 = ')' +const playerb4 = '-' +const red = "+" +const door_o = "_" +const door_o2 = "=" +const heart = "#" +const door_block = "@" +const door_red = "[" +const door_green = "]" +const key_red = "{" +const key_green = "}" +const door_red_o = "<" +const door_red_o2 = "/" +const door_green_o = ">" +const door_green_o2 = "?" +const lava_pool = ":" +const geyser = "g" +const platform_geyser = "z" +const platform_geyser2 = "x" +const platform_geyser3 = "c" +const bridge = "i" +const shoot_geyser = "~" +const shoot_geyser2 = ";" +const shoot_geyser_bridge = "|" +const bridge_l = "L" +const bridge_r = "R" +const door_purple = "Q" +const door_orange = "A" +const key_purple = "W" +const key_orange = "S" +const door_purple_o = "E" +const door_purple_o2 = "T" +const door_orange_o = "D" +const door_orange_o2 = "F" +const rock = "Y" +const stone_rock = "U" + +setLegend( + [ platform, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ wall, bitmap` +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +....LLLLLLLL.... +...LLLLLLLLLL... +..LLLLLLLLLLLL.. +..LLLLLLLLLLLL.. +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ t_wall, bitmap` +11LLLLLLLLLLLL11 +L1LLLLLLLLLLLL1L +11.LLLLLLLLLL.1L +1...LLLLLLLL...1 +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L..... +.....L1LL1L.....`], + [ ladder, bitmap` +...9C......9C... +...9C999CCCCC... +...9CCCCCCCCC... +...9C......9C... +...9C......9C... +...9C999CCCCC... +...9CCCCCCCCC... +...9C......9C... +...9C......9C... +...9C999CCCCC... +...9CCCCCCCCC... +...9C......9C... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ n_ladder, bitmap` +LL19C......9C111 +1119C999CCCCC1LL +11.9CCCCCCCCC.1L +1..9C......9C..1 +...9C......9C... +...9C999CCCCC... +...9CCCCCCCCC... +...9C......9C... +...9C......9C... +...9C999CCCCC... +...9CCCCCCCCC... +...9C......9C... +...9C......9C... +...9C999CCCCC... +...9CCCCCCCCC... +...9C......9C...`], + [ o_ladder, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +2229C......9C222 +2229C999CCCCC222 +2229CCCCCCCCC222 +2229C......9C222`], + [ player, bitmap` +......C22C...... +.....C2020C..... +.....C2992C..... +......3223...... +......2332...... +......2202...... +.......22....... +......2222...... +.....220222..... +.....222222..... +.....722027..... +......7227...... +................ +................ +................ +................`], + [ player2, bitmap` +......C27C...... +.....C7020C..... +.....C2992C..... +......3723...... +......2337...... +......7202...... +.......77....... +......2222...... +.....270272..... +.....222722..... +....577202755... +..5555777755555. +................ +................ +................ +................`], + [ player3, bitmap` +................ +................ +................ +......CCCC...... +.....C2070C..... +.....C7997C..... +......3773...... +......7332...... +.....277072..... +....57207255.... +..55577202755... +.5555577775555.. +................ +................ +................ +................`], + [ player4, bitmap` +................ +................ +................ +................ +......CCCC...... +.....C7090C..... +.....C3779C..... +......7333...... +.....577035..... +....57707755.... +..55577202755... +.5555577775555.. +................ +................ +................ +................`], + [ player5, bitmap` +................ +................ +................ +................ +................ +................ +................ +......CCCC...... +.....C0907C..... +...55C3973C55... +..555773077555.. +.55555777755555. +................ +................ +................ +................`], + [ player6, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +...555C0CC555... +.5555C99535555.. +................ +................ +................ +................`], + [ playerb, bitmap` +......CCCC...... +.....C2222C..... +.....C2222C..... +......3233...... +......2322...... +......2222...... +.......22....... +......2222...... +.....222222..... +.....222222..... +.....722227..... +......7227...... +................ +................ +................ +................`], + [ playerb2, bitmap` +................ +................ +.......CC....... +......C22C...... +......C22C...... +......3233...... +.......32....... +.......22....... +......2222...... +......2222...... +......7227...... +.......77....... +................ +................ +................ +................`], + [ playerb3, bitmap` +................ +................ +................ +................ +................ +.......CC....... +......C22C...... +......3233...... +.......32....... +......2222...... +......2222...... +.......77....... +................ +................ +................ +................`], + [ playerb4, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +.......CC....... +.......33....... +.......32....... +.......22....... +................ +................ +................ +................`], + [ enemy, bitmap` +......0000...... +.....030030..... +.....000000..... +.....003300..... +.....030030..... +......0000...... +....03099030.L.. +...6039996030L.. +.....066990LL1L. +.....000000..L1L +.....00..00...L1 +.....00..00..... +................ +................ +................ +................`], + [ key, bitmap` +................ +................ +................ +................ +................ +..666........... +..6.66666666.... +..666....6.6.... +.........6.6.... +................ +................ +................ +................ +................ +................ +................`], + [ key_red, bitmap` +................ +................ +................ +................ +................ +..333........... +..3.33333333.... +..333....3.3.... +.........3.3.... +................ +................ +................ +................ +................ +................ +................`], + [ key_green, bitmap` +................ +................ +................ +................ +................ +..444........... +..4.44444444.... +..444....4.4.... +.........4.4.... +................ +................ +................ +................ +................ +................ +................`], + [ key_purple, bitmap` +................ +................ +................ +................ +................ +..HHH........... +..H.HHHHHHHH.... +..HHH....H.H.... +.........H.H.... +................ +................ +................ +................ +................ +................ +................`], + [ key_orange, bitmap` +................ +................ +................ +................ +................ +..999........... +..9.99999999.... +..999....9.9.... +.........9.9.... +................ +................ +................ +................ +................ +................ +................`], + [ background, bitmap` +5555555555555555 +5555555555555555 +5556555555555555 +5562655555555555 +5556555555555555 +5555555555555555 +5555555555555555 +5555555555555555 +5555555555555555 +5555555555555555 +5555555555255555 +5555555552725555 +5555555555255555 +5555555555555555 +5555555555555555 +5555555555555555`], + [ heart, bitmap` +................ +................ +................ +................ +................ +....33....33.... +...3333..3333... +...3223333333... +...322333333C... +....3333333C.... +.....33333C..... +......333C...... +.......3C....... +................ +................ +................`], + [ lava, bitmap` +1111193333311LLL +1LL1133339311111 +1L11L9933339LLL1 +L11LL99339991111 +11LLL9399939L1LL +LLLL933399939L11 +LLL9339996999LLL +LLL99999999999LL +LLL99696669969LL +LLL99966669999LL +LLL69666666699LL +LL699669969669LL +LL666696666696LL +L66996966696666L +116116L61169L116 +1L116LL69LL11L69`], + [ stone, bitmap` +11111111111LLL11 +11LLL1111LL11111 +1111111111111111 +11LLLLLL11LLL111 +1111111111111111 +L1111111LL11111L +L1LL1L11111LLLLL +L11111LLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL`], + [ stone2, bitmap` +111111LLL1111111 +111111111L111111 +1111111111111111 +1LLL11111111LLL1 +1111111111111111 +LL11111L11L11111 +LLLL111LL111L11L +L11LLLLLLLLLLLLL +LLLLLLLL1111LLLL +LLLLLLLLLLL1LLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL`], + [ stone3, bitmap` +1111111111111111 +1111111111111LL1 +1111LL1111111111 +111LL1111LL11111 +1111111111111111 +L11LL11111L11LLL +LL111LLLL11LLL1L +LLL11LLLLLLLLL1L +LLLL1LLL111LLLLL +LLLL1LLLLLLLLLLL +LLLL11LLLLLL11LL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL`], + [ under, bitmap` +11111111111LLL11 +11LLL1111LL11111 +1111111111111111 +11LLLLLL11LLL111 +1111111111111111 +.1111111LL11111. +..LL1L11111..... +...11111........ +................ +................ +................ +................ +................ +................ +................ +................`], + [ under2, bitmap` +111111LLL1111111 +111111111L111111 +1111111111111111 +1LLL11111111LLL1 +1111111111111111 +..11111.11L11111 +....111..111.11. +................ +................ +................ +................ +................ +................ +................ +................ +................`], + [ under3, bitmap` +1111111111111111 +1111111111111LL1 +1111LL1111111111 +111LL1111LL11111 +1111111111111111 +.11LL11111L11... +..111....11..... +...11........... +................ +................ +................ +................ +................ +................ +................ +................`], + [ platform_l, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +22222222222221L1 +222222222221111L +222222222221LL11 +222222222211111L`], + [ platform_r, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +................ +1L11222222222222 +L1LLL22222222222 +1111112222222222 +LLL1L11222222222`], + [ platform_lava, bitmap` +.11.1..11..1L1.L +.L1.1..LLL.11.L1 +.1L..1.1L.....1L +..1.L1..1.....11 +....LLL...L1.... +....1L1...L11... +...........11... +........LL1..... +....11..111..... +.....11..1.L1... +.....LL....1L... +...........1.... +LL16399633339311 +11113993399331LL +1LL1133993631111 +1111113936311LL1`], + [ platform_lava2, bitmap` +.............L11 +.LLL...11....LL1 +.L11L.LL1.LL..L. +.L111.L...LL1... +...........11... +......L11....... +..L.1.LL........ +..LL1...LL1..... +..L11...L11..... +......LL........ +......L11....... +................ +LL13393336399311 +11113633993361LL +1LL1139399331111 +1111113336311LL1`], + [ platform_lava3, bitmap` +111L...L.....LLL +L11L.L11.....1L. +LL...L1L.....111 +.....L....LL.... +L1L...L...L11... +L11..L11..L1.... +.1...LLL........ +L.......LLL..... +...L1L..11L..... +...11L...1L..... +....L........... +................ +LL13633339339311 +11113993639331LL +1LL1199393361111 +1111116399311LL1`], + [ dead, bitmap` +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000 +0000000000000000`], + [ door, bitmap` +................ +.......00....... +......0660...... +....00666600.... +....066CC660.... +....06CCCC60.... +...066CCCC660... +...06CCCCCC60... +...06CCCC0C60... +...06CCCC6C60... +...06CCCCCC60... +...06CCCCCC60... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ red, bitmap` +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333 +3333333333333333`], + [ door_o, bitmap` +................ +........666..... +.....666CC6..... +....06CCCC60.... +....6CCCCC60.... +....6CCCCC60.... +...06CCCCC650... +...06CCCCC650... +...06CCCC0650... +...06CCCC6650... +...06CCCCC650... +...06CCCCC650... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_o2, bitmap` +................ +.......00....... +......0550...... +....00555500.... +....06555550.... +....06555550.... +...06C5555550... +...06C5555550... +...0605555550... +...0665555550... +...06C5555550... +...06C5555550... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_block, bitmap` +11111111111LLL11 +11LLL1111LL11111 +1111111111111111 +11LLLLLL11LLL111 +1111111111111111 +.1111111LL1111LL +..LL1L1111111111 +..111111111LL111 +..1111111111111. +...LL11LL11111.. +...1111LLL111... +....11111111.... +....11L11LL1.... +......111....... +.......LL....... +.......1........`], + [ door_red, bitmap` +................ +.......00....... +......0330...... +....00333300.... +....033CC330.... +....03CCCC30.... +...033CCCC330... +...03CCCCCC30... +...03CCCC0C30... +...03CCCC3C30... +...03CCCCCC30... +...03CCCCCC30... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_green, bitmap` +................ +.......00....... +......0440...... +....00444400.... +....044CC440.... +....04CCCC40.... +...044CCCC440... +...04CCCCCC40... +...04CCCC0C40... +...04CCCC4C40... +...04CCCCCC40... +...04CCCCCC40... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_red_o, bitmap` +................ +........333..... +.....333CC3..... +....03CCCC30.... +....3CCCCC30.... +....3CCCCC30.... +...03CCCCC350... +...03CCCCC350... +...03CCCC0350... +...03CCCC3350... +...03CCCCC350... +...03CCCCC350... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_red_o2, bitmap` +................ +.......00....... +......0550...... +....00555500.... +....03555550.... +....03555550.... +...03C5555550... +...03C5555550... +...0305555550... +...0335555550... +...03C5555550... +...03C5555550... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_green_o, bitmap` +................ +........444..... +.....444CC4..... +....04CCCC40.... +....4CCCCC40.... +....4CCCCC40.... +...04CCCCC450... +...04CCCCC450... +...04CCCC0450... +...04CCCC4450... +...04CCCCC450... +...04CCCCC450... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_green_o2, bitmap` +................ +.......00....... +......0550...... +....00555500.... +....04555550.... +....04555550.... +...04C5555550... +...04C5555550... +...0405555550... +...0445555550... +...04C5555550... +...04C5555550... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_purple, bitmap` +................ +.......00....... +......0HH0...... +....00HHHH00.... +....0HHCCHH0.... +....0HCCCCH0.... +...0HHCCCCHH0... +...0HCCCCCCH0... +...0HCCCC0CH0... +...0HCCCCHCH0... +...0HCCCCCCH0... +...0HCCCCCCH0... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_orange, bitmap` +................ +.......00....... +......0990...... +....00999900.... +....099CC990.... +....09CCCC90.... +...099CCCC990... +...09CCCCCC90... +...09CCCC0C90... +...09CCCC9C90... +...09CCCCCC90... +...09CCCCCC90... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_purple_o, bitmap` +................ +........HHH..... +.....HHHCCH..... +....0HCCCCH0.... +....HCCCCCH0.... +....HCCCCCH0.... +...0HCCCCCH50... +...0HCCCCCH50... +...0HCCCC0H50... +...0HCCCCHH50... +...0HCCCCCH50... +...0HCCCCCH50... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_purple_o2, bitmap` +................ +.......00....... +......0550...... +....00555500.... +....0H555550.... +....0H555550.... +...0HC5555550... +...0HC5555550... +...0H05555550... +...0HH5555550... +...0HC5555550... +...0HC5555550... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_orange_o, bitmap` +................ +........999..... +.....999CC9..... +....09CCCC90.... +....9CCCCC90.... +....9CCCCC90.... +...09CCCCC950... +...09CCCCC950... +...09CCCC0950... +...09CCCC9950... +...09CCCCC950... +...09CCCCC950... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ door_orange_o2, bitmap` +................ +.......00....... +......0550...... +....00555500.... +....09555550.... +....09555550.... +...09C5555550... +...09C5555550... +...0905555550... +...0995555550... +...09C5555550... +...09C5555550... +2222222222222222 +2222222222222222 +2222222222222222 +2222222222222222`], + [ lava_pool, bitmap` +1111116333911111 +LL11633363331LL1 +1113393333393111 +1LL9939399339311 +1139399993933931 +.11933999393931L +..L193339399LL11 +..11966999669911 +..1LL6966LL9111. +...11L6996L111.. +...111LL6L111... +....1166L111.... +....111L61L1.... +......161....... +.......LL....... +.......1........`], + [ geyser, bitmap` +1111172727711LLL +1LL1127775711111 +1L11L7275577LLL1 +L11LL77727271111 +11LLL2257577L1LL +LLLL755725255L11 +LLL7752797727LLL +LLL97973775532LL +LLL32323233533LL +LLL99333923323LL +LLL96239293933LL +LL699669369699LL +LL626699999626LL +L66996262692666L +116116L61169L116 +1L116LL69LL11L69`], + [ platform_geyser, bitmap` +.11.1..11..1L1.L +.L1.1..LLL.11.L1 +.1L..1.1L.....1L +..1.L1..1.....11 +....LLL...L1.... +....1L1...L11... +...........11... +........LL1..... +....11..111..... +.....11..1.L1... +.....LL....1L... +...........1.... +LL17277772777211 +11117552752551LL +1LL1172755771111 +1111117572711LL1`], + [ platform_geyser2, bitmap` +.............L11 +.LLL...11....LL1 +.L11L.LL1.LL..L. +.L111.L...LL1... +...........11... +......L11....... +..L.1.LL........ +..LL1...LL1..... +..L11...L11..... +......LL........ +......L11....... +................ +LL17757772755711 +11117277557721LL +1LL1175755771111 +1111117772711LL1`], + [ platform_geyser3, bitmap` +111L...L.....LLL +L11L.L11.....1L. +LL...L1L.....111 +.....L....LL.... +L1L...L...L11... +L11..L11..L1.... +.1...LLL........ +L.......LLL..... +...L1L..11L..... +...11L...1L..... +....L........... +................ +LL17277775775711 +11117557275771LL +1LL1155757721111 +1111112755711LL1`], + [ bridge, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +CCCCCCCC999CCCCC +C999CCCCCCCCCCCC +CCCCCCCCCCCC999C +................ +................ +................ +................`], + [ bridge_l, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +...............C +..............CC +.......CCCCCCCCC +2222222CC2CCC1L1 +2222222C92C1111L +2222222C92C1LL11 +2222222CC211111L`], + [ bridge_r, bitmap` +................ +................ +................ +................ +................ +................ +................ +................ +................ +C............... +CCC............. +CCCCCCCCC....... +1L11CCCCC2222222 +L1LLL22C92222222 +1111112C92222222 +LLL1L11CC2222222`], + [ shoot_geyser, bitmap` +L..2777275277.L. +11.7572775772.L1 +LL.2527775727... +.L.7575775777..L +L117525725777.L1 +.1L7575275727LL1 +...7575775752... +.L.2525775757... +11.7575272757... +L1.7525777757..L +.L.7775777727.L1 +...7722222757..L +LL17277272777... +11117552752551LL +1LL1172755771111 +1111117572711LL1`], + [ shoot_geyser2, bitmap` +L..2777275277.L. +11.7572775772.L1 +LL.2527775727... +.L.75757757571.L +L117525725757.L1 +.1L7575275757.L1 +...7575775252... +.L.2525775757... +11.7575275757... +L1.752577525711L +.L.2575775752.L1 +...7525225757..L +LL.7575275757... +11.252527525711L +.L.7575775727.11 +...7527277272...`], + [ shoot_geyser_bridge, bitmap` +11.7277277757..1 +LL17577572757.1L +...7577577577.1L +.L175725725721.. +1L.7572577577.11 +.1.7727757527.L1 +...F257C57C27.L1 +..C722F77C55FC.. +.CF775CC57272FC. +CCCCC775775C5CFC +CFC2277522572CCF +CFC7525577525CCF +L1L7575277575L11 +1117275277575L1L +1L17577272775111 +11L77777772251L1`], + [ rock, bitmap` +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLL`], + [ stone_rock, bitmap` +11111111111LLL11 +11LLL1111LL11111 +1111111111111111 +11LLLLLL11LLL111 +1111111111111111 +11111111LL1111LL +11LL1L1111111111 +11111111111LL111 +1111111111111111 +111LL11LL11111LL +1111111LLL1111L1 +11LL111111111111 +111111L11LL11LL1 +1L111111111111L1 +1LL1111LL1111111 +111111111111L111`] +); + +let level = 0 +const levels = [ + map` +mmmommmmmh +465nt65464 +momawommom +6nt65n46n4 +oawomammao +n54nt6546n +ammawmomma +546546n545 +mml9rmammm +121v312312`, + map` +mmommwommh +64n6t5n654 +omamwmamom +n56@4654n5 +amm[mommam +64545n4@46 +mommmam]mo +5n6t56454n +mamwml9rma +123132v312`, + map` +ommw.wommh +n6@6.6n464 +amQLiRaomm +6564.54n@6 +mmoLiRmaAo +65nt.t@t6n +moaw.wowma +5n65.5n465 +mamlzrammm +1212g32312`, + map` +mmmommmomh +564n5t4n64 +mol7rwmamo +5n4:6t645n +oamQmwl7ra +n546546:45 +ammoLiR]mo +645nU7UU6n +mml7Uv3Uma +132v3YY221` +] + +let lives = 3 + +function level_setup(level) { + if (level == 4) { + win() + } else { + clearText() + haswon = false + isdead = false + exit = false + jumping = false + climbing = false + collided = false + landed = true + setMap(levels[level]) + setBackground(background) + for (let i = 0; i < lives; i++) { + addSprite(i,9,"#") + } + getlava = getAll(lava) + getpool = getAll(lava_pool) + lava_tile = getlava.concat(getpool) + geyser_tile = getFirst(geyser) + inventory = [] + inventory_length = 0 + if (level == 0) { + addSprite(0,8,"p") + addSprite(6,4,"e") + addSprite(6,4,"k") + addSprite(2,2,"e") + } else if (level == 1) { + addSprite(0,8,"p") + addSprite(2,6,"e") + addSprite(4,0,"e") + addSprite(5,2,"}") + addSprite(4,8,"{") + addSprite(3,0,"k") + } else if (level == 2) { + addSprite(0,8,"p") + addSprite(8,2,"e") + addSprite(9,8,"e") + addSprite(6,6,"W") + addSprite(2,0,"S") + addSprite(8,6,"k") + } else if (level == 3) { + addSprite(0,8,"p") + addSprite(6,4,"}") + addSprite(8,8,"W") + addSprite(4,4,"k") + addSprite(6,2,"e") + addSprite(0,0,"e") + } + movedirs = Array.apply(null, Array(getAll(enemy).length)).map(Number.prototype.valueOf,-1) + } +} + +level_setup(level) + +let lava_switch = ["7","8","9"] +let geyser_switch = ["z","x","c"] +var lava_index = 0 +var geyser_index = 0 +var geyser_on = false +var geyser_bubbling = false + +function geyser_eruption_kill() { + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(collided)) && (geyser_tile)) { + if ((tilesWith(player,shoot_geyser).length == 1)||(tilesWith(player,shoot_geyser2).length == 1)||(tilesWith(player,shoot_geyser_bridge).length == 1)) { + tile = getFirst(player) + setTimeout(() => { + setBackground(red) + collided = true + if (getFirst(player)) { + getFirst(player).remove() + } + }, 300); + for (let i = 0; i < melting.length; i++) { + setTimeout(() => { + if (i > 0) { + if (getFirst(melting[i-1])) { + getFirst(melting[i-1]).remove() + } + } else { + if (getFirst(player)) { + getFirst(player).remove() + } + } + addSprite(tile.x,tile.y,melting[i]) + }, i*300); + } + setTimeout(() => { + die() + }, 2000); + } + } +} + +function geyser_erupt() { + if (geyser_tile) { + kill_check = setInterval(geyser_eruption_kill, 10); + geyser_on = true + clearTile(geyser_tile.x, geyser_tile.y-1) + addSprite(geyser_tile.x, geyser_tile.y-1, shoot_geyser) + setTimeout(() => { + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(collided)) && (geyser_tile)) { + clearTile(geyser_tile.x, geyser_tile.y-1) + addSprite(geyser_tile.x, geyser_tile.y-1, platform_geyser) + } + clearInterval(kill_check) + },1700); + for (let i = 7; i >= 0; i--) { + setTimeout(() => { + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(collided)) && (geyser_tile)) { + if(getTile(geyser_tile.x,i).some(s => s.type === bridge)) { + getTile(geyser_tile.x, i).find(s => s.type === bridge).remove() + addSprite(geyser_tile.x,i,shoot_geyser_bridge) + } else { + clearTile(geyser_tile.x,i) + addSprite(geyser_tile.x,i,shoot_geyser2) + } + } + },(7-i)*100); + + setTimeout(() => { + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(collided)) && (geyser_tile)) { + if(getTile(geyser_tile.x,i).some(s => s.type === shoot_geyser_bridge)) { + getTile(geyser_tile.x, i).find(s => s.type === shoot_geyser_bridge).remove() + addSprite(geyser_tile.x,i,bridge) + } else { + clearTile(geyser_tile.x,i) + } + } + },800+(i*100)); + } + } +} + +function level_animation(){ + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(exit))){ + if (lava_tile) { + for (let i = 0; i < lava_tile.length; i++) { + if (!(getFirst(player).x == lava_tile[i].x && getFirst(player).y == lava_tile[i].y-1)){ + clearTile(lava_tile[i].x, lava_tile[i].y-1) + addSprite(lava_tile[i].x, lava_tile[i].y-1,lava_switch[lava_index]) + lava_index += 1 + lava_index %= 3 + } + } + } + if (geyser_tile) { + if ((!(getFirst(player).x == geyser_tile.x && getFirst(player).y == geyser_tile.y-1)) && (!(geyser_on))){ + clearTile(geyser_tile.x, geyser_tile.y-1) + addSprite(geyser_tile.x, geyser_tile.y-1,geyser_switch[geyser_index]) + geyser_index += 1 + geyser_index %= 3 + if ((Math.floor(Math.random()*3) == 2) && (!(geyser_bubbling))) { + geyser_bubbling = true + let timer = Math.floor((Math.random()*5000)+5000); + setTimeout(() => { + geyser_erupt() + }, timer); + setTimeout(() => { + geyser_on = false + geyser_bubbling = false + }, 1700+timer); + } + } + } + } +} +setInterval(level_animation, 500); + +const melting = ["p","!","£","$","%","^"] + +function lava_kill(){ + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(collided)) && (lava_tile)) { + for (let i = 0; i < lava_tile.length; i++) { + if (!(collided)){ + if ((getFirst(player).x == lava_tile[i].x && getFirst(player).y == lava_tile[i].y-1)){ + setBackground(red) + collided = true + lava_collision_index = i + if (getFirst(player)) { + getFirst(player).remove() + } + for (let j = 0; j < melting.length; j++) { + setTimeout(() => { + if (i == lava_collision_index) { + clearTile(lava_tile[i].x,lava_tile[i].y-1) + addSprite(lava_tile[i].x,lava_tile[i].y-1,platform_lava) + addSprite(lava_tile[i].x,lava_tile[i].y-1,melting[j]) + } + }, j*300); + } + setTimeout(() => { + die() + }, 2000); + } + } + } + } +} +setInterval(lava_kill, 10); + + +function geyser_kill(){ + if ((!(isdead)) && (tilesWith(player).length == 1) && (!(collided)) && (geyser_tile)) { + if ((getFirst(player).x == geyser_tile.x && getFirst(player).y == geyser_tile.y-1)){ + setTimeout(() => { + setBackground(red) + collided = true + if (getFirst(player)) { + getFirst(player).remove() + } + }, 300); + for (let i = 0; i < melting.length; i++) { + setTimeout(() => { + clearTile(geyser_tile.x,geyser_tile.y-1) + addSprite(geyser_tile.x,geyser_tile.y-1,platform_geyser) + addSprite(geyser_tile.x,geyser_tile.y-1,melting[i]) + }, i*300); + } + setTimeout(() => { + die() + }, 2000); + } + } +} +setInterval(geyser_kill, 10); + +function die(){ + if (!(isdead)) { + isdead = true + lives -= 1 + } + setMap(map`d`) + addText("Oh no, you died!", { + x: 2, + y: 1, + color: color`3` +}) + addText(`You have ${lives}`, { + x: 4, + y: 5, + color: color`3` + }) + addText("heart(s) left.", { + x: 3, + y: 7, + color: color`3` + }) + addText("Press", { + x: 6, + y: 11, + color: color`3` + }) + addText("j", { + x: 12, + y: 11, + color: color`2` + }) + if (lives > 0) { + addText("to continue.", { + x: 4, + y: 13, + color: color`3` + }) + } else { + addText("to play again.", { + x: 3, + y: 13, + color: color`3` + }) + } +} + +function win(){ + haswon = true + setMap(map`d`) + addText("Well done, you have", { + x: 1, + y: 1, + color: color`3` + }) + addText("won the game!", { + x: 3, + y: 3, + color: color`3` + }) + addText(`You have ${lives}/3`, { + x: 4, + y: 6, + color: color`3` + }) + addText("heart(s) left.", { + x: 3, + y: 8, + color: color`3` + }) + addText("Press", { + x: 6, + y: 11, + color: color`3` + }) + addText("j", { + x: 12, + y: 11, + color: color`2` + }) + addText("to play again.", { + x: 3, + y: 13, + color: color`3` + }) +} + + +let enemy_blocks = [wall,door,door_red,door_green,door_purple,door_orange,bridge,platform_geyser,platform_geyser2,platform_geyser3,shoot_geyser] +function move_enemies(){ + if (!(collided)) { + let es = getAll(enemy); + for (let i = 0; i < es.length; i++) { + if (es[i].x == 9){ + movedirs[i] = -1 + } + else if (es[i].x == 0){ + movedirs[i] = 1 + } else if ((getTile(es[i].x+movedirs[i],es[i].y).some(s => enemy_blocks.includes(s.type)))){ + movedirs[i] = -movedirs[i] + } + + es[i].x += movedirs[i] + } + + if ((!(isdead)) && (tilesWith(player).length == 1)) { + if (tilesWith(player, enemy).length > 0) { + tile = getFirst(player) + collided = true + setTimeout(() => { + setBackground(red) + }, 300); + for (let i = 0; i < melting.length; i++) { + setTimeout(() => { + if (i > 0) { + getFirst(melting[i-1]).remove() + } else { + getFirst(player).remove() + } + addSprite(tile.x,tile.y,melting[i]) + }, i*300); + } + setTimeout(() => { + die() + }, 1800); + } + } + } +} +setInterval(move_enemies, 500); + +inventory_length = 0 +function pick_up_key(){ + if (tilesWith(player, key).length > 0) { + getFirst(key).remove(); + inventory.push("k"); + clearTile(9,0); + addSprite(9,0,"_"); + } else if ( tilesWith(player, key_red).length > 0) { + getFirst(key_red).remove(); + inventory.push("{"); + let current_tile = getFirst(door_red) + clearTile(current_tile.x, current_tile.y); + addSprite(current_tile.x,current_tile.y,"<"); + } else if ( tilesWith(player, key_green).length > 0) { + getFirst(key_green).remove(); + inventory.push("}"); + let current_tile = getFirst(door_green) + clearTile(current_tile.x, current_tile.y); + addSprite(current_tile.x,current_tile.y,">"); + } else if ( tilesWith(player, key_purple).length > 0) { + getFirst(key_purple).remove(); + inventory.push("W"); + let current_tile = getFirst(door_purple) + clearTile(current_tile.x, current_tile.y); + addSprite(current_tile.x,current_tile.y,"E"); + } else if ( tilesWith(player, key_orange).length > 0) { + getFirst(key_orange).remove(); + inventory.push("S"); + let current_tile = getFirst(door_orange) + clearTile(current_tile.x, current_tile.y); + addSprite(current_tile.x,current_tile.y,"D"); + } + if (inventory.length !== inventory_length) { + inventory_length = inventory.length + for (let i = 0; i < inventory_length; i++) { + addSprite(10-inventory_length,9,inventory[i]) + } + } +} +setInterval(pick_up_key,500); + +const leaving = ["p","*","(",")","-"] + +function enter_door(){ + exit = true + inventory = inventory.filter(function (item) { + return item !== 'k'; + }); + for (let i = 0; i < leaving.length; i++) { + setTimeout(() => { + if (i > 0){ + getFirst(leaving[i-1]).remove() + } else { + getFirst(player).remove() + } + addSprite(9,0,leaving[i]) + }, i*150); + } + setTimeout(() => { + addSprite(width()-1,0,leaving[4]) + }, 1500); + setTimeout(() => { + level += 1 + level_setup(level) + }, 2000); +} + + +setSolids([ player, wall, door, door_red, door_green, door_purple, door_orange, rock, stone_rock, door_block ]); + +onInput("d", () => { + if ((!(isdead)) && (tilesWith(player).length == 1) && ((getFirst(player).y %2 == 0) || jumping)) { + getFirst(player).x += 1 + if (tilesWith(door_o, player).length > 0) { + enter_door() + } else if (tilesWith(door_red_o, player).length > 0) { + let tile = getFirst(door_red_o) + getFirst(door_red_o).remove() + addSprite(tile.x,tile.y,door_red_o2) + inventory = inventory.filter(function (item) { + return item !== '{'; + }); + getFirst(key_red).remove(); + } else if (tilesWith(door_green_o, player).length > 0) { + let tile = getFirst(door_green_o) + getFirst(door_green_o).remove() + addSprite(tile.x,tile.y,door_green_o2) + inventory = inventory.filter(function (item) { + return item !== '}'; + }); + getFirst(key_green).remove(); + } else if (tilesWith(door_purple_o, player).length > 0) { + let tile = getFirst(door_purple_o) + getFirst(door_purple_o).remove() + addSprite(tile.x,tile.y,door_purple_o2) + inventory = inventory.filter(function (item) { + return item !== 'W'; + }); + getFirst(key_purple).remove(); + } else if (tilesWith(door_orange_o, player).length > 0) { + let tile = getFirst(door_orange_o) + getFirst(door_orange_o).remove() + addSprite(tile.x,tile.y,door_orange_o2) + inventory = inventory.filter(function (item) { + return item !== 'S'; + }); + getFirst(key_orange).remove(); + } + } +}) + +onInput("a", () => { + if ((!(isdead)) && (tilesWith(player).length == 1) && ((getFirst(player).y %2 == 0) || jumping)) { + getFirst(player).x -= 1 + if (tilesWith(door_red_o, player).length > 0) { + let tile = getFirst(door_red_o) + getFirst(door_red_o).remove() + addSprite(tile.x,tile.y,door_red_o2) + inventory = inventory.filter(function (item) { + return item !== '{'; + }); + getFirst(key_red).remove(); + } else if (tilesWith(door_green_o, player).length > 0) { + let tile = getFirst(door_green_o) + getFirst(door_green_o).remove() + addSprite(tile.x,tile.y,door_green_o2) + inventory = inventory.filter(function (item) { + return item !== '}'; + }); + getFirst(key_green).remove(); + } else if (tilesWith(door_purple_o, player).length > 0) { + let tile = getFirst(door_purple_o) + getFirst(door_purple_o).remove() + addSprite(tile.x,tile.y,door_purple_o2) + inventory = inventory.filter(function (item) { + return item !== 'W'; + }); + getFirst(key_purple).remove(); + } else if (tilesWith(door_orange_o, player).length > 0) { + let tile = getFirst(door_orange_o) + getFirst(door_orange_o).remove() + addSprite(tile.x,tile.y,door_orange_o2) + inventory = inventory.filter(function (item) { + return item !== 'S'; + }); + getFirst(key_orange).remove(); + } + } +}) + +onInput("w", () => { + if ((!(isdead)) && (tilesWith(player).length == 1) && !(climbing)) { + if ((tilesWith(ladder, player).length > 0) && !(jumping)){ + climbing = true + landed = true + getFirst(player).y -= 1 + jumping = false + setTimeout(() => { + jumping = false + climbing = false + getFirst(player).y -= 1 + }, 100); + } else if (tilesWith(n_ladder, player).length > 0) { + jumping = false + climbing = true + landed = true + getFirst(player).y -= 1 + climbing = false + } + else if ((getFirst(player).y %2 == 0) && !(jumping)){ + getFirst(player).y -= 1 + jumping = true + landed = false + climbing = false + setTimeout(() => { + if (!(landed)) { + getFirst(player).y += 1 + jumping = false + landed = true + climbing = false + } + }, 400); + } + } +}) + +onInput("s", () => { + if ((!(isdead)) && (tilesWith(player).length == 1) && !(jumping) && !(climbing)) { + if (tilesWith(o_ladder, player).length > 0) { + climbing = true + landed = true + getFirst(player).y += 1 + jumping = false + setTimeout(() => { + getFirst(player).y += 1 + jumping = false + climbing = false + }, 100); + } + } +}) + +onInput("j", () => { + if (isdead || haswon) { + if (lives == 0 || haswon) { + lives = 3 + level = 0 + } + level_setup(level) + } +}) \ No newline at end of file diff --git a/games/img/Frost-and-Fire.png b/games/img/Frost-and-Fire.png new file mode 100644 index 0000000000000000000000000000000000000000..5f3433bb7dcf64eb8fa9b78718d815037d5839eb GIT binary patch literal 8004 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 Do(LsG literal 0 HcmV?d00001