要打败的Random agent 0
加入
What shoal-games changes in this game
由 @shoal shoal 从 main 的 cef7bd7 分出 · 领先 1 个提交,比 main 落后 0 个
接续
贡献回去
2520 行 · 63.2 KB 原始文件 永久链接 历史
1# MIT License
2#
3# Copyright (c) 2026 ARC Prize Foundation
4#
5# Permission is hereby granted, free of charge, to any person obtaining a copy
6# of this software and associated documentation files (the "Software"), to deal
7# in the Software without restriction, including without limitation the rights
8# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9# copies of the Software, and to permit persons to whom the Software is
10# furnished to do so, subject to the following conditions:
11#
12# The above copyright notice and this permission notice shall be included in all
13# copies or substantial portions of the Software.
14#
15# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21# SOFTWARE.
22
23import numpy as np
24from arcengine import (
25 ActionInput,
26 ARCBaseGame,
27 Camera,
28 GameAction,
29 Level,
30 RenderableUserDisplay,
31 Sprite,
32)
33
34sprites = {
35 "AcT": Sprite(
36 pixels=[
37 [12, 12],
38 [12, 12],
39 ],
40 name="AcT",
41 visible=True,
42 collidable=True,
43 ),
44 "aIV": Sprite(
45 pixels=[
46 [0, 14],
47 [0, 0],
48 ],
49 name="aIV",
50 visible=True,
51 collidable=True,
52 ),
53 "ajm": Sprite(
54 pixels=[
55 [2, 2, 0],
56 [2, 15, 2],
57 [2, 2, 2],
58 ],
59 name="ajm",
60 visible=True,
61 collidable=True,
62 tags=["bsT"],
63 ),
64 "aPM": Sprite(
65 pixels=[
66 [3, 3, 3],
67 [3, 11, 0],
68 [3, 0, 2],
69 ],
70 name="aPM",
71 visible=True,
72 collidable=True,
73 tags=["bsT"],
74 ),
75 "APy": Sprite(
76 pixels=[
77 [2, 0, 0],
78 [0, 8, 2],
79 [2, 0, 2],
80 ],
81 name="APy",
82 visible=True,
83 collidable=True,
84 tags=["bsT"],
85 ),
86 "AQG": Sprite(
87 pixels=[
88 [0, 3, 3],
89 [2, 15, 3],
90 [0, 2, 0],
91 ],
92 name="AQG",
93 visible=True,
94 collidable=True,
95 tags=["bsT"],
96 ),
97 "aRa": Sprite(
98 pixels=[
99 [2, 0, 2],
100 [2, 9, 2],
101 [2, 2, 0],
102 ],
103 name="aRa",
104 visible=True,
105 collidable=True,
106 tags=["bsT"],
107 ),
108 "ASc": Sprite(
109 pixels=[
110 [2, 0, 0],
111 [3, 14, 2],
112 [3, 3, 3],
113 ],
114 name="ASc",
115 visible=True,
116 collidable=False,
117 tags=["bsT"],
118 ),
119 "AzN": Sprite(
120 pixels=[
121 [15, 15],
122 [15, 15],
123 ],
124 name="AzN",
125 visible=True,
126 collidable=True,
127 ),
128 "Bbi": Sprite(
129 pixels=[
130 [3, 0, 3],
131 [2, 11, 2],
132 [3, 0, 3],
133 ],
134 name="Bbi",
135 visible=True,
136 collidable=False,
137 tags=["bsT"],
138 ),
139 "bdj": Sprite(
140 pixels=[
141 [12, 12],
142 [12, 12],
143 ],
144 name="bdj",
145 visible=True,
146 collidable=True,
147 ),
148 "bqV": Sprite(
149 pixels=[
150 [0, -1, 0, -1, 0],
151 ],
152 name="bqV",
153 visible=True,
154 collidable=True,
155 ),
156 "BvX": Sprite(
157 pixels=[
158 [2, 0, 2],
159 [3, 14, 0],
160 [3, 3, 3],
161 ],
162 name="BvX",
163 visible=True,
164 collidable=True,
165 tags=["bsT"],
166 ),
167 "bzH": Sprite(
168 pixels=[
169 [-1, -1, 6, -1, -1],
170 [-1, -1, -1, -1, -1],
171 [6, -1, -1, -1, 6],
172 [-1, -1, -1, -1, -1],
173 [-1, -1, 6, -1, -1],
174 [-1, -1, -1, -1, -1],
175 [6, -1, -1, -1, 6],
176 [-1, -1, -1, -1, -1],
177 [-1, -1, 6, -1, -1],
178 ],
179 name="bzH",
180 visible=True,
181 collidable=True,
182 ),
183 "cgN": Sprite(
184 pixels=[
185 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
186 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
187 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
188 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
189 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
190 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
191 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
192 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
193 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
194 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
195 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
196 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
197 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
198 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
199 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
200 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
201 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
202 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
203 ],
204 name="cgN",
205 visible=True,
206 collidable=False,
207 layer=-2,
208 ),
209 "ciC": Sprite(
210 pixels=[
211 [6, 7, 6],
212 [7, 10, 7],
213 [6, 7, 6],
214 ],
215 name="ciC",
216 visible=True,
217 collidable=True,
218 tags=["NTi"],
219 ),
220 "CKH": Sprite(
221 pixels=[
222 [3, 0, 2],
223 [0, 8, 0],
224 [0, 2, 2],
225 ],
226 name="CKH",
227 visible=True,
228 collidable=True,
229 tags=["bsT"],
230 ),
231 "cWS": Sprite(
232 pixels=[
233 [2, 2, 2],
234 [0, 9, 0],
235 [0, 2, 0],
236 ],
237 name="cWS",
238 visible=True,
239 collidable=True,
240 tags=["bsT"],
241 ),
242 "dhm": Sprite(
243 pixels=[
244 [6, 6, 6],
245 [6, 7, 6],
246 [6, 7, 6],
247 ],
248 name="dhm",
249 visible=True,
250 collidable=True,
251 ),
252 "dta": Sprite(
253 pixels=[
254 [2, 0, 2],
255 [0, 12, 2],
256 [0, 0, 0],
257 ],
258 name="dta",
259 visible=True,
260 collidable=True,
261 tags=["bsT"],
262 ),
263 "dvQ": Sprite(
264 pixels=[
265 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
266 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
267 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
268 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
269 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
270 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
271 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
272 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
273 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
274 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
275 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
276 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
277 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
278 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
279 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
280 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
281 ],
282 name="dvQ",
283 visible=True,
284 collidable=False,
285 layer=-2,
286 ),
287 "dwp": Sprite(
288 pixels=[
289 [3, 3, 3],
290 [0, 10, 3],
291 [0, 0, 3],
292 ],
293 name="dwp",
294 visible=True,
295 collidable=True,
296 tags=["bsT"],
297 ),
298 "DYr": Sprite(
299 pixels=[
300 [2],
301 [2],
302 ],
303 name="DYr",
304 visible=True,
305 collidable=True,
306 ),
307 "EEB": Sprite(
308 pixels=[
309 [8, 8],
310 [8, 8],
311 [9, 9],
312 [9, 9],
313 ],
314 name="EEB",
315 visible=True,
316 collidable=True,
317 ),
318 "Eev": Sprite(
319 pixels=[
320 [2, 2, 2],
321 [2, 2, 2],
322 [2, 2, 2],
323 ],
324 name="Eev",
325 visible=True,
326 collidable=True,
327 tags=["bsT"],
328 ),
329 "ejV": Sprite(
330 pixels=[
331 [8, 8],
332 [8, 8],
333 ],
334 name="ejV",
335 visible=True,
336 collidable=True,
337 ),
338 "EQX": Sprite(
339 pixels=[
340 [0, 2, 0],
341 [2, 12, 2],
342 [0, 0, 2],
343 ],
344 name="EQX",
345 visible=True,
346 collidable=True,
347 tags=["bsT"],
348 ),
349 "ewB": Sprite(
350 pixels=[
351 [6, 6, 6],
352 [6, 7, 6],
353 [6, 6, 6],
354 ],
355 name="ewB",
356 visible=True,
357 collidable=True,
358 ),
359 "ewH": Sprite(
360 pixels=[
361 [6, 7, 6],
362 [7, 7, 7],
363 [6, 7, 6],
364 ],
365 name="ewH",
366 visible=True,
367 collidable=True,
368 ),
369 "Ewx": Sprite(
370 pixels=[
371 [2, 0, 2],
372 [0, 8, 0],
373 [2, 0, 2],
374 ],
375 name="Ewx",
376 visible=True,
377 collidable=True,
378 tags=["bsT"],
379 ),
380 "fBi": Sprite(
381 pixels=[
382 [8, 8],
383 [8, 8],
384 [12, 12],
385 [12, 12],
386 ],
387 name="fBi",
388 visible=True,
389 collidable=True,
390 ),
391 "FfJ": Sprite(
392 pixels=[
393 [3, 0, 0],
394 [3, 12, 0],
395 [3, 0, 2],
396 ],
397 name="FfJ",
398 visible=True,
399 collidable=True,
400 tags=["bsT"],
401 ),
402 "fjN": Sprite(
403 pixels=[
404 [0, 0, 0],
405 [2, 8, 2],
406 [2, 2, 2],
407 ],
408 name="fjN",
409 visible=True,
410 collidable=True,
411 tags=["bsT"],
412 ),
413 "FLH": Sprite(
414 pixels=[
415 [2, 2, 2],
416 [0, 15, 3],
417 [3, 3, 3],
418 ],
419 name="FLH",
420 visible=True,
421 collidable=True,
422 tags=["bsT"],
423 ),
424 "fPj": Sprite(
425 pixels=[
426 [0, 2, 0],
427 [2, 14, 2],
428 [0, 3, 0],
429 ],
430 name="fPj",
431 visible=True,
432 collidable=True,
433 tags=["bsT"],
434 ),
435 "Fpw": Sprite(
436 pixels=[
437 [6, 7, 6],
438 [7, 7, 7],
439 [6, 7, 6],
440 ],
441 name="Fpw",
442 visible=True,
443 collidable=True,
444 ),
445 "FRs": Sprite(
446 pixels=[
447 [3, 2, 2],
448 [0, 11, 0],
449 [3, 2, 3],
450 ],
451 name="FRs",
452 visible=True,
453 collidable=True,
454 tags=["bsT"],
455 ),
456 "fsp": Sprite(
457 pixels=[
458 [7, 7, 6],
459 [7, 10, 7],
460 [6, 7, 7],
461 ],
462 name="fsp",
463 visible=True,
464 collidable=True,
465 tags=["NTi", "gOi"],
466 ),
467 "fTG": Sprite(
468 pixels=[
469 [6, 6, 6],
470 [7, 6, 7],
471 [6, 6, 6],
472 ],
473 name="fTG",
474 visible=True,
475 collidable=True,
476 ),
477 "FvN": Sprite(
478 pixels=[
479 [3, 0, 0],
480 [2, 9, 2],
481 [3, 0, 0],
482 ],
483 name="FvN",
484 visible=True,
485 collidable=True,
486 tags=["bsT"],
487 ),
488 "gdG": Sprite(
489 pixels=[
490 [0, 2, 2],
491 [2, 8, 2],
492 [2, 2, 2],
493 ],
494 name="gdG",
495 visible=True,
496 collidable=True,
497 tags=["bsT"],
498 ),
499 "gFd": Sprite(
500 pixels=[
501 [14, 14],
502 [14, 14],
503 ],
504 name="gFd",
505 visible=True,
506 collidable=True,
507 ),
508 "guB": Sprite(
509 pixels=[
510 [3, 2, 3],
511 [0, 11, 0],
512 [3, 2, 3],
513 ],
514 name="guB",
515 visible=True,
516 collidable=True,
517 tags=["bsT"],
518 ),
519 "gYF": Sprite(
520 pixels=[
521 [12, 12],
522 [12, 12],
523 ],
524 name="gYF",
525 visible=True,
526 collidable=True,
527 ),
528 "GYn": Sprite(
529 pixels=[
530 [0, 2, 2],
531 [2, 9, 2],
532 [0, 2, 2],
533 ],
534 name="GYn",
535 visible=True,
536 collidable=True,
537 tags=["bsT"],
538 ),
539 "hGV": Sprite(
540 pixels=[
541 [3, 3, 2],
542 [3, 12, 0],
543 [2, 0, 2],
544 ],
545 name="hGV",
546 visible=True,
547 collidable=True,
548 tags=["bsT"],
549 ),
550 "hIX": Sprite(
551 pixels=[
552 [0, 0, 0],
553 [3, 14, 0],
554 [3, 3, 3],
555 ],
556 name="hIX",
557 visible=True,
558 collidable=True,
559 tags=["bsT"],
560 ),
561 "Hkx": Sprite(
562 pixels=[
563 [9, 9, 9],
564 [9, 9, 9],
565 [9, 9, 9],
566 ],
567 name="Hkx",
568 visible=True,
569 collidable=True,
570 tags=["Hkx", "gOi"],
571 ),
572 "htK": Sprite(
573 pixels=[
574 [8, 8],
575 [8, 8],
576 ],
577 name="htK",
578 visible=True,
579 collidable=True,
580 ),
581 "IFI": Sprite(
582 pixels=[
583 [3, 2, 0],
584 [3, 15, 2],
585 [3, 2, 0],
586 ],
587 name="IFI",
588 visible=True,
589 collidable=True,
590 tags=["bsT"],
591 ),
592 "ImU": Sprite(
593 pixels=[
594 [6, 7, 7],
595 [7, 10, 7],
596 [7, 7, 7],
597 ],
598 name="ImU",
599 visible=True,
600 collidable=True,
601 tags=["NTi", "gOi"],
602 ),
603 "iSM": Sprite(
604 pixels=[
605 [2, 2, 2],
606 [2, 2, 2],
607 [2, 2, 2],
608 ],
609 name="iSM",
610 visible=True,
611 collidable=True,
612 tags=["bsT"],
613 ),
614 "iTO": Sprite(
615 pixels=[
616 [6, 6, 6],
617 [6, 7, 6],
618 [6, 6, 7],
619 ],
620 name="iTO",
621 visible=True,
622 collidable=True,
623 ),
624 "iVf": Sprite(
625 pixels=[
626 [3, 3, 3],
627 [3, 9, 2],
628 [3, 0, 2],
629 ],
630 name="iVf",
631 visible=True,
632 collidable=True,
633 tags=["bsT"],
634 ),
635 "jGI": Sprite(
636 pixels=[
637 [0, 2, 2],
638 [0, 12, 0],
639 [0, 2, 0],
640 ],
641 name="jGI",
642 visible=True,
643 collidable=True,
644 tags=["bsT"],
645 ),
646 "Jir": Sprite(
647 pixels=[
648 [9, 9],
649 [9, 9],
650 ],
651 name="Jir",
652 visible=True,
653 collidable=True,
654 ),
655 "jqz": Sprite(
656 pixels=[
657 [2, 0, 0],
658 [3, 12, 2],
659 [3, 3, 3],
660 ],
661 name="jqz",
662 visible=True,
663 collidable=True,
664 tags=["bsT"],
665 ),
666 "jRD": Sprite(
667 pixels=[
668 [3, 2, 3],
669 [0, 11, 0],
670 [3, 2, 3],
671 ],
672 name="jRD",
673 visible=True,
674 collidable=True,
675 tags=["bsT"],
676 ),
677 "jsT": Sprite(
678 pixels=[
679 [14, 14],
680 [14, 14],
681 ],
682 name="jsT",
683 visible=True,
684 collidable=True,
685 ),
686 "KBg": Sprite(
687 pixels=[
688 [2, 2, 3],
689 [0, 8, 0],
690 [2, 2, 3],
691 ],
692 name="KBg",
693 visible=True,
694 collidable=True,
695 tags=["bsT"],
696 ),
697 "kEq": Sprite(
698 pixels=[
699 [0, 0, 2],
700 [2, 9, 2],
701 [2, 2, 2],
702 ],
703 name="kEq",
704 visible=True,
705 collidable=True,
706 tags=["bsT"],
707 ),
708 "kJY": Sprite(
709 pixels=[
710 [9, 9],
711 [9, 9],
712 ],
713 name="kJY",
714 visible=True,
715 collidable=True,
716 ),
717 "KOm": Sprite(
718 pixels=[
719 [2, 0, 3],
720 [0, 9, 3],
721 [2, 0, 3],
722 ],
723 name="KOm",
724 visible=True,
725 collidable=True,
726 tags=["bsT"],
727 ),
728 "KpR": Sprite(
729 pixels=[
730 [3, 0, 3],
731 [3, 11, 2],
732 [3, 0, 3],
733 ],
734 name="KpR",
735 visible=True,
736 collidable=True,
737 tags=["bsT"],
738 ),
739 "KrW": Sprite(
740 pixels=[
741 [2, 0, 2],
742 [2, 12, 2],
743 [2, 2, 2],
744 ],
745 name="KrW",
746 visible=True,
747 collidable=True,
748 tags=["bsT"],
749 ),
750 "kUt": Sprite(
751 pixels=[
752 [9, 9],
753 [9, 9],
754 ],
755 name="kUt",
756 visible=True,
757 collidable=True,
758 ),
759 "kvt": Sprite(
760 pixels=[
761 [2, 0, 0],
762 [0, 14, 0],
763 [2, 0, 2],
764 ],
765 name="kvt",
766 visible=True,
767 collidable=False,
768 tags=["bsT"],
769 ),
770 "kyg": Sprite(
771 pixels=[
772 [3, 0, 3],
773 [2, 11, 2],
774 [3, 0, 3],
775 ],
776 name="kyg",
777 visible=True,
778 collidable=False,
779 tags=["bsT"],
780 ),
781 "KYk": Sprite(
782 pixels=[
783 [0, 0, 0],
784 [0, 12, 2],
785 [2, 0, 2],
786 ],
787 name="KYk",
788 visible=True,
789 collidable=True,
790 tags=["bsT"],
791 ),
792 "LDC": Sprite(
793 pixels=[
794 [2, 2, 2],
795 [2, 12, 2],
796 [2, 0, 2],
797 ],
798 name="LDC",
799 visible=True,
800 collidable=True,
801 tags=["bsT"],
802 ),
803 "LfP": Sprite(
804 pixels=[
805 [2, 0, 2],
806 [2, 8, 0],
807 [2, 2, 2],
808 ],
809 name="LfP",
810 visible=True,
811 collidable=True,
812 tags=["bsT"],
813 ),
814 "LgL": Sprite(
815 pixels=[
816 [12, 12],
817 [12, 12],
818 [9, 9],
819 [9, 9],
820 ],
821 name="LgL",
822 visible=True,
823 collidable=True,
824 ),
825 "LIx": Sprite(
826 pixels=[
827 [3, 0, 3],
828 [0, 11, 2],
829 [3, 2, 3],
830 ],
831 name="LIx",
832 visible=True,
833 collidable=True,
834 tags=["bsT"],
835 ),
836 "lMN": Sprite(
837 pixels=[
838 [2, 0, 2],
839 [2, 12, 2],
840 [2, 0, 2],
841 ],
842 name="lMN",
843 visible=True,
844 collidable=True,
845 tags=["bsT"],
846 ),
847 "LRU": Sprite(
848 pixels=[
849 [15, 15],
850 [15, 15],
851 ],
852 name="LRU",
853 visible=True,
854 collidable=True,
855 ),
856 "Lua": Sprite(
857 pixels=[
858 [0, 0, 3],
859 [2, 14, 3],
860 [0, 2, 3],
861 ],
862 name="Lua",
863 visible=True,
864 collidable=True,
865 tags=["bsT"],
866 ),
867 "lVU": Sprite(
868 pixels=[
869 [0, -1, 0, -1, 0],
870 ],
871 name="lVU",
872 visible=True,
873 collidable=True,
874 ),
875 "Lzf": Sprite(
876 pixels=[
877 [2, 2, 0],
878 [2, 9, 2],
879 [2, 2, 2],
880 ],
881 name="Lzf",
882 visible=True,
883 collidable=True,
884 tags=["bsT"],
885 ),
886 "MEF": Sprite(
887 pixels=[
888 [2, 0, 2],
889 [0, 8, 0],
890 [2, 0, 2],
891 ],
892 name="MEF",
893 visible=True,
894 collidable=True,
895 ),
896 "mnE": Sprite(
897 pixels=[
898 [3, 3, 3],
899 [3, 12, 0],
900 [2, 2, 3],
901 ],
902 name="mnE",
903 visible=True,
904 collidable=True,
905 tags=["bsT"],
906 ),
907 "mrc": Sprite(
908 pixels=[
909 [2, 0, 2],
910 [2, 9, 2],
911 [2, 2, 2],
912 ],
913 name="mrc",
914 visible=True,
915 collidable=True,
916 tags=["bsT"],
917 ),
918 "mTg": Sprite(
919 pixels=[
920 [2, 0, 0],
921 [2, 9, 2],
922 [2, 2, 2],
923 ],
924 name="mTg",
925 visible=True,
926 collidable=True,
927 tags=["bsT"],
928 ),
929 "MTx": Sprite(
930 pixels=[
931 [8, 8],
932 [8, 8],
933 ],
934 name="MTx",
935 visible=True,
936 collidable=True,
937 ),
938 "ndN": Sprite(
939 pixels=[
940 [2, 0, 2],
941 [0, 8, 0],
942 [2, 2, 2],
943 ],
944 name="ndN",
945 visible=True,
946 collidable=True,
947 tags=["bsT"],
948 ),
949 "NGA": Sprite(
950 pixels=[
951 [3, 3, 3],
952 [3, 15, 0],
953 [2, 2, 0],
954 ],
955 name="NGA",
956 visible=True,
957 collidable=True,
958 tags=["bsT"],
959 ),
960 "nGy": Sprite(
961 pixels=[
962 [12, 12],
963 [12, 12],
964 [8, 8],
965 [8, 8],
966 ],
967 name="nGy",
968 visible=True,
969 collidable=True,
970 ),
971 "nkM": Sprite(
972 pixels=[
973 [3, 2, 3],
974 [2, 11, 2],
975 [3, 2, 3],
976 ],
977 name="nkM",
978 visible=True,
979 collidable=True,
980 tags=["bsT"],
981 ),
982 "Nod": Sprite(
983 pixels=[
984 [2],
985 ],
986 name="Nod",
987 visible=True,
988 collidable=True,
989 ),
990 "NTi": Sprite(
991 pixels=[
992 [7, 6, 7],
993 [6, 10, 6],
994 [7, 6, 7],
995 ],
996 name="NTi",
997 visible=True,
998 collidable=True,
999 tags=["NTi", "gOi"],
1000 ),
1001 "Nul": Sprite(
1002 pixels=[
1003 [3, 3, 3],
1004 [3, 14, 0],
1005 [3, 0, 2],
1006 ],
1007 name="Nul",
1008 visible=True,
1009 collidable=True,
1010 tags=["bsT"],
1011 ),
1012 "OFC": Sprite(
1013 pixels=[
1014 [12, 12],
1015 [12, 12],
1016 ],
1017 name="OFC",
1018 visible=True,
1019 collidable=True,
1020 ),
1021 "oif": Sprite(
1022 pixels=[
1023 [0, 0, 0],
1024 [3, 10, 3],
1025 [3, 3, 3],
1026 ],
1027 name="oif",
1028 visible=True,
1029 collidable=True,
1030 tags=["bsT"],
1031 ),
1032 "OqR": Sprite(
1033 pixels=[
1034 [2, 0, 3],
1035 [0, 8, 3],
1036 [2, 0, 3],
1037 ],
1038 name="OqR",
1039 visible=True,
1040 collidable=True,
1041 tags=["bsT"],
1042 ),
1043 "OZL": Sprite(
1044 pixels=[
1045 [0, 2, 0],
1046 [2, 12, 2],
1047 [0, 2, 0],
1048 ],
1049 name="OZL",
1050 visible=True,
1051 collidable=True,
1052 tags=["bsT"],
1053 ),
1054 "PjS": Sprite(
1055 pixels=[
1056 [2, 0, 2],
1057 [0, 14, 0],
1058 [0, 0, 2],
1059 ],
1060 name="PjS",
1061 visible=True,
1062 collidable=False,
1063 tags=["bsT"],
1064 ),
1065 "PmE": Sprite(
1066 pixels=[
1067 [2, 0, 3],
1068 [0, 14, 3],
1069 [3, 3, 3],
1070 ],
1071 name="PmE",
1072 visible=True,
1073 collidable=True,
1074 tags=["bsT"],
1075 ),
1076 "PrU": Sprite(
1077 pixels=[
1078 [8, 8],
1079 [8, 8],
1080 ],
1081 name="PrU",
1082 visible=True,
1083 collidable=True,
1084 ),
1085 "PRx": Sprite(
1086 pixels=[
1087 [0, 0, 0],
1088 [0, -1, 0],
1089 [0, 0, 0],
1090 ],
1091 name="PRx",
1092 visible=True,
1093 collidable=True,
1094 tags=["bsT"],
1095 ),
1096 "pvc": Sprite(
1097 pixels=[
1098 [0, 0, 0],
1099 [0, 8, 0],
1100 [0, 0, 0],
1101 ],
1102 name="pvc",
1103 visible=True,
1104 collidable=True,
1105 tags=["bsT"],
1106 ),
1107 "QBc": Sprite(
1108 pixels=[
1109 [0, 2, 2],
1110 [2, 9, 2],
1111 [0, 0, 2],
1112 ],
1113 name="QBc",
1114 visible=True,
1115 collidable=True,
1116 tags=["bsT"],
1117 ),
1118 "QpB": Sprite(
1119 pixels=[
1120 [9, 9],
1121 [9, 9],
1122 ],
1123 name="QpB",
1124 visible=True,
1125 collidable=True,
1126 ),
1127 "qpe": Sprite(
1128 pixels=[
1129 [9, 9],
1130 [9, 9],
1131 ],
1132 name="qpe",
1133 visible=True,
1134 collidable=True,
1135 ),
1136 "qqM": Sprite(
1137 pixels=[
1138 [2, 3, 2],
1139 [0, 14, 0],
1140 [2, 0, 2],
1141 ],
1142 name="qqM",
1143 visible=True,
1144 collidable=True,
1145 tags=["bsT"],
1146 ),
1147 "qqX": Sprite(
1148 pixels=[
1149 [0, 2, 2],
1150 [0, 8, 0],
1151 [2, 2, 0],
1152 ],
1153 name="qqX",
1154 visible=True,
1155 collidable=True,
1156 ),
1157 "RBv": Sprite(
1158 pixels=[
1159 [0, 0, 2],
1160 [0, 14, 0],
1161 [3, 3, 3],
1162 ],
1163 name="RBv",
1164 visible=True,
1165 collidable=True,
1166 tags=["bsT"],
1167 ),
1168 "REY": Sprite(
1169 pixels=[
1170 [10, 10],
1171 [10, 10],
1172 ],
1173 name="REY",
1174 visible=True,
1175 collidable=True,
1176 ),
1177 "RjR": Sprite(
1178 pixels=[
1179 [2, 0, 2],
1180 [0, 9, 2],
1181 [0, 2, 0],
1182 ],
1183 name="RjR",
1184 visible=True,
1185 collidable=True,
1186 tags=["bsT"],
1187 ),
1188 "rKF": Sprite(
1189 pixels=[
1190 [2, 0, 2],
1191 [2, 8, 2],
1192 [2, 2, 2],
1193 ],
1194 name="rKF",
1195 visible=True,
1196 collidable=True,
1197 tags=["bsT"],
1198 ),
1199 "rni": Sprite(
1200 pixels=[
1201 [-1, -1, -1, -1, 15, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1],
1202 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1203 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1204 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1205 [10, -1, -1, -1, 14, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1],
1206 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1207 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1208 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1209 [15, -1, -1, -1, 10, -1, -1, -1, 14, -1, -1, -1, 15, -1, -1, -1, -1],
1210 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1211 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1212 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1213 [-1, -1, -1, -1, 15, -1, -1, -1, 10, -1, -1, -1, 14, -1, -1, -1, -1],
1214 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1215 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1216 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1217 [-1, -1, -1, -1, 14, -1, -1, -1, 15, -1, -1, -1, 10, -1, -1, -1, 14],
1218 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1219 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1220 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1221 [-1, -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, -1, 15, -1, -1, -1, 10],
1222 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1223 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1224 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1225 [-1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 14, -1, -1, -1, -1],
1226 ],
1227 name="rni",
1228 visible=True,
1229 collidable=True,
1230 ),
1231 "ROc": Sprite(
1232 pixels=[
1233 [3, 0, 2],
1234 [3, 9, 0],
1235 [3, 3, 3],
1236 ],
1237 name="ROc",
1238 visible=True,
1239 collidable=True,
1240 tags=["bsT"],
1241 ),
1242 "RZR": Sprite(
1243 pixels=[
1244 [2],
1245 ],
1246 name="RZR",
1247 visible=True,
1248 collidable=True,
1249 ),
1250 "seE": Sprite(
1251 pixels=[
1252 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1253 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1254 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1255 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1256 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1257 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1258 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1259 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1260 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1261 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1262 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1263 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1264 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1265 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1266 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5],
1267 [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
1268 ],
1269 name="seE",
1270 visible=True,
1271 collidable=False,
1272 ),
1273 "SfD": Sprite(
1274 pixels=[
1275 [2, 0, 3],
1276 [0, 14, 3],
1277 [2, 0, 3],
1278 ],
1279 name="SfD",
1280 visible=True,
1281 collidable=True,
1282 tags=["bsT"],
1283 ),
1284 "SJP": Sprite(
1285 pixels=[
1286 [0, 2, 0],
1287 [0, 8, 2],
1288 [2, 0, 2],
1289 ],
1290 name="SJP",
1291 visible=True,
1292 collidable=True,
1293 tags=["bsT"],
1294 ),
1295 "sPz": Sprite(
1296 pixels=[
1297 [0, 0, 2],
1298 [2, 8, 2],
1299 [2, 2, 2],
1300 ],
1301 name="sPz",
1302 visible=True,
1303 collidable=True,
1304 tags=["bsT"],
1305 ),
1306 "srH": Sprite(
1307 pixels=[
1308 [3, 0, 3],
1309 [0, 11, 2],
1310 [3, 2, 3],
1311 ],
1312 name="srH",
1313 visible=True,
1314 collidable=True,
1315 tags=["bsT"],
1316 ),
1317 "ssK": Sprite(
1318 pixels=[
1319 [3, 3, 3],
1320 [2, 14, 3],
1321 [0, 0, 2],
1322 ],
1323 name="ssK",
1324 visible=True,
1325 collidable=False,
1326 tags=["bsT"],
1327 ),
1328 "sTI": Sprite(
1329 pixels=[
1330 [2, 2, 2],
1331 [2, 9, 0],
1332 [2, 2, 2],
1333 ],
1334 name="sTI",
1335 visible=True,
1336 collidable=True,
1337 ),
1338 "sxj": Sprite(
1339 pixels=[
1340 [2, 0, 2],
1341 [0, 8, 2],
1342 [2, 0, 0],
1343 ],
1344 name="sxj",
1345 visible=True,
1346 collidable=True,
1347 ),
1348 "SXM": Sprite(
1349 pixels=[
1350 [2, 0, 2],
1351 [2, 8, 0],
1352 [0, 0, 2],
1353 ],
1354 name="SXM",
1355 visible=True,
1356 collidable=True,
1357 tags=["bsT"],
1358 ),
1359 "tCT": Sprite(
1360 pixels=[
1361 [2, 0, 2],
1362 [0, 9, 2],
1363 [2, 2, 2],
1364 ],
1365 name="tCT",
1366 visible=True,
1367 collidable=True,
1368 tags=["bsT"],
1369 ),
1370 "TOK": Sprite(
1371 pixels=[
1372 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1373 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1374 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1375 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1376 [8, 8, 8, -1, -1, -1, -1, -1, 8, 8, 8],
1377 [8, 8, 8, -1, -1, -1, -1, -1, 8, 8, 8],
1378 [8, 8, 8, -1, -1, -1, -1, -1, 8, 8, 8],
1379 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1380 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1381 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1382 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1383 ],
1384 name="TOK",
1385 visible=True,
1386 collidable=False,
1387 ),
1388 "TqS": Sprite(
1389 pixels=[
1390 [2, -1, 2],
1391 ],
1392 name="TqS",
1393 visible=True,
1394 collidable=True,
1395 ),
1396 "TqV": Sprite(
1397 pixels=[
1398 [0, 2, 2],
1399 [0, 8, 2],
1400 [2, 2, 2],
1401 ],
1402 name="TqV",
1403 visible=True,
1404 collidable=True,
1405 tags=["bsT"],
1406 ),
1407 "TuS": Sprite(
1408 pixels=[
1409 [3, 3, 3],
1410 [0, 14, 2],
1411 [0, 0, 0],
1412 ],
1413 name="TuS",
1414 visible=True,
1415 collidable=True,
1416 tags=["bsT"],
1417 ),
1418 "uaD": Sprite(
1419 pixels=[
1420 [3, 0, 3],
1421 [0, 11, 2],
1422 [3, 2, 3],
1423 ],
1424 name="uaD",
1425 visible=True,
1426 collidable=True,
1427 tags=["bsT"],
1428 ),
1429 "UaS": Sprite(
1430 pixels=[
1431 [2, 2, 0],
1432 [2, 9, 2],
1433 [2, 0, 0],
1434 ],
1435 name="UaS",
1436 visible=True,
1437 collidable=True,
1438 tags=["bsT"],
1439 ),
1440 "uCD": Sprite(
1441 pixels=[
1442 [6],
1443 ],
1444 name="uCD",
1445 visible=True,
1446 collidable=True,
1447 ),
1448 "uCe": Sprite(
1449 pixels=[
1450 [0, 2, 2],
1451 [2, 12, 2],
1452 [0, 0, 0],
1453 ],
1454 name="uCe",
1455 visible=True,
1456 collidable=True,
1457 tags=["bsT"],
1458 ),
1459 "uDP": Sprite(
1460 pixels=[
1461 [2, 2, 2],
1462 [2, 9, 2],
1463 [0, 2, 2],
1464 ],
1465 name="uDP",
1466 visible=True,
1467 collidable=True,
1468 tags=["bsT"],
1469 ),
1470 "uds": Sprite(
1471 pixels=[
1472 [2, 0, 2],
1473 [2, 12, 0],
1474 [2, 0, 2],
1475 ],
1476 name="uds",
1477 visible=True,
1478 collidable=True,
1479 tags=["bsT"],
1480 ),
1481 "UdT": Sprite(
1482 pixels=[
1483 [2, 2, 0],
1484 [2, 8, 2],
1485 [0, 0, 2],
1486 ],
1487 name="UdT",
1488 visible=True,
1489 collidable=True,
1490 tags=["bsT"],
1491 ),
1492 "UEq": Sprite(
1493 pixels=[
1494 [2, 2, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 2, 2],
1495 [2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2],
1496 [2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2],
1497 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1498 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1499 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1500 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1501 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1502 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1503 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1504 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1505 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1506 [2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2],
1507 [2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2],
1508 [2, 2, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 2, 2],
1509 ],
1510 name="UEq",
1511 visible=True,
1512 collidable=False,
1513 tags=["Ycb"],
1514 ),
1515 "UEt": Sprite(
1516 pixels=[
1517 [7, 7, 7],
1518 [6, 7, 6],
1519 [6, 6, 6],
1520 ],
1521 name="UEt",
1522 visible=True,
1523 collidable=True,
1524 ),
1525 "uJY": Sprite(
1526 pixels=[
1527 [5],
1528 ],
1529 name="uJY",
1530 visible=True,
1531 collidable=True,
1532 ),
1533 "ukF": Sprite(
1534 pixels=[
1535 [3, 0, 2],
1536 [2, 12, 0],
1537 [2, 2, 0],
1538 ],
1539 name="ukF",
1540 visible=True,
1541 collidable=True,
1542 tags=["bsT"],
1543 ),
1544 "ukY": Sprite(
1545 pixels=[
1546 [3, 2, 3],
1547 [0, 11, 0],
1548 [3, 2, 3],
1549 ],
1550 name="ukY",
1551 visible=True,
1552 collidable=False,
1553 tags=["bsT"],
1554 ),
1555 "UmB": Sprite(
1556 pixels=[
1557 [6, -1, 6],
1558 ],
1559 name="UmB",
1560 visible=True,
1561 collidable=True,
1562 ),
1563 "uPr": Sprite(
1564 pixels=[
1565 [11],
1566 ],
1567 name="uPr",
1568 visible=True,
1569 collidable=True,
1570 ),
1571 "UQj": Sprite(
1572 pixels=[
1573 [2, 2, 2],
1574 [0, 8, 2],
1575 [2, 0, 2],
1576 ],
1577 name="UQj",
1578 visible=True,
1579 collidable=True,
1580 tags=["bsT"],
1581 ),
1582 "UsM": Sprite(
1583 pixels=[
1584 [0],
1585 ],
1586 name="UsM",
1587 visible=True,
1588 collidable=True,
1589 ),
1590 "UTh": Sprite(
1591 pixels=[
1592 [2, 2, 2],
1593 [2, 8, 0],
1594 [2, 2, 0],
1595 ],
1596 name="UTh",
1597 visible=True,
1598 collidable=True,
1599 tags=["bsT"],
1600 ),
1601 "uvy": Sprite(
1602 pixels=[
1603 [2, 2, 2],
1604 [2, 2, 2],
1605 [2, 2, 2],
1606 ],
1607 name="uvy",
1608 visible=True,
1609 collidable=True,
1610 tags=["bsT"],
1611 ),
1612 "Uxp": Sprite(
1613 pixels=[
1614 [2, 2, 2],
1615 [2, 8, 2],
1616 [0, 2, 2],
1617 ],
1618 name="Uxp",
1619 visible=True,
1620 collidable=True,
1621 tags=["bsT"],
1622 ),
1623 "vAD": Sprite(
1624 pixels=[
1625 [-1, -1, 6, -1, -1],
1626 [-1, -1, -1, -1, -1],
1627 [6, -1, -1, -1, 6],
1628 [-1, -1, -1, -1, -1],
1629 [-1, -1, 6, -1, -1],
1630 ],
1631 name="vAD",
1632 visible=True,
1633 collidable=True,
1634 ),
1635 "van": Sprite(
1636 pixels=[
1637 [2, 2, 2],
1638 [2, 2, 2],
1639 [2, 2, 2],
1640 ],
1641 name="van",
1642 visible=True,
1643 collidable=True,
1644 tags=["bsT"],
1645 ),
1646 "VdJ": Sprite(
1647 pixels=[
1648 [2, 2, 2],
1649 [0, 9, 2],
1650 [2, 2, 0],
1651 ],
1652 name="VdJ",
1653 visible=True,
1654 collidable=True,
1655 ),
1656 "vFj": Sprite(
1657 pixels=[
1658 [2, 0, 2],
1659 [2, 8, 2],
1660 [0, 2, 2],
1661 ],
1662 name="vFj",
1663 visible=True,
1664 collidable=True,
1665 tags=["bsT"],
1666 ),
1667 "VHA": Sprite(
1668 pixels=[
1669 [11, 11],
1670 [11, 11],
1671 ],
1672 name="VHA",
1673 visible=True,
1674 collidable=True,
1675 ),
1676 "viw": Sprite(
1677 pixels=[
1678 [12, 12],
1679 [12, 12],
1680 ],
1681 name="viw",
1682 visible=True,
1683 collidable=True,
1684 ),
1685 "vSD": Sprite(
1686 pixels=[
1687 [2, 2, 2],
1688 [2, 8, 0],
1689 [0, 2, 0],
1690 ],
1691 name="vSD",
1692 visible=True,
1693 collidable=True,
1694 tags=["bsT"],
1695 ),
1696 "Vuk": Sprite(
1697 pixels=[
1698 [7, 7, 6],
1699 [7, 10, 7],
1700 [7, 7, 7],
1701 ],
1702 name="Vuk",
1703 visible=True,
1704 collidable=True,
1705 tags=["NTi", "gOi"],
1706 ),
1707 "vxk": Sprite(
1708 pixels=[
1709 [8, 8, 8, -1, 9, 9, 9, -1, 9, 9, 9],
1710 [8, 8, 8, -1, 9, 9, 9, -1, 9, 9, 9],
1711 [8, 8, 8, -1, 9, 9, 9, -1, 9, 9, 9],
1712 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1713 [8, 8, 8, -1, -1, -1, -1, -1, 8, 8, 8],
1714 [8, 8, 8, -1, -1, -1, -1, -1, 8, 8, 8],
1715 [8, 8, 8, -1, -1, -1, -1, -1, 8, 8, 8],
1716 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1717 [9, 9, 9, -1, 9, 9, 9, -1, 8, 8, 8],
1718 [9, 9, 9, -1, 9, 9, 9, -1, 8, 8, 8],
1719 [9, 9, 9, -1, 9, 9, 9, -1, 8, 8, 8],
1720 ],
1721 name="vxk",
1722 visible=True,
1723 collidable=False,
1724 ),
1725 "VxQ": Sprite(
1726 pixels=[
1727 [7, 7, 7],
1728 [7, 10, 7],
1729 [6, 7, 6],
1730 ],
1731 name="VxQ",
1732 visible=True,
1733 collidable=True,
1734 tags=["NTi", "gOi"],
1735 ),
1736 "wai": Sprite(
1737 pixels=[
1738 [0, 2, 2],
1739 [2, 8, 3],
1740 [3, 3, 3],
1741 ],
1742 name="wai",
1743 visible=True,
1744 collidable=True,
1745 tags=["bsT"],
1746 ),
1747 "WbH": Sprite(
1748 pixels=[
1749 [0, 2, 0],
1750 [3, 12, 3],
1751 [0, 3, 0],
1752 ],
1753 name="WbH",
1754 visible=True,
1755 collidable=True,
1756 tags=["bsT"],
1757 ),
1758 "wCl": Sprite(
1759 pixels=[
1760 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1761 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1762 [9, 9, 9, -1, 8, 8, 8, -1, 9, 9, 9],
1763 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1764 [8, 8, 8, -1, -1, -1, -1, -1, 9, 9, 9],
1765 [8, 8, 8, -1, -1, -1, -1, -1, 9, 9, 9],
1766 [8, 8, 8, -1, -1, -1, -1, -1, 9, 9, 9],
1767 [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
1768 [9, 9, 9, -1, 8, 8, 8, -1, 8, 8, 8],
1769 [9, 9, 9, -1, 8, 8, 8, -1, 8, 8, 8],
1770 [9, 9, 9, -1, 8, 8, 8, -1, 8, 8, 8],
1771 ],
1772 name="wCl",
1773 visible=True,
1774 collidable=False,
1775 ),
1776 "WDx": Sprite(
1777 pixels=[
1778 [2, 2, 2],
1779 [3, 8, 3],
1780 [3, 3, 3],
1781 ],
1782 name="WDx",
1783 visible=True,
1784 collidable=True,
1785 tags=["bsT"],
1786 ),
1787 "wmW": Sprite(
1788 pixels=[
1789 [0, 2, 2],
1790 [0, 8, 0],
1791 [0, 2, 2],
1792 ],
1793 name="wmW",
1794 visible=True,
1795 collidable=True,
1796 tags=["bsT"],
1797 ),
1798 "wmz": Sprite(
1799 pixels=[
1800 [3, 0, 0],
1801 [2, 11, 2],
1802 [3, 3, 2],
1803 ],
1804 name="wmz",
1805 visible=True,
1806 collidable=True,
1807 tags=["bsT"],
1808 ),
1809 "Wnw": Sprite(
1810 pixels=[
1811 [9, 9],
1812 [9, 9],
1813 [8, 8],
1814 [8, 8],
1815 ],
1816 name="Wnw",
1817 visible=True,
1818 collidable=True,
1819 ),
1820 "Wpv": Sprite(
1821 pixels=[
1822 [3, 2, 2],
1823 [0, 11, 0],
1824 [3, 2, 3],
1825 ],
1826 name="Wpv",
1827 visible=True,
1828 collidable=True,
1829 tags=["bsT"],
1830 ),
1831 "WQe": Sprite(
1832 pixels=[
1833 [2, 2, 0],
1834 [2, 9, 2],
1835 [0, 0, 0],
1836 ],
1837 name="WQe",
1838 visible=True,
1839 collidable=True,
1840 tags=["bsT"],
1841 ),
1842 "xas": Sprite(
1843 pixels=[
1844 [2, 2, 2],
1845 [2, 12, 2],
1846 [0, 2, 0],
1847 ],
1848 name="xas",
1849 visible=True,
1850 collidable=True,
1851 tags=["bsT"],
1852 ),
1853 "xeV": Sprite(
1854 pixels=[
1855 [6, 6, 6],
1856 [6, 7, 6],
1857 [6, 6, 6],
1858 ],
1859 name="xeV",
1860 visible=True,
1861 collidable=True,
1862 ),
1863 "xga": Sprite(
1864 pixels=[
1865 [3, 2, 3],
1866 [0, 11, 0],
1867 [3, 2, 3],
1868 ],
1869 name="xga",
1870 visible=True,
1871 collidable=False,
1872 tags=["bsT"],
1873 ),
1874 "XND": Sprite(
1875 pixels=[
1876 [6, 7, 6],
1877 [7, 10, 7],
1878 [7, 7, 7],
1879 ],
1880 name="XND",
1881 visible=True,
1882 collidable=True,
1883 tags=["NTi"],
1884 ),
1885 "XWQ": Sprite(
1886 pixels=[
1887 [2, 2, 2],
1888 [2, 12, 2],
1889 [2, 0, 2],
1890 ],
1891 name="XWQ",
1892 visible=True,
1893 collidable=True,
1894 tags=["bsT"],
1895 ),
1896 "Yid": Sprite(
1897 pixels=[
1898 [6, 6, 6],
1899 [7, 7, 7],
1900 [6, 6, 6],
1901 ],
1902 name="Yid",
1903 visible=True,
1904 collidable=True,
1905 ),
1906 "yKt": Sprite(
1907 pixels=[
1908 [3, 0, 3],
1909 [2, 11, 3],
1910 [3, 0, 3],
1911 ],
1912 name="yKt",
1913 visible=True,
1914 collidable=True,
1915 tags=["bsT"],
1916 ),
1917 "yUG": Sprite(
1918 pixels=[
1919 [3, 2, 3],
1920 [0, 14, 0],
1921 [3, 2, 3],
1922 ],
1923 name="yUG",
1924 visible=True,
1925 collidable=True,
1926 tags=["bsT"],
1927 ),
1928 "Ywn": Sprite(
1929 pixels=[
1930 [14, 14],
1931 [14, 14],
1932 [15, 15],
1933 [15, 15],
1934 ],
1935 name="Ywn",
1936 visible=True,
1937 collidable=True,
1938 ),
1939 "ywQ": Sprite(
1940 pixels=[
1941 [2, 2, 2],
1942 [2, 9, 2],
1943 [2, 2, 2],
1944 ],
1945 name="ywQ",
1946 visible=True,
1947 collidable=True,
1948 tags=["bsT"],
1949 ),
1950 "yZg": Sprite(
1951 pixels=[
1952 [2, 0, 2],
1953 [0, 14, 0],
1954 [2, 0, 2],
1955 ],
1956 name="yZg",
1957 visible=True,
1958 collidable=True,
1959 tags=["bsT"],
1960 ),
1961 "Zgh": Sprite(
1962 pixels=[
1963 [11, 11],
1964 [11, 11],
1965 ],
1966 name="Zgh",
1967 visible=True,
1968 collidable=True,
1969 ),
1970 "zhI": Sprite(
1971 pixels=[
1972 [2, 2, 2],
1973 [2, 9, 2],
1974 [2, 2, 2],
1975 ],
1976 name="zhI",
1977 visible=True,
1978 collidable=True,
1979 tags=["bsT"],
1980 ),
1981 "zIu": Sprite(
1982 pixels=[
1983 [3, 2, 3],
1984 [0, 11, 0],
1985 [3, 2, 3],
1986 ],
1987 name="zIu",
1988 visible=True,
1989 collidable=False,
1990 tags=["bsT"],
1991 ),
1992 "ZkU": Sprite(
1993 pixels=[
1994 [7, 6, 7],
1995 [7, 10, 7],
1996 [7, 7, 7],
1997 ],
1998 name="ZkU",
1999 visible=True,
2000 collidable=True,
2001 tags=["NTi", "gOi"],
2002 ),
2003 "zmT": Sprite(
2004 pixels=[
2005 [0, 2, 3],
2006 [2, 12, 3],
2007 [3, 3, 3],
2008 ],
2009 name="zmT",
2010 visible=True,
2011 collidable=True,
2012 tags=["bsT"],
2013 ),
2014 "zoT": Sprite(
2015 pixels=[
2016 [6, 7, 7],
2017 [7, 10, 7],
2018 [7, 7, 6],
2019 ],
2020 name="zoT",
2021 visible=True,
2022 collidable=True,
2023 tags=["NTi", "gOi"],
2024 ),
2025 "zvj": Sprite(
2026 pixels=[
2027 [2, 0, 0],
2028 [2, 8, 2],
2029 [2, 2, 2],
2030 ],
2031 name="zvj",
2032 visible=True,
2033 collidable=True,
2034 tags=["bsT"],
2035 ),
2036}
2037
2038levels = [
2039 # THR
2040 Level(
2041 sprites=[
2042 sprites["cgN"].clone().set_position(0, 14),
2043 sprites["dvQ"].clone(),
2044 sprites["Hkx"].clone().set_position(18, 18),
2045 sprites["Hkx"].clone().set_position(22, 18),
2046 sprites["Hkx"].clone().set_position(26, 18),
2047 sprites["Hkx"].clone().set_position(18, 22),
2048 sprites["Hkx"].clone().set_position(26, 22),
2049 sprites["Hkx"].clone().set_position(18, 26),
2050 sprites["Hkx"].clone().set_position(22, 26),
2051 sprites["Hkx"].clone().set_position(26, 26),
2052 sprites["MEF"].clone().set_position(23, 5),
2053 sprites["qqX"].clone().set_position(6, 22),
2054 sprites["seE"].clone().set_position(16, 16),
2055 sprites["sxj"].clone().set_position(6, 5),
2056 sprites["TOK"].clone().set_position(19, 1),
2057 sprites["UEq"].clone().set_position(16, 16),
2058 sprites["vxk"].clone().set_position(2, 18),
2059 sprites["wCl"].clone().set_position(2, 1),
2060 sprites["wmW"].clone().set_position(22, 22),
2061 ],
2062 grid_size=(32, 32),
2063 data={
2064 "kCv": 32,
2065 "cwU": [9, 8],
2066 "elp": [[0, 0, 0], [0, 1, 0], [0, 0, 0]],
2067 },
2068 name="THR",
2069 ),
2070 # hxv
2071 Level(
2072 sprites=[
2073 sprites["EQX"].clone().set_position(14, 19),
2074 sprites["Hkx"].clone().set_position(10, 7),
2075 sprites["Hkx"].clone().set_position(14, 7),
2076 sprites["Hkx"].clone().set_position(18, 7),
2077 sprites["Hkx"].clone().set_position(10, 11),
2078 sprites["Hkx"].clone().set_position(18, 11),
2079 sprites["Hkx"].clone().set_position(10, 15),
2080 sprites["Hkx"].clone().set_position(14, 15),
2081 sprites["Hkx"].clone().set_position(18, 15),
2082 sprites["Hkx"].clone().set_position(18, 19),
2083 sprites["Hkx"].clone().set_position(14, 23),
2084 sprites["Hkx"].clone().set_position(10, 23),
2085 sprites["Hkx"].clone().set_position(10, 19),
2086 sprites["Hkx"].clone().set_position(18, 23),
2087 sprites["jGI"].clone().set_position(14, 11),
2088 sprites["qpe"].clone().set_position(30, 0),
2089 sprites["viw"].clone().set_position(30, 2),
2090 ],
2091 grid_size=(32, 32),
2092 data={
2093 "kCv": 32,
2094 "cwU": [9, 12],
2095 "elp": [[0, 0, 0], [0, 1, 0], [0, 0, 0]],
2096 },
2097 name="hxv",
2098 ),
2099 # Fmh
2100 Level(
2101 sprites=[
2102 sprites["APy"].clone().set_position(18, 14),
2103 sprites["dta"].clone().set_position(14, 22),
2104 sprites["fBi"].clone().set_position(30, 0),
2105 sprites["Hkx"].clone().set_position(10, 2),
2106 sprites["Hkx"].clone().set_position(10, 6),
2107 sprites["Hkx"].clone().set_position(10, 10),
2108 sprites["Hkx"].clone().set_position(14, 10),
2109 sprites["Hkx"].clone().set_position(14, 14),
2110 sprites["Hkx"].clone().set_position(18, 10),
2111 sprites["Hkx"].clone().set_position(18, 6),
2112 sprites["Hkx"].clone().set_position(22, 10),
2113 sprites["Hkx"].clone().set_position(18, 2),
2114 sprites["Hkx"].clone().set_position(14, 2),
2115 sprites["Hkx"].clone().set_position(6, 14),
2116 sprites["Hkx"].clone().set_position(6, 10),
2117 sprites["Hkx"].clone().set_position(10, 18),
2118 sprites["Hkx"].clone().set_position(6, 18),
2119 sprites["Hkx"].clone().set_position(14, 18),
2120 sprites["Hkx"].clone().set_position(18, 18),
2121 sprites["Hkx"].clone().set_position(22, 18),
2122 sprites["Hkx"].clone().set_position(22, 14),
2123 sprites["Hkx"].clone().set_position(10, 22),
2124 sprites["Hkx"].clone().set_position(18, 22),
2125 sprites["Hkx"].clone().set_position(14, 26),
2126 sprites["Hkx"].clone().set_position(10, 26),
2127 sprites["Hkx"].clone().set_position(18, 26),
2128 sprites["KYk"].clone().set_position(14, 6),
2129 sprites["SXM"].clone().set_position(10, 14),
2130 ],
2131 grid_size=(32, 32),
2132 data={
2133 "kCv": 96,
2134 "cwU": [8, 12],
2135 "elp": [[0, 0, 0], [0, 1, 0], [0, 0, 0]],
2136 },
2137 name="Fmh",
2138 ),
2139 # oea
2140 Level(
2141 sprites=[
2142 sprites["aRa"].clone().set_position(18, 11),
2143 sprites["gYF"].clone().set_position(30, 4),
2144 sprites["Hkx"].clone().set_position(10, 7),
2145 sprites["Hkx"].clone().set_position(14, 11),
2146 sprites["Hkx"].clone().set_position(14, 15),
2147 sprites["Hkx"].clone().set_position(22, 11),
2148 sprites["Hkx"].clone().set_position(22, 15),
2149 sprites["Hkx"].clone().set_position(18, 7),
2150 sprites["Hkx"].clone().set_position(14, 7),
2151 sprites["Hkx"].clone().set_position(6, 11),
2152 sprites["Hkx"].clone().set_position(10, 15),
2153 sprites["Hkx"].clone().set_position(18, 15),
2154 sprites["Hkx"].clone().set_position(6, 15),
2155 sprites["Hkx"].clone().set_position(6, 7),
2156 sprites["Hkx"].clone().set_position(22, 7),
2157 sprites["Hkx"].clone().set_position(10, 19),
2158 sprites["Hkx"].clone().set_position(18, 19),
2159 sprites["Hkx"].clone().set_position(10, 23),
2160 sprites["Hkx"].clone().set_position(14, 23),
2161 sprites["Hkx"].clone().set_position(18, 23),
2162 sprites["lMN"].clone().set_position(10, 11),
2163 sprites["PrU"].clone().set_position(30, 2),
2164 sprites["QpB"].clone().set_position(30, 0),
2165 sprites["uCe"].clone().set_position(14, 19),
2166 ],
2167 grid_size=(32, 32),
2168 data={
2169 "kCv": 96,
2170 "cwU": [9, 8, 12],
2171 "elp": [[0, 0, 0], [0, 1, 0], [0, 0, 0]],
2172 },
2173 name="oea",
2174 ),
2175 # INW
2176 Level(
2177 sprites=[
2178 sprites["AQG"].clone().set_position(19, 6),
2179 sprites["fPj"].clone().set_position(11, 18),
2180 sprites["Hkx"].clone().set_position(7, 6),
2181 sprites["Hkx"].clone().set_position(15, 18),
2182 sprites["Hkx"].clone().set_position(15, 6),
2183 sprites["Hkx"].clone().set_position(11, 10),
2184 sprites["Hkx"].clone().set_position(11, 2),
2185 sprites["Hkx"].clone().set_position(23, 14),
2186 sprites["Hkx"].clone().set_position(15, 10),
2187 sprites["Hkx"].clone().set_position(19, 18),
2188 sprites["Hkx"].clone().set_position(23, 22),
2189 sprites["Hkx"].clone().set_position(15, 22),
2190 sprites["Hkx"].clone().set_position(19, 26),
2191 sprites["Hkx"].clone().set_position(15, 26),
2192 sprites["Hkx"].clone().set_position(23, 18),
2193 sprites["Hkx"].clone().set_position(19, 10),
2194 sprites["Hkx"].clone().set_position(7, 10),
2195 sprites["Hkx"].clone().set_position(15, 2),
2196 sprites["Hkx"].clone().set_position(7, 18),
2197 sprites["Hkx"].clone().set_position(7, 22),
2198 sprites["Hkx"].clone().set_position(7, 26),
2199 sprites["Hkx"].clone().set_position(11, 26),
2200 sprites["Hkx"].clone().set_position(7, 14),
2201 sprites["Hkx"].clone().set_position(3, 10),
2202 sprites["Hkx"].clone().set_position(3, 18),
2203 sprites["Hkx"].clone().set_position(15, 14),
2204 sprites["Hkx"].clone().set_position(23, 10),
2205 sprites["Hkx"].clone().set_position(27, 18),
2206 sprites["Hkx"].clone().set_position(27, 10),
2207 sprites["IFI"].clone().set_position(3, 14),
2208 sprites["NTi"].clone().set_position(11, 6),
2209 sprites["NTi"].clone().set_position(19, 22),
2210 sprites["NTi"].clone().set_position(11, 14),
2211 sprites["Nul"].clone().set_position(7, 2),
2212 sprites["PmE"].clone().set_position(23, 26),
2213 sprites["qqM"].clone().set_position(11, 22),
2214 sprites["SfD"].clone().set_position(27, 14),
2215 sprites["Ywn"].clone().set_position(27, 0),
2216 sprites["yZg"].clone().set_position(19, 14),
2217 ],
2218 grid_size=(32, 32),
2219 data={
2220 "kCv": 128,
2221 "cwU": [14, 15],
2222 "elp": [[0, 0, 0], [0, 1, 0], [0, 0, 0]],
2223 },
2224 name="INW",
2225 ),
2226 # DFx
2227 Level(
2228 sprites=[
2229 sprites["ASc"].clone().set_position(22, 23),
2230 sprites["gFd"].clone().set_position(30, 2),
2231 sprites["kvt"].clone().set_position(10, 15),
2232 sprites["PjS"].clone().set_position(18, 11),
2233 sprites["ssK"].clone().set_position(6, 3),
2234 sprites["Zgh"].clone().set_position(30, 0),
2235 sprites["ZkU"].clone().set_position(6, 7),
2236 sprites["ZkU"].clone().set_position(10, 7),
2237 sprites["ZkU"].clone().set_position(14, 7),
2238 sprites["ZkU"].clone().set_position(18, 7),
2239 sprites["ZkU"].clone().set_position(22, 7),
2240 sprites["ZkU"].clone().set_position(6, 11),
2241 sprites["ZkU"].clone().set_position(22, 11),
2242 sprites["ZkU"].clone().set_position(10, 11),
2243 sprites["ZkU"].clone().set_position(14, 11),
2244 sprites["ZkU"].clone().set_position(18, 15),
2245 sprites["ZkU"].clone().set_position(6, 15),
2246 sprites["ZkU"].clone().set_position(22, 15),
2247 sprites["ZkU"].clone().set_position(14, 15),
2248 sprites["ZkU"].clone().set_position(18, 19),
2249 sprites["ZkU"].clone().set_position(6, 19),
2250 sprites["ZkU"].clone().set_position(22, 19),
2251 sprites["ZkU"].clone().set_position(10, 19),
2252 sprites["ZkU"].clone().set_position(14, 19),
2253 sprites["ZkU"].clone().set_position(26, 19),
2254 sprites["ZkU"].clone().set_position(2, 7),
2255 sprites["ZkU"].clone().set_position(2, 3),
2256 sprites["ZkU"].clone().set_position(26, 23),
2257 ],
2258 grid_size=(32, 32),
2259 data={
2260 "kCv": 128,
2261 "cwU": [11, 14],
2262 "elp": [[0, 0, 0], [0, 1, 0], [0, 0, 0]],
2263 },
2264 name="DFx",
2265 ),
2266]
2267
2268BACKGROUND_COLOR = 4
2269PADDING_COLOR = 4
2270
2271
2272class sve(RenderableUserDisplay):
2273 def __init__(self, sbb: int, vrr: "Ft09"):
2274 self.oro = sbb
2275 self.dzy = sbb
2276 self.vai = vrr
2277
2278 def cab(self, shl: int) -> None:
2279 self.dzy = max(0, min(shl, self.oro))
2280
2281 def lph(self) -> bool:
2282 if self.dzy > 0:
2283 self.dzy -= 1
2284 return self.dzy > 0
2285
2286 def dsl(self) -> None:
2287 self.dzy = self.oro
2288
2289 def render_interface(self, frame: np.ndarray) -> np.ndarray:
2290 if self.oro == 0:
2291 return frame
2292
2293 slC = self.dzy / self.oro
2294 GoJ = round(64 * slC)
2295 for x in range(64):
2296 frame[63, x] = 12 if x < GoJ else 11
2297
2298 return frame
2299
2300
2301class Ft09(ARCBaseGame):
2302 def __init__(self) -> None:
2303 ZnK = levels[0].get_data("kCv") if levels else 0
2304 bUg = ZnK if ZnK else 0
2305 self.lpw = sve(bUg, self)
2306 super().__init__("ft09", levels, Camera(0, 0, 16, 16, 4, 4, [self.lpw]), available_actions=[6])
2307
2308 def olv(self) -> None:
2309 yTL = self.current_level.get_data("kCv")
2310 if yTL:
2311 self.lpw.oro = yTL
2312 self.lpw.dsl()
2313
2314 def on_set_level(self, level: Level) -> None:
2315 self.olv()
2316
2317 self.zth = None
2318 self.our = 0
2319 if self.level_index == 0:
2320 Uev = self.current_level.get_sprites_by_tag("Ycb")
2321 if Uev:
2322 self.zth = Uev[0]
2323
2324 rKu = self.current_level.grid_size
2325 self.pdw = rKu[0] # type: ignore
2326 self.zbh = rKu[1] # type: ignore
2327
2328 self.gig = self.current_level.get_sprites_by_tag("bsT")
2329 self.fhc = self.current_level.get_sprites_by_tag("Hkx")
2330 self.mou = self.current_level.get_sprites_by_tag("NTi")
2331
2332 self.gqb = self.current_level.get_data("cwU")
2333 if self.gqb is None:
2334 self.gqb = [9, 8]
2335
2336 self.irw = self.current_level.get_data("elp")
2337
2338 if self.irw is None:
2339 self.irw = [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
2340
2341 for rmy, zge in enumerate(self.fhc):
2342 zge.color_remap(zge.pixels[0][0], self.gqb[0])
2343
2344 for rmy, zge in enumerate(self.mou):
2345 for jon in range(3):
2346 for vlo in range(3):
2347 if zge.pixels[jon][vlo] != 6:
2348 zge.pixels[jon][vlo] = self.gqb[0]
2349
2350 def step(self) -> None:
2351 if self.action.id.value == 0:
2352 self.complete_action()
2353 return
2354
2355 if self.our > 0 and self.zth:
2356 self.our -= 1
2357
2358 aIT = 0 if self.our % 2 == 1 else 2
2359 Ytt = self.zth.pixels > -1
2360 self.zth.pixels[Ytt] = aIT
2361 if self.our == 0:
2362 self.complete_action()
2363 return
2364
2365 kMO = None
2366 ATn = False
2367 Hzf = None
2368
2369 if self.action.id.value == 6:
2370 AfP = self.action.data.get("x", 0)
2371 Ywt = self.action.data.get("y", 0)
2372
2373 Hzf = self.camera.display_to_grid(AfP, Ywt)
2374 if Hzf:
2375 ppb, tut = Hzf
2376
2377 Wmr = self.current_level.get_sprite_at(ppb, tut, "Hkx")
2378 if not Wmr:
2379 Wmr = self.current_level.get_sprite_at(ppb, tut, "NTi")
2380 if Wmr:
2381 ATn = True
2382 if Wmr:
2383 self.blr = Wmr
2384 kMO = 5
2385
2386 if kMO is None and Hzf is not None:
2387 uTB = Hzf and self.current_level.get_sprite_at(Hzf[0], Hzf[1], "bsT")
2388 if self.level_index == 0 and self.zth and not uTB:
2389 self.our = 4
2390 return
2391 self.complete_action()
2392 return
2393
2394 GBS = [
2395 [(-1, -1), (0, -1), (1, -1)],
2396 [(-1, 0), (0, 0), (1, 0)],
2397 [(-1, 1), (0, 1), (1, 1)],
2398 ]
2399
2400 if ATn:
2401 eHl = [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
2402 bBi = self.blr.pixels
2403 for j in range(3):
2404 for i in range(3):
2405 if bBi[j][i] == 6:
2406 eHl[j][i] = 1
2407 else:
2408 eHl = self.irw
2409
2410 if kMO == 5:
2411 for i in range(3):
2412 for j in range(3):
2413 if eHl[j][i] == 1:
2414 ybc, lga = GBS[j][i]
2415 cAw = (self.blr.x + (ybc * 4), self.blr.y + (lga * 4))
2416
2417 RfH = self.current_level.get_sprite_at(cAw[0], cAw[1], "Hkx")
2418
2419 if not RfH:
2420 RfH = self.current_level.get_sprite_at(cAw[0], cAw[1], "NTi")
2421 if RfH:
2422 kNa = self.gqb.index(RfH.pixels[1][1])
2423 kNa = (kNa + 1) % len(self.gqb)
2424 RfH.color_remap(RfH.pixels[1][1], self.gqb[kNa])
2425
2426 if self.cgj():
2427 self.next_level()
2428 self.complete_action()
2429 return
2430
2431 if not self.lpw.lph():
2432 self.lose()
2433
2434 self.complete_action()
2435
2436 def cgj(self) -> bool:
2437 for etf in self.gig:
2438 nRq = etf.pixels[1][1]
2439
2440 HJd = etf.pixels[0][0] == 0
2441 tx, ty = etf.x - 4, etf.y - 4
2442 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2443 if not PML:
2444 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2445
2446 if PML:
2447 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2448 if not pbA:
2449 return False
2450
2451 HJd = etf.pixels[0][1] == 0
2452 tx, ty = etf.x, etf.y - 4
2453 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2454 if not PML:
2455 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2456 if PML:
2457 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2458 if not pbA:
2459 return False
2460
2461 HJd = etf.pixels[0][2] == 0
2462 tx, ty = etf.x + 4, etf.y - 4
2463 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2464 if not PML:
2465 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2466 if PML:
2467 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2468 if not pbA:
2469 return False
2470
2471 HJd = etf.pixels[1][0] == 0
2472 tx, ty = etf.x - 4, etf.y
2473 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2474 if not PML:
2475 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2476 if PML:
2477 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2478 if not pbA:
2479 return False
2480
2481 HJd = etf.pixels[1][2] == 0
2482 tx, ty = etf.x + 4, etf.y
2483 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2484 if not PML:
2485 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2486 if PML:
2487 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2488 if not pbA:
2489 return False
2490
2491 HJd = etf.pixels[2][0] == 0
2492 tx, ty = etf.x - 4, etf.y + 4
2493 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2494 if not PML:
2495 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2496 if PML:
2497 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2498 if not pbA:
2499 return False
2500
2501 HJd = etf.pixels[2][1] == 0
2502 tx, ty = etf.x, etf.y + 4
2503 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2504 if not PML:
2505 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2506 if PML:
2507 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2508 if not pbA:
2509 return False
2510
2511 HJd = etf.pixels[2][2] == 0
2512 tx, ty = etf.x + 4, etf.y + 4
2513 PML = self.current_level.get_sprite_at(tx, ty, "Hkx")
2514 if not PML:
2515 PML = self.current_level.get_sprite_at(tx, ty, "NTi")
2516 if PML:
2517 pbA = (PML.pixels[1][1] == nRq) if HJd else (PML.pixels[1][1] != nRq)
2518 if not pbA:
2519 return False
2520 return True