From decb30f73e569239e64e6f21899ff8687fc595c2 Mon Sep 17 00:00:00 2001
From: Hachem_Muche <Hachem_Muche@stanfordalumni.org>
Date: Sun, 11 Dec 2016 23:00:12 -0800
Subject: [PATCH] Healing modifier scales (0.5 power) with constitution. This
 should mitigate possible runaway regeneration for some NPCs (bosses), and
 provide a slightly higher reward for early player investment.

---
 game/modules/tome/class/Actor.lua           | 3 ++-
 game/modules/tome/dialogs/LevelupDialog.lua | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index b059d47632..fc1a09e214 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -3430,7 +3430,8 @@ function _M:onStatChange(stat, v)
 		self.max_life = math.max(1, self.max_life + multi_life * v)  -- no negative max life
 
 		-- heal mod
-		self.healing_factor = self.healing_factor + v * 0.005
+		if self.stats.hf_id then self:removeTemporaryValue("healing_factor", self.stats.hf_id) end
+		self.stats.hf_id = self:addTemporaryValue("healing_factor", ((self:getCon()/10)^.5-1)*.25) -- 0 @ 10, 1.54 @ 100
 	elseif stat == self.STAT_DEX then
 		self.ignore_direct_crits = (self.ignore_direct_crits or 0) + 0.3 * v
 	elseif stat == self.STAT_WIL then
diff --git a/game/modules/tome/dialogs/LevelupDialog.lua b/game/modules/tome/dialogs/LevelupDialog.lua
index 0ac7cb1707..015c3ac0c6 100644
--- a/game/modules/tome/dialogs/LevelupDialog.lua
+++ b/game/modules/tome/dialogs/LevelupDialog.lua
@@ -839,7 +839,7 @@ function _M:getStatDesc(item)
 		local multi_life = 4 + (self.actor.inc_resource_multi.life or 0)
 		text:add("Max life: ", color, ("%0.2f"):format(diff * multi_life), dc, true)
 		text:add("Physical save: ", color, ("%0.2f"):format(diff * 0.35), dc, true)
-		text:add("Healing mod: ", color, ("%0.1f%%"):format(diff * 0.5), dc, true)
+		text:add("Healing mod: ", color, ("%0.1f%%"):format(((self.actor:getCon()/10)^.5 - (self.actor_dup:getCon()/10)^.5)*.25*100), dc, true)
 	elseif stat_id == self.actor.STAT_WIL then
 		if self.actor:knowTalent(self.actor.T_MANA_POOL) then
 			local multi_mana = 5 + (self.actor.inc_resource_multi.mana or 0)
-- 
GitLab