From 100fbd031e7ac97393e20eb32279760e797426c8 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Mon, 18 Jul 2011 08:42:15 +0000
Subject: [PATCH] Drain vim regain is now affected by the target's rank
 Sacrifice is now 40% of current life

git-svn-id: http://svn.net-core.org/repos/t-engine4@3896 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/Actor.lua                     | 11 +++++++++++
 game/modules/tome/data/damage_types.lua               |  4 +++-
 .../tome/data/talents/corruptions/sanguisuge.lua      |  7 ++++---
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 00d5b7dc28..b33649aabb 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -764,6 +764,17 @@ function _M:getRankLevelAdjust()
 	end
 end
 
+function _M:getRankVimAdjust()
+	if self.rank == 1 then return 0.7
+	elseif self.rank == 2 then return 1
+	elseif self.rank == 3 then return 1.2
+	elseif self.rank == 3.5 then return 2.2
+	elseif self.rank == 4 then return 2.6
+	elseif self.rank >= 5 then return 2.8
+	else return 0
+	end
+end
+
 function _M:getRankLifeAdjust(value)
 	local level_adjust = 1 + self.level / 40
 	if self.rank == 1 then return value * (level_adjust - 0.2)
diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua
index 6632862dbf..23c06d1df8 100644
--- a/game/modules/tome/data/damage_types.lua
+++ b/game/modules/tome/data/damage_types.lua
@@ -1059,7 +1059,9 @@ newDamageType{
 		if _G.type(dam) == "number" then dam = {dam=dam, vim=0.2} end
 		local realdam = DamageType:get(DamageType.BLIGHT).projector(src, x, y, DamageType.BLIGHT, dam.dam)
 		local target = game.level.map(x, y, Map.ACTOR)
-		if target and target ~= src and realdam > 0 then src:incVim(realdam * dam.vim) end
+		if target and target ~= src and realdam > 0 then
+			src:incVim(realdam * dam.vim * target:getRankVimAdjust())
+		end
 	end,
 }
 
diff --git a/game/modules/tome/data/talents/corruptions/sanguisuge.lua b/game/modules/tome/data/talents/corruptions/sanguisuge.lua
index 72601e77f1..c394c4ac33 100644
--- a/game/modules/tome/data/talents/corruptions/sanguisuge.lua
+++ b/game/modules/tome/data/talents/corruptions/sanguisuge.lua
@@ -39,6 +39,7 @@ newTalent{
 	end,
 	info = function(self, t)
 		return ([[Fires a bolt of blight, doing %0.2f blight damage and replenishing 20%% of it as vim energy.
+		The amount of vim regained depends on the target's rank (higher rank give more vim).
 		The effect will increase with your Magic stat.]]):
 		format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 25, 200)))
 	end,
@@ -50,11 +51,11 @@ newTalent{
 	require = corrs_req2,
 	points = 5,
 	vim = 0,
-	cooldown = 20,
+	cooldown = 30,
 	range = 10,
 	tactical = { VIM = 1 },
 	action = function(self, t)
-		local amount = self.max_life * 0.4
+		local amount = self.life * 0.4
 		if self.life <= amount + 1 then
 			game.logPlayer(self, "Doing this would kill you.")
 			return
@@ -79,7 +80,7 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Sacrifices 40%% of your life to restore %d vim.
+		return ([[Sacrifices 40%% of your current life to restore %d vim.
 		This only works if there is at least one foe in sight.
 		The effect will increase with your Magic stat.]]):
 		format(30 + self:combatTalentSpellDamage(t, 5, 150))
-- 
GitLab