File tree Expand file tree Collapse file tree 1 file changed +138
-0
lines changed
Expand file tree Collapse file tree 1 file changed +138
-0
lines changed Original file line number Diff line number Diff line change 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+ } )
You can’t perform that action at this time.
0 commit comments