diff --git a/data/abad.lua b/data/abad.lua index 4129d97..881eba7 100644 --- a/data/abad.lua +++ b/data/abad.lua @@ -62,7 +62,8 @@ function abad_init() anim={0,1,0,2}, bb={x=8,y=0,w=16,h=32}, safe={hab=10,x=40,y=24}, - move=abad.move } + move=abad.move, + mood="normal"} abad.update=abad_state_normal abad.objects={} end @@ -74,6 +75,25 @@ function abad:move( x, y ) self.hab = hab end +function abad_add_mood(abad_x, spr_off_x, abad_y, spr_off_y, flip, mood) + flip = flip or false + mood = mood or "normal" + + if flip then + abad_x = abad_x-15+4 + end + + if mood~="normal" then + if mood=="sorpresa" then + draw.surf(240,0,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip) + elseif mood=="enfadat" then + draw.surf(240,4,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip) + elseif mood=="interessant" then + draw.surf(240,8,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip) + end + end +end + function abad:draw() local flip = abad.flip local x, y = viewp:screen_coords(self.x, self.y) @@ -87,6 +107,10 @@ function abad:draw() end if (abad.respawning==0) or (math.floor(abad.respawning/15)%2==0) then draw.surf(abad.frame*abad.w,0,abad.w,abad.h,x,y,abad.w,abad.h,flip) + -- caminant, parat, disparant o saltant + if abad.frame<=3 or abad.frame==6 then + abad_add_mood(x,0,y,0,flip,abad.mood) + end end if abad.respawning > 0 then diff --git a/data/intro.lua b/data/intro.lua index bdc8700..66df359 100644 --- a/data/intro.lua +++ b/data/intro.lua @@ -19,9 +19,11 @@ function draw_escenari () draw_item_intro("pas porta") end -function draw_item_intro( name, flip ) +function draw_item_intro( name, flip, mood ) if ( name == "abad" ) then + -- abad.mood = mood or "normal" draw.surf(abad.x, abad.y, abad.w, abad.h, abad.dx, abad.dy, abad.dw, abad.dh, flip) + abad_add_mood(abad.dx,0,abad.dy,0,flip,mood) elseif (name == "batman" ) then draw.surf(batman.x, batman.y, batman.w, batman.h, batman.dx, batman.dy, batman.dw, batman.dh, flip) elseif (name == "cacaus" ) then @@ -73,7 +75,7 @@ function intro_update() -- STEP 0 if intro_step==0 then draw_escenari() - draw_item_intro("abad", true) + draw_item_intro("abad", false) view.origin(0,0) intro_step=intro_step+1 -- STEP 1 @@ -85,7 +87,7 @@ function intro_update() -- STEP 2 elseif intro_step==2 then draw_escenari() - draw_item_intro("abad", true) + draw_item_intro("abad", true, "sorpresa") draw_item_intro("cacaus trans", false) view.origin(0,0) intro_step=intro_step+1 diff --git a/data/main.lua b/data/main.lua index 857af47..a6dd8a6 100644 --- a/data/main.lua +++ b/data/main.lua @@ -87,7 +87,7 @@ function mini.init() surf.target(0) surf.cls(16) - flow:executar("game") + flow:executar("intro") end function mini.update() diff --git a/data/scenes.lua b/data/scenes.lua index d69f0bd..5a45285 100644 --- a/data/scenes.lua +++ b/data/scenes.lua @@ -4,7 +4,7 @@ o2aX = arcade_config.org2arc_escala avatar_abad_x = 6 -avatar_abad2_x = 8 +avatar_abad2_x = 6 avatar_abad_y = 0 avatar_batman_x = 8 avatar_batman_y = 96 @@ -12,11 +12,14 @@ avatar_premiere_x = 138 avatar_premiere_y = 40 avatar_elalien_x = 6 avatar_elalien_y = 32 -avatar_w = 20 -avatar_h = 20 +avatar_w = 22 +avatar_h = 21 +avatar_photo_w = avatar_w*2 +avatar_photo_h = avatar_h*2 avatar_imp_x = 134 avatar_imp_y = 96 +avatar_sf=surf.new(avatar_w, avatar_h) scenes={ lluita_imp= { @@ -26,10 +29,10 @@ scenes={ {x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Grwuuuunnnn",""},die=20}, {x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eeeerrrrggggg","Prruuuuuuummm","Uooooorrrr"},die=20}, {x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","GROOOOAAAARRR",""},die=20}, - {x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"A saber que li he dit!","TRANQUIL! TRANQUIL!!!"," CACAUS A MI!!!!"},die=20}, + {x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"A saber que li he dit!","TRANQUIL! TRANQUIL!!!"," CACAUS A MI!!!!"},die=20}, }, llibre_trobat={ - {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Este llibre...","Es el de les tècniques","especials dels abad..."}}, + {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Este llibre...","Es el de les tècniques","especials dels abad..."},mood="interessant"}, {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"...","TÈCNICA 'CACAU AERI'","salt i dispar"}}, {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Ja se"," 'CACAU AERI'",""}}, }, @@ -37,7 +40,7 @@ scenes={ {x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Ah!, què bo!","Nit de Netflix amb","un bon bol de cacaus!"},die=20}, }, intro_02= { - {x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eh! On està el","bol de cacaus???",""},die=20}, + {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eh! On està el","bol de cacaus???",""},die=20, mood="sorpresa"}, }, intro_03= { {x=avatar_batman_x,y=avatar_batman_y,flip=true,audio="batman",musica=audio_song_batman,text={"ME L'HE ENDUT JO!!!", "S'HAN ACABAT ELS","CACAUS PA TU!"},die=20}, @@ -56,9 +59,9 @@ scenes={ {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Vaig a parlar en Premiere","que està al pis de dalt", "a vore si me pot ajudar"}}, }, abad_corfes={ - {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Osti, està ple de","monstruacos.",""}}, - {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Pos al que s'acoste","s'endurà una corfa","de cacau al cap!"}}, - {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"I si van altets","igual val la pena","ajupir-se..."}} + {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Osti, està ple de","monstruacos.",""}, mood="sorpresa"}, + {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Els enviaré a altra","dimensió d'una cacauà!",""}}, + {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Si van altets","igual val la pena","ajupir-se..."}} }, abad_portes={ {x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Qui ha tancat totes","les portes?",""}}, @@ -208,12 +211,40 @@ end function play_music() if scenes.current_scene[scenes.dnum].musica then - print("PLAY MUSIC "..scenes.dnum) + -- print("PLAY MUSIC "..scenes.dnum) music.stop() music.play(scenes.current_scene[scenes.dnum].musica) end end +function draw_abad_with_mood(mood, dx, dy, dw, dh) + local ox, oy =view.origin() + view.origin(0,0) + -- -- composicio + local curr_sf = surf.target() + surf.target(avatar_sf) + surf.cls(16) + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,0,0,avatar_w,avatar_h) + abad_add_mood(0,scenes.current_scene[scenes.dnum].x,0,scenes.current_scene[scenes.dnum].y,false,mood) + -- if mood=="sorpresa" then + -- draw.surf(240,0,11,4,16-scenes.current_scene[scenes.dnum].x,5-scenes.current_scene[scenes.dnum].y,11,4) + -- elseif mood=="enfadat" then + -- draw.surf(240,4,11,4,16-scenes.current_scene[scenes.dnum].x,5-scenes.current_scene[scenes.dnum].y,11,4) + -- elseif mood=="interessant" then + -- draw.surf(240,8,11,4,16-scenes.current_scene[scenes.dnum].x,5-scenes.current_scene[scenes.dnum].y,11,4) + -- else + -- abad.mood="normal" + -- end + -- Dibuixar + view.origin(ox, oy) + surf.target(curr_sf) + curr_sf = surf.source() + surf.source(avatar_sf) + draw.surf(0,0,avatar_w,avatar_h, dx, dy, dw, dh) + surf.source(curr_sf) + -- draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h, dx, dy, dw, dh) +end + function draw_scene() local txt_x = not scenes.current_scene[scenes.dnum].flip and 38 or 8 @@ -235,19 +266,33 @@ function draw_scene() -- 3, 4 -> Desplegar el avatar elseif scenes.step==3 then if not scenes.current_scene[scenes.dnum].flip then - draw.rectf(8*o2aX,12*o2aX,24*o2aX,12*o2aX,16) - draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,13*o2aX,20*o2aX,10*o2aX) + draw.rectf(8*o2aX,12*o2aX,avatar_photo_w+8, (avatar_photo_h+8)/2,16) + -- Només està disponible per a l'abad + if scenes.current_scene[scenes.dnum].mood then + draw_abad_with_mood(scenes.current_scene[scenes.dnum].mood, 18, 26, avatar_photo_w, avatar_photo_h/2) + -- draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,13*o2aX,20*o2aX,10*o2aX) + else + abad.mood="normal" + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,13*o2aX,avatar_photo_w, avatar_photo_h/2) + end else - draw.rectf(97*o2aX,12*o2aX,24*o2aX,12*o2aX,16) - draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,98*o2aX,13*o2aX,20*o2aX,10*o2aX,true) + draw.rectf(97*o2aX,12*o2aX,avatar_photo_w+8, (avatar_photo_h+8)/2,16) + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,98*o2aX,13*o2aX,avatar_photo_w, avatar_photo_h/2,true) end elseif scenes.step==4 then if not scenes.current_scene[scenes.dnum].flip then - draw.rectf(8*o2aX,7*o2aX,24*o2aX,22*o2aX,16) - draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,8*o2aX,20*o2aX,20*o2aX) + draw.rectf(8*o2aX,7*o2aX,avatar_photo_w+8,avatar_photo_h+4,16) + -- Només està disponible per a l'abad + if scenes.current_scene[scenes.dnum].mood then + draw_abad_with_mood(scenes.current_scene[scenes.dnum].mood, 18, 16, avatar_photo_w, avatar_photo_h) + -- draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,8*o2aX,20*o2aX,20*o2aX) + else + abad.mood="normal" + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,8*o2aX,avatar_photo_w, avatar_photo_h) + end else - draw.rectf(97*o2aX,7*o2aX,24*o2aX,22*o2aX,16) - draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,98*o2aX,8*o2aX,20*o2aX,20*o2aX,true) + draw.rectf(97*o2aX,7*o2aX,avatar_photo_w+8,avatar_photo_h+4,16) + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,98*o2aX,8*o2aX,avatar_photo_w, avatar_photo_h,true) end -- 5, 6, 7 -> Escriure les 3 frases de diàleg elseif scenes.step==5 then @@ -283,11 +328,17 @@ function draw_scene() draw.line(0,0,128*o2aX,0,16) draw.line(0,34*o2aX+1,128*o2aX,34*o2aX+1,16) if not scenes.current_scene[scenes.dnum].flip then - draw.rectf(8*o2aX,7*o2aX,24*o2aX,22*o2aX,16) - draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,8*o2aX,20*o2aX,20*o2aX) + draw.rectf(8*o2aX,7*o2aX,avatar_photo_w+8,avatar_photo_h+4,16) + if scenes.current_scene[scenes.dnum].mood then + draw_abad_with_mood(scenes.current_scene[scenes.dnum].mood, 18, 16, avatar_photo_w, avatar_photo_h) + -- draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,13*o2aX,20*o2aX,10*o2aX) + else + abad.mood="normal" + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,9*o2aX,8*o2aX,avatar_photo_w, avatar_photo_h) + end else - draw.rectf(97*o2aX,7*o2aX,24*o2aX,22*o2aX,16) - draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,98*o2aX,8*o2aX,20*o2aX,20*o2aX,true) + draw.rectf(97*o2aX,7*o2aX,avatar_photo_w+8,avatar_photo_h+4,16) + draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,98*o2aX,8*o2aX,avatar_photo_w, avatar_photo_h,true) end arc_textB(scenes.current_scene[scenes.dnum].text[1],txt_x*o2aX,7*o2aX,2) arc_textB(scenes.current_scene[scenes.dnum].text[2],txt_x*o2aX,15*o2aX,2) diff --git a/data/tiles.gif b/data/tiles.gif index 6514bfb..d5d8c3c 100644 Binary files a/data/tiles.gif and b/data/tiles.gif differ