-
Notifications
You must be signed in to change notification settings - Fork 0
/
death-and-taxes.p8
705 lines (632 loc) · 43.5 KB
/
death-and-taxes.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
pico-8 cartridge // http://www.pico-8.com
version 38
__lua__
function _init()
color = {
black = 0,
darkGray = 5,
lightGray = 6,
white = 7,
red = 8,
yellow = 10
}
enemyDef = {
{ -- skull
spr = 3,
w = 5,
h = 4,
health = 2,
speed = .1
},
{ -- bat
spr = 5,
spr2 = 21,
w = 7,
h = 4,
health = 1,
speed = .3,
},
{ -- coin
spr = 4,
w = 5,
h = 5,
health = 2,
speed = .1
},
{ -- dollar
spr = 17,
w = 5,
h = 7,
health = 3,
speed = .05
}
}
timer = 0
lastSpawn = 0
spawnRate = 2
enemySpeedBuff = 0
kills = 0
spawnBuffer = 48
act = 1
actKillsNeeded = 10
state = "menu" -- menu, act, playing
cam = {
x = 32,
y = 32,
w = 128,
h = 128,
mX = 256,
mY = 256
}
player = {
spr = 0,
spr2 = 32,
sprDamage = 16,
w = 8,
h = 8,
x = cam.x + 60,
y = cam.y + 60,
speed = .5,
health = 3,
invincible = 0,
lastFire = 0,
fireRate = 2
}
enemies = {}
projectiles = {}
end
function _draw()
cls(color.black)
if (state == "menu") then drawMenu() end
if (state == "act") then drawAct() end
if (state == "playing") then drawPlaying() end
end
function drawMenu()
print("death and taxes: survivor", 14, 60, color.white)
print("PRESS z TO START", 34, 80, color.darkGray)
end
function drawAct()
local name = "death"
if (act == 2) then name = "taxes" end
if (act == 3) then name = "death and taxes" end
print("act "..act, 8, 60, color.white)
print(name, 128-timer*60, 64, color.red)
end
function drawPlaying()
camera(cam.x, cam.y)
map(0, 0, 0, 0, 128, 128)
if (player.health > 0) then
foreach(enemies, drawEnemy)
end
drawPlayer()
if (player.health > 0) then
foreach(projectiles, drawProjectile)
end
camera()
if (player.health <= 0) then
print("PRESS z TO RETRY", 34, 80, color.red)
end
print(tostr(flr(timer)), 0, 0, color.darkGray)
print(tostr(flr(score())), 62, 0, color.white)
drawHealth()
end
function drawPlayer()
local s = player.spr
if (flr(player.invincible) % 10 >= 5 or player.health <= 0) then
s = player.sprDamage
else
if (player.move and flr(timer * 60) % 60 >= 30) then
s = player.spr2
end
end
spr(s, player.x, player.y, 1, 1, player.flipX, player.health <= 0)
end
function drawHealth()
for i = 0,player.health do
spr(2, 128 - (i * 6), 0, .625, .5)
end
end
function drawProjectile(p)
pset(p.x, p.y, color.yellow)
end
function drawEnemy(enemy)
local s = enemy.spr
if (enemy.spr2 != null and flr(timer * 60) % 30 >= 15) then s = enemy.spr2 end
spr(s, enemy.x, enemy.y, enemy.w / 8, enemy.h / 8)
end
function _update60()
if (state == "menu") then updateMenu() end
if (state == "act") then updateAct() end
if (state == "playing") then updatePlaying() end
end
function updateMenu()
if (btn(4)) then
state = "act"
end
end
function updateAct()
timer += 1/60
if (timer >= 3) then
state = "playing"
music(0)
musicPlaying = true
timer = 0
lastSpawn = 0
player.lastFire = 0
end
end
function updatePlaying()
if (player.health <= 0) then
if (musicPlaying) then
musicPlaying = false
music(-1, 300)
sfx(5)
end
if (btn(4)) then _init() end
return
end
timer += 1 / 60
player.invincible -= 1
if (player.invincible < 0) then player.invincible = 0 end
spawnEnemy()
foreach(enemies, checkEnemyCollisions)
updatePlayer()
foreach(projectiles, updateProjectile)
foreach(enemies, updateEnemy)
end
function score()
return kills-- + flr(timer / 10)
end
function spawnEnemy()
if (timer - lastSpawn > spawnRate) then
local c = rnd(count(enemyDef))
local s = 1
if (act < 3) then
c = rnd(count(enemyDef) / 2)
s = 1 + (act - 1) * 2
end
local i = flr(c) + s
local x = flr(rnd(cam.w)) + cam.x
local y = flr(rnd(cam.h)) + cam.y
if (abs(x - player.x) < spawnBuffer or abs(y - player.y) < spawnBuffer) then
spawnEnemy()
return
end
makeEnemy(i, x, y)
end
end
function makeEnemy(i, x, y)
local enemy = shallowcopy(enemyDef[i])
enemy.x = x
enemy.y = y
enemy.speed += enemySpeedBuff
enemy.move = true
add(enemies, enemy)
lastSpawn = timer
end
function makeProjectile()
local nearest = getNearestEnemy()
if (nearest == nil) then return end
local angle = atan2(centerX(nearest) - centerX(player), centerY(nearest) - centerY(player))
local p = {}
p.x = centerX(player)
p.y = centerY(player)
p.w = 1
p.h = 1
p.dx = cos(angle)
p.dy = sin(angle)
add(projectiles, p)
player.lastFire = timer
return p
end
function getNearestEnemy()
local nearest
local nearestD = 72
for e in all(enemies) do
local d = approx_dist(e, player)
if (d < nearestD) then
nearestD = d
nearest = e
end
end
return nearest
end
function approx_dist(e1, e2)
local dx = e1.x - e2.x
local dy = e1.y - e2.y
local maskx,masky=dx>>31,dy>>31
local a0,b0=(dx+maskx)^^maskx,(dy+masky)^^masky
if a0>b0 then
return a0*0.9609+b0*0.3984
end
return b0*0.9609+a0*0.3984
end
function centerX(entity)
return entity.x + (entity.w / 2)
end
function centerY(entity)
return entity.y + (entity.h / 2)
end
function updatePlayer()
player.move = false
if (player.lastFire + player.fireRate <= timer) then
makeProjectile()
end
if (player.collide) then
player.collide = false
return
end
local delta = player.speed
if ((btn(0) and btn(2)) or (btn(0) and btn(3)) or (btn(1) and btn(2)) or (btn(1) and btn(3))) then
delta = player.speed * .85
end
if (btn(0) and player.x > 8) then
player.x -= delta
cam.x -= delta
player.flipX = true
player.move = true
end
if (btn(1) and player.x < cam.mX) then
player.x += delta
cam.x += delta
player.flipX = false
player.move = true
end
if (btn(2) and player.y > 8) then
player.y -= delta
cam.y -= delta
player.move = true
end
if (btn(3) and player.y < cam.mY) then
player.y += delta
cam.y += delta
player.move = true
end
end
function updateProjectile(p)
p.x += p.dx
p.y += p.dy
if (p.x < 0 or p.x > cam.mX or p.y < 0 or p.y > cam.mY) then
del(projectiles, p)
end
end
function updateEnemy(enemy)
if (enemy.move == false) then
enemy.move = true
return
end
local delta = enemy.speed
if (enemy.x < player.x and enemy.y < player.y) then
delta = enemy.speed * .85
end
if (enemy.x < player.x and enemy.y > player.y) then
delta = enemy.speed * .85
end
if (enemy.x > player.x and enemy.y < player.y) then
delta = enemy.speed * .85
end
if (enemy.x > player.x and enemy.y > player.y) then
delta = enemy.speed * .85
end
if (enemy.x < player.x) then
enemy.x += delta
end
if (enemy.x > player.x) then
enemy.x -= delta
end
if (enemy.y < player.y) then
enemy.y += delta
end
if (enemy.y > player.y) then
enemy.y -= delta
end
end
function checkEnemyCollisions(enemy)
checkPlayerCollision(enemy)
for p in all(projectiles) do
checkProjectileCollision(enemy, p)
end
end
function checkPlayerCollision(enemy)
if (collide(enemy, player)) then
enemy.move = false
if (player.invincible <= 0) then
player.health -=1
player.invincible = 60
sfx(4)
end
end
end
function checkProjectileCollision(enemy, p)
if (collide(enemy, p)) then
enemy.health -= 1
del(projectiles, p)
if (enemy.health <= 0) then
del(enemies, enemy)
kills += 1
if (act < 3 and kills >= act * actKillsNeeded) then
act += 1
timer = 0
lastSpawn = 0
player.lastFire = 0
state = "act"
music(-1, 300)
musicPlaying = 0
enemies = {}
projectiles = {}
return
end
if (kills % 10 == 0 and player.health < 5) then
player.health += 1
sfx(6)
end
spawnRate -= .1
if (spawnRate < .1) then
spawnRate = .1
enemySpeedBuff += .001
end
player.fireRate -= .05
if (player.fireRate < .1) then player.fireRate = .1 end
end
end
end
function collide(e1, e2)
if (e1 == nil or e2 == nil) then return false end
return not (e1.x > e2.x + e2.w or
e1.y > e2.y + e2.h or
e1.x + e1.w < e2.x or
e1.y + e1.h < e2.y)
end
function shallowcopy(orig)
local orig_type = type(orig)
local copy
if orig_type == 'table' then
copy = {}
for orig_key, orig_value in pairs(orig) do
copy[orig_key] = orig_value
end
else -- number, string, boolean, etc
copy = orig
end
return copy
end
__gfx__
044ffff000aaaa0008080000077700000aaa00000010100000000000000000000050000000000500000000000000050000000000666666660000000000000000
44ff1f1f0aa99aa0888e800075757000a999a0001051501000000000000050000000005000000000000000000000000000000000888688880000000000000000
444fffffaa9aa9aa0888000077777000a9aaa0000111110005000000050000000000000000000000000000000000000000050000888688880000000000000000
044ffef0aa9aaaaa0080000007570000a999a0000010100000000050000000000500500000000000000500000000000000000000888688880000000000000000
0777877faa9aaaaa00000000000000000aaa00000000000000000000000000000000000000500000000000000000000000000000666666660000000000000000
0f778770aa9aa9aa0000000000000000000000000000000000000000000000000000000000000000000000500005000000000000888888680000000000000000
066666600aa99aa00000000000000000000000000000000000050000000500050000050000000500050000000000000000000000888888680000000000000000
0550055000aaaa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000888888680000000000000000
022eeee00b0b00000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000
22ee1e1e3b3330000000000000000000000000000051500000000000000000000000000000000000000000000000000000000000000000000000000000000000
222eeeee3b0b00000000000000000000000000000111110000000000000000000000000000000000000000000000000000000000000000000000000000000000
022ee0e0333b30000000000000000000000000001010101000000000000000000000000000000000000000000000000000000000000000000000000000000000
0e7787700b0b30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0777877e333330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
066666600b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
05500550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
044ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
44ff1f1f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
444fffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
044ffef0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07f78770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0777877f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
06666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
05500550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
d0c080c0c0c000c080c0b0c08000b0c0b0c0808000c0c080c0b0c08000c0b000c0d0000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0000000000000000000000000000000000000000000000000000000000000
__label__
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000077007770777077707070000077707700770000007770777070707770077000000000077070707770707077707070077077700770000000000000
00000000000070707000707007007070000070707070707000000700707070707000700007000000700070707070707007007070707070707000000000000000
00000000000070707700777007007770000077707070707000000700777007007700777000000000777070707700707007007070707077007770000000000000
00000000000070707000707007007070000070707070707000000700707070707000007007000000007070707070777007007770707070700070000000000000
00000000000077707770707007007070000070707070777000000700707070707770770000000000770007707070070077700700770070707700000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000005550000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000550550055500550055000000050000055500550000005505550055055005550000000000000000000000000000000
00000000000000000000000000000000005050505055005000500000000500000005005050000050000500505050500500000000000000000000000000000000
00000000000000000000000000000000005550550050000050005000005000000005005050000000500500555055000500000000000000000000000000000000
00000000000000000000000000000000005000505005505500550000005550000005005500000055000500505050500500000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d060008000808080800080b0a08000007000000060806000000000008000808000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0000080909080909000b000000080b0a070706070808080806000808000000080d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00080908000808000a000000000b0a0a0a0600070809000800000800000000000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d080808090000080a0b0000000b0a09000a0c0a0a0800000900080b0b000008000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0800070707090a0a0b0a0a000c0b0c0607070c0c0c0707070b080b00000808000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00070700000000000c0809080c060b00000b00070b080c000b080600000808080d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0800000c07000a09080c0c000000070c000008080c00000b07080800000000080d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d08000000000c07080800000b0000000000000006000c0000000c0808000008000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0008000008080700090000080b000c060a00060c080a0c0a0a0c060c000008000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d080a000c08000606060000000b0007000007000c00080a0c080a00000c0c08080d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0a00080800000908060007000b080007000a070b0a000b0800070008000c08000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000c080808070008000708080b00080708000b0b07090a080b0a0600080808090d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d08000808090006080b0a000a0b0800090b080b070900000c0b0b000809090c000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00000b09000007070007080b0b0b070800000b08090900090b0a0707000c08070d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0c0c00090007070a000b0c0b0b00080c000b070009080c0000060b0b08000c000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0a0000000909000b0b0b0c0c00070900000b000b000808060b0a0c070c0008090d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0a0c080a00000b0a0a09090b07090700000b000b0c0807060800000c000b00070d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0a0a0000000808000800060909000000000b0b0809000606080a0c0c080b07000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000a0009090b09000808090007060008070b0009060708080b0c00000b070a0a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0800000900080c08080c0b07000c070807080909060000080c0c0a0b0a0a0a0c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000809000008080000080b0c07000908070009000909000c000909070a000a000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d090009080008080c080c0c07000000080008090908080c090c070a000a0a0a0c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d00000000080c0c070b0c00090000080808080808000c0c07000b0a09000a00000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000009070800000700000b09080008080700080708090b080a08000b0b0b000c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d08090008080808000b0c000b080800090900080b0008000a0c000a00090b000c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000900080809070c0c0808090b090800070b0c0708070c0c0c0a0000090b000c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0709080908080c0c0000000707000c0c0708090c00000c0a0b00080a0b09000c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d080900080a0a000c000c0000000c0c0c0c09080800000a0a0b0b0b09070007070d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d0009080008000a0a0a0a0a000a0a000009090007000a0a0a07000a00070707000d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000a0800000a0007070a000a0808080a09080a080a0a00000a0a00070700000c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0d000a0a0a0a0a000a080008000000000008080000000000000a0000000000000c0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000200200405004050040500405000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000d7500e75010750127500d7500c7500c7500d7500e75013750127501475013750117500e7500b750117500e7500c75009750107500c75008750057500a75006750037500075006750027500075000750
001000000a5000a5000a5000a5000a5000a5000a5000a500075000a5000a5000a5000a5000a5000a5000a5000a5000950009500095000950009500095000950009500095000950009500235201c520295202c520
0003000029250232501d25015250102500f2500d2500e2500e2500e2500e2500d2500b25007250032000120000200002000020000200002000020000200002000020000200002000020000200002000020000200
00100000000000000000000000000c0500a0500605003050010500005000050000400004000030000300002000010000000000000000000000000000000000000000000000000000000000000000000000000000
0010000000000360502f0503b0502a000250002500037000390003900000000000002500000000000000000000000000000000036000370003700038000390003a00000000000000000000000000000000000000
__music__
02 01020344