[FIX] Canviada la poció a 'objecte'

This commit is contained in:
2026-05-02 20:47:20 +02:00
parent 2cb75fc184
commit a4f7d78457
5 changed files with 65 additions and 65 deletions

View File

@@ -1,81 +1,75 @@
-- posició en el gif (tiles de 32)
health_potion_gif_x = 192
health_potion_gif_y = 128
health_potion={
name="health_potion",
hab=1,
x=1,y=1,
vx=0, vy=0,
w=16,h=16,
y_speed=1,
max_height=16,
heal = 2,
raising=false,
enabled=false,
wait = 0,
bb={x=4,y=0,w=9,h=16}
}
health_potion={}
function health_potion.init(hab, x, y, y_speed, max_height, heal)
health_potion.hab = hab
health_potion.x = x
health_potion.y = y
health_potion.y_speed = y_speed
health_potion.max_height = max_height
health_potion.heal = heal
if max_height>0 then health_potion.raising=true end
--local world_x, world_y = coords.room_to_world(health_potion.hab,health_potion.x,health_potion.y)
--health_potion.x=world_x
--health_potion.y=world_y
health_potion.update=health_potion.update
health_potion.draw=health_potion.draw
health_potion.enabled=true
function health_potion.new(_hab, _x, _y, _y_speed, _max_height, _heal)
_raising = false
if _max_height>0 then _raising=true end
return {
name="health_potion",
hab = _hab,
x = _x, y = _y,
w = 16, h = 16,
vx=0, vy=0,
y_speed = _y_speed,
max_height = _max_height,
heal = _heal,
raising = _raising,
enabled=true,
wait = 0,
bb={x=4,y=0,w=9,h=16},
update=health_potion.update,
draw=health_potion.draw,
}
end
function health_potion.draw()
if not health_potion.enabled then return end
function health_potion:draw()
if not self.enabled then return end
local x = health_potion_gif_x
local y = health_potion_gif_y
local scr_x, scr_y = viewp:screen_coords( health_potion.x, health_potion.y )
draw.surf(x,y,health_potion.w,health_potion.h,scr_x,scr_y,health_potion.w,health_potion.h)
local scr_x, scr_y = viewp:screen_coords( self.x, self.y )
if self.heal==1 then
pal.subpal(3,11)
elseif self.heal==2 then
pal.subpal(3,8)
end
draw.surf(x,y,self.w,self.h,scr_x,scr_y,self.w,self.h)
pal.subpal(3)
-- draw.rect(scr_x+health_potion.bb.x,scr_y+health_potion.bb.y,health_potion.bb.w,health_potion.bb.h,3)
end
function health_potion.update()
if not health_potion.enabled then return end
if health_potion.raising and health_potion.y_speed>0 then
health_potion.y_speed = -health_potion.y_speed
elseif not health_potion.raising and health_potion.y_speed<0 then
health_potion.y_speed = -health_potion.y_speed
function health_potion:update()
if not self.enabled then return end
if self.raising and self.y_speed>0 then
self.y_speed = -self.y_speed
elseif not self.raising and self.y_speed<0 then
self.y_speed = -self.y_speed
end
local x2_check = health_potion.x+health_potion.bb.x+health_potion.bb.w
local x1_check = health_potion.x+health_potion.bb.x
local y_check = health_potion.y+health_potion.bb.h+health_potion.y_speed
local x2_check = self.x+self.bb.x+self.bb.w
local x1_check = self.x+self.bb.x
local y_check = self.y+self.bb.h+self.y_speed
if true then
health_potion.wait=0
health_potion.max_height = health_potion.max_height+health_potion.y_speed
health_potion.y = health_potion.y+health_potion.y_speed
if health_potion.max_height==0 then health_potion.raising=false end
self.wait=0
self.max_height = self.max_height+self.y_speed
self.y = self.y+self.y_speed
if self.max_height==0 then self.raising=false end
end
health_potion.wait=health_potion.wait+1
self.wait=self.wait+1
local tile1_hit_type= arc_check_tile(x1_check, y_check )
local tile2_hit_type= arc_check_tile(x2_check, y_check)
local block_tile = tile1_hit_type == tiletype.block or tile2_hit_type == tiletype.block
if block_tile then health_potion.y_speed=0 end
health_potion.hab = coords.world_to_tile(health_potion.x, health_potion.y)
if health_potion.hab==abad.hab then
if collision(abad,health_potion) then
-- abad.objects.health_potion=true
-- remove_actor(health_potion)
abad_heal(health_potion.heal)
health_potion.enabled = false
if block_tile then self.y_speed=0 end
self.hab = coords.world_to_tile(self.x, self.y)
if self.hab==abad.hab then
if collision(abad,self) then
abad_heal(self.heal)
self.enabled = false
remove_actor(self)
end
end
end