From 25484199be15b68bc150cc86a75dc64a9d308236 Mon Sep 17 00:00:00 2001
From: Alexander Sedov <alex0player@gmail.com>
Date: Sun, 11 Jan 2015 15:31:54 +0300
Subject: [PATCH] PlayerRun now checks for bad stuff after making a step, too,
 to alert player in more cases.

---
 game/engines/default/engine/interface/PlayerRun.lua | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/game/engines/default/engine/interface/PlayerRun.lua b/game/engines/default/engine/interface/PlayerRun.lua
index 4b63873c81..c1c769ab50 100644
--- a/game/engines/default/engine/interface/PlayerRun.lua
+++ b/game/engines/default/engine/interface/PlayerRun.lua
@@ -224,7 +224,14 @@ function _M:runStep()
 		if not self.running then return false end
 		if not self.running.busy then
 			self.running.cnt = self.running.cnt + 1
-		elseif self.running.busy.no_energy then
+		end
+		-- Check after running to spot actors that may slip away from us; we still won't get a turn but we'll get the next one
+		ret, msg = self:runCheck()
+		if not ret then
+			self:runStop(msg)
+			return false
+		end
+		if self.running.busy and self.running.busy.no_energy then
 			return self:runStep()
 		end
 		return true
-- 
GitLab