diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua index 6b5b778a0e1ec05f6d516693e4339a52724d8bd3..cd61a665c22f58b763aa00f6028eea84263a3824 100644 --- a/game/modules/tome/data/damage_types.lua +++ b/game/modules/tome/data/damage_types.lua @@ -148,7 +148,7 @@ setDefaultProjector(function(src, x, y, type, dam, state) end if src:attr("stunned") then - dam = dam * 0.4 + dam = dam * 0.3 print("[PROJECTOR] stunned dam", dam) end if src:attr("invisible_damage_penalty") then diff --git a/game/modules/tome/data/talents/cunning/poisons.lua b/game/modules/tome/data/talents/cunning/poisons.lua index 2750ef316b6f40c87be1bdb03024bf37628d3b61..779bc4429f434a0508b762eac7949a44b265588b 100644 --- a/game/modules/tome/data/talents/cunning/poisons.lua +++ b/game/modules/tome/data/talents/cunning/poisons.lua @@ -49,7 +49,7 @@ newTalent{ getDamage = function(self, t) return 8 + self:combatTalentStatDamage(t, "cun", 10, 60) * 0.6 end, ApplyPoisons = function(self, t, target, weapon) -- apply poison(s) to a target if self:knowTalent(self.T_VULNERABILITY_POISON) then -- apply vulnerability first - target:setEffect(target.EFF_VULNERABILITY_POISON, t.getDuration(self, t), {src=self, power=self:callTalent(self.T_VULNERABILITY_POISON, "getDamage") , apply_power=self:combatAttack(), no_ct_effect=true}) + target:setEffect(target.EFF_VULNERABILITY_POISON, t.getDuration(self, t), {src=self, power=self:callTalent(self.T_VULNERABILITY_POISON, "getDamage") , no_ct_effect=true}) end if target:canBe("poison") then local insidious = 0 @@ -63,7 +63,7 @@ newTalent{ local volatile = 0 if self:isTalentActive(self.T_VOLATILE_POISON) then volatile = self:callTalent(self.T_VOLATILE_POISON, "getEffect")/100 end local dam = t.getDamage(self,t) * (1 + volatile) - target:setEffect(target.EFF_DEADLY_POISON, t.getDuration(self, t), {src=self, power=dam, max_power=dam*4, insidious=insidious, crippling=crippling, numbing=numbing, leeching=leeching, volatile=volatile, apply_power=self:combatAttack(), no_ct_effect=true}) + target:setEffect(target.EFF_DEADLY_POISON, t.getDuration(self, t), {src=self, power=dam, max_power=dam*4, insidious=insidious, crippling=crippling, numbing=numbing, leeching=leeching, volatile=volatile, no_ct_effect=true}) if self.vile_poisons then for tid, val in pairs(self.vile_poisons) do -- apply any special procs local tal = self:getTalentFromId(tid) diff --git a/game/modules/tome/data/timed_effects/magical.lua b/game/modules/tome/data/timed_effects/magical.lua index 83bcdd76e98f56d01181914969eeff991199b831..de6dcfd369070e849b45091ed2e2bbcb867fc88b 100644 --- a/game/modules/tome/data/timed_effects/magical.lua +++ b/game/modules/tome/data/timed_effects/magical.lua @@ -402,8 +402,7 @@ newEffect{ DamageType:get(DamageType.DARKNESS).projector(eff.src, self.x, self.y, DamageType.DARKNESS, eff.dam) end, activate = function(self, eff) - eff.power = math.floor(math.max(eff.power - (self:attr("confusion_immune") or 0) * 100, 10)) - eff.power = util.bound(eff.power, 0, 50) + eff.power = util.bound(eff.power, 0, 30) eff.tmpid = self:addTemporaryValue("confused", eff.power) if eff.power <= 0 then eff.dur = 0 end end, diff --git a/game/modules/tome/data/timed_effects/mental.lua b/game/modules/tome/data/timed_effects/mental.lua index 2ea9bcefb391268d1516b88762388f5ae3a6d68c..9edbfd90e2f08da4af8a551e2ef7fba33bd948c3 100644 --- a/game/modules/tome/data/timed_effects/mental.lua +++ b/game/modules/tome/data/timed_effects/mental.lua @@ -71,12 +71,11 @@ newEffect{ type = "mental", subtype = { confusion=true }, status = "detrimental", - parameters = { power=50 }, + parameters = { power=30 }, on_gain = function(self, err) return "#Target# wanders around!.", "+Confused" end, on_lose = function(self, err) return "#Target# seems more focused.", "-Confused" end, activate = function(self, eff) - eff.power = math.floor(math.max(eff.power - (self:attr("confusion_immune") or 0) * 100, 10)) - eff.power = util.bound(eff.power, 0, 50) + eff.power = util.bound(eff.power, 0, 30) eff.tmpid = self:addTemporaryValue("confused", eff.power) if eff.power <= 0 then eff.dur = 0 end end, @@ -261,7 +260,7 @@ newEffect{ newEffect{ name = "GLOOM_STUNNED", image = "effects/gloom_stunned.png", desc = "Stunned by the gloom", - long_desc = function(self, eff) return ("The gloom has stunned the target, reducing damage by 70%%, putting random talents on cooldown and reducing movement speed by 50%%. While stunned talents do not cooldown."):format() end, + long_desc = function(self, eff) return ("The gloom has stunned the target, reducing damage by 70%%, putting 4 random talents on cooldown and reducing movement speed by 50%%."):format() end, type = "mental", subtype = { gloom=true, stun=true }, status = "detrimental", @@ -272,7 +271,6 @@ newEffect{ eff.particle = self:addParticles(Particles.new("gloom_stunned", 1)) eff.tmpid = self:addTemporaryValue("stunned", 1) - eff.tcdid = self:addTemporaryValue("no_talents_cooldown", 1) eff.speedid = self:addTemporaryValue("movement_speed", -0.5) local tids = {} @@ -283,14 +281,12 @@ newEffect{ for i = 1, 4 do local t = rng.tableRemove(tids) if not t then break end - self.talents_cd[t.id] = 1 -- Just set cooldown to 1 since cooldown does not decrease while stunned + self.talents_cd[t.id] = 1 end end, deactivate = function(self, eff) self:removeParticles(eff.particle) - self:removeTemporaryValue("stunned", eff.tmpid) - self:removeTemporaryValue("no_talents_cooldown", eff.tcdid) self:removeTemporaryValue("movement_speed", eff.speedid) end, } @@ -307,8 +303,7 @@ newEffect{ on_lose = function(self, err) return "#Target# overcomes the gloom", "-Confused" end, activate = function(self, eff) eff.particle = self:addParticles(Particles.new("gloom_confused", 1)) - eff.power = math.floor(math.max(eff.power - (self:attr("confusion_immune") or 0) * 100, 10)) - eff.power = util.bound(eff.power, 0, 50) + eff.power = util.bound(eff.power, 0, 30) eff.tmpid = self:addTemporaryValue("confused", eff.power) if eff.power <= 0 then eff.dur = 0 end end, @@ -905,7 +900,7 @@ newEffect{ newEffect{ name = "MADNESS_STUNNED", image = "effects/madness_stunned.png", desc = "Stunned by madness", - long_desc = function(self, eff) return ("Madness has stunned the target, reducing damage by 70%%, lowering mind resistance by %d%%, putting random talents on cooldown and reducing movement speed by 50%%. While stunned talents do not cooldown."):format(eff.mindResistChange) end, + long_desc = function(self, eff) return ("Madness has stunned the target, reducing damage by 70%%, lowering mind resistance by %d%%, putting 4 random talents on cooldown and reducing movement speed by 50%%."):format(eff.mindResistChange) end, type = "mental", subtype = { madness=true, stun=true }, status = "detrimental", @@ -917,7 +912,6 @@ newEffect{ eff.mindResistChangeId = self:addTemporaryValue("resists", { [DamageType.MIND]=eff.mindResistChange }) eff.tmpid = self:addTemporaryValue("stunned", 1) - eff.tcdid = self:addTemporaryValue("no_talents_cooldown", 1) eff.speedid = self:addTemporaryValue("movement_speed", -0.5) local tids = {} @@ -928,7 +922,7 @@ newEffect{ for i = 1, 4 do local t = rng.tableRemove(tids) if not t then break end - self.talents_cd[t.id] = 1 -- Just set cooldown to 1 since cooldown does not decrease while stunned + self.talents_cd[t.id] = 1 end end, deactivate = function(self, eff) @@ -936,7 +930,6 @@ newEffect{ self:removeTemporaryValue("resists", eff.mindResistChangeId) self:removeTemporaryValue("stunned", eff.tmpid) - self:removeTemporaryValue("no_talents_cooldown", eff.tcdid) self:removeTemporaryValue("movement_speed", eff.speedid) end, } @@ -944,7 +937,7 @@ newEffect{ newEffect{ name = "MADNESS_CONFUSED", image = "effects/madness_confused.png", desc = "Confused by madness", - long_desc = function(self, eff) return ("Madness has confused the target, lowering mind resistance by %d%% and making it act randomly (%d%% chance) and unable to perform complex actions."):format(eff.mindResistChange, eff.power) end, + long_desc = function(self, eff) return ("Madness has confused the target, lowering mind resistance by %d%% and making it act randomly (%d%% chance)"):format(eff.mindResistChange, eff.power) end, type = "mental", subtype = { madness=true, confusion=true }, status = "detrimental", @@ -954,8 +947,7 @@ newEffect{ activate = function(self, eff) eff.particle = self:addParticles(Particles.new("gloom_confused", 1)) eff.mindResistChangeId = self:addTemporaryValue("resists", { [DamageType.MIND]=eff.mindResistChange }) - eff.power = math.floor(math.max(eff.power - (self:attr("confusion_immune") or 0) * 100, 10)) - eff.power = util.bound(eff.power, 0, 50) + eff.power = util.bound(eff.power, 0, 30) eff.tmpid = self:addTemporaryValue("confused", eff.power) end, deactivate = function(self, eff) @@ -1574,7 +1566,7 @@ newEffect{ end elseif chance == 3 then if self:canBe("confusion") then - self:setEffect(self.EFF_CONFUSED, 3, {power=50}) + self:setEffect(self.EFF_CONFUSED, 3, {power=30}) end end game.logSeen(self, "#F53CBE#%s succumbs to the nightmare!", self.name:capitalize()) @@ -2420,8 +2412,7 @@ newEffect{ parameters = { power=1, confuse=10, dam=1 }, activate = function(self, eff) DamageType:get(DamageType.MIND).projector(eff.src or self, self.x, self.y, DamageType.MIND, {dam=eff.dam, alwaysHit=true}) - eff.confuse = math.floor(math.max(eff.confuse - (self:attr("confusion_immune") or 0) * 100, 10)) - eff.confuse = util.bound(eff.confuse, 0, 50) -- Confusion cap of 50% + eff.confuse = util.bound(eff.confuse, 0, 30) -- Confusion cap of 30% eff.tmpid = self:addTemporaryValue("confused", eff.confuse) eff.cid = self:addTemporaryValue("inc_stats", {[Stats.STAT_CUN]=-eff.power/2}) if eff.power <= 0 then eff.dur = 0 end diff --git a/game/modules/tome/data/timed_effects/physical.lua b/game/modules/tome/data/timed_effects/physical.lua index 99f687a246aed0f276161610c7ee3ec0e2abd5ae..4c4041b119cd40bae4c5b9195c21eb179cea275e 100644 --- a/game/modules/tome/data/timed_effects/physical.lua +++ b/game/modules/tome/data/timed_effects/physical.lua @@ -444,7 +444,7 @@ newEffect{ newEffect{ name = "BURNING_SHOCK", image = "talents/flameshock.png", desc = "Burning Shock", - long_desc = function(self, eff) return ("The target is on fire, taking %0.2f fire damage per turn, reducing damage by 70%%, putting random talents on cooldown and reducing movement speed by 50%%. While flameshocked talents do not cooldown."):format(eff.power) end, + long_desc = function(self, eff) return ("The target is on fire, taking %0.2f fire damage per turn, reducing damage by 70%%, putting 4 random talents on cooldown and reducing movement speed by 50%%."):format(eff.power) end, type = "physical", subtype = { fire=true, stun=true }, status = "detrimental", @@ -453,7 +453,6 @@ newEffect{ on_lose = function(self, err) return "#Target# is not stunned anymore.", "-Burning Shock" end, activate = function(self, eff) eff.tmpid = self:addTemporaryValue("stunned", 1) - eff.tcdid = self:addTemporaryValue("no_talents_cooldown", 1) eff.speedid = self:addTemporaryValue("movement_speed", -0.5) local tids = {} @@ -464,7 +463,7 @@ newEffect{ for i = 1, 4 do local t = rng.tableRemove(tids) if not t then break end - self:startTalentCooldown(t.id, 1) -- Just set cooldown to 1 since cooldown does not decrease while stunned + self:startTalentCooldown(t.id, 1) end end, on_timeout = function(self, eff) @@ -472,7 +471,6 @@ newEffect{ end, deactivate = function(self, eff) self:removeTemporaryValue("stunned", eff.tmpid) - self:removeTemporaryValue("no_talents_cooldown", eff.tcdid) self:removeTemporaryValue("movement_speed", eff.speedid) end, } @@ -480,7 +478,7 @@ newEffect{ newEffect{ name = "STUNNED", image = "effects/stunned.png", desc = "Stunned", - long_desc = function(self, eff) return ("The target is stunned, reducing damage by 60%%, putting 3 random talents on cooldown and reducing movement speed by 50%%. While stunned talents do not cooldown."):format() end, + long_desc = function(self, eff) return ("The target is stunned, reducing damage by 70%%, putting 3 random talents on cooldown and reducing movement speed by 50%%."):format() end, type = "physical", subtype = { stun=true }, status = "detrimental", @@ -489,9 +487,7 @@ newEffect{ on_lose = function(self, err) return "#Target# is not stunned anymore.", "-Stunned" end, activate = function(self, eff) eff.tmpid = self:addTemporaryValue("stunned", 1) - eff.tcdid = self:addTemporaryValue("no_talents_cooldown", 1) eff.speedid = self:addTemporaryValue("movement_speed", -0.5) - local tids = {} for tid, lev in pairs(self.talents) do local t = self:getTalentFromId(tid) @@ -505,7 +501,6 @@ newEffect{ end, deactivate = function(self, eff) self:removeTemporaryValue("stunned", eff.tmpid) - self:removeTemporaryValue("no_talents_cooldown", eff.tcdid) self:removeTemporaryValue("movement_speed", eff.speedid) end, } @@ -3963,7 +3958,7 @@ newEffect{ self:doFOV() end if self:canBe("confusion") then - eff.cid = self:addTemporaryValue("confused", 50) + eff.cid = self:addTemporaryValue("confused", 30) end if core.shader.active() then self:effectParticles(eff, {type="shader_shield", args={size_factor=1.5, img="shadow_shot_debuff_tentacles"}, shader={type="tentacles", wobblingType=0, appearTime=0.8, time_factor=2000, noup=0.0}})