From 1a4716089b2b2b5d7f0d8f79ad31ea7f7b896dfb Mon Sep 17 00:00:00 2001 From: JailGamer Date: Fri, 27 Mar 2026 17:29:08 +0100 Subject: [PATCH] Despres del respawn ja s mou be. Ja no mor des de massa baix --- data/abad.lua | 53 +++++++++++++++++++++++++++++++++++++++------------ data/game.lua | 1 + 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/data/abad.lua b/data/abad.lua index 9ed61c4..d1101f9 100644 --- a/data/abad.lua +++ b/data/abad.lua @@ -29,6 +29,25 @@ abad={} function abad_nop() end +-- Imprime cualquier valor, incluyendo tablas anidadas +local function dump(value, indent) + indent = indent or "" + if type(value) ~= "table" then + return tostring(value) + end + + local parts = {"{"} + for k, v in pairs(value) do + local key = (type(k) == "string") and k or "["..tostring(k).."]" + table.insert(parts, + string.format("%s %s = %s,", + indent, key, dump(v, indent.." "))) + end + table.insert(parts, indent.."}") + return table.concat(parts, "\n") +end + + function abad_init() abad={ x=40, y=24, flip=false, @@ -90,11 +109,14 @@ function abad:draw() end end -function abad_make_safe() - if abad.safe.hab~=abad.hab then - abad.safe.hab=abad.hab - abad.safe.x=abad.x - abad.safe.y=abad.y +function abad_make_safe( force ) + force = force or false + local hab, xx, yy = arc_mapa_get_map_coords(abad.x, abad.y) + if abad.safe.hab~=hab or force then + abad.safe.hab=hab + abad.safe.x=xx + abad.safe.y=yy + print("Make safe "..hab.." ( "..xx..", "..yy.." )") end end @@ -113,13 +135,17 @@ function abad_hurt(howmuch) else music.play(audio_life_lost,0) abad.energia=40 - abad.hab=abad.safe.hab - abad.x=abad.safe.x - abad.y=abad.safe.y + -- abad.hab=abad.safe.hab + -- abad.x=abad.safe.x + -- abad.y=abad.safe.y + print("SAFE= "..abad.safe.hab.." "..abad.safe.x.." "..abad.safe.y) + print(dump(abad)) + local abad_x, abad_y = arc_mapa_get_coords ( abad.safe.hab, abad.safe.x, abad.safe.y ) + abad:move(abad_x, abad_y) abad.hurting=60 abad.update=abad_state_normal abad.bb.y=0 - abad.bb.h=16 + abad.bb.h=32 abad.respawning=240 surf.cls(3) end @@ -273,7 +299,7 @@ function abad_state_normal() abad.frame=0 abad.wait=0 abad.step=0 - abad.shoot_cooldown = abad.shoot_cooldown + 1 + if abad.shoot_cooldown 0 then @@ -283,7 +309,7 @@ function abad_state_normal() if abad.falling>0 then if abad.falling>(abad.max_jump_height<<1) then - abad_hurt(abad.falling-(abad.max_jump_height>>1)) + abad_hurt(abad.falling-(abad.max_jump_height<<1)) end abad.falling=0 end @@ -319,6 +345,7 @@ function key_release(keyid) end function abad_state_crouch() + print(dump(abad)) abad.bb.y=8 abad.bb.h=24 abad.frame=5 @@ -326,12 +353,14 @@ function abad_state_crouch() abad.step=0 abad.jumpfwd=false abad.jump_height=0 - + print(dump(abad)) if not (key.down(keyDown) or pad.down(btnDown)) then abad.update=abad_state_normal abad.bb.y=0 abad.bb.h=32 + print(dump(abad)) end + end function abad_state_fire() diff --git a/data/game.lua b/data/game.lua index e8d0d34..8d367c7 100644 --- a/data/game.lua +++ b/data/game.lua @@ -46,6 +46,7 @@ function game_init(menu) local abad_x, abad_y = arc_mapa_get_coords ( 10, 4, 3 ) abad:move(abad_x, abad_y) + abad_make_safe( true ) local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)