From a6f37f9b7734fe3122cc221c22efaf8498443ccc Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Wed, 4 Jul 2012 18:23:28 +0000 Subject: [PATCH] Fearscape restores coords even to dead actors git-svn-id: http://svn.net-core.org/repos/t-engine4@5331 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/GameState.lua | 2 +- .../data/talents/corruptions/shadowflame.lua | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua index 1c03530751..3353c9e2f9 100644 --- a/game/modules/tome/class/GameState.lua +++ b/game/modules/tome/class/GameState.lua @@ -1819,7 +1819,7 @@ function _M:startEvents() -- Generate the events list for this zone, eventually loading from group files local evts = {} for i, e in ipairs(game.zone.events) do - if e.name then evts[#evts+1] = e.name + if e.name then evts[#evts+1] = e elseif e.group then local f, err = loadfile("/data/general/events/groups/"..e.group..".lua") if not f then error(err) end diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua index c4d8094d73..d08f96550a 100644 --- a/game/modules/tome/data/talents/corruptions/shadowflame.lua +++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua @@ -254,13 +254,17 @@ newTalent{ game.zone_name_s = nil local x1, y1 = util.findFreeGrid(p.x, p.y, 20, true, {[Map.ACTOR]=true}) - if x1 and not self.dead then - self:move(x1, y1, true) - self.on_die, self.demon_plane_on_die = self.demon_plane_on_die, nil - game.level.map:particleEmitter(x1, y1, 1, "demon_teleport") + if x1 then + if not self.dead then + self:move(x1, y1, true) + self.on_die, self.demon_plane_on_die = self.demon_plane_on_die, nil + game.level.map:particleEmitter(x1, y1, 1, "demon_teleport") + else + self.x, self.y = x1, y1 + end end + local x2, y2 = util.findFreeGrid(p.x, p.y, 20, true, {[Map.ACTOR]=true}) if not p.target.dead then - local x2, y2 = util.findFreeGrid(p.x, p.y, 20, true, {[Map.ACTOR]=true}) if x2 then p.target:move(x2, y2, true) p.target.on_die, p.target.demon_plane_on_die = p.target.demon_plane_on_die, nil @@ -268,6 +272,8 @@ newTalent{ end if oldlevel:hasEntity(p.target) then oldlevel:removeEntity(p.target) end level:addEntity(p.target) + else + p.target.x, p.target.y = x2, y2 end -- Add objects back -- GitLab