diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 1c0a0a7e625cdcf144eb66a2e3d68a8cd3eb7efd..8b907d082e1d3c1e1f91d3e6d6163301188604fd 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -1231,7 +1231,7 @@ function _M:resolveSource() end function _M:die(src) - if self.dead then self:disappear(src) return true end + if self.dead then self:disappear(src) self:deleteFromMap(game.level.map) return true end engine.interface.ActorLife.die(self, src) @@ -2498,7 +2498,7 @@ end --- Call when added to a level -- Used to make escorts and such function _M:addedToLevel(level, x, y) - self:resetToFull() + if not self._rst_full then self:resetToFull() self._rst_full = true end -- Only do it once, the first time we come into being if self.make_escort then for _, filter in ipairs(self.make_escort) do for i = 1, filter.number do diff --git a/game/modules/tome/data/talents/chronomancy/timeline-threading.lua b/game/modules/tome/data/talents/chronomancy/timeline-threading.lua index 267c5ac6c66df209b2135b0cbc163eb39a818353..a82a51a08c6552523196f6828cbab6589b40da4e 100644 --- a/game/modules/tome/data/talents/chronomancy/timeline-threading.lua +++ b/game/modules/tome/data/talents/chronomancy/timeline-threading.lua @@ -120,7 +120,7 @@ newTalent{ m.energy.value = 0 m.life = m.life - m.forceLevelup = false + m.forceLevelup = function() end -- Handle special things m.on_die = nil m.on_acquire_target = nil diff --git a/game/modules/tome/data/talents/chronomancy/timetravel.lua b/game/modules/tome/data/talents/chronomancy/timetravel.lua index c80f527b1bed0bdfe698b9466b76460a8ff6f59f..e6bb6ca8380c0efd27eb74fb173d25cfb5f4a74a 100644 --- a/game/modules/tome/data/talents/chronomancy/timetravel.lua +++ b/game/modules/tome/data/talents/chronomancy/timetravel.lua @@ -113,8 +113,6 @@ newTalent{ return end - -- Keep the Actor from leveling on return - target.forceLevelup = false -- Create an object to time the effect and store the creature -- First, clone the terrain that we are replacing local terrain = game.level.map(target.x, target.y, engine.Map.TERRAIN) @@ -200,11 +198,11 @@ newTalent{ end end, activate = function(self, t) - + if checkTimeline(self) == true then return end - + game:playSoundNear(self, "talents/arcane") return { game:chronoClone("revision"), @@ -237,25 +235,25 @@ newTalent{ no_npc_use = true, on_pre_use = function(self, t, silent) if not self:isTalentActive(self.T_DOOR_TO_THE_PAST) then if not silent then game.logPlayer(self, "Door to the Past must be active to use this talent.") end return false end return true end, action = function(self, t) - + -- Prevent Revision After Death if game._chronoworlds == nil then game.logPlayer(game.player, "#LIGHT_RED#Your spell fizzles.") return - end - + end + game:onTickEnd(function() if not game:chronoRestore("revision", true) then game.logSeen(self, "#LIGHT_RED#The spell fizzles.") return end game.logPlayer(game.player, "#LIGHT_BLUE#You unfold the spacetime continuum to a previous state!") - + -- Manualy start the cooldown of the "old player" game.player:startTalentCooldown(t) game.player:incParadox(t.paradox * (1 + (game.player.paradox / 300))) end) - + return true end, info = function(self, t) diff --git a/game/modules/tome/data/talents/divine/twilight.lua b/game/modules/tome/data/talents/divine/twilight.lua index 29bbc1a2617936b106feebb58618eca485ff3011..7b3533dd43531fc6dbb6c89a5f2424a0430aa4c0 100644 --- a/game/modules/tome/data/talents/divine/twilight.lua +++ b/game/modules/tome/data/talents/divine/twilight.lua @@ -229,7 +229,7 @@ newTalent{ m.energy.value = 0 m.life = m.life / (2 - (modifier / 50)) - m.forceLevelup = false + m.forceLevelup = function() end -- Handle special things m.on_die = nil m.on_acquire_target = nil diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index e21dd314c6bd867e2dc0041574a4d0854a0ec753..31f0d56bd7e99d57ad2dcd19a7801255861b0d8a 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -688,8 +688,6 @@ newInscription{ return end - -- Keep the Actor from leveling on return - target.forceLevelup = false -- Create an object to time the effect and store the creature -- First, clone the terrain that we are replacing local terrain = game.level.map(target.x, target.y, engine.Map.TERRAIN)