Last active
August 21, 2020 09:29
-
-
Save AlecTroemel/964b14097e711dcea49d123a94eaa71b to your computer and use it in GitHub Desktop.
GMTK Jam 2020 game. collect cherries while hanging on to your dogs leash!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| pico-8 cartridge // http://www.pico-8.com | |
| version 29 | |
| __lua__ | |
| -- pico lib | |
| ------------------------------- | |
| -------- id counter ----------- | |
| ------------------------------- | |
| id_counter=0 | |
| function get_id() | |
| local temp=id_counter | |
| id_counter+=1 | |
| return temp | |
| end | |
| ------------------------------- | |
| ------------- actor ----------- | |
| ------------------------------- | |
| -- an object with a unique id | |
| -- in the actors list and with | |
| -- update and draw functions | |
| ------------------------------- | |
| actors={} | |
| actor={} | |
| function actor:new(apply) | |
| na={ | |
| id=get_id(), | |
| update=function() end, | |
| draw=function() end | |
| } | |
| self.__index=self | |
| na = setmetatable(na, self) | |
| if apply then | |
| actors[na.id]=na | |
| --add(actors, na) | |
| end | |
| return na | |
| end | |
| function actor:destroy() | |
| actors[self.id]=nil | |
| end | |
| ------------------------------- | |
| --------- animation ----------- | |
| ------------------------------- | |
| function animate(obj) | |
| anim={ | |
| states={}, | |
| state="", -- current state | |
| tick=0, -- current tick | |
| frame=0, -- current frame | |
| flip=false, | |
| } | |
| function anim:add(name,sp,speed) | |
| self.states[name]={ | |
| sprites=sp, | |
| speed=speed | |
| } | |
| end | |
| function anim:set(name) | |
| if self.state!=name then | |
| self.state=name | |
| self.tick=0 | |
| self.frame=0 | |
| end | |
| end | |
| function anim:update() | |
| local anim=self | |
| .states[self.state] | |
| self.tick= | |
| (self.tick+1) % | |
| (anim.speed) | |
| if (self.tick==0) then | |
| self.frame= | |
| (self.frame+1) % | |
| (#anim.sprites) | |
| end | |
| end | |
| function anim:draw(x,y) | |
| local frame=self | |
| .states[self.state] | |
| .sprites[self.frame+1] | |
| spr( | |
| frame[1], | |
| x+frame[2], | |
| y+frame[3], | |
| 1,1, | |
| self.flip | |
| ) | |
| end | |
| obj.anim=anim | |
| end | |
| ------------------------------- | |
| -- physical body & collision -- | |
| ------------------------------- | |
| -- works by check whether the | |
| -- distance between the | |
| -- midpoints of the two boxes | |
| -- is greater than the sum of | |
| -- the half box widths. | |
| function box_hit(x1,y1,w1,h1, | |
| x2,y2,w2,h2) | |
| -- dist between x midpoints | |
| local xd = abs( | |
| (x1+(w1/2)) - | |
| (x2+(w2/2)) | |
| ) | |
| -- sum of half boxes x width | |
| local xs=w1*0.5+w2*0.5 | |
| if (xd>xs) return false | |
| -- same thing in y direction | |
| local yd = abs( | |
| (y1+(h1/2)) - | |
| (y2+(h2/2)) | |
| ) | |
| local ys=h1*0.5+h2*0.5 | |
| return yd<ys | |
| end | |
| function body_hit(body1,body2) | |
| local x_hit=box_hit( | |
| body1.x+body1.dx,body1.y, | |
| body1.w,body1.h, | |
| body2.x,body2.y, | |
| body2.w,body2.h) | |
| local y_hit=box_hit( | |
| body1.x,body1.y+body1.dy, | |
| body1.w,body1.h, | |
| body2.x,body2.y, | |
| body2.w,body2.h) | |
| return x_hit,y_hit | |
| end | |
| -- body needs: | |
| -- x, y | |
| -- max_dx, max_dy | |
| -- acc, dcc | |
| -- w, h | |
| function materialize(obj, body) | |
| obj.collideable=false | |
| body.dx=0 | |
| body.dy=0 | |
| function body:push(dx,dy) | |
| self.dx=mid(-self.max_dx, | |
| self.dx+(dx*self.acc), | |
| self.max_dx) | |
| self.dy=mid(-self.max_dy, | |
| self.dy+(dy*self.acc), | |
| self.max_dy) | |
| end | |
| function body:update() | |
| local dirx=self.dx>0 and 1 or -1 | |
| local diry=self.dy>0 and 1 or -1 | |
| local finaldx=self.dx | |
| local finaldy=self.dy | |
| for i=0,self.dx,dirx do | |
| -- be sure to look at the right edge | |
| local x = self.x+i | |
| if dirx>0 then | |
| x=self.x+i+self.w-1 | |
| end | |
| -- check top,middle,and bottom | |
| local hit=false | |
| for y=self.y,self.y+self.h,self.h/3 do | |
| if fget(mget(x/8, y/8))==1 then | |
| hit=true | |
| end | |
| end | |
| if hit==true then | |
| if i==0 then | |
| finaldx=-self.dx | |
| end | |
| finaldx=i | |
| break | |
| end | |
| end | |
| local newx=self.x+finaldx | |
| for i=0,self.dy,diry do | |
| -- be sure to look at the right edge | |
| local y = self.y+i | |
| if diry>0 then | |
| y=self.y+i+self.h-1 | |
| end | |
| -- check left,middle,and right | |
| local hit=false | |
| for x=self.x,self.x+self.w,self.w/3 do | |
| if fget(mget(x/8, y/8))==1 then | |
| hit=true | |
| end | |
| end | |
| if hit==true then | |
| if i==0 then | |
| finaldy=-self.dy | |
| end | |
| finaldy=i | |
| break | |
| end | |
| end | |
| local newy=self.y+finaldy | |
| self.x=newx | |
| self.y=newy | |
| self.dx=self.dx*self.dcc | |
| self.dy=self.dy*self.dcc | |
| end | |
| obj.body=body | |
| end | |
| ------------------------------- | |
| --------- game state ---------- | |
| ------------------------------- | |
| -- each state has init, | |
| -- update, draw funcs | |
| ------------------------------- | |
| gstate={ current="" } | |
| function gstate:add(name, s) | |
| self[name]=s | |
| end | |
| function gstate:switch(n) | |
| self.current=n | |
| self[n]:init() | |
| end | |
| function gstate:update() | |
| self[self.current]:update() | |
| end | |
| function gstate:draw() | |
| self[self.current]:draw() | |
| end | |
| -------------------------------- | |
| -------- screen shake ---------- | |
| -------------------------------- | |
| screenshake={ | |
| duration=0, | |
| intensity=2 | |
| } | |
| function screenshake:start(d,i) | |
| self.duration=d | |
| if i!=nil then | |
| self.intensity=i | |
| end | |
| end | |
| function screenshake:update() | |
| if self.duration>0 then | |
| camera( | |
| flr(rnd(self.intensity)), | |
| flr(rnd(self.intensity)) | |
| ) | |
| self.duration-=1 | |
| end | |
| if self.duration==0 then | |
| camera(0,0) | |
| end | |
| end | |
| ------------------------------- | |
| -------- 2d vector ----------- | |
| ------------------------------- | |
| vec2d = {} | |
| function vec2d:new(x,y) | |
| o={x=x,y=y} | |
| self.__index=self | |
| return setmetatable(o, self) | |
| end | |
| function vec2d:len() | |
| return sqrt(self.x^2+self.y^2) | |
| end | |
| function vec2d:norm() | |
| local l = self:len() | |
| return vec2d:new( | |
| self.x/l, | |
| self.y/l) | |
| end | |
| function vec2d:minus(vec) | |
| return vec2d:new( | |
| self.x-vec.x, | |
| self.y-vec.y | |
| ) | |
| end | |
| function sqr(a) | |
| return a*a | |
| end | |
| function round(a) | |
| return flr(a+0.5) | |
| end | |
| function dist(x1,y1,x2,y2) | |
| local dx=x1-x2 | |
| local dy=y1-y2 | |
| return dx*dx + dy*dy | |
| end | |
| -->8 | |
| -- main functions | |
| function _init() | |
| gstate:add("menu",gs_menu) | |
| gstate:add("game",gs_main) | |
| gstate:add("over",gs_over) | |
| gstate:add("inst",gs_instruct) | |
| gstate:switch("menu") | |
| end | |
| function _update() | |
| gstate:update() | |
| screenshake:update() | |
| end | |
| function _draw() | |
| gstate:draw() | |
| end | |
| -->8 | |
| -- game | |
| gs_main={} | |
| function gs_main:init() | |
| music(-1) | |
| tick=0 | |
| ready_t=30 | |
| go_t=12 | |
| gameover_t=60 | |
| actors={} | |
| balls={} | |
| cur_ball=1 | |
| stam=100 | |
| gameover=false | |
| init_guy() | |
| init_dog() | |
| add(balls,init_ball(5)) | |
| add(balls,init_ball(6)) | |
| add(balls,init_ball(7)) | |
| countdown=10 | |
| drop_cherry() | |
| end | |
| function gs_main:update() | |
| tick+=1 | |
| if ready_t>0 then | |
| ready_t-=1 | |
| return | |
| elseif ready_t==0 then | |
| music(8) | |
| ready_t=-1 | |
| end | |
| if go_t>0 then | |
| go_t-=1 | |
| end | |
| if gameover==true then | |
| music(-1) | |
| if gameover_t>0 then | |
| gameover_t-=1 | |
| end | |
| if gameover_t==0 then | |
| gstate:switch("over") | |
| end | |
| end | |
| for k,v in pairs(actors) do | |
| v:update() | |
| end | |
| if stam>0 then | |
| local cherry_wait=90 | |
| stam-=0.15 | |
| for i=1,tick,300 do | |
| stam-=0.05 | |
| cherry_wait=max(30, | |
| cherry_wait-5) | |
| end | |
| if tick%cherry_wait==0 then | |
| drop_cherry() | |
| end | |
| else | |
| if gameover==false then | |
| sfx(35) | |
| gameover=true | |
| end | |
| end | |
| -- swap the current ball | |
| if btnp(🅾️) then | |
| cur_ball=cur_ball-1 | |
| if cur_ball<1 then | |
| cur_ball=3 | |
| end | |
| add_exclamation() | |
| elseif btnp(❎) then | |
| cur_ball=cur_ball+1 | |
| if cur_ball>3 then | |
| cur_ball=1 | |
| end | |
| add_exclamation() | |
| end | |
| end | |
| function draw_ball_ui() | |
| ---- yellow | |
| spr(42,4,111) spr(43,12,111) | |
| spr(58,4,119) spr(59,12,119) | |
| ---- blue | |
| spr(44,24,111) spr(45,32,111) | |
| spr(60,24,119) spr(61,32,119) | |
| ---- red | |
| spr(46,44,111) spr(47,52,111) | |
| spr(62,44,119) spr(63,52,119) | |
| --- selected ball | |
| local x=(cur_ball-1)*20 | |
| rect(3+x,110,20+x,127,7) | |
| end | |
| function gs_main:draw() | |
| -- map and actors | |
| cls(0) | |
| map(0,0,0,0,17,19) | |
| for k,v in pairs(actors) do | |
| v:draw() | |
| end | |
| -- print the bottom fence for | |
| -- some easy depth! | |
| map(21,0,4,100,18,1) | |
| draw_ball_ui() | |
| --- stamina | |
| local sc=8 | |
| if (stam>20) sc=9 | |
| if (stam>40) sc=10 | |
| if (stam>60) sc=11 | |
| circfill(116,116,stam/7,sc) | |
| circ(116,116,stam/7,7) | |
| -- ready and go messages | |
| if ready_t>0 then | |
| rectfill(52,62,80,70,1) | |
| print("ready?",55,64,7) | |
| elseif go_t>0 then | |
| rectfill(58,62,73,70,1) | |
| print("go!",61,64,7) | |
| end | |
| end | |
| -->8 | |
| -- guy | |
| function init_guy() | |
| guy=actor:new(true) | |
| animate(guy) | |
| guy.anim:add("skid_down", | |
| {{1,0,-4}}, | |
| 100) | |
| guy.anim:add("skid_up", | |
| {{3,0,-4}}, | |
| 100) | |
| guy.anim:add("fly_down", | |
| {{2,0,-4}}, | |
| 100) | |
| guy.anim:add("fly_up", | |
| {{4,0,-4}}, | |
| 100) | |
| guy.anim:set("skid_down") | |
| materialize(guy,{ | |
| x=64,y=64, | |
| max_dx=100,max_dy=100, | |
| acc=0, dcc=1, | |
| w=6,h=4}) | |
| guy.springs={} | |
| function guy:update() | |
| local influence=0.1 | |
| -- update spring physics | |
| --- x | |
| if gameover then | |
| self.body.dx/=1.1 | |
| self.body.dy/=1.1 | |
| else | |
| local ex=0 | |
| if btn(➡️) then | |
| ex=influence | |
| elseif btn(⬅️) then | |
| ex-=influence | |
| end | |
| self.springs.x.c=self.body.x | |
| self.springs.x.t=dog.body.x | |
| self.body.dx= | |
| self.springs.x:update(ex) | |
| --- y | |
| local ey=0 | |
| if btn(⬆️) then | |
| ey-=influence | |
| elseif btn(⬇️) then | |
| ey+=influence | |
| end | |
| self.springs.y.c=self.body.y | |
| self.springs.y.t=dog.body.y | |
| self.body.dy= | |
| self.springs.y:update(ey) | |
| end | |
| self.body:update() | |
| -- animations | |
| self.anim.flip=self.body.dx<0 | |
| local absdx=abs(self.body.dx) | |
| local absdy=abs(self.body.dy) | |
| local thresh=1.4 | |
| if gameover then | |
| self.anim:set("fly_down") | |
| else | |
| if self.body.dy<0 then | |
| if absdx>thresh or absdy>thresh then | |
| self.anim:set("fly_up") | |
| else | |
| self.anim:set("skid_up") | |
| end | |
| else | |
| if absdx>thresh or absdy>thresh then | |
| self.anim:set("fly_down") | |
| else | |
| self.anim:set("skid_down") | |
| end | |
| end | |
| if absdx>(thresh*1.7) or | |
| absdy>(thresh*1.7) then | |
| screenshake:start(10,2) | |
| end | |
| end | |
| self.anim:update() | |
| -- dust cloud particles | |
| if absdx>1 or absdy>1 then | |
| local x=self.body.x+4 | |
| local y=self.body.y+4 | |
| local state=self.anim.state | |
| if state=="fly_down" or | |
| state=="fly_up" then | |
| if self.body.dx>0 then | |
| x-=3 | |
| else | |
| x+=3 | |
| end | |
| y-=2 | |
| end | |
| add_cloud(x,y,1,7) | |
| end | |
| for k,c in pairs(clouds) do | |
| c:update() | |
| end | |
| end | |
| function guy:draw() | |
| for k,c in pairs(clouds) do | |
| c:draw() | |
| end | |
| self.anim:draw( | |
| self.body.x, | |
| self.body.y) | |
| -- leash | |
| if not gameover then | |
| line( | |
| self.body.x+4, self.body.y, | |
| dog.body.x+4, dog.body.y+4, | |
| 0) | |
| end | |
| end | |
| end | |
| -->8 | |
| -- dog | |
| function init_dog() | |
| dog=actor:new(true) | |
| -- animations | |
| animate(dog) | |
| dog.anim:add("idle", | |
| {{8,0,0}}, | |
| 100) | |
| dog.anim:add("run_yellow", | |
| {{8,0,0}, | |
| {9,0,-1}}, | |
| 4) | |
| dog.anim:add("run_blue", | |
| {{10,0,0}, | |
| {11,0,-1}}, | |
| 4) | |
| dog.anim:add("run_red", | |
| {{12,0,0}, | |
| {13,0,-1}}, | |
| 4) | |
| dog.anim:set("idle") | |
| -- physics | |
| materialize(dog,{ | |
| x=64,y=64, | |
| max_dx=7,max_dy=7, | |
| acc=0.5, dcc=0.7, | |
| w=8,h=8}) | |
| --- give random position | |
| dog.body.x=guy.body.x-10 | |
| dog.body.y=guy.body.y-10 | |
| --- set springs guy->dog | |
| guy.springs={ | |
| x=create_spring( | |
| guy.body.sx, | |
| dog.body.x,1), | |
| y=create_spring( | |
| guy.body.sy, | |
| dog.body.y,1)} | |
| function dog:update() | |
| -- animations | |
| if abs(self.body.dx)==0 and | |
| abs(self.body.dy)==0 then | |
| self.anim:set("idle") | |
| elseif cur_ball==1 then | |
| self.anim:set("run_yellow") | |
| elseif cur_ball==2 then | |
| self.anim:set("run_blue") | |
| elseif cur_ball==3 then | |
| self.anim:set("run_red") | |
| end | |
| self.anim.flip=self.body.dx<0 | |
| -- physics | |
| self.anim:update() | |
| ball=balls[cur_ball] | |
| local d=vec2d:new( | |
| ball.body.x-self.body.x, | |
| ball.body.y-self.body.y | |
| ):norm() | |
| self.body:push( | |
| d.x, | |
| d.y) | |
| self.body:update() | |
| d=dist( | |
| self.body.x,self.body.y, | |
| ball.body.x,ball.body.y) | |
| if d<5 then | |
| -- kick the ball towards the | |
| -- center, with some random | |
| rnd_x=32+rnd(64) | |
| rnd_y=32+rnd(64) | |
| local bd=vec2d:new( | |
| rnd_x-ball.body.x, | |
| rnd_y-ball.body.y | |
| ):norm() | |
| ball.body:push( | |
| bd.x*(rnd(5)+5), | |
| bd.y*(rnd(5)+5) | |
| ) | |
| end | |
| end | |
| function dog:draw() | |
| self.anim:draw( | |
| self.body.x, | |
| self.body.y) | |
| end | |
| return dog | |
| end | |
| -->8 | |
| -- springs | |
| -- create a spring solver which | |
| -- tweens numbers | |
| function create_spring(start,target,mult,speed,k,d) | |
| local spring = {} | |
| --set variables for spring | |
| spring.c=start | |
| spring.s=speed or 0 | |
| spring.t=target | |
| spring.k=k or 0.006 | |
| spring.d=d or 0.07 | |
| -- update spring current value | |
| function spring:update(extra_f) | |
| -- work out distance between | |
| -- numbers | |
| local x=spring.t-spring.c | |
| -- use hookes law to find the | |
| -- force the spring exerts | |
| local f=spring.k*x+extra_f | |
| -- change spring speed based | |
| -- on distance and force | |
| spring.s=(spring.s*(1-spring.d))+f | |
| return spring.s | |
| end | |
| return spring | |
| end | |
| -->8 | |
| -- items | |
| function init_ball(s) | |
| local ball=actor:new(true) | |
| animate(ball) | |
| ball.anim:add( | |
| "idle",{{s,0,0}},100) | |
| ball.anim:set("idle") | |
| materialize(ball, { | |
| x=rnd(100)+10,y=rnd(80)+10, | |
| max_dx=100,max_dy=100, | |
| acc=0.5, dcc=0.94, | |
| w=8,h=8}) | |
| function ball:update() | |
| self.body:update() | |
| end | |
| function ball:draw() | |
| palt(11, true) | |
| palt(0,false) | |
| self.anim:draw( | |
| self.body.x, | |
| self.body.y) | |
| palt(11, false) | |
| palt(0,true) | |
| end | |
| return ball | |
| end | |
| function drop_cherry() | |
| local cherry=actor:new(true) | |
| animate(cherry) | |
| cherry.life=30*10 -- 10 secs | |
| cherry.anim:add("idle", | |
| {{14,0,0}, | |
| {14,0,-1}}, | |
| 10) | |
| cherry.anim:set("idle") | |
| materialize(cherry, { | |
| x=rnd(100)+10,y=rnd(80)+10, | |
| max_dx=100,max_dy=100, | |
| acc=0.5, dcc=0.94, | |
| w=8,h=8}) | |
| function cherry:update() | |
| self.life-=1 | |
| self.body:update() | |
| self.anim:update() | |
| contact=body_hit( | |
| self.body, | |
| guy.body) | |
| if contact then | |
| sfx(34) | |
| if t()>60 then | |
| stam=min(140,stam+30) | |
| elseif t()>30 then | |
| stam=min(130,stam+30) | |
| else | |
| stam=min(120,stam+25) | |
| end | |
| self:destroy() | |
| elseif self.life==0 then | |
| self:destroy() | |
| end | |
| end | |
| function cherry:draw() | |
| self.anim:draw( | |
| self.body.x, | |
| self.body.y) | |
| end | |
| return cherry | |
| end | |
| -- dont use actors list | |
| -- so we can draw the clouds | |
| -- befor the player | |
| clouds={} | |
| function add_cloud(x,y,r,c) | |
| local cloud=actor:new(false) | |
| cloud.x=x | |
| cloud.y=y | |
| cloud.r=r | |
| cloud.t=0 | |
| cloud.c=c | |
| function cloud:update() | |
| self.t+=1 | |
| if self.t==4 then | |
| self.r-=1 | |
| self.t=0 | |
| end | |
| if cloud.r<0 then | |
| clouds[self.id]=nil | |
| end | |
| end | |
| function cloud:draw() | |
| if self.r==0 then | |
| pset(self.x,self.y,c) | |
| else | |
| circfill( | |
| self.x,self.y,self.r,c) | |
| end | |
| end | |
| clouds[cloud.id]=cloud | |
| end | |
| function add_exclamation() | |
| if exclam~=nil then | |
| exclam:destroy() | |
| end | |
| exclam=actor:new(true) | |
| exclam.x=dog.body.x | |
| exclam.y=dog.body.y-8 | |
| exclam.t=30 | |
| function exclam:update() | |
| self.x=dog.body.x | |
| self.y=dog.body.y-8 | |
| self.t-=1 | |
| if self.t==0 then | |
| self:destroy() | |
| exclam=nil | |
| end | |
| end | |
| function exclam:draw() | |
| if (cur_ball==1) s=16 | |
| if (cur_ball==2) s=17 | |
| if (cur_ball==3) s=18 | |
| palt(11, true) | |
| palt(0,false) | |
| spr(s,self.x,self.y) | |
| palt(0, true) | |
| palt(11,false) | |
| end | |
| end | |
| lines={} | |
| function add_line() | |
| local ln= actor:new(false) | |
| ln.s=3+rnd(10) | |
| ln.x=130 | |
| ln.x2=ln.x-ln.s | |
| ln.y=20+rnd(40) | |
| function ln:update() | |
| ln.x=ln.x2 | |
| ln.x2=ln.x2-ln.s | |
| if ln.x<0 then | |
| lines[ln.id]=nil | |
| end | |
| end | |
| function ln:draw() | |
| line(self.x,self.y, | |
| self.x2, self.y,13) | |
| end | |
| lines[ln.id]=ln | |
| end | |
| -->8 | |
| -- main menu | |
| gs_menu={} | |
| -- quartic easing out - decelerating to zero velocity | |
| function ease_out_quartic(t,b,c,d) | |
| t/=d | |
| t-=1 | |
| return -c*(t*t*t*t-1)+b | |
| end | |
| function gs_menu:init() | |
| title={ | |
| t=0,x=42, | |
| oy=0,y=0,dy=32,dur=30} | |
| clouds={} | |
| tick=0 | |
| sel=1 | |
| flash_dur=2 | |
| trans=false | |
| music(0) | |
| end | |
| function gs_menu:update() | |
| tick+=1 | |
| if (flr(title.dur) > 0) then | |
| title.y=ease_out_quartic( | |
| title.t, | |
| title.oy, | |
| title.dy, | |
| title.dur) | |
| title.t+=1 | |
| if (title.t>=title.dur) then | |
| title.dur=0 | |
| end | |
| elseif flash_dur>0 then | |
| flash_dur-=1 | |
| screenshake:start(10,2) | |
| else | |
| if trans~=false then | |
| gstate:switch(trans) | |
| end | |
| if tick%1==0 and sel==0 then | |
| add_cloud( | |
| 48+rnd(2), | |
| (sel*10)+93+rnd(2),1,7) | |
| add_cloud( | |
| 74+rnd(2), | |
| (sel*10)+93+rnd(2),1,7) | |
| end | |
| if tick%1==0 and sel==1 then | |
| add_cloud( | |
| 35+rnd(2), | |
| (sel*10)+93+rnd(2),1,7) | |
| add_cloud( | |
| 90+rnd(2), | |
| (sel*10)+93+rnd(2),1,7) | |
| end | |
| for k,c in pairs(clouds) do | |
| c:update() | |
| end | |
| if btnp(⬆️) and sel==1 then | |
| sfx(36) | |
| sel=0 | |
| elseif btnp(⬇️) and sel==0 then | |
| sfx(36) | |
| sel=1 | |
| end | |
| if btnp(❎) then | |
| if sel==0 then | |
| clouds={} | |
| trans="game" | |
| flash_dur=2 | |
| elseif sel==1 then | |
| clouds={} | |
| trans="inst" | |
| flash_dur=2 | |
| end | |
| end | |
| -- speed lines | |
| if tick%3==0 then | |
| add_line() | |
| end | |
| for k,l in pairs(lines) do | |
| l:update() | |
| end | |
| end | |
| end | |
| function gs_menu:draw() | |
| cls(1) | |
| if title.dur==0 and | |
| flash_dur>0 then | |
| cls(7) | |
| elseif title.dur==0 and | |
| trans==false then | |
| for k,l in pairs(lines) do | |
| l:draw() | |
| end | |
| circfill(64,245,180,12) | |
| circfill(64,245,170,11) | |
| circfill(64,230,150,3) | |
| map(2,17,title.x-32, | |
| title.y-8 | |
| ,17,4) | |
| for k,c in pairs(clouds) do | |
| c:draw() | |
| end | |
| print("start",53,92,7) | |
| print("instructions",40,101,7) | |
| else | |
| map(6,18,title.x, | |
| title.y | |
| ,5,2) | |
| end | |
| end | |
| -->8 | |
| -- game over | |
| gs_over={} | |
| function gs_over:init() | |
| score=flr(t()) | |
| music(-1) | |
| end | |
| function gs_over:update() | |
| if btnp(❎) then | |
| sfx(36) | |
| gstate:switch("game") | |
| elseif btnp(🅾️) then | |
| sfx(36) | |
| gstate:switch("menu") | |
| end | |
| end | |
| function gs_over:draw() | |
| rectfill(32,32,96,96,1) | |
| print("game over",42,40,7) | |
| print("score: "..score,42,50,7) | |
| print("❎ to try again",34,62,7) | |
| print("🅾️ to menu",34,70,7) | |
| end | |
| -->8 | |
| -- instructions | |
| messages={ | |
| { | |
| "its ball time at the park.", | |
| "your pet corgi has entered", | |
| "'zoomies mode'.", | |
| "", | |
| "theres only one thing you", | |
| "can do.." | |
| }, | |
| {"hold on for dear life!"}, | |
| { | |
| "press ❎/🅾️ to move the", | |
| "dogs attention to another", | |
| "ball." | |
| }, | |
| { | |
| "⬆️/⬇️/⬅️/➡️ to drift", | |
| "", | |
| "eat fruit to regain your", | |
| "stamina!" | |
| } | |
| } | |
| gs_instruct={} | |
| function gs_instruct:init() | |
| actors={} | |
| balls={} | |
| cur_ball=1 | |
| stam=100 | |
| init_guy() | |
| init_dog() | |
| tick=0 | |
| add(balls,init_ball(5)) | |
| add(balls,init_ball(6)) | |
| add(balls,init_ball(7)) | |
| music(30) | |
| cur=1 | |
| end | |
| function gs_instruct:update() | |
| tick+=1 | |
| if btnp(❎) then | |
| sfx(37) | |
| cur+=1 | |
| end | |
| if cur>#messages then | |
| gstate:switch("menu") | |
| end | |
| if cur>3 then | |
| if ch==nil then | |
| ch=drop_cherry() | |
| ch.body.x=60 | |
| ch.body.y=70 | |
| end | |
| end | |
| if cur>2 then | |
| for i,a in pairs(actors) do | |
| a:update() | |
| end | |
| if tick%30==0 then | |
| cur_ball+=1 | |
| if cur_ball==4 then | |
| cur_ball=1 | |
| end | |
| add_exclamation() | |
| end | |
| balls[1].body.x=30 | |
| balls[1].body.y=90 | |
| balls[2].body.x=60 | |
| balls[2].body.y=50 | |
| balls[3].body.x=90 | |
| balls[3].body.y=90 | |
| end | |
| end | |
| function gs_instruct:draw() | |
| cls(1) | |
| for i,m in pairs(messages[cur]) do | |
| print(m,10, 10+(i*10),7) | |
| end | |
| print(cur.."/"..#messages,2,2,7) | |
| if cur>2 then | |
| for i,a in pairs(actors) do | |
| a:draw() | |
| end | |
| dog:draw() | |
| draw_ball_ui() | |
| end | |
| end | |
| __gfx__ | |
| 0000000000888800008888000888800000888800bbbbbbbbbbbbbbbbbbbbbbbb0000000000000000000000000000000000000000000000000000bbb000000000 | |
| 0000000088884800888848008888800008888800bbb00bbbbbb00bbbbbb00bbb000909000009090000090900000909000009090000090900000bb000bfeeeeef | |
| 0070070004ffff0004ffff00444ff0000444ff00bb0aa0bbbb0cc0bbbb0880bb00090900000909000009090000090900000909000009090000b0b000bf88888f | |
| 0007700000ffff00f0ffff000ffff00000ffff00b0aaaa0bb0cccc0bb088880b00099971000999710009997100099971000999720009997200b00b00bf82888f | |
| 00077000008880000c8880000888000002888200b09aa90bb01cc10bb028820b900aaa00900aaa00900ccc00900ccc0090088800900888000b000be0bf88828f | |
| 00700700088ff200fc88ff002888f000fcfc0000bb0990bbbb0110bbbb0220bb9999970099999700999997009999970099999700999997008ee0888ebbf8888f | |
| 0000000000ccc0000000000001cc000000000000bbb00bbbbbb00bbbbbb00bbb999999002999992099999900199999109999990029999920888028880bbffff0 | |
| 00000000000f0f000000000000f0f00000000000bbbbbbbbbbbbbbbbbbbbbbbb0920920000000000092092000000000009209200000000002880028000000000 | |
| b000000bb000000bb000000bfff000000ff000000ff00fff00000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| b0aaaa0bb0cccc0bb088880bfff00ff00ff00ff00ff00fff00000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| b0aaaa0bb0cccc0bb088880b44400ff004400ff00440044400000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| bb0aa0bbbb0cc0bbbb0880bb44455440044504455445544400000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| bb0990bbbb01c0bbbb0220bb44400445544054400440044400000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| bbb00bbbbbb00bbbbbb00bbbb4b55440044504455b455b4b00000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| bb09a0bbbb01c0bbbb0280bbbbbb04b55bb05b40bbb0bbbb00000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| bbb00bbbbbb00bbbbbb00bbb00000bbb00000bb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 33333333333333333333fff53ff33ff35fff33333333333333333333000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 33ee3333333333333333fff33ff33ff33fff3333333333333333333300000000000000000000000000000aa77770000000000cc7777000000000088777700000 | |
| 3e77e3333333333333334445344334435444333333333333333333330000000000000000000000000000aaaaaa7700000000cccccc7700000000888888770000 | |
| 33ee33e333333333333b4443544554453444b3333ff333333ff33333000000000000000000000000000aaaaaaaa77000000cccccccc770000008888888877000 | |
| 33313e7e33333333333bff433443344334ffb3333ff33ff33ff33ff300000000000000000000000000777aaaaaa7770000777cccccc777000077788888877700 | |
| 333331e3333333333333ffb354455b453bff333334433ff334433ff300000000000000000000000009aaa7aaaa7aaa7001ccc7cccc7ccc700288878888788870 | |
| 3333333333333333333344b33bb33bb33b443333344534433445344500000000000000000000000009aaaa7aa7aaaa7001cccc7cc7cccc700288887887888870 | |
| 3333333333333333333355b3333333333b553333544354455443544300000000000000000000000009aaaa7aa7aaaaa001cccc7cc7ccccc00288887887888880 | |
| 333333333333333333333ff3333333333ff333333445344334453445000000000000000000000000099aaa7aa7aaaaa0011ccc7cc7ccccc00228887887888880 | |
| 33333333333333b333333ff3333333333ff333335bb35b455bb35b43000000000000000000000000099aaa7aa7aaaaa0011ccc7cc7ccccc00228887887888880 | |
| 33333bb33bb33bb33333344b33333333b443333333333bb333333bb30000000000000000000000000999aa7aa7aaaaa00111cc7cc7ccccc00222887887888880 | |
| bbb3bb3333bb3b333333354b33333333b45333333333333333333333000000000000000000000000009997aaaa7aaa00001117cccc7ccc000022278888788800 | |
| 3bbb3333333b33333333ff533333333335ff33333333333333333333000000000000000000000000000669aaaaa77000000dd1ccccc77000000dd28888877000 | |
| 3333333333333bb33333ffb3333333333bff33333333333333333333000000000000000000000000000099999999000000001111111100000000222222220000 | |
| 33333333333333b3333344b3333333333b4433333333333333333333000000000000000000000000000009999990000000000111111000000000022222200000 | |
| 3333333333333333333355b3333333333b5533333333333333333333000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000066666000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000007777000000000000000000000000000000600000600000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000007777000000000000000000000000000006000000600000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000770000000000000000000000000000006000000600000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000770000000000000000000000000000006000000606566666000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000005000000650000000666600000000000000000009009000000000000000000 | |
| 0000000000000000000000000000000000077000000000000000000000000000000050000650000000000006600000000000000000900900000000000aa00000 | |
| 000000000000000000000000000000000000000000000000000000000000000000066666600000000000000006600000000000000097097000000000aaaa0000 | |
| 0000000000000000000000000000000008888888000000000000000000000000000000000000000000000000000660000000000000979999900000009aa90000 | |
| 00000000000000000000000000000000088888888000000008808080880088808800008880888088000880800000066660000000009999199000000009900000 | |
| 00000000000000000000000000000088888888848000000080008080808080008080008000808080808000000000000006660000009999999755000000000000 | |
| 00000000000000000000000000000888888888448000000008008080888088008800008000808088008080800000000000006660000999977755000000000000 | |
| 00000000000000000000000000000000044ffffff000000000808080800080008080008000808080808080800000007000000006668887777770000000000000 | |
| 00000000000000000000000000000000044ffffff000000088008800800088808080008880888080800880800000007779990000099888800000000000000000 | |
| 00000000000000000000000ff000000004fffffff0000000777700777770777077777077777077777077777077000077999999999999788aa000000000000000 | |
| 0000000000000000000000ffccccc00004fffffff0000000766670766670676076666066766076666076667077000007999999999999777aa000000000000000 | |
| 00000000000000000000000fccccccc882ffffff0000000070007070007007007000000070007000007000707700000999999999999977700770000000000000 | |
| 00000000000000000000000000000cc88888f88888800000700070700070070070000000700070000070007077000009999999999999777667e0000000000000 | |
| 0000000000000000000000ffccccccc8888888888888000070007077770007007777000070007777007777007700009999977779999777777770000000000000 | |
| 0000000000000000000000ffcccccc88888800000ff800007000707666700700766600007000766600766670660077999944000777700077e000000000000000 | |
| 0000000000000000000000ff0000000088888888fff0000070007070007007007000000070007000007000700000779944000000000000777000000000000000 | |
| 0000000000000000000000000000000000088888ff60000070007070007007007000000070007000007000707700000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000006000077776070007077707000000070007777707000707700000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000600066660060006066606000000060006666606000606600000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000060000000000000600000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000006600000000066000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000065655565600000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000880808088008880880000888088808800088080000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000008000808080808000808000800080808080800000000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000800808088808800880000800080808800808080000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000000080808080008000808000800080808080808080000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000008800880080008880808000888088808080088080000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007777007777707770777770777770777770777770770000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007ccc707ccc70c7c07cccc0cc7cc07cccc07ccc70770000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007000707000700700700000007000700000700070770000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007000707000700700700000007000700000700070770000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007000707777000700777700007000777700777700770000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007000707ccc7007007ccc000070007ccc007ccc70cc0000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007000707000700700700000007000700000700070000000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007000707000700700700000007000700000700070770000000000000000000000000000000000000000000000 | |
| 00000000000000000000000000000000000000007777c07000707770700000007000777770700070770000000000000000000000000000000000000000000000 | |
| 0000000000000000000000000000000000000000cccc00c000c0ccc0c0000000c000ccccc0c000c0cc0000000000000000000000000000000000000000000000 | |
| __label__ | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111166666111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111117777111111111111111111111111111111611111611111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111117777111111111111111111111111111116111111611111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111771111111111111111111111111111116111111611111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111771111111111111111111111111111116111111616566666111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111115111111651111111666611111111111111111119119111111111111111111111111 | |
| 1111111111111111111111111111177111111111111111111111111111111151111651111111111116611111111111111111911911111111111aa11111111111 | |
| 111111111111111111111111111111111111111111111111111111111111166666611111111111111116611111111111111197197111111111aaaa1111111111 | |
| 1111111111111111111111111118888888111111111111111111111111111111111111111111111111111661111111111111979999911111119aa91111111111 | |
| 11111111111111111111111111188888888111111118818181881188818811118881888188111881811111166661111111119999199111111119911111111111 | |
| 11111111111111111111111188888888848111111181118181818181118181118111818181818111111111111116661111119999999755111111111111111111 | |
| 11111111111111111111111888888888448111111118118181888188118811118111818188118181811111111111116661111999977755111111111111111111 | |
| 11111111111111111111111111144ffffff111111111818181811181118181118111818181818181811111117111111116668887777771111111111111111111 | |
| 11111111111111111111111111144ffffff111111188118811811188818181118881888181811881811111117779991111199888811111111111111111111111 | |
| 11111111111111111ff111111114fffffff1111111777711777771777177777177777177777177777177111177999999999999788aa111111111111111111111 | |
| 1111111111111111ffccccc11114fffffff1111111766671766671676176666166766176666176667d77111117999999999999777aa111111111111111111111 | |
| 11111111111111111fccccccc882ffffff1111111171117171117117117111111171117111117111717711111999999999999977711771111111111111111111 | |
| 11111111111111111111111cc88888f88888811111711171711171171171111111711171111171117177111119999999999999777667e1111111111111111111 | |
| 1111111111111111ffccccccc8888888888888111171117177771117117777111171117777dd7777dd7711119999977779999777777771111111111111111111 | |
| 1111111111111111ffcccccc88888811111ff8111171117176667117117666111171dd766611766671661177999944111777711177e111111111111111111111 | |
| 1111111111111111ff1111111188888888fff1111171117171117dd7dd7dd1111171117111117111711111779944111111111111777111111111111111111111 | |
| 1111111111111111111111111111188888ff61111171117171117117117111111171117111117111717711111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111116111177776171117177717111111171117777717111717711111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111611166661161116166616111111161116666616111616611111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111161111111111111611111111111111111111111111111111111111111111111111111111111111111111111111 | |
| ddd11111111111111111111111111111111111116611111111166111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111165655565611111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111dddddd11 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | |
| 111111111111111111111111111111111111111111111111111ccccccccccccccccccccccccccc11111111111111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111111111ccccccccccccccccccccccccccccccccccccccccccccccc1111111111111111111111111111111111111111 | |
| 11111111111111111111111111111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc1111111111111111111111111111111111 | |
| 11111111111111111111111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc1111111111111111111111111111 | |
| 1111111111111111111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc111111111111111111111111 | |
| 11111111111111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc1111111111111111111 | |
| 11111111111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc1111111111111111 | |
| 1111111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc111111111111 | |
| 1111111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc111111111 | |
| 1111111ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc111111 | |
| 1111cccccccccccccccccccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccc111 | |
| 1cccccccccccccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccc | |
| cccccccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccc | |
| ccccccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccc | |
| ccccccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccc | |
| ccccccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb3333333333333333333333333bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccc | |
| ccccccccccccccccccbbbbbbbbbbbbbbbbbbbbbbbbb3333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccc | |
| cccccccccccccccbbbbbbbbbbbbbbbbbbbbbb3333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbbbcccccccccccccc | |
| cccccccccccbbbbbbbbbbbbbbbbbbbbb33333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbbcccccccccc | |
| ccccccccbbbbbbbbbbbbbbbbbbbb3333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbbbccccccc | |
| ccccccbbbbbbbbbbbbbbbbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbccccc | |
| cccbbbbbbbbbbbbbbbbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbbbcc | |
| cbbbbbbbbbbbbbbbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbbbbb | |
| bbbbbbbbbbbbbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbbbbb | |
| bbbbbbbbbbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbbbbb | |
| bbbbbbbbb333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbbbb | |
| bbbbbbb3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333bbbbbb | |
| bbbbb33333333333333333333333333333333333333333333333337737773777377737773333333333333333333333333333333333333333333333333333bbbb | |
| bb33333333333333333333333333333333333333333333333333373333733737373733733333333333333333333333333333333333333333333333333333333b | |
| 33333333333333333333333333333333333333333333333333333777337337773773337333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333337337337373737337333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333773337337373737337333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333337773773337737773777373733773777377733773773337733333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333773333733737373333733737373737333373337337373737373333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333337777333733737377733733773373737333373337337373737377733377333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333777333733737333733733737373737333373337337373737333733777733333333333333333333333333333333333 | |
| 33333333333333333333333333333333333373337773737377333733737337733773373377737733737377333377333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 | |
| __gff__ | |
| 0000000000000000000000000000000000000001010100000000000000000000000101010101010000000000000000000000010001000000000000000000000000000000000000000000000000000000000000000000010101000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 0000000000000000000000000000000000000000000101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| __map__ | |
| 2125252525252525252525252525252121210000001314141414141414141414141414150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2235353535353535353535353535352421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233312033333333333333333033333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233203333333333333333302031333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333330333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333333333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333333333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333333333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333333333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333333333421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3233333333333333333333333333303421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3231303333333333333333333333313421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3220333333333333333333333333303421210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2121212121212121212121212121212121210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2121212121212121212121212121212121210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2121212121212121212121212121212121210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 000000434445464748494a4b4c4d4e4f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 000052535455565758595a5b5c5d5e5f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 000062636465666768696a6b6c6d6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 000000737475767778797a7b7c7d7e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| __sfx__ | |
| 000400000061001610026100261003610036100461006610086100861009610096100a6100d6100e61011610136101461016610186101a6101d6102061023610276102a6102c6102e61030620316303164031640 | |
| 010400000c057180570f0571b057110571d057130571f05714057200571b057270571d057290571f0572b05718057240571b057270571d057290571f0572b057200572c057270573305729057350572b05737057 | |
| 01040000241550000027155000002b1550000030155000002b155000002715500000241550000027155000002b1550000030155000002b155000002715500000241550000027155000002b155000003015500000 | |
| 010a00003f6153f6053f6153f61527655000003f6153f6153f615000003f6153f61527655000003f6153f6153f615000003f6153f61527655000003f6153f6153f615000003f6153f61527655000003f6153f615 | |
| 010a00200c2300c2350c2350c2350c2300c2350c2350c2350c2300c2350c2350c2350c2300c2350c2350c2350c2300c2350c2350c2350c2300c2350c2350c2350c2300c2350c2350c2350c2300c2350c2350c235 | |
| 010a00200a2300a2350a2350a2350a2300a2350a2350a2350a2300a2350a2350a2350a2300a2350a2350a2350a2300a2350a2350a2350a2300a2350a2350a2350a2300a2350a2350a2350a2300a2350a2350a235 | |
| 010a0000132301323513230132350f2300f235132301323513230132350f2300f23511230112350e2300e235132301323513230132350f2300f235132301323513230132350f2300f23511230112350e2300e235 | |
| 010a00001123011235112301123516230162351123011235112301123511230112350f2300f2350f2300f2351123011235112301123516230162351123011235112301123511230112350f2300f2350f2300f235 | |
| 010a00000823008235082350823508230082350823508235082300823508235082350823008235082350823508230082350823508235082300823508235082350823008235082350823508230082350823508235 | |
| 010a00000f2300f2350f2300f2350c2300c2350f2300f2350f2300f2350c2300c2350e2300e2350a2300a2350f2300f2350f2300f2350c2300c2350f2300f2350f2300f2350c2300c2350e2300e2351123005235 | |
| 010a00002722027225272202722524220242252722027225272202722524220242252622026225222202222527220272252722027225242202422527220272252722027225242202422529220292252622026225 | |
| 010a00002622026225262202622527220272252622026225262202622526220262252422024225262222622226220262252622026225272202722526220262252622026225262202622524220242252622026225 | |
| 010a00002422024225242202422527220272252722027225262202622526220262252222022225222202222524220242252422024225242202422524220242252422024225242202422524220242252422024225 | |
| 010a00002422024225242202422527220272252722027225262202622526220262252e2202e2252e2202e2253022030225302203022533220332253322033225322203222532220322253a2203a2253a2203a225 | |
| 010a00003005430050300523005230042300323002230012300153000030000300003305433050320503205035050350563305633056330573305737051370523805238052370523704238032380223701237015 | |
| 010a00002b0542b05500000240502b05230050300523005230052300423003230022300123001530050300502e0502e0502905029050260502605000000000002b0502b035000002b05224042240322403224035 | |
| 010a00002705427055000000000029050290512705127052260522605000000000002405024051220512205024052240522404224042240322402224012240150000000000000000000000000000000000000000 | |
| 010a00002b0542b05500000240502b0523005030052300523005230042300323002230012300153205532050330553305032055320502e0502e0552b0502b0522b0522b0422b0322b0222b0122b0150000000000 | |
| 010a00002c0552c0502e0502e05530050300503305033050320553205730057300572e0502e050300503005230052300423004230032300323002230015000000000000000000000000000000000000000000000 | |
| 010a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240002400026000240502605027050290502b050 | |
| 010a00002c0552c0252705527025300553002527055270252c0552c0252705527025300553002527055270252c0552c0252705527025300553002527055270253305533025270552702530055300252705527025 | |
| 010a00002e0552e0252905529025320553202526055260252e0552e0252905529025320553202529055290252e0552e0252905529025320553202526055260252e0552e02529055290252c0552c0252b0552b025 | |
| 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 010a00203773537725377153773537725377153773537725377153773537725377153773537715377353771537735377253771537735377253771537735377253771537735377253771537735377153773537715 | |
| 010a0000337353372533715337353372533715337353372535735357253571535735357253571535735357253c7353c7253c7153c7353c7253c7153c7353c7253c7353c7253c7153c7353c7353c7153c7353c715 | |
| 010a00003c7353c7253c7153c7353c7253c7153c7353c7253c7353c7253c7153c7353c7353c7153c7353c7153c7353c7253c7153c7353c7253c7153c7353c7253c7353c7253c7153c7353c7353c7153c7353c715 | |
| 010a00003873538725387153873538725387153873538725387353872538715387353873538715387353871538735387253871538735387253871538735387253873538725387153873538735387153873538715 | |
| 010a00003a7353a7253a7153a7353a7253a7153a7353a7253a7353a7253a7153a7353a7353a7153a7353a7153a7353a7253a7153a7353a7253a7153a7353a7253a7353a7253a7153a7353a7353a7153a7353a715 | |
| 010a00003073530725307153073530725307153073530725307353072530715307353073530715307353071530735307253071530735307253071530735307253073530725307153073530735307153073530715 | |
| 010a00003273532725327153273532725327153273532725327353272532715327353273532715327353271532735327253271532735327253271532735327253273532725327153273532735327153273532715 | |
| 010a00003373533725337153373533725337153373533725337353372533715337353373533715337353371535735357253571535735357253571535735357253573535725357153573535735357153573535715 | |
| 010a000008230082350823508235082300823508235082350a2300a2350a2350a2350a2300a2350a2350a23505230052350523505235052300523505235052350523005235052350523505230052350523505235 | |
| 010a00000523005235052350523505230052350523505235052300523505235052350523005235052350523505230052350523505235052300523505235052350523005235052350523505230052350523505235 | |
| 01090000305503c555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 000700003e620346202d6202a6102861022610206101e6101d6101c6101a610186101761016610166101b6001a600196001960018600186001760016600000000000014600126001160000000000000000000000 | |
| 010400001b05025055000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 010400001f05429055000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 010a00003373533725337153373533725337153373533725337353372533715337353373533715337353371533735337253371533735337253371533735337253373533725337153373533735337153373533715 | |
| 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 010a0000336253c7353c7153f615276553c7353f6103f615336243c7353f6153f6153c7353c7153f6153f615336253c7353c7153f615276553c7353f6103f615336243c7353c7153f615276553c7353f6103f615 | |
| __music__ | |
| 00 00010244 | |
| 01 0304060a | |
| 00 0304060a | |
| 00 0305070b | |
| 00 0305070b | |
| 00 0308090c | |
| 02 0308090d | |
| 00 41424344 | |
| 00 03048384 | |
| 01 03041844 | |
| 00 0304180f | |
| 00 03041810 | |
| 00 03041811 | |
| 00 03201912 | |
| 00 03211a13 | |
| 00 03081d14 | |
| 00 03051e15 | |
| 00 03081c14 | |
| 00 03051e15 | |
| 00 03081f14 | |
| 00 03051e15 | |
| 00 03051e15 | |
| 00 2804060a | |
| 00 2804060a | |
| 00 2805070b | |
| 00 2805070b | |
| 00 2808090c | |
| 00 2808090d | |
| 02 03041844 | |
| 00 41424344 | |
| 01 04184344 | |
| 00 041f4344 | |
| 00 051c4344 | |
| 02 051e4344 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment