diff --git a/game/modules/tome/data/talents/gifts/summon-augmentation.lua b/game/modules/tome/data/talents/gifts/summon-augmentation.lua index b2cd1ada7267d103b84ff2f2465a688e16717d6a..2171c171476f071bc678fd39f40a51c7ca660552 100644 --- a/game/modules/tome/data/talents/gifts/summon-augmentation.lua +++ b/game/modules/tome/data/talents/gifts/summon-augmentation.lua @@ -67,14 +67,14 @@ newTalent{ end end, --]] - explodeDamage = function(self,t) return self:combatTalentMindDamage(t, 30, 250) end, - explodeBleed = function(self,t) return self:combatTalentMindDamage(t, 30, 350) end, - explodeBurn = function(self,t) return self:combatTalentMindDamage(t, 30, 300) end, - explodeFire = function(self,t) return self:combatTalentMindDamage(t, 10, 70) end, - knockbackDamage = function(self,t) return self:combatTalentMindDamage(t, 30, 150) end, - knockbackDist = function(self,t) return 4 end, + explodeDamage = function(self,t) return self:combatTalentMindDamage(t, 100, 400) end, + explodeSecondary = function(self,t) return self:combatTalentMindDamage(t, 30, 300) end, + explodeBleed = function(self,t) return self:combatTalentMindDamage(t, 50, 500) end, + explodeFire = function(self,t) return self:combatTalentMindDamage(t, 30, 120) end, + jellySlow = function(self,t) return self:combatTalentLimit(t,0.60,0.15,0.35) end, + minotaurConfuse = function(self,t) return self:combatTalentLimit(t, 50, 15, 35) end, shellShielding = function(self,t) return self:combatTalentMindDamage(t, 10, 35) end, - explodePin = function(self,t) return 3 end, + spiderKnockback = function(self,t) return 1+math.floor(self:getTalentLevel(t)) end, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t, first_target="friend"} local tx, ty, target = self:getTarget(tg) @@ -105,19 +105,19 @@ newTalent{ info = function(self, t) local radius = self:getTalentRadius(t) return ([[Destroys one of your summons, making it detonate in radius of %d. - - Ritch Flamespitter: Explodes into a fireball dealing %d damage + - Ritch Flamespitter: Explodes into a fireball dealing %d damage, flameshocking damaged foes - Hydra: Explodes into a ball of %d lightning, acid or poison damage, chosen at random - Rimebark: Explodes into an iceball dealing %d ice damage, possibly freezing damaged foes - Fire Drake: Explodes into a cloud of lingering fire, dealing %d damage per turn - - War Hound: Explodes into a ball dealing %d physical damage - - Jelly: Explodes into a ball of slowing slime, dealing %d nature damage and slowing foes by 15%% - - Minotaur: Explodes into a sharp ball, cutting all creatures for %0.1f bleeding damage per turn for 6 turns - - Stone Golem: Knocks back all creatures %d tiles and deals %d physical damage + - War Hound: Explodes into a sharp ball, cutting all creatures for %0.1f bleeding damage per turn for 6 turns + - Jelly: Explodes into a ball of slowing slime, dealing %d nature damage and slowing foes by %0.1f%% + - Minotaur: Confuses foes at %d%% power for 5 turns + - Stone Golem: Explodes into a ball dealing %d physical damage - Turtle: Grants a small shell shield to all friendly creatures, granting %d%% all resist - - Spider: Pins all foes around for %d turns + - Spider: Knocks back all foes %d tiles In addition, a random summon will come off cooldown. Hostile effects will not hit you or your other summons. - The effects improve with your mindpower, and can crit.]]):format(radius, t.explodeBurn(self,t), t.explodeDamage(self,t), t.explodeBurn(self,t), t.explodeFire(self,t), t.explodeDamage(self, t), t.explodeDamage(self,t), t.explodeBleed(self,t) / 6, t.knockbackDist(self,t), t.knockbackDamage(self,t), t.shellShielding(self,t), t.explodePin(self,t)) + The effects improve with your mindpower, and can crit.]]):format(radius, t.explodeSecondary(self,t), t.explodeDamage(self,t), t.explodeSecondary(self,t), t.explodeFire(self,t), t.explodeBleed(self,t) / 6, t.explodeSecondary(self,t), t.jellySlow(self,t) * 100, t.minotaurConfuse(self,t), t.explodeDamage(self,t), t.shellShielding(self,t), t.spiderKnockback(self,t)) end, } diff --git a/game/modules/tome/data/talents/gifts/summon-distance.lua b/game/modules/tome/data/talents/gifts/summon-distance.lua index b039e29158eda6d0daaa119d63a8acfe8469bcd2..0a769e1833396bd45178dc89ece08d3bed6a4a4f 100644 --- a/game/modules/tome/data/talents/gifts/summon-distance.lua +++ b/game/modules/tome/data/talents/gifts/summon-distance.lua @@ -404,8 +404,8 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local explodeBurn = self:callTalent(self.T_DETONATE,"explodeBurn") - self:project(tg, m.x, m.y, DamageType.FIREBURN, self:mindCrit(explodeBurn)) + local explodeDamage = self:callTalent(self.T_DETONATE,"explodeSecondary") + self:project(tg, m.x, m.y, DamageType.FLAMESHOCK, self:mindCrit(explodeDamage)) game.level.map:particleEmitter(m.x, m.y, tg.radius, "ball_fire", {radius=tg.radius}) end, on_arrival = function(self, t, m) @@ -519,7 +519,7 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local explodeDamage = self:callTalent(self.T_RESILIENCE,"explodeDamage") + local explodeDamage = self:callTalent(self.T_DETONATE,"explodeDamage") self:project(tg, m.x, m.y, rng.table{DamageType.LIGHTNING,DamageType.ACID,DamageType.POISON}, self:mindCrit(explodeDamage), {type="flame"}) end, on_arrival = function(self, t, m) @@ -641,7 +641,7 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local explodeDamage = self:callTalent(self.T_RESILIENCE,"explodeBurn") + local explodeDamage = self:callTalent(self.T_DETONATE,"explodeSecondary") self:project(tg, m.x, m.y, DamageType.ICE, self:mindCrit(explodeDamage), {type="freeze"}) end, on_arrival = function(self, t, m) diff --git a/game/modules/tome/data/talents/gifts/summon-melee.lua b/game/modules/tome/data/talents/gifts/summon-melee.lua index 8257c10387e3b81d2efd2a1a7cb12941387e0126..7ceb3dc9ee4fad5f0ef45965a58cb87e88338a86 100644 --- a/game/modules/tome/data/talents/gifts/summon-melee.lua +++ b/game/modules/tome/data/talents/gifts/summon-melee.lua @@ -97,8 +97,8 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local explodeDamage = self:callTalent(self.T_DETONATE,"explodeDamage") - self:project(tg, m.x, m.y, DamageType.PHYSICAL, self:mindCrit(explodeDamage), {type="flame"}) + local explodeBleed = self:callTalent(self.T_DETONATE, "explodeBleed") + self:project(tg, m.x, m.y, DamageType.BLEED, self:mindCrit(explodeBleed), {type="flame"}) end, on_arrival = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} @@ -205,8 +205,9 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local explodeDamage = self:callTalent(self.T_DETONATE, "explodeDamage") - self:project(tg, m.x, m.y, DamageType.SLIME, self:mindCrit(explodeDamage), {type="flame"}) + local explodeDamage = self:callTalent(self.T_DETONATE, "explodeSecondary") + local jellySlow = self:callTalent(self.T_DETONATE, "jellySlow") + self:project(tg, m.x, m.y, DamageType.SLIME, {dam=self:mindCrit(explodeDamage), power=jellySlow}, {type="flame"}) end, on_arrival = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} @@ -324,8 +325,8 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local explodeBleed = self:callTalent(self.T_DETONATE, "explodeBleed") - self:project(tg, m.x, m.y, DamageType.BLEED, self:mindCrit(explodeBleed), {type="flame"}) + local confusePower = self:callTalent(self.T_DETONATE,"minotaurConfuse") + self:project(tg, m.x, m.y, DamageType.TEMP_EFFECT, {foes=true, eff=self.EFF_CONFUSED, check_immune="confusion", dur=5, p={minotaurConfuse}}, {type="flame"}) end, on_arrival = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} @@ -437,9 +438,8 @@ newTalent{ on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - local distance = self:callTalent(self.T_DETONATE, "knockbackDist") - local knockbackDamage = self:callTalent(self.T_DETONATE, "knockbackDamage") - self:project(tg, m.x, m.y, DamageType.PHYSKNOCKBACK, {dam=self:mindCrit(knockbackDamage), dist=dist}, {type="flame"}) + local explodeDamage = self:callTalent(self.T_DETONATE,"explodeDamage") + self:project(tg, m.x, m.y, DamageType.PHYSICAL, self:mindCrit(explodeDamage), {type="flame"}) end, on_arrival = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} diff --git a/game/modules/tome/data/talents/gifts/summon-utility.lua b/game/modules/tome/data/talents/gifts/summon-utility.lua index 464e9445184d86d431635b885bdf7a03d07af4c6..3a6024b8c82d39f237ee4f7e340f4a4bc1e7ecab 100644 --- a/game/modules/tome/data/talents/gifts/summon-utility.lua +++ b/game/modules/tome/data/talents/gifts/summon-utility.lua @@ -235,15 +235,9 @@ newTalent{ end, on_pre_use_ai = aiSummonPreUse, on_detonate = function(self, t, m) - local explodePin = self:callTalent(self.T_DETONATE,"explodePin") - local tg = {type="ball", range=self:getTalentRange(t), friendlyfire=false, radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y} - self:project(tg, m.x, m.y, function(px, py) - local target = game.level.map(px, py, Map.ACTOR) - if not target or self:reactionToward(target) >= 0 then return end - if target:canBe("pin") then - target:setEffect(target.EFF_PINNED, explodePin, {apply_power=self:mindCrit(self:combatMindpower())}) - end - end, nil, {type="flame"}) + local knockbackDist = self:callTalent(self.T_DETONATE,"spiderKnockback") + local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), friendlyfire=false, talent=t, x=m.x, y=m.y} + self:project(tg, m.x, m.y, DamageType.FEARKNOCKBACK, {dist=knockbackDist, x=m.x, y=m.y}, {type="acid"}) end, on_arrival = function(self, t, m) local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), talent=t, x=m.x, y=m.y}