diff --git a/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua b/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua index f1cc195f2de084eee835a4cbb89d55e8780df185..b90fb3e1af0eb9a3cea5cd4c33faf7f06af31fb6 100644 --- a/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua +++ b/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua @@ -241,44 +241,51 @@ newTalent{ end, getLevel = function(self, t) return math.floor(self:combatScale(self:getTalentLevel(t), -6, 0.9, 2, 5)) end, -- -6 @ 1, +2 @ 5, +5 @ 8 action = function(self, t) - local list = {} local nbgolem = 0 - if game.party and game.party:hasMember(self) then - for act, def in pairs(game.party.members) do - if act.summoner and act.summoner == self and act.necrotic_minion then - if act.subtype ~= "giant" then list[#list+1] = act - else nbgolem = nbgolem + 1 end + local make_golem = function() + local list = {} + nbgolem = 0 + if game.party and game.party:hasMember(self) then + for act, def in pairs(game.party.members) do + if act.summoner and act.summoner == self and act.necrotic_minion then + if act.subtype ~= "giant" then list[#list+1] = act + else nbgolem = nbgolem + 1 end + end end - end - else - for uid, act in pairs(game.level.entities) do - if act.summoner and act.summoner == self and act.necrotic_minion then - if act.subtype ~= "giant" then list[#list+1] = act - else nbgolem = nbgolem + 1 end + else + for uid, act in pairs(game.level.entities) do + if act.summoner and act.summoner == self and act.necrotic_minion then + if act.subtype ~= "giant" then list[#list+1] = act + else nbgolem = nbgolem + 1 end + end end end - end - if #list < 3 then return end + if #list < 3 then return end - rng.tableRemove(list):die(self) - rng.tableRemove(list):die(self) - rng.tableRemove(list):die(self) + rng.tableRemove(list):die(self) + rng.tableRemove(list):die(self) + rng.tableRemove(list):die(self) - local kind = ({"bone_giant","bone_giant","h_bone_giant","h_bone_giant","e_bone_giant"})[util.bound(math.floor(self:getTalentLevel(t)), 1, 5)] - if self:getTalentLevel(t) >= 6 and rng.percent(20) then kind = "r_bone_giant" end + local kind = ({"bone_giant","bone_giant","h_bone_giant","h_bone_giant","e_bone_giant"})[util.bound(math.floor(self:getTalentLevel(t)), 1, 5)] + if self:getTalentLevel(t) >= 6 and rng.percent(20) then kind = "r_bone_giant" end - local minion = require("mod.class.NPC").new(minions_list[kind]) - local x, y = util.findFreeGrid(self.x, self.y, 5, true, {[Map.ACTOR]=true}) - if minion and x and y then - local lev = t.getLevel(self, t) - necroSetupSummon(self, minion, x, y, lev, true) + local minion = require("mod.class.NPC").new(minions_list[kind]) + local x, y = util.findFreeGrid(self.x, self.y, 5, true, {[Map.ACTOR]=true}) + if minion and x and y then + local lev = t.getLevel(self, t) + necroSetupSummon(self, minion, x, y, lev, true) + nbgolem = nbgolem + 1 + end end - if nbgolem >= 1 then - local empower = necroEssenceDead(self) - if empower then empower() end + local empower = necroEssenceDead(self) + for i = 1, empower and 2 or 1 do + make_golem() + if nbgolem >= (empower and 2 or 1) then break end end + if nbgolem >= 2 and empower then empower() end + game:playSoundNear(self, "talents/spell_generic2") return true end, diff --git a/game/modules/tome/data/talents/spells/animus.lua b/game/modules/tome/data/talents/spells/animus.lua index b60b3cf0428dcbbfd3215f217d7eb670f50563d3..12f3b6a20b314f88c0987d605fc3c9c231c45675 100644 --- a/game/modules/tome/data/talents/spells/animus.lua +++ b/game/modules/tome/data/talents/spells/animus.lua @@ -135,6 +135,7 @@ newTalent{ m.summoner_gain_exp = true m.unused_stats = 0 m.dead = nil + m.undead = 1 m.no_breath = 1 m.unused_talents = 0 m.unused_generics = 0 @@ -167,7 +168,7 @@ newTalent{ end, info = function(self, t) local damage = t.getDamage(self, t) - return ([[Try to blast crush the soul of your foe, doing %0.2f darkness damage (that can never kill the target). + return ([[Try to crush the soul of your foe, doing %0.2f darkness damage (that can never kill the target). If the target is left with less than %d%% life you try to take control of its body. Should this succeed the target becomes your permanent minion (unaffected by your aura) and you regain 2 souls. Husks prossess the same abilities as they had in life (affected by Dark Empathy), are healed to full when created but can never heal or be healed by any means. @@ -196,7 +197,7 @@ newTalent{ local nb = t.getnb(self, t) return ([[Crush and consume two souls to empower your next %d spells, granting them a special effect. Affected spells are: - - Undeath Link: in addition to the heal a shield is created for half the heal life_leech_value + - Undeath Link: in addition to the heal a shield is created for half the heal power - Create Minions: allows you to summon 2 more minions - Assemble: allows you to summon a second bone golem - Invoke Darkness: becomes a cone of darkness