diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 01fe1985d068fbfe930f8857b634e3c2c30eab7d..47dc2b2a997e316bbe90df3f5cc3d692ad09d9a9 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -1952,7 +1952,7 @@ function _M:setAllowedBuild(what, notify) end function _M:playSoundNear(who, name) - if who and not who:attr("_forbid_sounds") and self.level and self.level.map.seens(who.x, who.y) then + if who and (not who.attr or not who:attr("_forbid_sounds")) and self.level and self.level.map.seens(who.x, who.y) then local pos = {x=0,y=0,z=0} if self.player and self.player.x then pos.x, pos.y = who.x - self.player.x, who.y - self.player.y end self:playSound(name, pos) diff --git a/game/modules/tome/data/talents/psionic/distortion.lua b/game/modules/tome/data/talents/psionic/distortion.lua index 92302a3e08b5bafc42236c979dc9f71bee50d4cc..58e91236f10d00cbefa78a773a4322d5d9255268 100644 --- a/game/modules/tome/data/talents/psionic/distortion.lua +++ b/game/modules/tome/data/talents/psionic/distortion.lua @@ -223,7 +223,7 @@ newTalent{ e.particles = game.level.map:particleEmitter(x, y, e.radius, "generic_vortex", {radius=e.radius, rm=255, rM=255, gm=180, gM=255, bm=180, bM=255, am=35, aM=90}) game.level:addEntity(e) game.level.map(x, y, Map.TERRAIN, e) - game.nicer_tiles:updateAround(game.level, x, y) + --game.nicer_tiles:updateAround(game.level, x, y) game.level.map:updateMap(x, y) game:playSoundNear(self, "talents/lightning_loud") return true diff --git a/game/modules/tome/data/zones/thieves-tunnels/npcs.lua b/game/modules/tome/data/zones/thieves-tunnels/npcs.lua index 40448b71d7f9d85eeb3b09964fea1671454a4b0d..c079271942c9108b9acbdcbf8fc5269e2c93e927 100644 --- a/game/modules/tome/data/zones/thieves-tunnels/npcs.lua +++ b/game/modules/tome/data/zones/thieves-tunnels/npcs.lua @@ -69,7 +69,13 @@ newEntity{ define_as = "ASSASSIN_LORD", can_talk = "assassin-lord", on_die = function(self, who) - game.level.map(self.x, self.y, game.level.map.TERRAIN, game.zone.grid_list.UP_WILDERNESS) + local oe = game.level.map(self.x, self.y, game.level.map.TERRAIN) + local g = game.zone.grid_list.UP_WILDERNESS + if oe and oe:attr("temporary") and oe.old_feat then + oe.old_feat = g + else + game.level.map(self.x, self.y, game.level.map.TERRAIN, g) + end game.logSeen(who, "As the assassin dies the magical veil protecting the stairs out vanishes.") for uid, e in pairs(game.level.entities) do if e.is_merchant and not e.dead then