Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion data/libs/functions/creature.lua
Original file line number Diff line number Diff line change
Expand Up @@ -172,28 +172,40 @@ function Creature:addDamageCondition(target, type, list, damage, period, rounds)
end

function Creature.checkCreatureInsideDoor(player, toPosition)
local creature = Tile(toPosition):getTopCreature()
local tile = Tile(toPosition)

if not tile then
player:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
return true
end

local creature = tile:getTopCreature()
if creature then
toPosition.x = toPosition.x + 1
local query = Tile(toPosition):queryAdd(creature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING))

if query ~= RETURNVALUE_NOERROR then
toPosition.x = toPosition.x - 1
toPosition.y = toPosition.y + 1
query = Tile(toPosition):queryAdd(creature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING))
end

if query ~= RETURNVALUE_NOERROR then
toPosition.y = toPosition.y - 2
query = Tile(toPosition):queryAdd(creature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING))
end

if query ~= RETURNVALUE_NOERROR then
toPosition.x = toPosition.x - 1
toPosition.y = toPosition.y + 1
query = Tile(toPosition):queryAdd(creature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING))
end

if query ~= RETURNVALUE_NOERROR then
player:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
return true
end

creature:teleportTo(toPosition, true)
end
end
Expand Down