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