-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadvanced-pixel-movement-with-attack.p8
423 lines (391 loc) · 28 KB
/
advanced-pixel-movement-with-attack.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
pico-8 cartridge // http://www.pico-8.com
version 29
__lua__
--deplacements et attaque
--fairedesjeux.fr
--inspire de mboffin
--lisez cette cartouche
--de preference dans un
--editeur de code
function _init()
create_player()
create_enemy()
end
function _update()
player_movement()
update_sword()
enemy_movement()
end
function _draw()
cls()
map()
--sword hitbox
rectfill(sword_x1, sword_y1, sword_x2, sword_y2, sword_hitting and 9 or 8)
spr(p.sprite, p.x, p.y)
--si l'ennemi est touche, on passe toute la palette en blanc
--(chercher 'pal tbl' dans le manuel)
if (e.hit) pal({7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7})
spr(e.sprite, e.x, e.y)
pal()
--interface
rectfill(0, 122, 53, 127, 0)
print("x:coup d'epee", 1, 123, 7)
end
function create_player()
p = {
sprite = 6,
x = 24, y = 24,
w = 7, h = 8,
dx = 0, dy = 0,
max_speed = 3,
acceleration = 1,
friction = 0.5,
angle = 6 --direction du regard, utile pour l'epee
--et vos directions de sprite si vous en avez
}
sword_timer = 0 --sera utilise pour la duree de hit de l'epee
sword_x1, sword_x2, sword_y1, sword_y2 = 1,1,1,1
end
function create_enemy()
e = {
sprite = 7,
x = 80, y = 24,
w = 6, h = 8,
dx = 0, dy = 0,
max_speed = 1,
acceleration = 0.5,
friction = 0.85
}
end
function player_movement()
if (btn(⬅️)) p.dx -= p.acceleration
if (btn(➡️)) p.dx += p.acceleration
if (btn(⬆️)) p.dy -= p.acceleration
if (btn(⬇️)) p.dy += p.acceleration
entity_movement(p)
end
function update_player_angle()
--les chiffres d'angle correspondent au pave numerique !
--(le perso etant au milieu, a 5)
if btn(➡️) and btn(⬆️) then
p.angle = 9
elseif btn(⬅️) and btn(⬆️) then
p.angle = 7
elseif btn(⬅️) and btn(⬇️) then
p.angle = 1
elseif btn(➡️) and btn(⬇️) then
p.angle = 3
elseif btn(➡️) then
p.angle = 6
elseif btn(⬆️) then
p.angle = 8
elseif btn(⬅️) then
p.angle = 4
elseif btn(⬇️) then
p.angle = 2
end
end
function update_sword()
--point d'origine : centre du perso
local ox, oy = p.x+3, p.y+3
update_player_angle()
if p.angle == 9 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox, oy-10, ox+10, oy
elseif p.angle == 7 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox-10, oy-10, ox, oy
elseif p.angle == 1 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox-10, oy, ox, oy+10
elseif p.angle == 3 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox, oy, ox+10, oy+10
elseif p.angle == 6 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox, oy-5, ox+13, oy+5
elseif p.angle == 8 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox-5, oy-13, ox+5, oy
elseif p.angle == 4 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox-13, oy-5, ox, oy+5
elseif p.angle == 2 then
sword_x1, sword_y1, sword_x2, sword_y2 = ox-5, oy, ox+5, oy+13
end
--on reduit le timer de hit jusqu'a 0 s'il est lance
sword_timer = max(0, sword_timer-1)
if (sword_timer == 0) sword_hitting = false
if btnp(❎) and not sword_hitting then
sword_hitting = true
sword_timer = 4
end
end
function enemy_movement()
--voici un comportement simple d'exemple :
--se rapproche du perso jusqu'a 15px de distance
local distance = abs(e.x-p.x) + abs(e.y-p.y)
if distance > 30 then
if (p.x+2 < e.x) e.dx -= e.acceleration
if (p.x-2 > e.x) e.dx += e.acceleration
if (p.y+2 < e.y) e.dy -= e.acceleration
if (p.y-2 > e.y) e.dy += e.acceleration
end
e.hit = false
if sword_hitting then
--methode de collision vue dans le tuto shooter
if not (e.x > sword_x2
or e.y > sword_y2
or e.x+e.w-1 < sword_x1
or e.y+e.h-1 < sword_y1) then
--ennemi touche par l'epee
e.hit = true
--repousser l'ennemi
if (p.x+3 < e.x) e.dx += 3
if (p.x-3 > e.x) e.dx -= 3
if (p.y+3 < e.y) e.dy += 3
if (p.y-3 > e.y) e.dy -= 3
end
end
entity_movement(e)
end
--commune a toutes les entites
function entity_movement(e)
if abs(e.dx) > e.max_speed/2 and abs(e.dy) > e.max_speed/2 then
e.dx *= 0.75
e.dy *= 0.75
end
local max = e.hit and 3 or e.max_speed
e.dx = mid(-max, e.dx, max)
e.dy = mid(-max, e.dy, max)
--avant de se deplacer, on bloque le mouvement dans
--la ou les directions ou on est colle a un mur
check_wall(e)
if can_move(e, e.dx, e.dy) then
e.x += e.dx
e.y += e.dy
else
local target_x=e.dx
local target_y=e.dy
--on va progressivement raccourcir 'target x y'
--jusqu'a trouver une position sans obstacle
while not can_move(e, target_x, target_y) do
if abs(target_x) <= 0.1 then
target_x = 0
else
target_x *= 0.9
end
if abs(target_y) <= 0.1 then
target_y = 0
else
target_y *= 0.9
end
end
e.x += target_x
e.y += target_y
end
if (abs(e.dx) > 0) e.dx *= e.friction
if (abs(e.dy) > 0) e.dy *= e.friction
if (abs(e.dx) < 0.02) e.dx = 0
if (abs(e.dy) < 0.02) e.dy = 0
end
function can_move(a, dx, dy)
local x_left = a.x + dx
local x_right = a.x + dx + a.w-1
local y_top = a.y + dy
local y_bottom = a.y + dy + a.h-1
if (check_obstacle(x_left, y_top)) return false
if (check_obstacle(x_left, y_bottom)) return false
if (check_obstacle(x_right, y_top)) return false
if (check_obstacle(x_right, y_bottom)) return false
return true
end
function check_obstacle(x, y)
local map_x = flr(x/8)
local map_y = flr(y/8)
local sprite = mget(map_x, map_y)
return fget(sprite, 0)
end
--check_wall verifie si un objet aux proprietes x, y, w, h
--est face a un mur, et bloque cette direction si oui
function check_wall(e)
if e.dx < 0 then
local wall_top_left = check_obstacle(e.x-1, e.y)
local wall_bottom_left = check_obstacle(e.x-1, e.y+e.h-1)
if wall_top_left or wall_bottom_left then
e.dx = 0
end
elseif e.dx > 0 then
local wall_top_right = check_obstacle(e.x+e.w, e.y)
local wall_bottom_right = check_obstacle(e.x+e.w, e.y+e.h-1)
if wall_top_right or wall_bottom_right then
e.dx = 0
end
end
if e.dy < 0 then
local wall_top_left = check_obstacle(e.x, e.y-1)
local wall_top_right = check_obstacle(e.x+e.w-1, e.y-1)
if wall_top_left or wall_top_right then
e.dy = 0
end
elseif e.dy > 0 then
local wall_bottom_left = check_obstacle(e.x, e.y+e.h)
local wall_bottom_right = check_obstacle(e.x+e.w-1, e.y+e.h)
if wall_bottom_right or wall_bottom_left then
e.dy = 0
end
end
end
__gfx__
00000000333333333333333333bbbb331111d111dddddddd0eeeee0000bbb0000000000000000000000000000000000000000000000000000000000000000000
000000003333333333a333333bbaabb311111111ddddddddeeeefee00bb1b1000000000000000000000000000000000000000000000000000000000000000000
00700700333333333a9a33333bbbab131d1111d1ddddddddef1ff1e00bbbbb000000000000000000000000000000000000000000000000000000000000000000
000770003333333333a333a33bbbb31311111111ddddddddeeffffe0bbbbbb000000000000000000000000000000000000000000000000000000000000000000
000770003333333333333a9a313b3313111d1111ddddddddee8888e0bb4440000000000000000000000000000000000000000000000000000000000000000000
0070070033333333333333a33311113311111111dddddddd08666600bbb99b000000000000000000000000000000000000000000000000000000000000000000
00000000333333333333333333322333d1111d11dddddddd08aaaa000bb44b000000000000000000000000000000000000000000000000000000000000000000
0000000033333333333333333314423311111111dddddddd08600600090090000000000000000000000000000000000000000000000000000000000000000000
__label__
33bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb3
3bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab13
3bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb313
313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313
33111133331111333311113333111133331111333311113333111133331111333311113333111133331111333311113333111133331111333311113333111133
33322333333223333332233333322333333223333332233333322333333223333332233333322333333223333332233333322333333223333332233333322333
33144233331442333314423333144233331442333314423333144233331442333314423333144233331442333314423333144233331442333314423333144233
33bbbb3333bbbb3333bbbb3333bbbb33333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb33bbaabb33bbaabb333333333333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb33bbaabb33bbaabb3
3bbbab133bbbab133bbbab133bbbab1333333333333333333333333333333333333333333333333333333333333333333bbbab133bbbab133bbbab133bbbab13
3bbbb3133bbbb3133bbbb3133bbbb31333333333333333333333333333333333333333333333333333333333333333333bbbb3133bbbb3133bbbb3133bbbb313
313b3313313b3313313b3313313b33133333333333333333333333333333333333333333333333333333333333333333313b3313313b3313313b3313313b3313
33111133331111333311113333111133333333333333333333333333333333333333333333333333333333333333333333111133331111333311113333111133
33322333333223333332233333322333333333333333333333333333333333333333333333333333333333333333333333322333333223333332233333322333
33144233331442333314423333144233333333333333333333333333333333333333333333333333333333333333333333144233331442333314423333144233
33bbbb3333bbbb3333bbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb33bbaabb3333333333333333333333333333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb33bbaabb3
3bbbab133bbbab133bbbab13333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbab133bbbab133bbbab13
3bbbb3133bbbb3133bbbb313333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3133bbbb3133bbbb313
313b3313313b3313313b331333333333333333333333333333333333333333333333333333333333333333333333333333333333313b3313313b3313313b3313
33111133331111333311113333333333333333333333333333333333333333333333333333333333333333333333333333333333331111333311113333111133
33322333333223333332233333388888888888888333333333333333333333333333333333333333333333333333333333333333333223333332233333322333
33144233331442333314423333388888888888888333333333333333333333333333333333333333333333333333333333333333331442333314423333144233
33bbbb3333bbbb33333333333eeeee8888888888833333333333333333333333333333333333333bbb333333333333333333333333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb333333333eeeefee88888888883333333333333333333333333333333333333bb1b13333333333333333333333bbaabb33bbaabb33bbaabb3
3bbbab133bbbab1333333333ef1ff1e88888888883333333333333333333333333333333333333bbbbb3333333333333333333333bbbab133bbbab133bbbab13
3bbbb3133bbbb31333333333eeffffe8888888888333333333333333333333333333333333333bbbbbb3333333333333333333333bbbb3133bbbb3133bbbb313
313b3313313b331333333333ee8888e8888888888333333333333333333333333333333333333bb4443333333333333333333333313b3313313b3313313b3313
33111133331111333333333338666688888888888333333333333333333333333333333333333bbb99b333333333333333333333331111333311113333111133
33322333333223333333333338aaaa888888888883333333333333333333333333333333333333bb44b333333333333333333333333223333332233333322333
33144233331442333333333338688688888888888333333333333333333333333333333333333393393333333333333333333333331442333314423333144233
33bbbb3333bbbb3333333333333888888888888883333333333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb33
3bbaabb33bbaabb33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb3
3bbbab133bbbab133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbab133bbbab13
3bbbb3133bbbb3133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3133bbbb313
313b3313313b3313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313b3313313b3313
33111133331111333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333311113333111133
33322333333223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332233333322333
33144233331442333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333314423333144233
33bbbb3333bbbb3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb33
3bbaabb33bbaabb333333333333333333333333333333333333333333333333333333333333333333333333333a3333333333333333333333bbaabb33bbaabb3
3bbbab133bbbab133333333333333333333333333333333333333333333333333333333333333333333333333a9a333333333333333333333bbbab133bbbab13
3bbbb3133bbbb31333333333333333333333333333333333333333333333333333333333333333333333333333a333a333333333333333333bbbb3133bbbb313
313b3313313b331333333333333333333333333333333333333333333333333333333333333333333333333333333a9a3333333333333333313b3313313b3313
3311113333111133333333333333333333333333333333333333333333333333333333333333333333333333333333a333333333333333333311113333111133
33322333333223333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332233333322333
33144233331442333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333314423333144233
33bbbb33333333333333333333333333333333331111d1111111d111dddddddddddddddd1111d1111111d1113333333333333333333333333333333333bbbb33
3bbaabb3333333333333333333333333333333331111111111111111dddddddddddddddd1111111111111111333333333333333333333333333333333bbaabb3
3bbbab13333333333333333333333333333333331d1111d11d1111d1dddddddddddddddd1d1111d11d1111d1333333333333333333333333333333333bbbab13
3bbbb313333333333333333333333333333333331111111111111111dddddddddddddddd1111111111111111333333333333333333333333333333333bbbb313
313b331333333333333333333333333333333333111d1111111d1111dddddddddddddddd111d1111111d111133333333333333333333333333333333313b3313
33111133333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333111133
3332233333333333333333333333333333333333d1111d11d1111d11ddddddddddddddddd1111d11d1111d113333333333333333333333333333333333322333
33144233333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333144233
33bbbb33333333333333333333333333333333331111d1111111d111dddddddddddddddd1111d1111111d1113333333333333333333333333333333333bbbb33
3bbaabb3333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333a3333333333333333333333bbaabb3
3bbbab13333333333333333333333333333333331d1111d11d1111d1dddddddddddddddd1d1111d11d1111d1333333333a9a333333333333333333333bbbab13
3bbbb313333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333a333a333333333333333333bbbb313
313b331333333333333333333333333333333333111d1111111d1111dddddddddddddddd111d1111111d11113333333333333a9a3333333333333333313b3313
33111133333333333333333333333333333333331111111111111111dddddddddddddddd111111111111111133333333333333a3333333333333333333111133
3332233333333333333333333333333333333333d1111d11d1111d11ddddddddddddddddd1111d11d1111d113333333333333333333333333333333333322333
33144233333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333144233
33bbbb33333333333333333333333333333333331111d1111111d111dddddddddddddddd1111d1111111d1113333333333333333333333333333333333bbbb33
3bbaabb3333333333333333333333333333333331111111111111111dddddddddddddddd1111111111111111333333333333333333333333333333333bbaabb3
3bbbab13333333333333333333333333333333331d1111d11d1111d1dddddddddddddddd1d1111d11d1111d1333333333333333333333333333333333bbbab13
3bbbb313333333333333333333333333333333331111111111111111dddddddddddddddd1111111111111111333333333333333333333333333333333bbbb313
313b331333333333333333333333333333333333111d1111111d1111dddddddddddddddd111d1111111d111133333333333333333333333333333333313b3313
33111133333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333111133
3332233333333333333333333333333333333333d1111d11d1111d11ddddddddddddddddd1111d11d1111d113333333333333333333333333333333333322333
33144233333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333144233
33bbbb33333333333333333333333333333333331111d1111111d111dddddddddddddddd1111d1111111d1113333333333333333333333333333333333bbbb33
3bbaabb3333333333333333333333333333333331111111111111111dddddddddddddddd1111111111111111333333333333333333333333333333333bbaabb3
3bbbab13333333333333333333333333333333331d1111d11d1111d1dddddddddddddddd1d1111d11d1111d1333333333333333333333333333333333bbbab13
3bbbb313333333333333333333333333333333331111111111111111dddddddddddddddd1111111111111111333333333333333333333333333333333bbbb313
313b331333333333333333333333333333333333111d1111111d1111dddddddddddddddd111d1111111d111133333333333333333333333333333333313b3313
33111133333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333111133
3332233333333333333333333333333333333333d1111d11d1111d11ddddddddddddddddd1111d11d1111d113333333333333333333333333333333333322333
33144233333333333333333333333333333333331111111111111111dddddddddddddddd11111111111111113333333333333333333333333333333333144233
33bbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb33
3bbaabb3333333333333333333a33333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb3
3bbbab1333333333333333333a9a3333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbab133bbbab13
3bbbb313333333333333333333a333a3333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3133bbbb313
313b3313333333333333333333333a9a33333333333333333333333333333333333333333333333333333333333333333333333333333333313b3313313b3313
331111333333333333333333333333a3333333333333333333333333333333333333333333333333333333333333333333333333333333333311113333111133
33322333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332233333322333
33144233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333314423333144233
33bbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb33
3bbaabb3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb3
3bbbab13333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbab133bbbab13
3bbbb313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3133bbbb313
313b331333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313b3313313b3313
33111133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333311113333111133
33322333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332233333322333
33144233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333314423333144233
33bbbb3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb3333bbbb33
3bbaabb33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb33bbaabb3
3bbbab133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbab133bbbab133bbbab13
3bbbb3133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbb3133bbbb3133bbbb313
313b3313333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333313b3313313b3313313b3313
33111133333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331111333311113333111133
33322333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333223333332233333322333
33144233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333331442333314423333144233
33bbbb3333bbbb333333333333333333333333333333333333333333333333333333333333bbbb3333bbbb333333333333bbbb3333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb3333333333333333333333333333333333333333333333333333333333bbaabb33bbaabb3333333333bbaabb33bbaabb33bbaabb33bbaabb3
3bbbab133bbbab13333333333333333333333333333333333333333333333333333333333bbbab133bbbab13333333333bbbab133bbbab133bbbab133bbbab13
3bbbb3133bbbb313333333333333333333333333333333333333333333333333333333333bbbb3133bbbb313333333333bbbb3133bbbb3133bbbb3133bbbb313
313b3313313b331333333333333333333333333333333333333333333333333333333333313b3313313b331333333333313b3313313b3313313b3313313b3313
33111133331111333333333333333333333333333333333333333333333333333333333333111133331111333333333333111133331111333311113333111133
33322333333223333333333333333333333333333333333333333333333333333333333333322333333223333333333333322333333223333332233333322333
33144233331442333333333333333333333333333333333333333333333333333333333333144233331442333333333333144233331442333314423333144233
33bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb3
3bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab13
3bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb313
313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313
33111133331111333311113333111133331111333311113333111133331111333311113333111133331111333311113333111133331111333311113333111133
33322333333223333332233333322333333223333332233333322333333223333332233333322333333223333332233333322333333223333332233333322333
33144233331442333314423333144233331442333314423333144233331442333314423333144233331442333314423333144233331442333314423333144233
33bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb3333bbbb33
3bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb33bbaabb3
000000000000000000000000000000000000000000000000000000133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab133bbbab13
070700000077007707070777000007700070077707770777077700133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb3133bbbb313
07070070070007070707070700000707070007000707070007000013313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313313b3313
00700000070007070707077700000707000007700777077007700033331111333311113333111133331111333311113333111133331111333311113333111133
07070070070007070707070000000707000007000700070007000033333223333332233333322333333223333332233333322333333223333332233333322333
07070000007707700077070000000777000007770700077707770033331442333314423333144233331442333314423333144233331442333314423333144233
__gff__
0000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0303030303030303030303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030301010101010101010303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030101010101010101010103030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303010101010101010101010103030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303010101010101010101010101030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303010101010101010101020101030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010101040405050404010101010300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010101040405050404010201010300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010101040405050404010101010300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010101040405050404010101010300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010201010101010101010101030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010101010101010101010101030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0301010101010101010101010103030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303010101010101010303010303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030303030303030303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0303030303030303030303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
0006000007550095501d500205001b5001f5000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500