diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index eccc30fd3888cb17d85d74acbfebbfdbadb61756..44eaf8756106af66787c5e6f204e7aed917039de 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -1582,7 +1582,7 @@ function _M:onHeal(value, src) end -- print("[HEALING]", self.uid, self.name, "for", value) - if (not self.resting and (not game.party:hasMember(self) or not game:getPlayer(true).resting)) and value + psi_heal >= 1 then + if (not self.resting and (not game.party:hasMember(self) or not game:getPlayer(true).resting)) and value + psi_heal >= 1 and not self:attr("silent_heal") then if game.level.map.seens(self.x, self.y) then local sx, sy = game.level.map:getTileToScreen(self.x, self.y) game.flyers:add(sx, sy, 30, rng.float(-3, -2), (rng.range(0,2)-1) * 0.5, tostring(math.ceil(value)), {255,255,0}) diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index efd2c5d824f13e16e7441fdad2d8e4925b643ce5..12c19416b9411e9fc2b02757621e48f580fa49ab 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -1752,9 +1752,9 @@ newDamageType{ projector = function(src, x, y, type, dam) local target = game.level.map(x, y, Map.ACTOR) if target and not target:attr("undead") then - if dam >= 100 then target:attr("allow_on_heal", 1) end + if dam >= 100 then target:attr("allow_on_heal", 1) else target:attr("silent_heal", 1) end target:heal(dam, src) - if dam >= 100 then target:attr("allow_on_heal", -1) end + if dam >= 100 then target:attr("allow_on_heal", -1) else target:attr("silent_heal", -1) end elseif target then DamageType:get(DamageType.NATURE).projector(src, x, y, DamageType.NATURE, dam) end