From df693a3ba81e6e29b9c94785e30eda02cd719704 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 14 May 2011 11:41:50 +0000
Subject: [PATCH] Time Prison correctly stops even fast actors

git-svn-id: http://svn.net-core.org/repos/t-engine4@3362 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/Actor.lua        | 3 ++-
 game/modules/tome/data/timed_effects.lua | 5 ++---
 tiled-maps/angolwen.tmx                  | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 84635ca6dd..5e97a378af 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -359,6 +359,7 @@ function _M:act()
 	if self:attr("stoned") then self.energy.value = 0 end
 	if self:attr("dazed") then self.energy.value = 0 end
 	if self:attr("time_stun") then self.energy.value = 0 end
+	if self:attr("time_prison") then self.energy.value = 0 end
 
 	-- Regain natural balance?
 	local equilibrium_level = game.level.map:checkEntity(self.x, self.y, Map.TERRAIN, "equilibrium_level")
@@ -842,7 +843,7 @@ function _M:onHeal(value, src)
 	end
 	value = value * util.bound((self.healing_factor or 1), 0, 2.5)
 
-	if src:attr("stunned") then
+	if self:attr("stunned") then
 		value = value / 2
 	end
 
diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua
index 5b9fd14d8b..58d93a050f 100644
--- a/game/modules/tome/data/timed_effects.lua
+++ b/game/modules/tome/data/timed_effects.lua
@@ -955,14 +955,13 @@ newEffect{
 	on_lose = function(self, err) return "#Target# is returned to normal time.", "-Out of Time" end,
 	activate = function(self, eff)
 		eff.iid = self:addTemporaryValue("invulnerable", 1)
+		eff.sid = self:addTemporaryValue("time_prison", 1)
 		eff.particle = self:addParticles(Particles.new("time_prison", 1))
 		self.energy.value = 0
 	end,
-	on_timeout = function(self, eff)
-		self.energy.value = 0
-	end,
 	deactivate = function(self, eff)
 		self:removeTemporaryValue("invulnerable", eff.iid)
+		self:removeTemporaryValue("time_prison", eff.sid)
 		self:removeParticles(eff.particle)
 	end,
 }
diff --git a/tiled-maps/angolwen.tmx b/tiled-maps/angolwen.tmx
index 373e1c487e..cc966b629b 100644
--- a/tiled-maps/angolwen.tmx
+++ b/tiled-maps/angolwen.tmx
@@ -86,7 +86,7 @@
  </tileset>
  <layer name="Terrain" width="50" height="50">
   <data encoding="base64" compression="zlib">
-   eJztmMsNwyAMhnPOEhmDGboQ8/SaAfqepNu0ByxZloPABGwQh19poAF/+WNeflkWPzVlVKtA2jFz8W8CWeLBHPDbkbKNlNP/azMAx/eve7iuqOwZri+m7o3KtBmO/KBlsTqLHD3nB2ah+XGUN1bHrBgT/aY+BmLM5XGBA3zQjqmEBfzQjmVyTA5rwnmuHQu8Vzzep47/1vyYHLY4fIgndj8yh7U879UPrt8cjtg6sSUD12cqB2Wge40WLLEzjVwOiP/CsNRm2BkOyR4PM4C4+hRJOB6FbeFnIH7HsKS2KeUYwQ+L+SHloCyxNluMVyUc/qAvjfmjlCOlzRrzOfddn31O1IrjGpEWR+46sTZHq/3HqBz7IBxn+1HCPwKHtTxv6Uft+aMFh1VNDluyeO4j9QKv27VjkvgAHDfE0aMvI/iBWTTH/R71Aw163+s=
+   eJztmMsNwyAMhnPOEhmDGboQ8/SaAfqepNu0ByxZloPABGwQh19JIQV/+WNeflkWPzVlVKtA2jFz8W8CWeLBHHDvSNlGyunz2gzA8f3rHq4rKnuG64upe6MybYYjP2hZrM4iR8/5gVlofnB58yHPaseeysR9U9ox5vK4wAH+aMdUwgJ+aMcyOSaHNeE8144F3iseM1PHUGt+TA5bHD7EE/s9Moe1PO/VD67fHI7YOrElA9dnKgdloHuNFiyxM41cDoj/wrDUZtgZDskeDzOAuPoUSTgehW3h/0D8jmFJbVPKMYIfFvNDykFZYm22GK9KOPxBXxrzRylHSps15nPuuz77rKUVxzUiLY7cdWJtjlb7j1E59kE4zvajhH8EDmt53tKP2vNHCw6rmhy2ZPHcR+oFXrdrxyTxAThuiKNHX0bwA7Nojvs96geXwt/r
   </data>
  </layer>
 </map>
-- 
GitLab