From 3ccd8fae35d1cc2ed94ce01ef0b5725c926e8d87 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Thu, 28 Jun 2012 08:40:12 +0000
Subject: [PATCH] Overriding/removing/.. complex traps will correctly remove
 them

git-svn-id: http://svn.net-core.org/repos/t-engine4@5313 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/data/general/traps/complex.lua | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/game/modules/tome/data/general/traps/complex.lua b/game/modules/tome/data/general/traps/complex.lua
index f7c404c271..877fa2afae 100644
--- a/game/modules/tome/data/general/traps/complex.lua
+++ b/game/modules/tome/data/general/traps/complex.lua
@@ -114,6 +114,8 @@ newEntity{ base = "TRAP_COMPLEX",
 	canAct = false,
 	energy = {value=0},
 	act = function(self)
+		if game.level.map(self.x, self.y, engine.Map.TRAP) ~= self then game.level:removeEntity(self, true) return end
+
 		local x, y = self.list[self.list.i].x, self.list[self.list.i].y
 		self.list.i = util.boundWrap(self.list.i + 1, 1, #self.list)
 
@@ -168,6 +170,8 @@ newEntity{ base = "TRAP_COMPLEX",
 		self:useEnergy(game.energy_to_act * 7)
 	end,
 	act = function(self)
+		if game.level.map(self.x, self.y, engine.Map.TRAP) ~= self then game.level:removeEntity(self, true) return end
+
 		local ok = false
 		local tg = {type="ball", radius=self.rad, friendlyfire=false}
 		self:project(tg, self.x, self.y, function(px, py)
-- 
GitLab