From b7af82a387f6371ca082b1b31e875d81d013aa38 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Tue, 19 Jun 2012 19:34:25 +0000
Subject: [PATCH] oups :)

git-svn-id: http://svn.net-core.org/repos/t-engine4@5257 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/Level.lua            | 4 ++--
 game/modules/tome/class/Trap.lua                 | 2 +-
 game/modules/tome/data/general/traps/complex.lua | 6 ++++++
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/game/engines/default/engine/Level.lua b/game/engines/default/engine/Level.lua
index 86d3791a22..f4133642af 100644
--- a/game/engines/default/engine/Level.lua
+++ b/game/engines/default/engine/Level.lua
@@ -79,9 +79,9 @@ function _M:addEntity(e, after, no_error)
 	end
 
 	if self.entities[e.uid] and self.entities[e.uid] == e then return end
-	if self.entities[e.uid] then 
+	if self.entities[e.uid] then
 		if self.remove_old_entity_on_duplicate then self:removeEntity(self.entities[e.uid], true) end
-		if no_error then return else error("Entity "..e.uid.."("..(e.name or "???")..") already present on the level") end 
+		if no_error then return else error("Entity "..e.uid.."("..(e.name or "???")..") already present on the level") end
 	end
 	self.entities[e.uid] = e
 	if e.addEntityOrder then after = e:addEntityOrder(level) end
diff --git a/game/modules/tome/class/Trap.lua b/game/modules/tome/class/Trap.lua
index 7636812152..80030e44ef 100644
--- a/game/modules/tome/class/Trap.lua
+++ b/game/modules/tome/class/Trap.lua
@@ -78,7 +78,7 @@ end
 
 --- Called when disarmed
 function _M:onDisarm(x, y, who)
-	-- Let the actor gain exp
+	self:check("disarmed", x, y, who)
 end
 
 --- Called when triggered
diff --git a/game/modules/tome/data/general/traps/complex.lua b/game/modules/tome/data/general/traps/complex.lua
index 10f52cd34d..c1526bc960 100644
--- a/game/modules/tome/data/general/traps/complex.lua
+++ b/game/modules/tome/data/general/traps/complex.lua
@@ -99,6 +99,9 @@ newEntity{ base = "TRAP_COMPLEX",
 		if self:reactionToward(who) < 0 then self.dam = self.dam * 1.5 end
 		return true
 	end,
+	disarmed = function(self, x, y, who)
+		game.level:removeEntity(self, true)
+	end,
 	canAct = false,
 	energy = {value=0},
 	act = function(self)
@@ -132,6 +135,9 @@ newEntity{ base = "TRAP_COMPLEX",
 		self:firePoison()
 		return true
 	end,
+	disarmed = function(self, x, y, who)
+		game.level:removeEntity(self, true)
+	end,
 	canAct = false,
 	energy = {value=0},
 	firePoison = function(self)
-- 
GitLab