diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 404b3ebc35c4882dbdbb01bf3878557115d3e779..c7b4fa053a820bd362f10d13392df1662fcda359 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -279,14 +279,17 @@ end --- Blink through walls function _M:probabilityTravel(x, y, dist) + if game.zone.wilderness then return true end + local dirx, diry = x - self.x, y - self.y local tx, ty = x, y while game.level.map:isBound(tx, ty) and game.level.map:checkAllEntities(tx, ty, "block_move", self) and dist > 0 do + if game.level.map.attrs(tx, ty, "no_teleport") then break end tx = tx + dirx ty = ty + diry dist = dist - 1 end - if game.level.map:isBound(tx, ty) and not game.level.map:checkAllEntities(tx, ty, "block_move", self) then + if game.level.map:isBound(tx, ty) and not game.level.map:checkAllEntities(tx, ty, "block_move", self) and not game.level.map.attrs(tx, ty, "no_teleport") then return engine.Actor.move(self, tx, ty, false) end return true diff --git a/game/modules/tome/data/talents/spells/conveyance.lua b/game/modules/tome/data/talents/spells/conveyance.lua index fd45f8ebd42f90860faec940af5a3c826b25fc00..3d81ba734e6751d16dd008c5a00c967a9553d1bc 100644 --- a/game/modules/tome/data/talents/spells/conveyance.lua +++ b/game/modules/tome/data/talents/spells/conveyance.lua @@ -41,6 +41,8 @@ newTalent{ game.logSeen(target, "The spell fizzles!") return true end + -- Annoy them! + if target ~= self and target:reactionToward(self) < 0 then target:setTarget(self) end local x, y = self.x, self.y if self:getTalentLevel(t) >= 4 then @@ -94,6 +96,8 @@ newTalent{ game.logSeen(target, "The spell fizzles!") return true end + -- Annoy them! + if target ~= self and target:reactionToward(self) < 0 then target:setTarget(self) end local x, y = self.x, self.y if self:getTalentLevel(t) >= 4 then