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