From 754bfdd377292fa1a16a5286392bb2ddf85a5fb6 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Sun, 27 Nov 2011 21:06:26 +0000 Subject: [PATCH] Trying to rest with foes in sight will not spend a turn git-svn-id: http://svn.net-core.org/repos/t-engine4@4680 51575b47-30f0-44d4-a5cc-537603b46e54 --- .../engines/default/engine/interface/PlayerRest.lua | 13 +++++++++++-- game/modules/tome/class/Player.lua | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/game/engines/default/engine/interface/PlayerRest.lua b/game/engines/default/engine/interface/PlayerRest.lua index 5740a5d696..92c0e5e582 100644 --- a/game/engines/default/engine/interface/PlayerRest.lua +++ b/game/engines/default/engine/interface/PlayerRest.lua @@ -31,14 +31,23 @@ function _M:restInit(turns, what, past, on_end) rest_turns = turns, past = past, on_end = on_end, - cnt = 1, + cnt = 0, dialog = Dialog:simplePopup(what:capitalize().."...", "You are "..what..", press Enter to stop.", function() self:restStop() end), } self.resting.dialog.__showup = nil - self:useEnergy() + game.log(what:capitalize().." starts...") + + local ret, msg = self:restCheck() + if ret and self.resting and self.resting.rest_turns and self.resting.cnt > self.resting.rest_turns then ret = false msg = nil end + if not ret then + self:restStop(msg) + else + self:useEnergy() + self.resting.cnt = self.resting.cnt + 1 + end end --- Rest a turn diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index 1221f22def..5774885ca7 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -554,6 +554,8 @@ end local function spotHostiles(self) local seen = {} + if not self.x then return seen end + -- Check for visible monsters, only see LOS actors, so telepathy wont prevent resting core.fov.calc_circle(self.x, self.y, game.level.map.w, game.level.map.h, self.sight or 10, function(_, x, y) return game.level.map:opaque(x, y) end, function(_, x, y) local actor = game.level.map(x, y, game.level.map.ACTOR) -- GitLab