diff --git a/game/modules/tome/data/talents/cursed/dark-sustenance.lua b/game/modules/tome/data/talents/cursed/dark-sustenance.lua index 8bd68da571c90a28a91a3c2d4148fb53e9899f99..5c5c19cfcc05d0878f1dcbc7092e2e3c0f1f495b 100644 --- a/game/modules/tome/data/talents/cursed/dark-sustenance.lua +++ b/game/modules/tome/data/talents/cursed/dark-sustenance.lua @@ -113,7 +113,7 @@ newTalent{ if target and not target.dead then local lifeSteal = t.getLifeSteal(self, t) - self:project({type="hit", x=target.x,y=target.y}, target.x, target.y, DamageType.DEVOUR_LIFE, { dam=lifeSteal }) + self:project({type="hit", talent=t, x=target.x,y=target.y}, target.x, target.y, DamageType.DEVOUR_LIFE, { dam=lifeSteal }) game.level.map:particleEmitter(self.x, self.y, math.max(math.abs(target.x-self.x), math.abs(target.y-self.y)), "dark_torrent", {tx=target.x-self.x, ty=target.y-self.y}) --local dx, dy = target.x - self.x, target.y - self.y diff --git a/game/modules/tome/data/talents/cursed/darkness.lua b/game/modules/tome/data/talents/cursed/darkness.lua index 224c2bceade5f854faf1b19e3eea433f08026746..25bbe28aff2a5b8aba55232dff2fb6b2d780261a 100644 --- a/game/modules/tome/data/talents/cursed/darkness.lua +++ b/game/modules/tome/data/talents/cursed/darkness.lua @@ -223,7 +223,7 @@ newTalent{ local actor = game.level.map(self.x, self.y, Map.ACTOR) if actor and actor ~= self.summoner and (not actor.summoner or actor.summoner ~= self.summoner) then self.projecting = true -- simplest way to indicate that this damage should not be amplified by the in creeping dark bonus - self.summoner:project(actor, actor.x, actor.y, engine.DamageType.DARKNESS, self.damage) + self.summoner:project({type="hit", range=self:getTalentRange(t), talent=self:getTalentFromId(self.T_CREEPING_DARKNESS)}, actor.x, actor.y, engine.DamageType.DARKNESS, self.damage) self.projecting = false end @@ -394,7 +394,7 @@ newTalent{ -- your will ignores friendly targets (except for knockback hits) local target = game.level.map(x, y, Map.ACTOR) if target then - self:project(target, target.x, target.y, DamageType.DARKNESS, damage) + self:project({type="hit", range=self:getTalentRange(t), talent=t}, target.x, target.y, DamageType.DARKNESS, damage) if rng.percent(25) then if not target.dead and target:canBe("blind") then target:setEffect(target.EFF_BLINDED, 3, {apply_power=self:combatMindpower(), min_dur=1}) diff --git a/game/modules/tome/data/talents/cursed/force-of-will.lua b/game/modules/tome/data/talents/cursed/force-of-will.lua index b6a86824093fb83886597e2b2a438e7199d882b7..1a9ac52be4649e15f2c7247ffdf81c67a27de5b0 100644 --- a/game/modules/tome/data/talents/cursed/force-of-will.lua +++ b/game/modules/tome/data/talents/cursed/force-of-will.lua @@ -22,11 +22,11 @@ -- knockback: distance to knockback -- knockbackDamage: when knockback strikes something, both parties take damage - percent of damage * remaining knockback -- power: used to determine the initial radius of particles -local function forceHit(self, target, sourceX, sourceY, damage, knockback, knockbackDamage, power, max) +local function forceHit(self, t, target, sourceX, sourceY, damage, knockback, knockbackDamage, power, max) -- apply initial damage if damage > 0 then damage = self:mindCrit(damage) - self:project(target, target.x, target.y, DamageType.PHYSICAL, damage) + self:project({type="hit", range=10, talent=t}, target.x, target.y, DamageType.PHYSICAL, damage) game.level.map:particleEmitter(target.x, target.y, 1, "force_hit", {power=power, dx=target.x - sourceX, dy=target.y - sourceY}) end @@ -66,12 +66,12 @@ local function forceHit(self, target, sourceX, sourceY, damage, knockback, knock -- take partial damage local blockDamage = damage * util.bound(knockback * (knockbackDamage / 100), 0, 1.5) - self:project(target, target.x, target.y, DamageType.PHYSICAL, blockDamage) + self:project({type="hit", range=10, talent=t}, target.x, target.y, DamageType.PHYSICAL, blockDamage) if nextTarget then -- start a new force hit with the knockback damage and current knockback if max > 0 then - forceHit(self, nextTarget, sourceX, sourceY, blockDamage, knockback, knockbackDamage, power / 2, max - 1) + forceHit(self, t, nextTarget, sourceX, sourceY, blockDamage, knockback, knockbackDamage, power / 2, max - 1) end end @@ -128,7 +128,7 @@ newTalent{ local power = 1 --(1 - ((distance - 1) / range)) local damage = t.getDamage(self, t) * power local knockback = t.getKnockback(self, t) - forceHit(self, target, self.x, self.y, damage, knockback, 7, power, 10) + forceHit(self, t, target, self.x, self.y, damage, knockback, 7, power, 10) return true end, on_learn = function(self, t) @@ -266,7 +266,7 @@ newTalent{ local localDamage = damage * power local dazeDuration = t.getDazeDuration(self, t) - forceHit(self, target, blastX, blastY, damage, math.max(0, knockback - distance), 7, power, 10) + forceHit(self, t, target, blastX, blastY, damage, math.max(0, knockback - distance), 7, power, 10) if target:canBe("stun") then target:setEffect(target.EFF_DAZED, dazeDuration, {src=self}) end @@ -351,7 +351,7 @@ newTalent{ -- Randomly take targets for i = 1, hitCount do local target, index = rng.table(targets) - forceHit(self, target, target.x, target.y, damage, knockback, 7, 0.6, 10) + forceHit(self, t, target, target.x, target.y, damage, knockback, 7, 0.6, 10) end end diff --git a/game/modules/tome/data/talents/cursed/punishments.lua b/game/modules/tome/data/talents/cursed/punishments.lua index 792295bd099f8a735267a68ffb7fc406990f22f6..bf19249a78f09794828040b582b269446ce0d178 100644 --- a/game/modules/tome/data/talents/cursed/punishments.lua +++ b/game/modules/tome/data/talents/cursed/punishments.lua @@ -53,7 +53,7 @@ newTalent{ damage = damage * math.pow(spreadFactor, #targets - 1) end for i, t in ipairs(targets) do - self:project({type="hit", x=t.x,y=t.y}, t.x, t.y, DamageType.MIND, { dam=damage, crossTierChance=25 }) + self:project({type="hit", talent=t, x=t.x,y=t.y}, t.x, t.y, DamageType.MIND, { dam=damage, crossTierChance=25 }) game.level.map:particleEmitter(t.x, t.y, 1, "reproach", { dx = self.x - t.x, dy = self.y - t.y }) end