-
Notifications
You must be signed in to change notification settings - Fork 1
/
ministeve_final.p8
710 lines (633 loc) · 27.3 KB
/
ministeve_final.p8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
pico-8 cartridge // http://www.pico-8.com
version 38
__lua__
--notre jeu
--steve★, nosy♪, justine웃
function _init()
create_player()
init_msg()
bullets={}
enemies={}
explosions={}
trash_spawn(4)
end
function _update() --jmodif
if #messages==0 then
if check_flag(3,p.x,p.y) then
player_move_ocean()
else
player_move()
end
--shoot button nosy
if (btnp(🅾️)) shoot()
updates_bullets()
updates_enemies()
update_explosions()
enemies_moves()
enemies_animations()
end
update_cam()
update_msg()
end
function _draw() --jmodif
cls()
draw_map()
--draw_bullets nosy
for b in all (bullets) do
spr(53,b.x*8,b.y*8)
end
--draw_ennemies nosy
for e in all(enemies) do --jmodif
spr(e.sprite,e.x*8,e.y*8)
end
draw_explosions()
draw_player()
draw_ui()
draw_msg()
win()
end
-->8
--map
function draw_map()
map(0,0,0,0)
end
function check_flag(flag,x,y)
local sprite =mget(x,y)
return fget(sprite,flag)
end
--jmodif
function collision_flag(flag,x,y)
--on doit tester 4 collisions possibles
local x_l=flr(x)
local x_r=flr(x)+1
local y_u=flr(y)
local y_d=flr(y)+1
return (
--tuile du coin haut gauche
check_flag(flag,x_l,y_u) or
--tuile du coin haut droit
check_flag(flag,x_r,y_u) or
--tuile du coin bas gauche
check_flag(flag,x_l,y_d) or
--tuile du coin bas droit
check_flag(flag,x_r,y_d)
)
end
function update_cam()
if check_flag(3,p.x,p.y)
and p.x>=24 then
camx=mid(24,24+flr((p.x-24)/16)*16,47-15)
camy=mid(8,8+flr((p.y-8)/16)*16,23-15)
else
camx =mid(0,p.x-7.5,23-15)
camy =mid(0,p.y-7.5,22-15)
end
camera(camx*8, camy*8)
end
function next_tile(x,y)
local sprite= mget(x,y)
--change un sprite du map en
--un autre sprite
mset(x,y,sprite+1)
end
function pick_up_trash(x,y)
sfx(0)
if check_flag(4,x,y) then
p.final+=1
else
--ennemi apparait en dehors de l'eau
if not check_flag(3,p.x,p.y) then
spawn_enemies()
end
p.trash+=1
end
next_tile(x,y)
end
-- passage ocean
function oceanis(x,y)
if(p.trash>=3) then
next_tile(x,y)
end
end
function open_door(x,y) --jmodif
if(p.trash>=6 and #enemies==0) then
next_tile(x,y)
p.trash-=6
end
end
function trash_spawn(number)
for i=1,number do
repeat
--x et y dans la foret
x_f=flr(rnd(19))
y_f=1+flr(rnd(13-1))--pas sur la premiere ligne (ui)
until not check_flag(0,x_f,y_f)
mset(x_f,y_f,7)
--x et y dans l'ocean
repeat
x_o=24+flr(rnd(39-24))
y_o=8+flr(rnd(23-8))
until not check_flag(0,x_o,y_o)
mset(x_o,y_o,34)
end
end
-->8
--player
function create_player()
p={x=6,
y=5,
sprite=1,
trash=0,
final=0,
anim=0,
turn_l=true,
--ajout justine
sprite_o=0,
coule=true,gene=true,
anim_t=1,
ox=0, oy=0,
start_ox=0,start_oy=0,
dir_tir=1 --⬆️1,➡️2,⬇️3,⬅️4
}
end
function player_move()
newx = p.x
newy = p.y
if(btnp(⬅️)) then
newx-=1
p.turn_l=true
p.dir_tir=4
end
if(btnp(➡️)) then
newx+=1
p.turn_l=false
p.dir_tir=2
end
if btnp(⬇️) then
newy+=1
p.dir_tir=3
end
if btnp(⬆️) then
newy-=1
p.dir_tir=1
end
interact(newx,newy)
--on change le sprite des qu'on
--essaie de bouger p
if (p.x!=newx or p.y!=newy) then
if(p.anim==0) then
p.sprite=1
p.anim=1
else
p.sprite=17
p.anim=0
end
end
if not check_flag(0,newx,newy) then
-- p.x = newx
-- p.y = newy
p.x = mid(0,newx,46)
p.y = mid(0,newy,22)
end
end
--justine ocean
function player_move_ocean()
t_coule=0.3
t_gene=0.1
newx=p.x
newy=p.y
p.gene=delay(p.gene,t_gene)
if p.gene==true then
if(btn(⬅️)) then
p.turn_l=true
newx-=1
newox=8
newoy=0
elseif (btn(➡️)) then
p.turn_l=false
newx+=1
newox=-8
newoy=0
elseif (btn(⬇️)) then
newy+=1
newox=0
newoy=-8
p.coule=true
elseif (btn(❎)) then
newy-=1
newox=0
newoy=8
--sfx(1)
p.coule=true
end
end
-- else
p.coule=delay(p.coule,t_coule)
if p.coule==true then
newy+=1 --entier et =1 pour
--ne pas passer a travers des
--plateformes
newox=0
newoy=-8
-- end
end
interact(newx,newy)
if (newx!=p.x or newy!=p.y) and
not check_flag(0,newx,newy) then
p.x=mid(0,newx,46)
p.y=mid(0,newy,22)
p.start_ox=newox
p.start_oy=newoy
p.anim_t=1
p.anim=delay(p.anim,0.05)
if p.anim==true then
p.sprite_o=0
else p.sprite_o=16 end
-- if(p.anim==0) then
-- p.sprite_o=0
-- p.anim=1
-- else
-- p.sprite_o=16
-- p.anim=0
-- end
end
--animation
p.anim_t=max(p.anim_t-0.125,0)
p.ox=p.start_ox*p.anim_t
p.oy=p.start_oy*p.anim_t
end
function draw_player()
--dans l'ocean
if check_flag(3,p.x,p.y) then
spr(p.sprite_o,p.x*8+p.ox,
p.y*8+p.oy,1,1,p.turn_l)
else
--sur la terre
spr(p.sprite,p.x*8,p.y*8,
1,1,p.turn_l)
end
end
function interact(x,y) --jmodif
if check_flag(1,x,y) then
pick_up_trash(x,y)
end
--messages
if x==9 and y==3 then
create_msg("justine","bonjour et bienvenue \na forestia.",
"ne reste pas la et va parler\naux autres!")
end
if x==20 and y==4 then
if p.trash<6 or #enemies>0 then
create_msg("steve",
"la mairie est fermee pour le \nmoment, desole.",
"recupere 6 coeurs et \nbats tous les monstres!")
else
create_msg("steve",
"tu peux rentrer dans la \nmairie, un objet t'y attend.")
end
end
if x==13 and y==14 then
if p.trash<3 then
create_msg("nosy",
"oceanis est fermee pour le \nmoment!",
"recuperez 3 coeurs pour \ny acceder!")
else
create_msg("nosy",
"bienvenue a oceanis !\nallez vous baigner!")
end
end
if check_flag(2,x,y) then
open_door(x,y)
end
if check_flag(4,x,y) then
oceanis(x,y)
end
end
--justine delay
function delay(action,t_delay)
if action==true then
return time()
elseif time()-action>t_delay then
return true
else return action
end
end
-->8
--messages
function init_msg()
messages={}
end
function update_msg()
if btnp(❎) then
deli(messages,1)
end
end
function draw_msg()
if messages[1] then
camera()
--place du message % position
-- du joueur
local y =100
if p.y%16>=9 then
y=10
end
--titre
rect(8,y+1,8+#msg_title*4,y+7,1)
rectfill(7,y,7+#msg_title*4,y+6,2)
print(msg_title,8,y+1,9)
--message
rectfill(3,y+8,124,y+24,8)
rect(3,y+8,124,y+24,4)
print(messages[1],9,y+11,15)
end
end
function create_msg(name, ...)
msg_title=name
messages={...}
end
-->8
--ui
function draw_ui()--jmodif
camera()
palt(0,false)
palt(12,true)
spr(10,2,2)
palt()
print_outline("X"..p.trash,10,2)
if check_flag(3,p.x,p.y) then
print_outline("❎/x:SWIM",2,120)
else
print_outline("🅾️/c:SHOOT",2,110)
end
end
function print_outline(text,x,y)
print(text,x-1,y,0)
print(text,x+1,y,0)
print(text,x,y-1,0)
print(text,x,y+1,0)
print(text,x,y,7)
end
-->8
--enemy
function spawn_enemies()
repeat
--x et y dans la foret
x_e=flr(rnd(19))
y_e=flr(rnd(13))
until not check_flag(0,x_e,y_e)
local new_enemy={
x=x_e,
y=y_e,
sprite=32,
life=3,
speed=0.07,
anim_time=0,
anim_wait=0.2
}
add(enemies, new_enemy)
end
function updates_enemies()
for b in all(bullets) do
for e in all(enemies) do
if collision(e,b) then
create_explosion(b.x+0.5,b.y+0.5)
del (bullets,b)
e.life-=1
end
if e.life==0 then
del(enemies,e)
end
end
end
end
--moving enemeies nosy
function enemies_moves() --jmodif
for e in all(enemies) do
if not check_flag(3,p.x,p.y) then
local newx=e.x
local newy=e.y
if p.x > e.x then newx+=e.speed
-- end
elseif p.x < e.x-e.speed then newx-=e.speed
end
if not collision_flag(0,newx,e.y) then
e.x=newx
end
if p.y > e.y then newy+=e.speed
-- end
elseif p.y < e.y-e.speed then newy-=e.speed
end
if not collision_flag(0,e.x,newy) then
e.y=newy
end
-- if p.y > 15 then del(enemies,e)
-- end
end
end
end
function enemies_animations()
for e in all(enemies) do
if time() - e.anim_time > e.anim_wait then
e.sprite+=1
e.anim_time=time()
if e.sprite > 33 then
e.sprite=32
end
end
end
end
-->8
--final
function win()
--if (p.trash==6) then
if(p.final>=1) then
camera()
rectfill(16,16,112,112,4)
print("bravo vous avez gagne",23,48,7)
end
end
-->8
--bullets et collisions
function shoot()
local new_bullet={
x=p.x,
y=p.y,
speed=0.5,
dir_tir=p.dir_tir --⬆️1,➡️2,⬇️3,⬅️4
}
add(bullets, new_bullet)
sfx(2)
end
function updates_bullets()
for b in all(bullets) do
if b.dir_tir==1 then
b.y-=b.speed
elseif b.dir_tir==2 then
b.x+=b.speed
elseif b.dir_tir==3 then
b.y+=b.speed
else --dir_tir=4
b.x-=b.speed
end
if b.y<p.y-15 or b.y>p.y+15
or b.x<p.x-15 or b.x>p.x+15
or collision_flag(0,b.x,b.y)
then
del(bullets, b)
end
end
end
--collisions
function collision(a,b) --jmodif
if a.x>b.x+1
or a.y>b.y+1
or a.x+1<b.x
or a.y+1<b.y then
return false
else
return true
end
-- if a.x==b.x and a.y==b.y then
-- return true
-- else return false
-- end
end
-->8
--explosions
function create_explosion(x,y)
add(explosions,{
x = x,
y =y,
timer = 0
})
sfx(3)
end
function update_explosions()
for boom in all(explosions) do
boom.timer += 1
if boom.timer == 13 then
del(explosions, boom)
end
end
end
function draw_explosions()
for boom in all(explosions) do
circ(boom.x*8, boom.y*8,
boom.timer/3, 8+boom.timer%3)
end
end
__gfx__
0000000000000000333333333bbbb333333333333333333333333333322322333333333333333333c22c22cc33333333cccccccccccccccccccccccc00000000
00dddd000ddddd0033333333bbbbbb3333333333333333333333333328828823333333333eeeee332882882c33333333cccccccccccccccccccccccc00000000
00ddb4000ddb4b0033333333bbbbbbb333333333333a3333333733332888e823333333333eecfc332888f820333333b3cccccc4444444444494ccccc00000000
004d47044d4474043f333333b8bbbbb33333333333a8a3333379733328888823333333333eff7f332888882033333b33ccccc444444444944444cccc00000000
0094994004999940333333333bbbb8b333333333333a333333373333328882333333333332222233c28882cc3b33b333cccc44494444444444444ccc00000000
6899990000999900333333333344333333333333333333333333333333282333333333333f2222f3cc282cccb3b3b333cccc44444944444444444ccc00000000
00200000008008003333333f33443333333333333333333333333333333233333333333333433433ccc2cccc333bb333cccccccccccccccccccccccc00000000
05000000006006003333333334444333333333333333333333333333333333333333333333a33a33cccccccc33333333cccccccccccccccccccccccc00000000
000000000000000033333333cccccccc777777779991999933333333ffffffffffffffffffffffffcccccccc1111111139433943d555555dcccccccccccccccc
00dddd000ddddd00dd33ddd3cccccccc7777777711111111333cc33bfcfcfcfcfcfcfcfcfcfcfcffcccccccc111111119445944599444444cc55555555555ccc
00ddb4000ddb4b003d33d333cccccccc777777771999999133ccccb3ffcfcfcfcfcfcfcfcfcfcfcfcccccccc111111114445444544444444c4445555f55544cc
00dd47000d4474003dddddd3cccccccc77777777111111113cccccc3fcfcccccccccccccccccccffccc77ccc1111111144454445d444444dcc444444ff4444cc
00949900049999403d808dd3cccccccc77777777999999193cccccc3ffccfcccccfccfcccccfcfcfcc7cc7cc1111111144454445d555555dccd444444f444dcc
52994900049999043d000dddcccccccc777777771111111133cccc33fcfccccfccccccccfcccccffcccccccc111111114ff54ff599444444cccdddddddfddccc
00800000000820003dddddd3cccccccc7777777719999991b3bcc333ffcccccccccccccccccccfcfcccccccc111111115ff55ff544444444ccccccccccddcccc
060000000002500033d33d33cccccccc77777777111111113b333333fcfcccccccccccccccccccffcccccccc11111111d55dd55dd444444dcccccccccccccccc
0000000000000000c22c22cccccccccc3333333399919999cc333333ffccfccccccccccccccccfcf999999999999999933333333333333333333333300000000
00000000000000002882882ccccccccc33b3833311111111cc3cc333fcfccccccccccccccccfccff994999999999999933333343333533333333333300000000
00222200002222002888e82ccccccccc3833f33319999991cccccc33ffccccccc777c7cccccccfcf999999999999999933333344333155333333333300000000
00822800008228002888882ccccccccc88e3333b111111113cccccc3fcfcccccccccccccccccccff999999999999949933333344355555515333333300000000
0027720022277222c28882cccccccccce8833e83999991193cccccc3ffcccfcccccccccccfcccfcf999999999999999933333545555515151513333300000000
0202202000022000cc282ccccccccccc3f3338831111111133cccc33fcfccccccc7c777cccccccff999999999999999933335515515551515151333300000000
2020020200200200ccc2cccccccccccc333b3f3319999991333cc333ffcccccccccccccccccccfcf999999999999999933555555511111151111133300000000
0020020002000020cccccccccccccccc333333331111111133333333fcfccccccccccccccccfccff999999999999999935551511115444111111111300000000
0000000000000000aaaaaaaaaaaf7f7caaaaaaaa0000000000000000ffccfccccccccccccccccfcf999999999999999933344315544114444134433300000000
0000000000000000aaaaaaaaaafaf7ccaaaaaaaa0000000000000000fcfccccccccccccccfccccff999999999999999933334454441221444544333300000000
0202000002020000aaaaaaaaaaaf7f7caafaaaaa0008900000000000ffccccfcccfcccfccccccfcf999999999999999933333449412222145443333300000000
0828222008282220aaaaaaaaaafaf7ccaaaaaaaa008aa90000000000fcfccfccfcccfccccccfccff999999999999999933333394412aa2154533333300000000
0272222202722222aaaaaaaaaaaf7f7caaaaaaaa008aa90000000000ffcccccccccccccccccccfcf994999999999999933333d99412aa21451d3333300000000
0222222002222220aaaaaaaaaafaf7ccaaaaaaaa0008900000000000fcfcfcfc9c9c9c9cfcfcfcff999999999999999933333d944122291555d3333300000000
0202002002500250aaaaaaaaaaaf7f7caaaaaaaa000000000000000099c9c9c9c9c9c9c9c9c9c9c9999999999999999933333d994122221451d3333300000000
0202002002500250aaaaaaaaaafaf7ccaaaaaaaa0000000000000000999999999999999999999999999999999999999933333d945122221551d3333300000000
cccccccccccccccc0000000000000000cccccccccccccccc11111111111111111111111111111111000000000000000000000000000000000000000000000000
cccccccccccccccc0000000000000000ccc777cccccccccc11111111111911111111111911111911000000000000000000000000000000000000000000000000
cc3cccccccbccccc0000000000006600cc7cc7cccccccccc19116111111111114111116111111111000000000000000000000000000000000000000000000000
cc3cccccccbccccc0000600006666660cc7cc7cccc77cccc11111111116111111114111111611411000000000000000000000000000000000000000000000000
cc3cccc3ccbccccb0666666066000660cc7777ccc7777ccc11141111411111611911111411111111000000000000000000000000000000000000000000000000
cc3cccc3ccbccccb0666666666666660ccccccccc7cc7ccc11111111111111111111111111111111000000000000000000000000000000000000000000000000
c33ccc33cbbcccbb0666666666666660ccccccccc7cc7ccc11111111711191117111191117117111000000000000000000000000000000000000000000000000
c33ccc3ccbbcccbc0660666666606660ccccccccc7777ccc11111111111111111141111111111191000000000000000000000000000000000000000000000000
933993999bb99b990060066666666660cccccccccc77ccccdddddddddddddddddddddddd11111111000000000000000000000000000000000000000000000000
933993999bb99b990066600000660000ccccccccccccccccdddddddddddddddddddddddd11111141000000000000000000000000000000000000000000000000
9939939999b99b990000000000000000ccccccccccccccccdddddddddddddddddddddddd11111111000000000000000000000000000000000000000000000000
99939394999b9b940000000000000000cc777cccccccccccdddddddddddddddddddddddd11111161000000000000000000000000000000000000000000000000
99933399999bbb990000000000000000cc7c7cccccccccccdddddddddddddddddddddddd11111111000000000000000000000000000000000000000000000000
9933999999bb99990000000000000000cc777cccccccccccdddddddddddddddddddddddd11111111000000000000000000000000000000000000000000000000
4939999994b999990000000000000000ccccccccccccccccdddddddddddddddddddddddd11111191000000000000000000000000000000000000000000000000
9939999999b999990000000000000000ccccccccccccccccdddddddddddddddddddddddd11111111000000000000000000000000000000000000000000000000
cc8888cc44444444dddddddd33333333dddddddddddddddd11111111dddddddddddddddd11111611000000000000000000000000000000000000000000000000
88ff888844444444dddddddd33999933ddd4dddddddddddd11111111dddddddddddddddd11111111000000000000000000000000000000000000000000000000
8fcffcf844444444ddddddddf394f433dd484ddddddddddd11111111dddddddddddddddd11111411000000000000000000000000000000000000000000000000
8ffffff84444444fdddddddd3f9f5f3fd4a8a4dddddddddd11111111dddddddddddddddd11111111000000000000000000000000000000000000000000000000
cdf77fdc44444444dddddddd331111f34888884ddddddddd16111111dddddddddddddddd11111111000000000000000000000000000000000000000000000000
dcddddcd44444444dddddddd33111133d48a84dddddddddd11141111dddddddddddddddd11111111000000000000000000000000000000000000000000000000
cc1111cc44444444dddddddd33b33b33dd484ddddddddddd11111111dddddddddddddddd11111116000000000000000000000000000000000000000000000000
cc1cc1cc44444444dddddddd33f33f33ddd4dddddddddddd11111111dddddddddddddddd11111911000000000000000000000000000000000000000000000000
34333343333333333333333333333333000000000000000019111111111119110000000011111111000000000000000000000000000000000000000000000000
34444443333333333333333333bbbb33000000000000000011161111141111110000000011111111000000000000000000000000000000000000000000000000
3c7cc7c3333333333333333333b4f433000000000000000011111111111111710000000011111141000000000000000000000000000000000000000000000000
37cc7c73333333333333333333bf9f33000000000000000011411111111111110000000011111111000000000000000000000000000000000000000000000000
34444443333333333333333337eeee73000000000000000011111711191114110000000017116111000000000000000000000000000000000000000000000000
34444443a3a3a3a33333333373eeee37000000000000000011111119111111110000000091111191000000000000000000000000000000000000000000000000
34aaaa437a7a7a7a4994994433033033000000000000000011911611111711110000000011614111000000000000000000000000000000000000000000000000
4aaaaaa4a7a7a7a74994994433f33f33000000000000000011114111111111190000000011411111000000000000000000000000000000000000000000000000
__gff__
000000010000000200010000090909000000000808010009090900000908090900000a080001000908090909010101000000000000000009090909090101010008080000000001010101000000000000090900000000000000010000000000000005000112000100000100000000000011000101000001010001000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0202020404040402020202020202020203030303464748491500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040402040404040202020404040404040403645758591500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040404020404040404040404030303030403666768691500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2404041604040404040904040205030303040403767761791500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0424040404040204040404040505040404040404630404030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303040303040202020405050504040404040404020404030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404042403040404020404040204030304020202020204031515000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0604042403040404040404040204040404040404240404031515000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0604040403030404040404040404040404160404242404031718181818181818181818181818181913181818181818190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2c2d2e0204040404040404040402040404040404042404032713131313131313131313131313132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3c3d3e0424041604040404040404040424040405060303032713131313131313131313131313132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
060204240404040404040404041604240404040506040303271313130c0d0e13131313131313132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0406040404040404040202040404041604040606727272722713131313131313131313131313132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
040404240404040404040404020404047272727232331e1f1313131313131313131313131313132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040404040404040202040473707032323232323232331313131313131313130c0d0d0d0e132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
030303030304041c1c1c1c1c1c1c323232323432323234331313131313131313131313131313132913131313131313290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1515151515151515151515151515323432323232343232331313131313131313131313131313132913131313131313290000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000015323234323232323232331313131313131313131313131313132913131313131313290000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000151515151515151515151527130c0d0d0d0e1313131313131313290c0d0d0d0e1313290000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002713131313131313131313131313132913131313131313290000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002713131313131313131313131313132913131313131313130000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002713401313411313401313411313402941131313414113130000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000002a2b502b2a512a2b502b2a512a2b5051512b2a2b51512a130000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000003a3b3a3b3a3b3a3b3a3b3a3b3a3b3a3b3a3b3a3b3a3b3a3b0000000000000000000000000000001b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
000b000016050200502b05025000280002a0002f00033000370000900002000010000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000b00000000018050200502b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000405006050070500b0500c0500e0500f0500f050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00100000000001565025650296502b6502b6502b650316502d6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000