-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtd.p8
479 lines (462 loc) · 37.9 KB
/
td.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
pico-8 cartridge // http://www.pico-8.com
version 41
__lua__
function _init()
poke(0x5f2d,0x3)
framecount = 0
curlevel = 1
initgame()
newtower(1,40,40)
newtower(3,80,40)
end
function _draw()
cls()
map(0,0,0,0,16,16)
drawenemies()
drawtowers()
rectfill(104,0,128,128,1)
-- hud
spr(playsprite,112,108)
-- want to align the / the same in 1 vs 2 digit round numbers
print(round, 115 - #tostr(round) * 4, 99, 6)
print("/"..maxround, 115, 99, 6)
print("next",108,120,6)
print("♥",105,4,8)
print(lives, 127 - #tostr(lives) * 4,4,8)
print("◆",105,12,10)
print(cash, 127 - #tostr(cash) * 4,12,10)
for i = 0, 64, 16 do
rectfill(105,i+23,114,i+32,0)
rectfill(117,i+23,126,i+32,0)
rect(105,i+23,114,i+32,5)
rect(117,i+23,126,i+32,5)
local tl = tower_types[i/16 + 1][2]
local tr = tower_types[i/16 + 6][2]
spr(tl,106,i+24)
spr(tr,118,i+24)
end
-- mouse
local mx = stat(32)-1
local my = stat(33)-1
spr(06,mx,my)
-- box for placing or selecting tower
if (fget(mget(mx/8,my/8),0)) then
local mx2 = flr((mx+8)>>3)<<3
local my2 = flr((my+8)>>3)<<3
rect(mx2-1,my2-1,mx2-8,my2-8,7)
end
end
function _update()
-- mouse coordinates
local mx = stat(32)-1
local my = stat(33)-1
-- framecounter
framecount = framecount + 1 % 30
if framecount % 30 == 0 then
newenemy(1)
end
updateenemies()
updatetowers()
end
function initgame()
enemies = {}
towers = {}
lives = 100
cash = 100
round = 1
maxround = 10
playsprite = 5
-- if true, can choose tower
-- type to place or select
-- an existing tower to upgrade
-- otherwise can place the currently
-- chosen tower type
selectmode = true
end
-->8
-- enemies
levelpaths = {
{-16, 56, 16, 56, 80, 40, 48, 48, 40, 72, 32, 88, 56, 104}
}
enemytypes = {
{10, 1, 1}
}
function newenemy(enemytype)
local e = {}
e.hp = enemytypes[enemytype][1]
e.px = levelpaths[curlevel][1]
e.py = levelpaths[curlevel][2]
e.tx = levelpaths[curlevel][3]
e.ty = levelpaths[curlevel][4]
e.speed = enemytypes[enemytype][2]
e.damage = enemytypes[enemytype][3]
e.tc = 4
e.dead = false
add(enemies, e)
end
function drawenemies()
for enemy in all(enemies) do
spr(23, enemy.px, enemy.py)
end
end
function updateenemies()
for enemy in all(enemies) do
local x_updated = false
if enemy.py < enemy.ty then
enemy.py += enemy.speed
elseif enemy.py > enemy.ty then
enemy.py -= enemy.speed
end
if enemy.px < enemy.tx then
x_updated = true
enemy.px += enemy.speed
elseif enemy.px > enemy.tx then
x_updated = true
enemy.px -= enemy.speed
end
if abs(enemy.py - enemy.ty) < enemy.speed and abs(enemy.px - enemy.tx) < enemy.speed then
enemy.px = enemy.tx
enemy.py = enemy.ty
enemy.tc += 1
if enemy.tc > #levelpaths[curlevel] then
damage(enemy.damage)
enemy.dead = true
del(enemies, enemy)
else
if x_updated then
enemy.ty = levelpaths[curlevel][enemy.tc]
else
enemy.tx = levelpaths[curlevel][enemy.tc]
end
end
end
end
end
function damage(amount)
lives -= amount
if lives <= 0 then
stop()
end
end
-->8
-- towers
tower_types = {
{"magic", 7, 4, 16},
{"basic", 11},
{"mushroom", 39, 2, 12},
{"t4", 7},
{"t5", 7},
{"t6", 7},
{"t7", 7},
{"t8", 7},
{"t9", 7},
{"t10", 7}
}
function newtower(t_type,x,y)
local t = tower_types[t_type]
local tower = {
sprite = t[2],
sproffset = 0,
frames = t[3],
px = x,
py = y,
range = t[4],
target = nil
}
add(towers, tower)
end
function updatetowers()
for t in all(towers) do
if t.target and not t.target.dead then
-- rotate and fire
else
t.target = nil
for e in all(enemies) do
-- search for target
if abs(t.px - e.px) < t.range and abs(t.py - e.py) < t.range then
t.target = e
break
end
end
end
end
end
function drawtowers()
for t in all(towers) do
spr(t.sprite+t.sproffset,t.px,t.py)
if framecount % 7 == 0 then
t.sproffset += 1
t.sproffset %= t.frames
end
if true then
circ(t.px + 4, t.py + 4, t.range, 15)
end
end
end
-->8
-- title screen
function drawtitle()
cls()
map(0,0,0,0,16,16)
rectfill(104,0,128,128,1)
for i=0,4 do
spr(192+i,32+i*8,32)
end
print("press ❎ to start",20,112,14)
end
function updatetitle()
end
__gfx__
00000000bbbbbbbb44444444bbbbbbbb11111111dd5ddddd01000000d008700dd008800dd008800dd007800d0000000000000000000000000000000000000000
00000000bb33bbbb45544444bbb33bbb11111111d655666d17100000d008800dd008700dd007800dd008800d00dddd0000dddd0000dddd000000000000000000
00700700bbbbbbbb44444454bbb33bbb11111111d655566d17710000110000111100001111000011110000110d5555d00d5555d00d5555d00000000000000000
00077000bbbb33bb44444444bb3333bb11111111d655556d1777100001111110011111100111111001111110044445d00d5445d00d5445d00000000000000000
00077000bbbbbbbb44544444bb3333bb11111111d655566d1777710000111100001111000011110000111100044445d00d5445d00d4445d00000000000000000
00700700b333bbbb44444444b333333b11111111d655666d17711000001661000016610000166100001661000d5555d00d5445d0044455d00000000000000000
00000000bbbbbbbb44444554bbb44bbb11111111d656666d011710000d1661d00d1661d00d1661d00d1661d000dddd0000d44d00004ddd000000000000000000
00000000bbbbbbbb44444444bbb44bbb11111111dddddddd00000000dd1661dddd1661dddd1661dddd1661dd0000000000000000000000000000000000000000
00000000bbbbbbbb0000000000000000000000006666666600000000000880000000000000000000000000000000000000000000000000000000000000000000
00000000bdddbbdd00000000000000000000000067dd777600000000008888000000000000000000000000000000000000000000000000000000000000000000
00000000bddbbbbd00000000000000000000000067ddd776000000000888888000ff880000888800008888000088880000888800008888000088ff00008ff800
00000000bbbbbbbd00000000000000000000000067dddd76000000008888888800ff880000ff88000088880000888800008888000088ff000088ff00008ff800
00000000bbbddbbb00000000000000000000000067ddd77600000000888888880088880000ff880000ff8800008ff8000088ff000088ff000088880000888800
00000000bbddddbb00000000000000000000000067dd77760000000008888880008888000088880000ff8800008ff8000088ff00008888000088880000888800
00000000bbbbbbbb00000000000000000000000067d7777600000000008888000000000000000000000000000000000000000000000000000000000000000000
00000000bbbbddbb0000000000000000000000006666666600000000000880000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000008878000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000087888800088780000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000088888700878888000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000888888880888887000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000ff0008888888800000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000ff000000ff00000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000ffff0000ffff0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000ffff0000ffff0000000000000000000000000000000000000000000000000000000000
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
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
77777777777777777777777777777777777777700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
78888887788888877887788778888887788888770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
78888887788888877887788778777777788778870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
77788777788778877887788778888887788888770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00788700788778877887788778777777788887700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00788700788888877888888778888887788788770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00788700788888877788787778888887788778870000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00777700777777770777777077777777777777770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__label__
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb111111111111111111111111
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb111111111111111111111111
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb111111111111111111111111
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb111881881111888188811111
b333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333b111888881111118181811111
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb111888881111888181811111
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb111188811111811181811111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111118111111888188811111
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb111111111111111111111111
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb111111111111111111111111
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb111111111111111111111111
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb11111a111111aa11aaa1aaa1
b333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333bb333333b1111aaa111111a11a1a1a1a1
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb111aaaaa11111a11a1a1a1a1
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb1111aaa111111a11a1a1a1a1
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb11111a111111aaa1aaa1aaa1
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb111111111111111111111111
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bb111111111111111111111111
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
b333333bb333333bb333333bb333333bb333333bb333333bb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbb111111111111111111111111
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116666666611116666666611
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb116111111611116111111611
bbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116111111611116111111611
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bb116111111611116111111611
bb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116111111611116111111611
b333333bb333333bb333333bb333333bb333333bb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbb116111111611116111111611
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116111111611116111111611
bbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116666666611116666666611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb444444444444444444444444bbbbbbbb111111111111111111111111
bb33bbbbbb33bbbbbb33bbbbbdddbbddbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb455444444554444445544444bb33bbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbddbbbbdbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb444444544444445444444454bbbbbbbb111111111111111111111111
bbbb33bbbbbb33bbbbbb33bbbbbbbbbdbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bb444444444444444444444444bbbb33bb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb445444444454444444544444bbbbbbbb111111111111111111111111
b333bbbbb333bbbbb333bbbbbbddddbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbb444444444444444444444444b333bbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb444445544444455444444554bbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb444444444444444444444444bbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444444444444444444444444444444bbbbbbbb44444444bbbbbbbb116666666611116666666611
bb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb45544444455444444554444445544444bb33bbbb45544444bb33bbbb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444454444444544444445444444454bbbbbbbb44444454bbbbbbbb116111111611116111111611
bbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bb44444444444444444444444444444444bbbb33bb44444444bbbb33bb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44544444445444444454444444544444bbbbbbbb44544444bbbbbbbb116111111611116111111611
b333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbb44444444444444444444444444444444b333bbbb44444444b333bbbb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444554444445544444455444444554bbbbbbbb44444554bbbbbbbb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444444444444444444444444444444bbbbbbbb44444444bbbbbbbb116666666611116666666611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4444444444444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444444bbbbbbbb111111111111111111111111
bb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb4554444445544444bb33bbbbbb33bbbbbb33bbbbbb33bbbb45544444bb33bbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4444445444444454bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444454bbbbbbbb111111111111111111111111
bbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bb4444444444444444bbbb33bbbbbb33bbbbbb33bbbbbb33bb44444444bbbb33bb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4454444444544444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44544444bbbbbbbb111111111111111111111111
b333bbbbb333bbbbb333bbbbb333bbbbb333bbbb4444444444444444b333bbbbb333bbbbb333bbbbb333bbbb44444444b333bbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4444455444444554bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444554bbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4444444444444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44444444bbbbbbbb111111111111111111111111
444444444444444444444444bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4444444444444444116666666611116666666611
455444444554444445544444bb33bbbbbb33bbbb45544444bb33bbbbbb33bbbbbb33bbbbbdddbbddbb33bbbb4554444445544444116111111611116111111611
444444544444445444444454bbbbbbbbbbbbbbbb44444454bbbbbbbbbbbbbbbbbbbbbbbbbddbbbbdbbbbbbbb4444445444444454116111111611116111111611
444444444444444444444444bbbb33bbbbbb33bb44444444bbbb33bbbbbb33bbbbbb33bbbbbbbbbdbbbb33bb4444444444444444116111111611116111111611
445444444454444444544444bbbbbbbbbbbbbbbb44544444bbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbbbbbbbb4454444444544444116111111611116111111611
444444444444444444444444b333bbbbb333bbbb44444444b333bbbbb333bbbbb333bbbbbbddddbbb333bbbb4444444444444444116111111611116111111611
444445544444455444444554bbbbbbbbbbbbbbbb44444554bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb4444455444444554116111111611116111111611
444444444444444444444444bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbbbbbbb4444444444444444116666666611116666666611
bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb77777777bbbbbbbbbbbbbbbb111111111111111111111111
bb33bbbbbb33bbbb45544444bb33bbbbbb33bbbb45544444bb33bbbbbb33bbbbbb33bbbbbb33bbbb7b33bbb7bb33bbbbbb33bbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444454bbbbbbbbbbbbbbbb44444454bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb7bbbbbb7bbbbbbbbbbbbbbbb111111111111111111111111
bbbb33bbbbbb33bb44444444bbbb33bbbbbb33bb44444444bbbb33bbbbbb33bbbbbb33bbbbbb33bb7bbb33b7bbbb33bbbbbb33bb111111111111111111111111
bbbbbbbbbbbbbbbb44544444bbbbbbbbbbbbbbbb44544444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb7bbbbbb7bbbbbbbbbbbbbbbb111111111111111111111111
b333bbbbb333bbbb44444444b333bbbbb333bbbb44444444b333bbbbb333bbbbb333bbbbb333bbbb7333bb17b333bbbbb333bbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444554bbbbbbbbbbbbbbbb44444554bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb7bbbb177bbbbbbbbbbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb777777771bbbbbbbbbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb17771bbbbbbbbbbbbbb116666666611116666666611
bb33bbbbbb33bbbb45544444bb33bbbbbb33bbbb45544444bb33bbbbbdddbbddbb33bbbbbb33bbbbbb33b1777713bbbbbb33bbbb116111111611116111111611
bbbbbbbbbbbbbbbb44444454bbbbbbbbbbbbbbbb44444454bbbbbbbbbddbbbbdbbbbbbbbbbbbbbbbbbbbb17711bbbbbbbbbbbbbb116111111611116111111611
bbbb33bbbbbb33bb44444444bbbb33bbbbbb33bb44444444bbbb33bbbbbbbbbdbbbb33bbbbbb33bbbbbb331171bb33bbbbbb33bb116111111611116111111611
bbbbbbbbbbbbbbbb44544444bbbbbbbbbbbbbbbb44544444bbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116111111611116111111611
b333bbbbb333bbbb44444444b333bbbbb333bbbb44444444b333bbbbbbddddbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbb116111111611116111111611
bbbbbbbbbbbbbbbb44444554bbbbbbbbbbbbbbbb44444554bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116111111611116111111611
bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbbbbb44444444bbbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116666666611116666666611
bbbbbbbbbbbbbbbb44444444444444444444444444444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bb33bbbbbb33bbbb45544444455444444554444445544444bb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbdddbbddbb33bbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444454444444544444445444444454bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbdbbbbbbbb111111111111111111111111
bbbb33bbbbbb33bb44444444444444444444444444444444bbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbbbbbdbbbb33bb111111111111111111111111
bbbbbbbbbbbbbbbb44544444445444444454444444544444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbbbbbbbb111111111111111111111111
b333bbbbb333bbbb44444444444444444444444444444444b333bbbbb333bbbbb333bbbbb333bbbbb333bbbbbbddddbbb333bbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444554444445544444455444444554bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbb44444444444444444444444444444444bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbddbbbbbbbbbb111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb116666666611116666666611
bb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb116111111611116111111611
bbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb116111111611116111111611
b333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333333bb333333bb333333bb333333bb333333b116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb116111111611116111111611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb116666666611116666666611
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb111111111111111111111111
bb33bbbbbdddbbddbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb111111111111111111111111
bbbbbbbbbddbbbbdbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbb111111111111111111111111
bbbb33bbbbbbbbbdbbbb33bbbbbb33bbbbbb33bbbbbb33bbbbbb33bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb111111111111111111111111
bbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bb111111111111111111111111
b333bbbbbbddddbbb333bbbbb333bbbbb333bbbbb333bbbbb333bbbbb333333bb333333bb333333bb333333bb333333bb333333b111111111111111111111111
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb111111111111111111111111
bbbbbbbbbbbbddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbbbbb44bbb111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111dd5ddddd11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111d655666d11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111d655566d11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111d655556d11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111d655566d11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111d655666d11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111d656666d11111111
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111dddddddd11111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111177117771717177711111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171717111717117111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171717711171117111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171717111717117111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111171717771717117111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
__gff__
0001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0303030303030303030303030304040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030303030303030303030304040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030303030101010101010104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030303010101010101010104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101011101010101010202020104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101010101010202020201020104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101010101020201010101020104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0202020101020101011101020204040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101020101020101010101010104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101020101020111010101010104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101020202020101010101110104040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0101010101010101030303030304040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0111010101010103030303030304040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040404040404040404040404040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040404040404040404040404040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0404040404040404040404040404040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000