From a387f7827f42c22149af82396088e7eef594be5e Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Tue, 29 Nov 2011 21:43:45 +0000 Subject: [PATCH] Healing talents are disabled while frozen (this does not change anything it will just make how frozen works more obvious) git-svn-id: http://svn.net-core.org/repos/t-engine4@4705 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/ai/tactical.lua | 38 +++++++----------- game/modules/tome/class/Actor.lua | 3 ++ .../tome/data/talents/celestial/light.lua | 1 + .../talents/chronomancy/age-manipulation.lua | 7 ++-- game/modules/tome/data/talents/gifts/call.lua | 1 + .../tome/data/talents/gifts/harmony.lua | 1 + .../tome/data/talents/misc/inscriptions.lua | 1 + game/modules/tome/data/talents/misc/races.lua | 1 + .../talents/spells/advanced-golemancy.lua | 1 + .../tome/data/talents/spells/aegis.lua | 1 + .../tome/data/talents/spells/necrosis.lua | 1 + .../tome/data/talents/undeads/skeleton.lua | 1 + ideas/class-uber-points.ods | Bin 12478 -> 12537 bytes 13 files changed, 31 insertions(+), 26 deletions(-) diff --git a/game/modules/tome/ai/tactical.lua b/game/modules/tome/ai/tactical.lua index 031a8eeff7..1bb2239d84 100644 --- a/game/modules/tome/ai/tactical.lua +++ b/game/modules/tome/ai/tactical.lua @@ -131,30 +131,22 @@ newAI("use_tactical", function(self) end local pen = 0 if self.resists_pen then pen = (self.resists_pen.all or 0) + (self.resists_pen[damtype] or 0) end - for i, act in ipairs(foes_hit) do - local res = math.min((act.resists.all or 0) + (act.resists[damtype] or 0), (act.resists_cap.all or 0) + (act.resists_cap[damtype] or 0)) - res = res * (100 - pen) / 100 - local damweight = type(damweight) == "function" and damweight(self, t, act) or damweight - -- Handles status effect immunity - damweight = damweight * (act:canBe(damtype) and 1 or 0) - nb_foes_hit = nb_foes_hit + damweight * (100 - res) / 100 - end - for i, act in ipairs(self_hit) do - local res = math.min((act.resists.all or 0) + (act.resists[damtype] or 0), (act.resists_cap.all or 0) + (act.resists_cap[damtype] or 0)) - res = res * (100 - pen) / 100 - local damweight = type(damweight) == "function" and damweight(self, t, act) or damweight - -- Handles status effect immunity - damweight = damweight * (act:canBe(damtype) and 1 or 0) - nb_self_hit = nb_self_hit + damweight * (100 - res) / 100 - end - for i, act in ipairs(allies_hit) do - local res = math.min((act.resists.all or 0) + (act.resists[damtype] or 0), (act.resists_cap.all or 0) + (act.resists_cap[damtype] or 0)) - res = res * (100 - pen) / 100 - local damweight = type(damweight) == "function" and damweight(self, t, act) or damweight - -- Handles status effect immunity - damweight = damweight * (act:canBe(damtype) and 1 or 0) - nb_allies_hit = nb_allies_hit + damweight * (100 - res) / 100 + local check_resistance = function(actor_list) + local weighted_sum = 0 + for i, act in ipairs(actor_list) do + local res = math.min((act.resists.all or 0) + (act.resists[damtype] or 0), (act.resists_cap.all or 0) + (act.resists_cap[damtype] or 0)) + res = res * (100 - pen) / 100 + local damweight = damweight + if type(damweight) == "function" then damweight = damweight(self, t, act) or 0 end + -- Handles status effect immunity + damweight = damweight * (act:canBe(damtype) and 1 or 0) + weighted_sum = weighted_sum + damweight * (100 - res) / 100 + end + return weighted_sum end + nb_foes_hit = check_resistance(foes_hit) + nb_self_hit = check_resistance(self_hit) + nb_allies_hit = check_resistance(allies_hit) end val = 1 -- Or assume no resistances diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 7d528860b3..394eb7c1f8 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -2522,6 +2522,9 @@ function _M:preUseTalent(ab, silent, fake) -- Special checks if ab.on_pre_use and not (ab.mode == "sustained" and self:isTalentActive(ab.id)) and not ab.on_pre_use(self, ab, silent, fake) then return false end + -- Cant heal + if ab.is_heal and self:attr("no_healing") then return false end + if not silent then -- Allow for silent talents if ab.message ~= nil then diff --git a/game/modules/tome/data/talents/celestial/light.lua b/game/modules/tome/data/talents/celestial/light.lua index 806a5bcef8..7e97189cc0 100644 --- a/game/modules/tome/data/talents/celestial/light.lua +++ b/game/modules/tome/data/talents/celestial/light.lua @@ -27,6 +27,7 @@ newTalent{ positive = -10, tactical = { HEAL = 2 }, getHeal = function(self, t) return self:combatTalentSpellDamage(t, 20, 440) end, + is_heal = true, action = function(self, t) self:heal(self:spellCrit(t.getHeal(self, t)), self) game:playSoundNear(self, "talents/heal") diff --git a/game/modules/tome/data/talents/chronomancy/age-manipulation.lua b/game/modules/tome/data/talents/chronomancy/age-manipulation.lua index 4d23e78896..0c830b262e 100644 --- a/game/modules/tome/data/talents/chronomancy/age-manipulation.lua +++ b/game/modules/tome/data/talents/chronomancy/age-manipulation.lua @@ -38,7 +38,7 @@ newTalent{ x, y = checkBackfire(self, x, y, t.paradox) self:projectile(tg, x, y, DamageType.CLOCK, self:spellCrit(t.getDamage(self, t)), nil) game:playSoundNear(self, "talents/spell_generic2") - + --bolt #2 (Talent Level 4 Bonus Bolt) if self:getTalentLevel(t) >= 4 then local tg2 = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="temporal_bolt"}} @@ -51,7 +51,7 @@ newTalent{ end end else end - + return true end, info = function(self, t) @@ -158,12 +158,13 @@ newTalent{ paradox = 10, cooldown = 10, tactical = { HEAL = 2, CURE = 2 }, + is_heal = true, getHeal = function(self, t) return self:combatTalentSpellDamage(t, 40, 440)*getParadoxModifier(self, pm) end, getRemoveCount = function(self, t) return math.floor(self:getTalentLevel(t)) end, action = function(self, t) self:heal(self:spellCrit(t.getHeal(self, t)), self) local target = self - + local effs = {} -- Go through all spell effects for eff_id, p in pairs(target.tmp) do diff --git a/game/modules/tome/data/talents/gifts/call.lua b/game/modules/tome/data/talents/gifts/call.lua index 9a777233a8..d729f74550 100644 --- a/game/modules/tome/data/talents/gifts/call.lua +++ b/game/modules/tome/data/talents/gifts/call.lua @@ -72,6 +72,7 @@ newTalent{ short_name = "NATURE_TOUCH", range = 1, requires_target = true, no_npc_use = true, + is_heal = true, action = function(self, t) local tg = {default_target=self, type="hit", nowarning=true, range=self:getTalentRange(t), first_target="friend"} local x, y, target = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/gifts/harmony.lua b/game/modules/tome/data/talents/gifts/harmony.lua index 08e6b2e53b..f227311a30 100644 --- a/game/modules/tome/data/talents/gifts/harmony.lua +++ b/game/modules/tome/data/talents/gifts/harmony.lua @@ -35,6 +35,7 @@ newTalent{ end return false end, + is_heal = true, action = function(self, t) local nb = 0 for eff_id, p in pairs(self.tmp) do diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index 2995ce1c0f..17990b6097 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -88,6 +88,7 @@ newInscription{ type = {"inscriptions/infusions", 1}, points = 1, tactical = { HEAL = 2 }, + is_heal = true, action = function(self, t) local data = self:getInscriptionData(t.short_name) self:heal(data.heal + data.inc_stat) diff --git a/game/modules/tome/data/talents/misc/races.lua b/game/modules/tome/data/talents/misc/races.lua index d946afae89..20e64e8670 100644 --- a/game/modules/tome/data/talents/misc/races.lua +++ b/game/modules/tome/data/talents/misc/races.lua @@ -618,6 +618,7 @@ newTalent{ points = 5, no_energy = true, cooldown = function(self, t) return 50 - self:getTalentLevel(t) * 4 end, + is_heal = true, tactical = { DEFEND = 1, HEAL = 2, CURE = function(self, t, target) local nb = 0 for eff_id, p in pairs(self.tmp) do diff --git a/game/modules/tome/data/talents/spells/advanced-golemancy.lua b/game/modules/tome/data/talents/spells/advanced-golemancy.lua index 5c83a719a0..759789f3e2 100644 --- a/game/modules/tome/data/talents/spells/advanced-golemancy.lua +++ b/game/modules/tome/data/talents/spells/advanced-golemancy.lua @@ -26,6 +26,7 @@ newTalent{ mana = 25, cooldown = 12, tactical = { HEAL = 2 }, + is_heal = true, getPower = function(self, t) return 70 + self:combatTalentSpellDamage(t, 15, 450) end, action = function(self, t) local mover, golem = getGolem(self) diff --git a/game/modules/tome/data/talents/spells/aegis.lua b/game/modules/tome/data/talents/spells/aegis.lua index 87e31baaf4..f1442ca107 100644 --- a/game/modules/tome/data/talents/spells/aegis.lua +++ b/game/modules/tome/data/talents/spells/aegis.lua @@ -27,6 +27,7 @@ newTalent{ cooldown = 16, tactical = { HEAL = 2 }, getHeal = function(self, t) return 40 + self:combatTalentSpellDamage(t, 10, 520) end, + is_heal = true, action = function(self, t) self:heal(self:spellCrit(t.getHeal(self, t)), self) game:playSoundNear(self, "talents/heal") diff --git a/game/modules/tome/data/talents/spells/necrosis.lua b/game/modules/tome/data/talents/spells/necrosis.lua index 77b84a8277..6e2ac79705 100644 --- a/game/modules/tome/data/talents/spells/necrosis.lua +++ b/game/modules/tome/data/talents/spells/necrosis.lua @@ -84,6 +84,7 @@ newTalent{ mana = 35, cooldown = 20, tactical = { HEAL = 2 }, + is_heal = true, getHeal = function(self, t) return 20 + self:combatTalentSpellDamage(t, 10, 70) end, on_pre_use = function(self, t) if game.party and game.party:hasMember(self) then diff --git a/game/modules/tome/data/talents/undeads/skeleton.lua b/game/modules/tome/data/talents/undeads/skeleton.lua index 85b5623da5..8e8e034ec5 100644 --- a/game/modules/tome/data/talents/undeads/skeleton.lua +++ b/game/modules/tome/data/talents/undeads/skeleton.lua @@ -78,6 +78,7 @@ newTalent{ short_name = "SKELETON_REASSEMBLE", points = 5, cooldown = function(self, t) return 45 - self:getTalentLevelRaw(t) * 4 end, tactical = { HEAL = 2 }, + is_heal = true, on_learn = function(self, t) if self:getTalentLevelRaw(t) == 5 then self:attr("self_resurrect", 1) diff --git a/ideas/class-uber-points.ods b/ideas/class-uber-points.ods index 105ae23316b593d8a8760eba9dc5232728cd5b7e..473ad01cec0e8aefffe4efb8b0ff089b531de5f0 100644 GIT binary patch delta 9656 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 KTm|DF>i+>bWKACc delta 9489 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 -- GitLab