don't trigger armor:punch when max_hp decreases

This commit is contained in:
flux 2023-04-19 14:02:29 -07:00 committed by Buckaroo Banzai
parent dc7fbce09a
commit 053c30b8b1

@ -414,10 +414,18 @@ if armor.config.punch_damage == true then
end
minetest.register_on_player_hpchange(function(player, hp_change, reason)
if player and reason.type ~= "drown" and reason.hunger == nil
and hp_change < 0 then
if not minetest.is_player(player) then
return hp_change
end
if reason.type == "drown" or reason.hunger or hp_change >= 0 then
return hp_change
end
local name = player:get_player_name()
if name then
local properties = player:get_properties()
local hp = player:get_hp()
if hp + hp_change < properties.hp_max then
local heal = armor.def[name].heal
if heal >= math.random(100) then
hp_change = 0
@ -428,7 +436,7 @@ minetest.register_on_player_hpchange(function(player, hp_change, reason)
armor:punch(player)
end
end
end
return hp_change
end, true)