diff --git a/game/modules/tome/data/talents/psionic/nightmare.lua b/game/modules/tome/data/talents/psionic/nightmare.lua index e2d2b725fea5eec92d1f23269ea74da16d69f5b4..a5d5be624296fa4c4590b86236a005c68f85a262 100644 --- a/game/modules/tome/data/talents/psionic/nightmare.lua +++ b/game/modules/tome/data/talents/psionic/nightmare.lua @@ -103,7 +103,7 @@ newTalent{ if crit then tl = self:mindCrit(tl) end return self:combatLimit(tl, 100, 0, 0, 21, 21) -- Limit < 100% end, - getDuration = function(self, t) return math.floor(self:combatTalentScale(t, 4, 12)) end, + getDuration = function(self, t) return self:combatTalentLimit(t, 15, 2, 12) end, summon_inner_demons = function(self, target, t) -- Find space local x, y = util.findFreeGrid(target.x, target.y, 1, true, {[Map.ACTOR]=true}) @@ -167,10 +167,8 @@ newTalent{ return nil end - -- "INNER_DEMONS" effect in data\time_effects\mental.lua calculates sleeping target effect - local chance = t.getChance(self, t, true) - - local chance = self:mindCrit(t.getChance(self, t)) + -- "INNER_DEMONS" effect in data\time_effects\mental.lua calculates sleeping target effect + local chance = t.getChance(self, t, false) if target:canBe("fear") or target:attr("sleep") then target:setEffect(target.EFF_INNER_DEMONS, t.getDuration(self, t), {src = self, chance=chance, apply_power=self:combatMindpower()}) else @@ -185,7 +183,8 @@ newTalent{ local chance = t.getChance(self, t) return ([[Brings the target's inner demons to the surface. Each turn, for %d turns, there's a %d%% chance that a demon will surface, requiring the target to make a Mental Save to keep it from manifesting. If the target is sleeping, the chance to save will be halved, and fear immunity will be ignored. Otherwise, if the summoning is resisted, the effect will end early. - The summon chance will scale with your Mindpower and the demon's life will scale with the target's rank.]]):format(duration, chance) + The summon chance will scale with your Mindpower and the demon's life will scale with the target's rank. + If a demon manifests the sheer terror will remove all sleep effects from the victim, but not the Inner Demons.]]):format(duration, chance) end, } diff --git a/game/modules/tome/data/timed_effects/mental.lua b/game/modules/tome/data/timed_effects/mental.lua index f97b6ecf13a7261b48df623ac9839c087a9866a6..2ea9bcefb391268d1516b88762388f5ae3a6d68c 100644 --- a/game/modules/tome/data/timed_effects/mental.lua +++ b/game/modules/tome/data/timed_effects/mental.lua @@ -1601,6 +1601,7 @@ newEffect{ if rng.percent(chance) then if self:attr("sleep") or self:checkHit(eff.src:combatMindpower(), self:combatMentalResist(), 0, 95, 5) then t.summon_inner_demons(eff.src, self, t) + self:removeEffectsFilter({subtype={["sleep"] = true}}, 3) -- Allow the player to actually react to one of the biggest threats in the game before 50 more spawn else eff.dur = 0 end