Skip to content

Commit 114ecbd

Browse files
Add files via upload
1 parent accce9e commit 114ecbd

File tree

1 file changed

+138
-0
lines changed

1 file changed

+138
-0
lines changed

games/COINCOLLECTER+.js

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
const player = "p"
2+
const wall = "w"
3+
const coin = "c"
4+
5+
setLegend(
6+
[player, bitmap`
7+
................
8+
................
9+
................
10+
......0000......
11+
.....022220.....
12+
....02222220....
13+
....02222220....
14+
....02222220....
15+
....02222220....
16+
....02222220....
17+
.....022220.....
18+
......0000......
19+
................
20+
................
21+
................
22+
................`],
23+
24+
[wall, bitmap`
25+
1111111111111111
26+
1111111111111111
27+
1111111111111111
28+
1111111111111111
29+
1111111111111111
30+
1111111111111111
31+
1111111111111111
32+
1111111111111111
33+
1111111111111111
34+
1111111111111111
35+
1111111111111111
36+
1111111111111111
37+
1111111111111111
38+
1111111111111111
39+
1111111111111111
40+
1111111111111111`],
41+
42+
[coin, bitmap`
43+
................
44+
................
45+
................
46+
......3333......
47+
.....344443.....
48+
....34444443....
49+
....34444443....
50+
....34444443....
51+
....34444443....
52+
....34444443....
53+
.....344443.....
54+
......3333......
55+
................
56+
................
57+
................
58+
................`]
59+
)
60+
61+
setSolids([wall])
62+
63+
// --- LEVELS ---
64+
let level = 0
65+
66+
const levels = [
67+
// Level 1
68+
map`
69+
wwwwwwwww
70+
wp....c.w
71+
w..ww...w
72+
w..w....w
73+
w..w.c..w
74+
w....w..w
75+
wc...w..w
76+
wwwwwwwww`,
77+
78+
// Level 2
79+
map`
80+
wwwwwwwwwww
81+
wp.......cw
82+
w.w.www.w.w
83+
w.w...w.w.w
84+
w.w.c.w.w.w
85+
w...w.....w
86+
wc....c...w
87+
wwwwwwwwwww`,
88+
89+
// Level 3 (Hard mode)
90+
map`
91+
wwwwwwwwwww
92+
w.c...c...w
93+
w.www.www.w
94+
wp..c.....w
95+
www.w.www.w
96+
w...c..c..w
97+
w.www.www.w
98+
w....c....w
99+
wwwwwwwwwww`
100+
]
101+
102+
setMap(levels[level])
103+
104+
// --- MOVEMENT ---
105+
onInput("w", () => getFirst(player).y--)
106+
onInput("s", () => getFirst(player).y++)
107+
onInput("a", () => getFirst(player).x--)
108+
onInput("d", () => getFirst(player).x++)
109+
110+
// --- GAME LOGIC ---
111+
afterInput(() => {
112+
const p = getFirst(player)
113+
114+
// Remove coins if player steps on them
115+
getTile(p.x, p.y)
116+
.filter(t => t.type === coin)
117+
.forEach(c => c.remove())
118+
119+
// Next level if all coins are gone
120+
if (tilesWith(coin).length === 0) {
121+
clearText()
122+
addText("Level Complete!", { y: 1, color: color`4` })
123+
124+
level++
125+
126+
if (level < levels.length) {
127+
setTimeout(() => {
128+
clearText()
129+
setMap(levels[level])
130+
}, 500)
131+
} else {
132+
setTimeout(() => {
133+
clearText()
134+
addText("YOU WIN!", { y: 1, color: color`3` })
135+
}, 500)
136+
}
137+
}
138+
})

0 commit comments

Comments
 (0)