Created
February 17, 2023 15:18
-
-
Save maxwofford/44bd373d2d516b9894fd550f02c76fed to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
@title: Sokoban+ | |
@author: Leonard (Omay) | |
25 levels | |
3 types of boxes and 3 types of goals | |
Press WASD to move, J to restart and K to toggle trails | |
Get A boxes (cyan) to A goals (green) | |
Get B boxes (magenta) to B goals (red) | |
Get normal boxes (gray) to either goal | |
*/ | |
const player = "p"; | |
const traila = "t"; | |
const trailb = "s"; | |
const boxa = "c"; | |
const boxb = "d"; | |
const boxn = "e"; | |
const goala = "a"; | |
const goalb = "b"; | |
const goaln = "o"; | |
const wall1 = "0"; | |
const wall2 = "1"; | |
const wall3 = "2"; | |
const wall4 = "3"; | |
const wall5 = "4"; | |
const wall6 = "5"; | |
const wall7 = "6"; | |
const wall8 = "7"; | |
const wall9 = "8"; | |
const wall10 = "9"; | |
const wall11 = "u"; | |
const wall12 = "v"; | |
const wall13 = "w"; | |
const wall14 = "x"; | |
const wall15 = "y"; | |
const wall16 = "z"; | |
const wall17 = "f"; | |
const wall18 = "g"; | |
const wall19 = "h"; | |
const wall20 = "i"; | |
const wall21 = "j"; | |
const wall22 = "k"; | |
const wall23 = "l"; | |
const wall24 = "m"; | |
const wall25 = "n"; | |
const wall26 = "q"; | |
const hack = "r"; | |
setLegend( | |
[player, bitmap` | |
................ | |
................ | |
.....000000..... | |
....00....00.... | |
...00......00... | |
...0..0..0..0... | |
...0........0... | |
...00..00..00... | |
....00....00.... | |
.....000000..... | |
.....0....0..... | |
.....0....0..... | |
...000....000... | |
................ | |
................ | |
................`], | |
[traila, bitmap` | |
................ | |
................ | |
.....LLLLLL..... | |
....LL....LL.... | |
...LL......LL... | |
...L..L..L..L... | |
...L........L... | |
...LL..LL..LL... | |
....LL....LL.... | |
.....LLLLLL..... | |
.....L....L..... | |
.....L....L..... | |
...LLL....LLL... | |
................ | |
................ | |
................`], | |
[trailb, bitmap` | |
................ | |
................ | |
.....111111..... | |
....11....11.... | |
...11......11... | |
...1..1..1..1... | |
...1........1... | |
...11..11..11... | |
....11....11.... | |
.....111111..... | |
.....1....1..... | |
.....1....1..... | |
...111....111... | |
................ | |
................ | |
................`], | |
[boxa, bitmap` | |
................ | |
................ | |
..777777777777.. | |
..7..........7.. | |
..7..........7.. | |
..7..........7.. | |
..7....77....7.. | |
..7...7..7...7.. | |
..7...7777...7.. | |
..7...7..7...7.. | |
..7..........7.. | |
..7..........7.. | |
..7..........7.. | |
..777777777777.. | |
................ | |
................`], | |
[boxb, bitmap` | |
................ | |
................ | |
..888888888888.. | |
..8..........8.. | |
..8..........8.. | |
..8....88....8.. | |
..8....8.8...8.. | |
..8....88....8.. | |
..8....8.8...8.. | |
..8....8.8...8.. | |
..8....88....8.. | |
..8..........8.. | |
..8..........8.. | |
..888888888888.. | |
................ | |
................`], | |
[boxn, bitmap` | |
................ | |
................ | |
..LLLLLLLLLLLL.. | |
..L....LL....L.. | |
..L..1.LL..1.L.. | |
..L.1..LL.1..L.. | |
..L....LL....L.. | |
..LLLLLLLLLLLL.. | |
..LLLLLLLLLLLL.. | |
..L....LL....L.. | |
..L..1.LL..1.L.. | |
..L.1..LL.1..L.. | |
..L....LL....L.. | |
..LLLLLLLLLLLL.. | |
................ | |
................`], | |
[goala, bitmap` | |
................ | |
................ | |
................ | |
......4444...... | |
....444..444.... | |
....4......4.... | |
...44..44..44... | |
...4..4..4..4... | |
...4..4444..4... | |
...44.4..4.44... | |
....4......4.... | |
....444..444.... | |
......4444...... | |
................ | |
................ | |
................`], | |
[goalb, bitmap` | |
................ | |
................ | |
................ | |
......3333...... | |
....333..333.... | |
....3..33..3.... | |
...33..3.3.33... | |
...3...33...3... | |
...3...3.3..3... | |
...33..3.3.33... | |
....3..33..3.... | |
....333..333.... | |
......3333...... | |
................ | |
................ | |
................`], | |
[goaln, bitmap` | |
................ | |
................ | |
................ | |
......LLLL...... | |
....LLL..LLL.... | |
....L......L.... | |
...LL......LL... | |
...L........L... | |
...L........L... | |
...LL......LL... | |
....L......L.... | |
....LLL..LLL.... | |
......LLLL...... | |
................ | |
................ | |
................`], | |
[wall1, bitmap` | |
0000000000000000 | |
0LLLLLLLLLLLLLL0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0LLLLLLLLLLLLLL0 | |
0000000000000000`], | |
[wall2, bitmap` | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0LLLLLLLLLLLLLL0 | |
0000000000000000`], | |
[wall3, bitmap` | |
0000000000000000 | |
0LLLLLLLLLLLLLLL | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0LLLLLLLLLLLLLLL | |
0000000000000000`], | |
[wall4, bitmap` | |
0000000000000000 | |
0LLLLLLLLLLLLLL0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0`], | |
[wall5, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLL0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
LLLLLLLLLLLLLLL0 | |
0000000000000000`], | |
[wall6, bitmap` | |
0L000000000000L0 | |
0L000000000000LL | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0LLLLLLLLLLLLLLL | |
0000000000000000`], | |
[wall7, bitmap` | |
0000000000000000 | |
0LLLLLLLLLLLLLLL | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L000000000000LL | |
0L000000000000L0`], | |
[wall8, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLL0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
LL000000000000L0 | |
0L000000000000L0`], | |
[wall9, bitmap` | |
0L000000000000L0 | |
LL000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
LLLLLLLLLLLLLLL0 | |
0000000000000000`], | |
[wall10, bitmap` | |
0L000000000000L0 | |
LL000000000000LL | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000`], | |
[wall11, bitmap` | |
0L000000000000L0 | |
0L000000000000LL | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L000000000000LL | |
0L000000000000L0`], | |
[wall12, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
LL000000000000LL | |
0L000000000000L0`], | |
[wall13, bitmap` | |
0L000000000000L0 | |
LL000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
LL000000000000L0 | |
0L000000000000L0`], | |
[wall14, bitmap` | |
0L000000000000L0 | |
LL000000000000LL | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
LL000000000000LL | |
0L000000000000L0`], | |
[wall15, bitmap` | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0 | |
0L000000000000L0`], | |
[wall16, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000`], | |
[wall17, bitmap` | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0LLLLLLLLLLLLLLL | |
0000000000000000`], | |
[wall18, bitmap` | |
0000000000000000 | |
0LLLLLLLLLLLLLLL | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000`], | |
[wall19, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLL0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0`], | |
[wall20, bitmap` | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
LLLLLLLLLLLLLLL0 | |
0000000000000000`], | |
[wall21, bitmap` | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000`], | |
[wall22, bitmap` | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000 | |
0L00000000000000`], | |
[wall23, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000`], | |
[wall24, bitmap` | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0 | |
00000000000000L0`], | |
[wall25, bitmap` | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000`], | |
[wall26, bitmap` | |
0000000000000000 | |
LLLLLLLLLLLLLLLL | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
0000000000000000 | |
LL00000000000000 | |
0L00000000000000`],//lol | |
[hack, bitmap` | |
0000000000000000 | |
0LLLLLLLLLLLLLLL | |
0L33333333333300 | |
0L33223333333300 | |
0L33223333333300 | |
0L33223333333300 | |
0L33223333333300 | |
0L33222222233300 | |
0L33222222223300 | |
0L33222332223300 | |
0L33223333223300 | |
0L33223333223300 | |
0L33223333223300 | |
0L33333333333300 | |
0L00000000000000 | |
0L00000000000000`] | |
); | |
const levels = [ | |
map` | |
pc.a`, | |
map` | |
p.. | |
.c. | |
..a`, | |
map` | |
p..a | |
.c.. | |
.... | |
....`, | |
map` | |
p... | |
...c | |
...c | |
.cca`, | |
map` | |
cc.. | |
..c. | |
.cp. | |
.cca`, | |
map` | |
ay.p..f | |
c54.3.. | |
....uzq | |
zz4.1.f | |
....... | |
.2zvz4. | |
.cayac.`, | |
map` | |
p.y. | |
.c1a | |
.... | |
....`, | |
map` | |
p.y. | |
.c1a | |
.... | |
..ca`, | |
map` | |
....a | |
.cc2z | |
4.... | |
a...p`, | |
map` | |
p.ca | |
.gll | |
dknn | |
bknn`, | |
map` | |
a..p | |
h.3d | |
mc1. | |
mp.b`, | |
map` | |
...yb | |
.0.1. | |
.ca.d | |
.3.0. | |
py...`, | |
map` | |
.ay.p | |
..ydc | |
b.y.a | |
dcy.. | |
p.yb.`, | |
map` | |
..k | |
..f | |
aca | |
.c. | |
.3. | |
c1. | |
a.p`, | |
map` | |
b..y..a | |
.d.y.c. | |
..pyp.. | |
zzzxzzz | |
..pyp.. | |
.c.y.d. | |
a..y..b`, | |
map` | |
p.... | |
..d.. | |
..e.b | |
..... | |
..a..`, | |
map` | |
p.... | |
..dba | |
.c.e. | |
..a.e | |
..b..`, | |
map` | |
.... | |
...b | |
.0.2 | |
..ca | |
lhe2 | |
nm.p`, | |
map` | |
p.... | |
.c.e. | |
..... | |
z4.2z | |
..... | |
..o..`, | |
map` | |
p... | |
..ce | |
.caa | |
.ebb`, | |
map` | |
afip | |
..e. | |
.d.. | |
pghb`, | |
map` | |
...p | |
ee.. | |
abc. | |
bac.`, | |
map` | |
p.p.p | |
eeeee | |
.p.p. | |
ooooo | |
.....`, | |
map` | |
pe..op | |
ogllhe | |
.knnm. | |
.knnm. | |
efjjio | |
po..ep`, | |
map` | |
.......p | |
..cddc.. | |
.cabaac. | |
.dbbabd. | |
.daabbd. | |
.cabbac. | |
..cddc.. | |
........`, | |
map` | |
rllllh | |
knnnnm | |
knnnnm | |
knnnnm | |
knnnnm | |
fjjjji` | |
]; | |
const texts = [ | |
"Use WASD to move\nand push boxes to\nthe goal.", | |
"Use K to hide trail", | |
"", | |
"Boxes can push\nother boxes.", | |
"", | |
"", | |
"Use J to restart", | |
"Don't go straight there...", | |
"", | |
"A boxes to A goals\nB boxes to B goals", | |
"Both players are\ncontrolled\nsimultaneously", | |
"", | |
"", | |
"", | |
"", | |
"Gray boxes go anywhere", | |
"", | |
"Loop", | |
"Gray goals take any box", | |
"This will be common", | |
"", | |
"See?", | |
"Wiggle around. (:", | |
"Loop again", | |
"Final Level!", | |
"" | |
]; | |
let level = 0; | |
const currentLevel = levels[level]; | |
setMap(currentLevel); | |
addText(texts[level], {x:1, color:color`1`}); | |
setSolids([player, boxa, boxb, boxn, wall1, wall2, wall3, wall4, wall5, wall6, wall7, wall8, wall9, wall10, wall11, wall12, wall13, wall14, wall15, wall16, wall17, wall18, wall19, wall11, wall20, wall21, wall22, wall23, wall24, wall25]); | |
setPushables({ | |
[player]: [boxa, boxb, boxn], | |
[boxa]: [boxa, boxb, boxn], | |
[boxb]: [boxa, boxb, boxn], | |
[boxn]: [boxa, boxb, boxn] | |
}); | |
const playerstep = tune` | |
166.66666666666666, | |
166.66666666666666: a4^166.66666666666666, | |
5000`; | |
const bg = tune` | |
375: b4~375 + g5/375 + c4^375, | |
375: b5/375, | |
375: b4~375 + g5/375 + d4^375, | |
375: c5~375 + a5/375, | |
375, | |
375: b4~375 + g5/375 + e4^375, | |
375, | |
375: b4~375 + b5/375, | |
375: a4~375 + g5/375 + d4^375, | |
375: a5/375, | |
375: b4~375 + g5/375 + c4^375, | |
375, | |
375: b4~375 + g5/375 + d4^375, | |
375: c5~375 + b5/375, | |
375: b4~375 + g5/375, | |
375: a4~375 + a5/375 + e4^375, | |
375: g4~375, | |
375: g5/375, | |
375: g4~375 + d4^375, | |
375: b5/375, | |
375: g4~375 + g5/375 + d4^375, | |
375: a4~375 + a5/375, | |
375`; | |
const reset = tune` | |
166.66666666666666, | |
166.66666666666666: c5-166.66666666666666, | |
166.66666666666666: b4-166.66666666666666, | |
4833.333333333333`; | |
const cont = tune` | |
500, | |
500: c5~500, | |
500: d5~500, | |
500: e5~500, | |
14000`; | |
const win = tune` | |
166.66666666666666, | |
166.66666666666666: c5~166.66666666666666, | |
166.66666666666666: d5~166.66666666666666, | |
166.66666666666666: e5~166.66666666666666, | |
166.66666666666666: b4~166.66666666666666, | |
166.66666666666666: c5~166.66666666666666, | |
166.66666666666666: d5~166.66666666666666, | |
166.66666666666666: e5~166.66666666666666, | |
166.66666666666666: d5~166.66666666666666, | |
166.66666666666666: c5~166.66666666666666, | |
166.66666666666666, | |
166.66666666666666: b4~166.66666666666666, | |
166.66666666666666: e5~166.66666666666666, | |
166.66666666666666: c5~166.66666666666666, | |
3000`; | |
playTune(bg, Infinity); | |
let trails = true; | |
// START - PLAYER MOVEMENT CONTROLS | |
function everyMove() { | |
let trailsb = getAll(trailb); | |
for (let i of trailsb) { | |
i.remove(); | |
} | |
let trailsa = getAll(traila); | |
for (i of trailsa) { | |
i.type = trailb; | |
} | |
for(let i of getAll(player)){ | |
if(trails){ | |
addSprite(i.x, i.y, traila); | |
} | |
} | |
playTune(playerstep); | |
} | |
let players; | |
let i; | |
onInput("s", () => { | |
players = getAll(player); | |
everyMove(); | |
for (i of players) { | |
i.y += 1; | |
} | |
}); | |
onInput("d", () => { | |
players = getAll(player); | |
everyMove(); | |
for (i of players) { | |
i.x += 1; | |
} | |
}); | |
onInput("w", () => { | |
players = getAll(player); | |
everyMove(); | |
for (i of players) { | |
i.y -= 1; | |
} | |
}); | |
onInput("a", () => { | |
players = getAll(player); | |
everyMove(); | |
for (i of players) { | |
i.x -= 1; | |
} | |
}); | |
// END - PLAYER MOVEMENT CONTROLS | |
onInput("j", () => { | |
const currentLevel = levels[level]; | |
playTune(reset); | |
if (currentLevel !== undefined) { | |
clearText(""); | |
setMap(currentLevel); | |
} | |
}); | |
onInput("k", () => { | |
let trailsb = getAll(trailb); | |
let trailsa = getAll(traila); | |
for(let i of trailsa){ | |
i.remove(); | |
} | |
for(let i of trailsb){ | |
i.remove(); | |
} | |
trails = !trails; | |
}); | |
afterInput(() => { | |
const targetNumber = tilesWith(goala).length + tilesWith(goalb).length + tilesWith(goaln).length; | |
const numberCovered = tilesWith(goala, boxa).length + tilesWith(goalb, boxb).length + tilesWith(goala, boxn).length + tilesWith(goalb, boxn).length + tilesWith(goaln, boxa).length + tilesWith(goaln, boxb).length + tilesWith(goaln, boxn).length; | |
if (numberCovered === targetNumber && !(level === levels.length-1)) { | |
level = level + 1; | |
clearText(); | |
addText(texts[level], {x:1, color:color`1`}); | |
const currentLevel = levels[level]; | |
playTune(cont); | |
setMap(currentLevel); | |
} | |
if (level === levels.length-1) { | |
addText("You win!", { | |
y: 4, | |
color: color`4` | |
}); | |
playTune(win); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment