local arcade_config = require("arcade_config")
o2aX = arcade_config.org2arc_escala
cxr = arcade_config.character_per_row-1
cxr2 = arcade_config.character_per_row_base2
cw = arcade_config.character_width
ch = arcade_config.character_height
bambolla_gif_col = 7
bambolla_gif_row = 1

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
        -- draw.surf(112,16,16,16,bambolla.x,bambolla.y,16,16)
		draw.surf(bambolla_gif_col*cw,bambolla_gif_row*ch,cw,ch,bambolla.x*o2aX,bambolla.y*o2aX,cw,ch)
    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 = math.random(0,bambolla.counter-1)
            --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-math.abs(math.sin(bambolla.x*0.1))*24
        if bambolla.hab==abad.hab and bambolla.y>25.2 then
            sound.play(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
                sound.play(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()
    draw.circf( (bambolla.cx-bambolla.dx)*o2aX, bambolla.y*o2aX, 1, 6)
    draw.circf( (bambolla.cx+bambolla.dx)*o2aX, bambolla.y*o2aX, 2, 16)
    draw.circf( (bambolla.cx+bambolla.dx)*o2aX, bambolla.y*o2aX, 1, 6)
    draw.circf( (bambolla.cx-bambolla.dx)*o2aX, bambolla.y*o2aX, 2, 16)
    draw.circf( (bambolla.cx-(bambolla.dx/2))*o2aX, (bambolla.y-4)*o2aX, 2, 16)
    draw.circf( (bambolla.cx-(bambolla.dx/2))*o2aX, (bambolla.y-4)*o2aX, 1, 6)
    draw.circf( (bambolla.cx+(bambolla.dx/2))*o2aX, (bambolla.y-4)*o2aX, 2, 16)
    draw.circf( (bambolla.cx+(bambolla.dx/2))*o2aX, (bambolla.y-4)*o2aX, 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