Skip to content

Commit

Permalink
Refactoring: lottarmor: extract get_armor_healing_chance() functi…
Browse files Browse the repository at this point in the history
  • Loading branch information
alek13 committed Jul 28, 2024
1 parent cf6da67 commit 0fef3db
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions mods/lord/lottarmor/armor.lua
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,16 @@ function armor:set_player_armor(player)
self.def[name].gravity = physics_o.gravity
end

--- @param player Player
local function get_armor_healing_chance(player)
local armor_healing_chance = 0
for _, stack in equipment.for_player(player):items(equipment.Kind.ARMOR) do
if stack:get_count() > 0 then
armor_healing_chance = armor_healing_chance + (stack:get_definition().groups["armor_heal"] or 0)
end
end
end

local handle_armor_heal = function(player)
local name = player:get_player_name()
if not name then
Expand All @@ -125,19 +135,16 @@ local handle_armor_heal = function(player)
if hp <= 0 or hp == armor.player_hp[name] then
return
end
if armor.player_hp[name] > hp then -- only on punch

if armor.player_hp[name] > hp then
local heal_max = 0
for _, stack in equipment.for_player(player):items(equipment.Kind.ARMOR) do
if stack:get_count() > 0 then
heal_max = heal_max + (stack:get_definition().groups["armor_heal"] or 0)
end
end

if heal_max > math_random(100) then
local armor_healing_chance = get_armor_healing_chance(player)
if math_random(100) < armor_healing_chance then
player:set_hp(armor.player_hp[name])
return
end


end
armor.player_hp[name] = hp
end
Expand Down

0 comments on commit 0fef3db

Please sign in to comment.