Files
cacaus/bambolla.lua
JailDoctor 02ad5addad - [NEW] Sound everywhere
- Game logic extracted to game.lua
2022-12-28 12:25:45 +01:00

135 lines
4.1 KiB
Lua

bambolla={hab=75,x=24,y=24,cx=0,dx=0,dy=0,flip=true,enabled=false,counter=800,wait=0,bb={x=4,y=4,w=8,h=8}}
function bambolla.reset()
bambolla.hit=bambolla.hit
bambolla.update=bambolla.update_normal
bambolla.draw=bambolla.draw_normal
bambolla.hab=abad.hab
bambolla.enabled=false
bambolla.counter=800
end
function bambolla.init()
bambolla.enabled=false
bambolla.hit=bambolla.hit
bambolla.update=bambolla.update_normal
bambolla.draw=bambolla.draw_normal
bambolla.hab=abad.hab
if abad.x<40 then
if check_tile(bambolla.hab,92,38)<tiletype.half and
check_tile(bambolla.hab,84,38)<tiletype.half and
check_tile(bambolla.hab,92,30)<tiletype.half and
check_tile(bambolla.hab,84,30)<tiletype.half and
check_tile(bambolla.hab,92,46)>=tiletype.half then
bambolla.enabled=true
bambolla.flip=true
bambolla.x=92
else
bambolla.reset()
end
else
if check_tile(bambolla.hab,0,38)<tiletype.half and
check_tile(bambolla.hab,8,38)<tiletype.half and
check_tile(bambolla.hab,0,30)<tiletype.half and
check_tile(bambolla.hab,0,30)<tiletype.half and
check_tile(bambolla.hab,0,46)>=tiletype.half then
bambolla.enabled=true
bambolla.flip=false
bambolla.x=-12
else
bambolla.reset()
end
end
end
function bambolla.draw_normal()
if bambolla.enabled then
sspr(112,16,16,16,bambolla.x,bambolla.y,16,16)
end
end
function bambolla.hit()
end
function bambolla.update_normal()
bambolla.wait=bambolla.wait+1
if bambolla.wait==3 then
bambolla.wait=0
if not bambolla.enabled then
bambolla.counter=bambolla.counter-1
local r = rnd(bambolla.counter)
--print(r)
if bambolla.counter==1 or r==1 then
bambolla.init()
end
return
end
if bambolla.flip then
bambolla.x=bambolla.x-2
if bambolla.x<=-12 then
bambolla.reset()
end
else
bambolla.x=bambolla.x+2
if bambolla.x>=92 then
bambolla.reset()
end
end
bambolla.y=28-abs(sin(bambolla.x*0.1))*24
if bambolla.hab==abad.hab and bambolla.y>25.2 then
playchirp(audio_low)
end
if bambolla.hab==abad.hab then
if cacau.hab==bambolla.hab and aabb(bambolla,cacau) then
bambolla.update=bambolla.update_splash
bambolla.draw=bambolla.draw_splash
bambolla.cx=bambolla.x+8
bambolla.y=bambolla.y+8
bambolla.dx=0
bambolla.dy=-4
playchirp(audio_hit)
end
if aabb(bambolla,abad) then
abad_hurt(1)
bambolla.update=bambolla.update_splash
bambolla.draw=bambolla.draw_splash
bambolla.cx=bambolla.x+8
bambolla.y=bambolla.y+8
bambolla.dx=0
bambolla.dy=-4
end
end
end
end
bambolla.update=bambolla.update_normal
bambolla.draw=bambolla.draw_normal
function bambolla.draw_splash()
circfill(bambolla.cx+bambolla.dx,bambolla.y,2,16)
circfill(bambolla.cx+bambolla.dx,bambolla.y,1,6)
circfill(bambolla.cx-bambolla.dx,bambolla.y,2,16)
circfill(bambolla.cx-bambolla.dx,bambolla.y,1,6)
circfill(bambolla.cx-(bambolla.dx/2),bambolla.y-4,2,16)
circfill(bambolla.cx-(bambolla.dx/2),bambolla.y-4,1,6)
circfill(bambolla.cx+(bambolla.dx/2),bambolla.y-4,2,16)
circfill(bambolla.cx+(bambolla.dx/2),bambolla.y-4,1,6)
end
function bambolla.update_splash()
bambolla.wait=bambolla.wait+1
if bambolla.wait==3 then
bambolla.wait=0
bambolla.dx=bambolla.dx-2
bambolla.x=bambolla.cx+bambolla.dx
bambolla.y=bambolla.y+bambolla.dy
bambolla.dy=bambolla.dy+1
if bambolla.y>48 then
bambolla.reset()
end
end
end