pico-8 cartridge // http://www.pico-8.com version 18 __lua__ angle = 0 -- --- sprite code -- function new_entity(game_state,x,y,tick,sprite_list,active,oneshot,move,height,width) local e = {} e.game_state = game_state e.x = x e.y = y e.sprite_list = sprite_list e.current = 1 e.tick = tick -- change sprite frame every n refreshes (max 60) e.active = active -- is the sprite active? e.oneshot = oneshot -- does the sprite die e.first_update = 1 -- marks the sprite as fresh e.move = move -- sprite moves e.h = height e.w = width add (entities, e) return e end function draw_entities(entity) if entity.game_state == game.state then if (entity.active == 1) then spr(entity.sprite_list[entity.current],entity.x,entity.y) end end end function update_entity_animation(entity) if entity.game_state==game.state then if entity.player != 1 then if (entity.active==1) then -- check to see if we're on a tick if (game.timer % entity.tick == 1) then if (entity.current < #entity.sprite_list) then entity.current+=1 else entity.current=1 if (entity.oneshot==1) then del(entities,entity) end end end end end end end function update_timer() if (game.gun_timer>0) then game.gun_timer -= 1 end game.timer = game.timer + 1 if (game.timer>30) then game.timer = 1 end end function are_colliding(entity_a,entity_b) if entity_a == nil or entity_b == nil then return false end return entity_b.x < entity_a.x + entity_a.w and entity_a.x < entity_b.x + entity_b.w and entity_b.y < entity_a.y + entity_a.h and entity_a.y < entity_b.y + entity_b.h end angle=0 function sine_pattern(coordinate) coordinate+=sin(angle)*3 angle+=5.03 return coordinate end -- --- end of sprite code -- function make_ship(game_state,x,y) local sprite_list = {} sprite_list[1] = 1 sprite_list[2] = 1 ship = new_entity(game_state,x,y,5,sprite_list, 1, 0, 1, 8, 6, 1) ship.type = "player" ship.green_powerup=0 ship.red_powerup=0 ship.speed = 1 ship.w = 8 ship.firerate = 30 ship.exploded = false ship.lives = 3 return ship end function make_powerup(game_state,x,y,color) local sprite_list = {} if color == "red" then sprite_list[1] = 16 sprite_list[2] = 17 sprite_list[3] = 18 sprite_list[4] = 19 sprite_list[5] = 20 elseif color == "green" then sprite_list[1] = 21 sprite_list[2] = 22 sprite_list[3] = 23 sprite_list[4] = 24 sprite_list[5] = 25 end powerup = new_entity(game_state,x,y,5,sprite_list, 1, 0, 1, 7, 7, 1) powerup.color = color powerup.type = "powerup" return powerup end function make_cyclop(game_state,x,y,color) local sprite_list={} if color=="green" then add_to_sprite=0 elseif color=="blue" then add_to_sprite=4 elseif color=="red" then add_to_sprite=8 elseif color=="yellow" then add_to_sprite=12 end sprite_list[1] = (32 + add_to_sprite) sprite_list[2] = (33 + add_to_sprite) sprite_list[3] = (34 + add_to_sprite) sprite_list[4] = (35 + add_to_sprite) cyclop=new_entity(game_state,x,y,5,sprite_list, 1, 0, 1, 8, 8, 1) cyclop.type = "immigrant" cyclop.points = 100 cyclop.direction = "right" return cyclop end function make_ship_shot(x,y) local bullet = {} bullet.dx = 0 bullet.dy = -2 bullet.type =1 bullet.x = x bullet.y = y bullet.spr = 12 bullet.h = 1 bullet.w = 1 add (bullets, bullet) end function draw_bullet(bullet) spr(bullet.spr, bullet.x, bullet.y) end function update_bullet(bullet) bullet.x += bullet.dx bullet.y += bullet.dy if ((bullet.x < 0 or bullet.x > 128) or (bullet.y < 0 or bullet.y > 128)) then del(bullets, bullet) end did_bullet_collide(bullet) end function update_immigrant_position(entity) if (entity.type=="immigrant") then if game.timer % 15 == 0 then if entity.x > 120 then change_immigrants_direction("left") end if entity.x < 1 then change_immigrants_direction("right") end if entity.direction == "right" then entity.x += 0.5 * 1.1 else entity.x -= 0.5 * 1.1 end end end end function change_immigrants_direction(direction) for entity in all(entities) do if (entity.type=="immigrant") then entity.direction = direction end end end function fire_bullet() if not ship.exploded then if (game.gun_timer==0 or #bullets==0) then if (ship.red_powerup > 2) then make_ship_shot(ship.x+5, ship.y-7) end make_ship_shot(ship.x, ship.y-7) game.gun_timer = ship.firerate end end end function did_bullet_collide(bullet) for i=0,#bullets do if (are_colliding(bullet, bullets[i])) then if bullet != bullets[i] then del(bullets, bullet) end end end for i=2,#entities do if (are_colliding(bullet, entities[i])) then if entities[i].type == "immigrant" then game.score+=entities[i].points add_exp(bullet.x, bullet.y) del(entities, entities[i]) del(bullets, bullet) end end end end function is_ship_colliding(ship) for i=2,#entities do if (are_colliding(ship, entities[i])) then if entities[i].color == "green" then ship.speed+=0.2 ship.green_powerup+=1 del(entities, entities[i]) elseif entities[i].color == "red" then ship.firerate-=7 ship.red_powerup+=1 del(entities, entities[i]) elseif entities[i].type == "immigrant" then if not ship.exploded then ship.exploded = true del(entities, entities[i]) if ship.lives > 0 then ship.lives -= 1 end add_exp(ship.x, ship.y) break end end end end end function animate_ship(animation) if animation=="up" then ship.sprite_list[1] = 2 ship.sprite_list[2] = 3 elseif animation=="down" then ship.sprite_list[1] = 4 ship.sprite_list[2] = 5 elseif animation=="right" then ship.sprite_list[1] = 6 ship.sprite_list[2] = 7 elseif animation=="left" then ship.sprite_list[1] = 8 ship.sprite_list[2] = 9 elseif animation=="stop" then ship.sprite_list[1] = 0 ship.sprite_list[2] = 1 end end function update_ship() -- button 1 if btn(4) then end -- button 2 if btn(5) then fire_bullet() end -- left if btn(0) then animate_ship("left") ship.x -= ship.speed if ship.x < 0 then ship.x = 0 end end -- right if btn(1) then animate_ship("right") ship.x += ship.speed if ship.x + ship.w > 128 then ship.x = 128 - ship.w end end -- up if btn(2) then animate_ship("up") ship.y -= ship.speed if ship.y < 10 then ship.y = 10 end end -- down if btn(3) then animate_ship("down") ship.y += ship.speed if ship.y + ship.h > 128 then ship.y = 128 - ship.h end end -- if ship is not moving if not btn(0) and not btn(1) and not btn(2) and not btn(3) then animate_ship("stop") end if ship.exploded == true then if ship.lives == 0 then game.state = game.states.gameover end ship.x = 64 ship.y = 100 ship.exploded = false end end function _draw() cls() if game.state == game.states.menu then draw_menu() elseif game.state == game.states.game then draw_game() elseif game.state == game.states.pause then draw_pause() elseif game.state == game.states.gameover then draw_gameover() end end function draw_hud() -- print score print("score:" .. game.score, 2, 4, colors.grey) -- print lives print("lives:", 74, 4, colors.grey) if ship.lives == 1 then spr(0,100,3) end if ship.lives == 2 then spr(0,100,3) spr(0,110,3) end if ship.lives == 3 then spr(0,100,3) spr(0,110,3) spr(0,120,3) end -- print debug -- print(debug_text, 2, 120, colors.grey) end function _update() if game.state == game.states.menu then update_menu() elseif game.state == game.states.game then update_game() elseif game.state == game.states.pause then update_pause() elseif game.state == game.states.gameover then update_gameover() end end function _init( ) game = { score = 0, timer = 0, screen_size = 128, tick=1, initialized=false, gun_timer = 0 } game.states = { menu = 0, game = 1, pause = 2, gameover = 3 } game.state = game.states.menu entities={} bullets={} debug_text="debug" stars={} stars.number=76 stars.game_stars={} for i=1,stars.number do add(stars.game_stars, {rnd(128), rnd(128), 1+rnd(3)}) end -- colors colors={ black=0, darkblue=1, darkpurple=2, darkgreen=3, brown=4, darkgrey=5, grey=6, white=7, red=8, orange=9, yellow=10, green=11, blue=12, purple=13, darkpink=14, pink=15 } -- -- init_menu -- --music start_music(3) --center of screen centerx=64 centery=80 --star coordinates starx={} stary={} starz={} --star accelleration starzv={} --2d positions starscrx={} starscry={} --angle angx=0 angy=0 angz=0 --angle velocity angxv=0 angyv=0 angzv=0 --rotation acceleration angxa=0 angya=0 angza=0 --damping dampx=0.995 dampy=0.995 dampz=0.995 -- camera movement a=0.0001 b={7,5,7} -- colors -- init_menu_stars stars_number=stars.number for x=1,stars_number do add(starx,rnd(256)-128) add(stary,rnd(256)-128) add(starz,200) add(starzv,(rnd(90)+1)/2) add(starscrx,centerx) add(starscry,centery) end cls() cyclop_menu_1 = make_menu_cyclop(game.states.menu,40,74,"green") cyclop_menu_2 = make_menu_cyclop(game.states.menu,60,74,"blue") cyclop_menu_3 = make_menu_cyclop(game.states.menu,80,74,"red") end -- menu function update_menu() foreach(entities,update_entity_animation) update_timer() end function draw_menu() draw_menu_stars() draw_menu_logo() foreach(entities,draw_entities) draw_menu_start_key() draw_menu_footer() if btn(5) then start_game() end end function draw_menu_logo() for i = 1,15 do t1 = game.timer + i*10 -- change letters animation type x = cos(t0)*2 -- x for the animation y = 20 + cos(t1/30)*2 -- y pos for the logo + y of the animation spr(63+i, i*7.5 + x, y) -- sprite number,length,pos end end function start_game() for k,v in pairs(entities) do entities[k]=nil end -- init game ship = make_ship(game.states.game,64,100) make_cyclop(game.states.game,04,12,"red") make_cyclop(game.states.game,24,12,"red") make_cyclop(game.states.game,44,12,"red") make_cyclop(game.states.game,64,12,"red") make_cyclop(game.states.game,84,12,"red") make_cyclop(game.states.game,104,12,"red") make_cyclop(game.states.game,04,24,"green") make_cyclop(game.states.game,24,24,"green") make_cyclop(game.states.game,44,24,"green") make_cyclop(game.states.game,64,24,"green") make_cyclop(game.states.game,84,24,"green") make_cyclop(game.states.game,104,24,"green") make_cyclop(game.states.game,04,36,"yellow") make_cyclop(game.states.game,24,36,"yellow") make_cyclop(game.states.game,44,36,"yellow") make_cyclop(game.states.game,64,36,"yellow") make_cyclop(game.states.game,84,36,"yellow") make_cyclop(game.states.game,104,36,"yellow") stop_music() start_music(1) game.state = game.states.game end function make_menu_cyclop(game_state,x,y,color) local sprite_list={} if color=="red" then add_to_sprite=0 elseif color=="blue" then add_to_sprite=5 elseif color=="green" then add_to_sprite=10 end sprite_list[1] = (96 + add_to_sprite) sprite_list[2] = (97 + add_to_sprite) sprite_list[3] = (98 + add_to_sprite) sprite_list[4] = (99 + add_to_sprite) sprite_list[5] = (100 + add_to_sprite) cyclop=new_entity(game_state,x,y,5,sprite_list, 1, 0, 1, 8, 8, 1) cyclop.type="immigrant" return cyclop end function draw_menu_start_key() print("press ❎ key to start",24,90,colors.red) end function draw_menu_footer() color = (flr(rnd(19))) print("a production amazing software",8,120,color) end -- explosions ex_emitters={} function add_exp(x,y) local e={ parts={}, x=x, y=y, offset={x=cos(rnd())*2 ,y=sin(rnd())*2 }, age=0, maxage=25 } for i=0,5 do add_exp_part(e) end add(ex_emitters,e) end function add_exp_part(e) local p={ x=e.x+(cos(rnd())*5), y=e.y+(sin(rnd())*5), rad=0, age=0, maxage=5+rnd(10), c=rnd({15,8,9,10}) } add(e.parts,p) end function update_explosions() for i=#ex_emitters,1,-1 do local e=ex_emitters[i] add_exp_part(e) for ip=#e.parts,1,-1 do local p=e.parts[ip] p.rad+=1 p.age+=1 if p.age+5>p.maxage then p.c=5 end if p.age>p.maxage then del(e.parts,p) end end e.age+=1 if e.age>e.maxage then del(ex_emitters,e) end end end function draw_explosions() for e in all(ex_emitters) do for p in all(e.parts) do circfill(p.x,p.y,p.rad,p.c) circfill(p.x+e.offset.x,p.y+e.offset.y,p.rad-3,0) circ(p.x+(cos(rnd())*5),p.y+(sin(rnd())*5),1,0) end end end -- end explosions function draw_menu_stars() for x=1,stars.number do --erase old pset(starscrx[x],starscry[x],0) --new z positions starz[x]=starz[x]-starzv[x] --alter rotation acceleration angxa+=rnd(2*a)-a angya+=rnd(2*a)-a angza+=rnd(2*a)-a --accelerate camera angxv+=angxa angyv+=angya angzv+=angza --damp camera motion angxa*=dampx angya*=dampy angza*=dampz angxv*=dampx angyv*=dampy angzv*=dampz --move camera angx=(angx+angxv)*dampx/2000 angy=(angy+angyv)*dampy/2000 angz=(angz+angzv)*dampz/2000 --rotate 2 oldx=starx[x] oldy=stary[x] starx[x]=oldx*cos(angz)-oldy*sin(angz) stary[x]=oldx*sin(angz)+oldy*cos(angz) --rotate y oldx=starx[x] oldz=starz[x] starz[x]=oldz*cos(angy)-oldx*sin(angy) starx[x]=oldz*sin(angy)+oldx*cos(angy) --rotate x oldy=stary[x] oldz=starz[x] stary[x]=oldy*cos(angx)-oldz*sin(angx) starz[x]=oldy*sin(angx)+oldz*cos(angx) --convert to 2d starscrx[x]=flr(starx[x]/starz[x]*100+centerx) starscry[x]=flr(stary[x]/starz[x]*100+centery) if(starscrx[x]>128 or starscry[x]>128 or starscrx[x]<0 or starscry[x]<0) then starx[x]=rnd(256)-128 stary[x]=rnd(256)-128 starz[x]=rnd(900)+100 starzv[x]=(rnd(90)+1)/2 end br=count(b)-flr(starz[x]*(count(b)/1000)) pset(starscrx[x],starscry[x],b[br]) end end -- game function update_game() update_timer() update_game_stars() foreach(entities, update_entity_animation) foreach(bullets, update_bullet) foreach(entities, update_immigrant_position) is_ship_colliding(ship) update_ship() update_explosions() end function update_game_stars() for i=1,stars.number do y = stars.game_stars[i][2] random_speed = stars.game_stars[i][3] y += random_speed if y > 128 then y = y - 128 stars.game_stars[i][1] = rnd(127) end stars.game_stars[i][2] = y end end function draw_game() cls() stars.number=10 draw_game_stars() draw_hud() foreach(entities,draw_entities) foreach(bullets, draw_bullet) -- draw broken laser cannon on ship if ship.red_powerup<3 and not ship.exploded then spr(colors.yellow,ship.x,ship.y) end draw_explosions() -- debug --print(ship.firerate, 64, 64, 3) end function draw_game_stars() for i=1,stars.number do star = stars.game_stars[i] x = star[1] y = star[2] col = 4+star[3] pset(x,y,col) end end -- pause function update_pause() end function draw_pause() end -- game over function update_gameover() if btn(5) then game.state=game.states.menu end end function draw_gameover() print("game over", 45, 64, colors.red) print("press ❎ key to start",24,90,colors.red) end -- utils -- calculate center position in x axis -- this is asuming the text uses the system font which is 4px wide function text_x_pos(text) local letter_width = 4 -- first calculate how wide is the text local width = #text * letter_width -- if it's wider than the screen then it's multiple lines so we return 0 if width > game.screen_size then return 0 end return game.screen_size / 2 - flr(width / 2) end -- prints black bordered text function write(text,x,y,color) for i=0,2 do for j=0,2 do print(text,x+i,y+j, 0) end end print(text,x+1,y+1,color) end -- play music function start_music(n) if (not music_playing) then music(n) music_playing=true end end -- stop music function stop_music() music(-1, 300) music_playing=false end -- returns if module of a/b == 0. equals to a % b == 0 in other languages function mod_zero(a,b) return a - flr(a/b)*b == 0 end __gfx__ 06088060060880600608806006088060060880600608806006088060060880600608806006088060000000400000002000000000000000000000000000000000 05888850058888500588885005888850058888500588885005888850058888500588885005888850000000000000000000000000000000000000000000000000 008cc800008cc800008cc800008cc800008dd800008dd800008cd800008cd800008dc800008dc800000000000000000000000000000000000000000000000000 008dd800008dd800008dd800008dd800008cc800908cc8090a8dd8009a8dd800008dd8a0008dd8a900000000000000000a000000090000000a0000a009000090 08288280082882800828828008288280a828828aa828828a0828828008288280082882800828828000000000000000000a000000090000000a0000a009000090 8222222882222228822222288222222882222228822222288222222882222228822222288222222800000000000000000a000000090000000a0000a009000090 0090090009a99a9000a00a0000a00a0000000000000000000000000000000000000000000000000000000000000000000a000000090000000a0000a009000090 00000000009009000009009009009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0d6656d00d6656d00d6656d00d6656d00d6656d00d6656d00d6656d00d6656d00d6656d00d6656d0000000000000000000000000000000000000000000000000 06088060060880600608806006088060060880600603306006033060060330600603306006033060000000000000000000000000000000000000000000000000 058a8860058a9860058998600588886005888860053a3360053ab360053bb3600533336005333360000000000000000000000000000000000000000000000000 06888850068998500689a8500688a8500688885006333350063bb350063ba3500633a35006333350000000000000000000000000000000000000000000000000 06088060060880600608806006088060060880600603306006033060060330600603306006033060000000000000000000000000000000000000000000000000 0d6566d00d6566d00d6566d00d6566d00d6566d00d6566d00d6566d00d6566d00d6566d00d6566d0000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00055000000550000005500000055000000550000005500000055000000550000005500000055000000550000005500000055000000550000005500000055000 0055550000555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000555500005ff50000555500 0058850000588500005885000058850000599500005995000059950000599500005bb5000055bb00005bb50000bb550000555500005ff50000555500005ff500 3055550000555500005555030055550000555500c055550c00555500c055550c00555500005555000055550000555500005ff500005555000055550000555500 333333333333333333333333333333330cccccc00cccccc00cccccc00cccccc0088888800888888008888880088888800aaaaaa00aaaaaa00aaaaaa00aaaaaa0 00333303003333003033330000333300c0cccc0c00cccc00c0cccc0c00cccc0080888808808888088088880880888808a0aaaa0aa0aaaa0aa0aaaa0aa0aaaa0a 00555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000555500 033003300330033003300330033003300cc00cc00cc00cc00cc00cc00cc00cc0088008800880088008800880088008800aa00aa00aa00aa00aa00aa00aa00aa0 00000000000000000000000000000000b03b3b0b0000000000000000000000000000000000000000000000000000000000000000000000000000000050000005 000330000000000000000000000000000bb676b00000000000000000000000000000000000000000000000000000000000000000000000000000000000011000 003373000000000000000000000000000bb707b00000000000000000000000000000000000000000000000000000000000000000000000000000000004400440 03b7073000000000000000000000000003b676300000000000000000000000000000000000000000000000000000000000000000000000000000000005444440 03b3733000000000000000000000000000bbbb000000000000000000000000000000000000000000000000000000000000000000000000000000000068544404 0b333330000000000000000000000000033333300000000000000000000000000000000000000000000000000000000000000000000000000000000005444440 33333333000000000000000000000000b0b00b0b0000000000000000000000000000000000000000000000000000000000000000000000000000000004000040 33333333000000000000000000000000303003030000000000000000000000000000000000000000000000000000000000000000000000000000000004044040 11111111111111111111111111111111111111110001600011111111111111110001600011111111111111111111111116610061111111111111111100016000 16666666166666611666666116666666166666660001600016666661166666610001600016666666166666611666666116610061666666661666666600016000 16000000160000611600006116000000160000000001600016066061160660610001600016000000160000611600006116610061000610001600000000016000 16666666160000611600006116000000166666600001600016066061160660610001600016000000160000611600006116060061000610001666666600016000 11111116166666611666666116000000166666600001600016066061160660610001600016000000166666611666666116006061000610001111111600016000 00000016161111111611116116000000160000000001600016000061160000610001600016000061161116111611116116001661000610000000001600016000 11111116161000001600006116666666166666660001600016000061160000610001600016666661161001601600006116001661000610001111111600000000 66666666161000001600006111111111111111110001600016000061160000610001600011111111161000161600006116001661000610006666666600016000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00055000000550000005500000055000000550000005500000055000000550000005500000055000000550000005500000055000000550000005500000000000 00555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000000000 005bb500005bb500005bb500005bb500005bb50000599500005995000c5995c00059950000599500005885000058850000533500005885000058850000000000 005555008055550800588500805555080055550000555500c055550cc055550cc055550c00555500005555003055550300533500305555030055550000000000 08888880088888800088880008888880088888800cccccc00cccccc00cccccc00cccccc00cccccc0033333300333333000333300033333300333333000000000 8088880800888800008888000088880080888808c0cccc0c00cccc0000cccc0000cccc00c0cccc0c303333030033330000333300003333003033330300000000 00555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000555500005555000055550000000000 08800880088008800880088008800880088008800cc00cc00cc00cc00cc00cc00cc00cc00cc00cc0033003300330033003300330033003300330033000000000 11111111000000000000000001111100001111001000000600000000111111100001600011111110160000611111110000000000000000000000000000000000 16666661160000611600006106666600066666600100006000000061166666100001600016666660160000611666660000000000000000000000000000000000 16000061160000611600006100006100160000610011660000000061160006100001600016000000160000611600006000000000000000000000000000000000 16000061160000611600006100061000160000610001600000000061166661000001600016666600166666611600006000000000000000000000000000000000 16000061160000611600006100610000160000610001600000000061166661000001600016000000160000611600006000000000000000000000000000000000 16000061160000611600006106100000160000610001600000000061160006100001600016000000160000611600006000000000000000000000000000000000 16666661166666610066660001666600066666600001600000666600166666100001666616000000160000611666660000000000000000000000000000000000 11111111111111110011110001111100001111060001600000111100111111100001111116000000160000611111110000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00006655000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00a98d0d000000005566000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000665500000000d0d89a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000005566000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000550555000000000000000000000000000000000000000000000000000000000000000000000000000000000 100d000000000000100d050100000000000000055111551510040010000000000000000000000000000000000000000000000000000000000000000000000000 00001500000000000000155000000000000000051009001150331403000000000000000000000000000000000000000000000000000000000000000000000000 5055550000000000051555050000000000000001109a990510000400000000000000000000000000000000000000000000000000000000000000000000000000 000606000000000000060600000000000000005059a80a1150433411000000000000000000000000000000000000000000000000000000000000000000000000 1505550000000000011555010000000000000051198aa80110003001000000000000000000000000000000000000000000000000000000000000000000000000 00551000000000005005100500000000000000051108a91155010000000000000000000000000000000000000000000000000000000000000000000000000000 05010100000000000001010000000000000000051199901550000001000000000000000000000000000000000000000000000000000000000000000000000000 500d000000000000101d005100000000000000055111111550044101000000000000000000000000000000000000000000000000000000000000000000000000 05101010000000000510101000000000000000005550555000000000000000000000000000000000000000000000000000000000000000000000000000000000 50033001000000005003300100000000000000005000005500000000000000000000000000000000000000000000000000000000000000000000000000000000 0104404000000000010b00b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 05014100000000000501310000000000000000000011005000000000000000000000000000000000000000000000000000000000000000000000000000000000 034143140000000003b1b31b00000000000000001131111500000000000000000000000000000000000000000000000000000000000000000000000000000000 00133051000000000013305100000000000000000111051000000000000000000000000000000000000000000000000000000000000000000000000000000000 013104400000000001310b3000000000000000005135500100000000000000000000000000000000000000000000000000000000000000000000000000000000 11005303000000001100530300000000000000000500553300000000000000000000000000000000000000000000000000000000000000000000000000000000 d0dddddd00000000d0ddd55d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 d5551556000000005555255600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 d555155600000000d505105600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 6511011d000000006511011d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 d555155d000000002555155d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 d555555000000000d505555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 d155555d00000000d155505d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ddddd5dd00000000dd22d5dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __label__ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000 00000000000000000111111111111111000000011111111000160000000000111111110016000000000011111111111111110000000111111111111111000000 00000000000000000166666616666661000000016666666000160000000000166666610016000000000016666661166666610000000666666616666666000000 00000000000000000160000616000061000000016000000000160000000000160660610016000000000016000061160000610000000000610016000000000000 00000000011111111160000616000061111111116666660000160011111111160660610016000111111116000061160000616610061000610016666666000000 00000000016666666166666616666661166666616666660000160016666661160660610016000166666616666661166666616610061000610011111116000000 00000000016000000161111116111161160000016000000000160016066061160000610016000160000016111611161111616610061000610000000016000000 00000000016666666161000016000061160000016666666000160016066061160000610016000160000016100160160000616060061000610011111116000000 00000000011111116161000016000061160000011111111000160016066061160000610016000160000016100016160000616006061000610066666666000000 00000000000000016000000000000000160000000000000000000016000061000000000000000160000610000000000000016001661000000000000000000000 00000000011111116000000000000000166666660000000000000016000061000000000000000166666610000000000000016001661000000000000000000000 00000000066666666000000000000000111111110000000000000016000061700000000000000111111110000000000000016001661000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000007000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000700000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000007000000070000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000070000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000050000000000050000500000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000070000000000000000070000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000005500000000000000500055000000000000000700550000000000000000000000000000000000000000000 00000000000000000000000000000000000000000055550000000000050000555505000005005000005555070000000000000000000000000000000000000000 00000000000000000000000000000000000000000058850000500000000000599500000000000000005bb5000000000000000000000000000000000000000000 00000000000000000000000000000000000000000055550000000000000000555500000000000700005555000000000000000000000000000000000000000000 0000000000000000000000000000000000000000033333300000000000000cccccc0000000000000088888800000000000000000000000000000000000000000 000000000000000000000000000000000000000030333303000000000000c0cccc0c000000500000808888080000000000000000000000000000000000000000 00000000000000000000000000000000000000000055550000000000000000555500000000000000005555000000000000000000000000000000000000000000 0000000000000000000000000000000000000000033003300000000000000cc00cc0000000000000588008800000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000070000000000005000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000088808880888008800880000008800000808088808080000088800880000008808880888088808880000000000000000000000000 00000000000000000000000080808080800080008000000080000000808080008080000008008080005080000800808080800800000000000000000000000000 00000000000000000000000088808800880088808880000080000000880088008880000008008080000088800805888088000800000000000000000000000000 00000000000000000000000080008080800000800080000080000000808080000080000008008080000000800800808080800800000000000000000000000000 00000000000000000000007080008080888088078800000008800000808088808880000058008800000088000800808080800800000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00007000000000000000000000000000000000000000000000000000000000500000000000000500000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000070000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000500000000000000000000000000700000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000 00000000eee00000eee0eee00ee0ee00e0e00ee0eee0eee00ee0ee000000eee0eee0eee0eee0eee0ee000ee000000ee00ee0eee0eee0e0e0eee0eee0eee00000 00000000e0e00000e0e0e0e0e0e0e0e0e0e0e0000e000e00e0e0e0e00000e7e0eee0e0e000e00e00e0e0e0000000e000e0e0e0000e00e0e0e0e0e0e0e0000000 00000000eee00000eee0ee00e0e0e0e0e0e0e0000e000e00e0e0e0e00000eee0e0e0eee00e000e00e0e0e0000000eee0e0e0ee000e00e0e0eee0ee00ee000000 00000000e0e00000e000e0e0e0e0e0e0e0e0e0000e000e00e0e0e0e00000e0e0e0e0e0e0e0000e00e0e0e0e0000000e0e0e0e0000e00eee0e0e0e0e0e0000000 00000000e0e00000e000e0e0ee00eee00ee00ee00e00eee0ee00e0e00000e0e0e0e0e0e0eee0eee0e0e0eee00000ee00ee00e0000e00eee0e0e0e0e0eee00000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000007000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __map__ 90b0b0b0b0b0b0b0b0b0b0b0b2b2b29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90a0b0b2b0b0b0b0b0b2b2b0b2b2b2b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90a0b0b0b2b0b0b0b285a2b0b2b2b29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90b2b0b0b2b0a2b2949596b0b2b2b29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90a2b2b0b2b2b0b0b2a5b2b0b2b2b28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 82b0a2b0b0b2b0a0b0b2b0b0b2b0a29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90a0a0b0b2b0b0b0b0b2b0b0b0b0b09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90a0a0b0b2b2b0b0b0b0b0b0b0b0b09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 90a0a0b0b0b0b0b0b0a2b0a2b0b0b09200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __sfx__ 000100000d0540e0500f0501005014050180501b0501e0502005022050230502505028050280502c0502f05031050330503505535000350003500035000340003400032000300002f0002e0002d0002c0002c000 011400200a043106452f64501073000752f6550820000063000632f6552f6552f605000632f645000032f64500063000632f6452f6052f64500063000632f6452f6452f64500063000632f64500063000632f645 0040000c0804008040080400804008040060410604106041060410804108040080400260002600016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 011400082850028500285422850028542025002850028542015002750002600275002750033600326002f6002d6002a60026600226001f6001b60019600016000260001600016000160001600016000000000000 000d000039443306002f60034600366002f3002d3002c3002a300227001d0001f0001f0002060022000230002460028000291002b1002c10026600260002000012100151000e100161001e000220002700000000 00100000047500275001750017500175006750017500175015300103000d300000000470002700017000170001700067000170001700000000000000000317003370034700357003570000000000000000000000 000f00000e350123501535015350103500d3500170001700015000110001200076000170001700015000110001200076000170001700015000110001200076000170001700015000110001200076000000000000 000a000029003000031c0060000305100000031c6641c6501865013650126500a6500965006650056500265002650016500165501606016050200005000000001000300000000000000000000000000000000000 0010000004753027530175301753017530675301750017533b553375531760033551335510e0031e6001e7020e6000b6000960008600076000660004600016003e0003e0003e0003e0003e0003e0003e0003e000 0010000e2b50223354223522205222052223521f352220521e0511f3511f3511e052123021640216402164021640212302164021640216402164023770237702377023b7023b7023b7023b7023b7023b7023b702 001700132f6052f605143050207502005030751430517305354122f6152f6152f6152f6152f61500063334122f6152f61516305354022f2022f2022f2022f2020000000000000000000000000000000000000000 0004000801053010500105006655010500105001050126000d0000100012600120001600012000160000d000156001600001000166000d00001000176000d0000100016600120000100010600120000100012602 00100000194521235216452164521645218705187052870525705217051e7051b705197071670714707117070b7070870705707017073170731707307073170732707307072d70729707207071c707187070d707 0020000f0c7320c7320c7320c7321673216732167321d7321d7321d73218732187320c7320c7320c7320c70038403384030040338403384030040338403384032f00339403014033940339403394033940300000 001000003740537405374053740500007000070000700007000070000700007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00100000010000000000000000003d6003d6000000001000010000100001000000003d600000000000000000010000000000000000003d600000000000000000010000000001000000003d600000000000000000 __music__ 01 01420344 00 0102034a 02 01420349 01 0a0d4b44 02 0a0d4e44 01 090b4d44 02 090b4d44 00 4f4b4644