From 25cba3429c48f0ce21a31dd22dd2e6f0381ae19d Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sun, 31 Jan 2010 20:50:01 +0000
Subject: [PATCH] all dungeons got traps

git-svn-id: http://svn.net-core.org/repos/t-engine4@302 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engine/interface/ObjectIdentify.lua      |  4 +++
 .../data/general/traps/natural_forest.lua     | 32 +++++++++++++++++++
 game/modules/tome/data/zones/maze/traps.lua   |  1 +
 game/modules/tome/data/zones/maze/zone.lua    |  4 +++
 .../tome/data/zones/old-forest/traps.lua      |  1 +
 .../tome/data/zones/old-forest/zone.lua       |  4 +++
 .../tome/data/zones/tower-amon-sul/zone.lua   |  2 +-
 .../tome/data/zones/trollshaws/traps.lua      |  1 +
 .../tome/data/zones/trollshaws/zone.lua       |  4 +++
 9 files changed, 52 insertions(+), 1 deletion(-)
 create mode 100644 game/modules/tome/data/general/traps/natural_forest.lua
 create mode 100644 game/modules/tome/data/zones/maze/traps.lua
 create mode 100644 game/modules/tome/data/zones/old-forest/traps.lua
 create mode 100644 game/modules/tome/data/zones/trollshaws/traps.lua

diff --git a/game/engine/interface/ObjectIdentify.lua b/game/engine/interface/ObjectIdentify.lua
index a7e7e31a0c..18318913a7 100644
--- a/game/engine/interface/ObjectIdentify.lua
+++ b/game/engine/interface/ObjectIdentify.lua
@@ -31,6 +31,10 @@ function _M:isIdentified()
 		self.identified = game.object_known_types[self.type][self.subtype][self.name]
 	end
 
+	if self.auto_id then
+		self.identified = self.auto_id
+	end
+
 	return self.identified
 end
 
diff --git a/game/modules/tome/data/general/traps/natural_forest.lua b/game/modules/tome/data/general/traps/natural_forest.lua
new file mode 100644
index 0000000000..8fc080f7b3
--- /dev/null
+++ b/game/modules/tome/data/general/traps/natural_forest.lua
@@ -0,0 +1,32 @@
+newEntity{ define_as = "TRAP_NATURAL_FOREST",
+	type = "natural", subtype="forest", id_by_type=true, unided_name = "trap",
+	display = '^',
+	triggered = function(self, x, y, who)
+		(self.src or who):project({type="hit"}, x, y, self.damtype, self.dam, self.particles and {type=self.particles})
+		return true
+	end,
+}
+
+newEntity{ base = "TRAP_NATURAL_FOREST",
+	name = "sliding rock", auto_id = true,
+	detect_power = 6, disarm_power = 16,
+	rarity = 3, level_range = {1, 50},
+	color=colors.UMBER,
+	message = "@Target@ slides on a rock!",
+	triggered = function(self, x, y, who)
+		if who:checkHit(self.disarm_power + 5, who:combatPhysicalResist(), 0, 95, 15) and who:canBe("stun") then
+			who:setEffect(who.EFF_STUNNED, 4, {})
+		else
+			game.logSeen(who, "%s resists!", who.name:capitalize())
+		end
+	end
+}
+
+newEntity{ base = "TRAP_NATURAL_FOREST",
+	name = "poison vine", auto_id = true,
+	detect_power = 8, disarm_power = 2,
+	rarity = 3, level_range = {1, 50},
+	color=colors.GREEN,
+	message = "A poisonous vine strikes at @Target@!",
+	dam = resolvers.mbonus(150, 15), damtype = DamageType.POISON,
+}
diff --git a/game/modules/tome/data/zones/maze/traps.lua b/game/modules/tome/data/zones/maze/traps.lua
new file mode 100644
index 0000000000..61e5f0daf6
--- /dev/null
+++ b/game/modules/tome/data/zones/maze/traps.lua
@@ -0,0 +1 @@
+load("/data/general/traps/elemental.lua")
diff --git a/game/modules/tome/data/zones/maze/zone.lua b/game/modules/tome/data/zones/maze/zone.lua
index 295e6ebdf5..67fc0357e9 100644
--- a/game/modules/tome/data/zones/maze/zone.lua
+++ b/game/modules/tome/data/zones/maze/zone.lua
@@ -26,6 +26,10 @@ return {
 			nb_object = {4, 6},
 			filters = { {type="potion" }, {type="potion" }, {type="potion" }, {type="scroll" }, {}, {} }
 		},
+		trap = {
+			class = "engine.generator.trap.Random",
+			nb_trap = {9, 15},
+		},
 	},
 	levels =
 	{
diff --git a/game/modules/tome/data/zones/old-forest/traps.lua b/game/modules/tome/data/zones/old-forest/traps.lua
new file mode 100644
index 0000000000..45fe257b4a
--- /dev/null
+++ b/game/modules/tome/data/zones/old-forest/traps.lua
@@ -0,0 +1 @@
+load("/data/general/traps/natural_forest.lua")
diff --git a/game/modules/tome/data/zones/old-forest/zone.lua b/game/modules/tome/data/zones/old-forest/zone.lua
index 6cd1d9357c..6ad7532b61 100644
--- a/game/modules/tome/data/zones/old-forest/zone.lua
+++ b/game/modules/tome/data/zones/old-forest/zone.lua
@@ -31,6 +31,10 @@ return {
 			nb_object = {6, 9},
 			filters = { {} }
 		},
+		trap = {
+			class = "engine.generator.trap.Random",
+			nb_trap = {9, 15},
+		},
 	},
 	levels =
 	{
diff --git a/game/modules/tome/data/zones/tower-amon-sul/zone.lua b/game/modules/tome/data/zones/tower-amon-sul/zone.lua
index 2ca9c1006d..7388eb7871 100644
--- a/game/modules/tome/data/zones/tower-amon-sul/zone.lua
+++ b/game/modules/tome/data/zones/tower-amon-sul/zone.lua
@@ -32,7 +32,7 @@ return {
 		},
 		trap = {
 			class = "engine.generator.trap.Random",
-			nb_trap = {60, 90},
+			nb_trap = {6, 9},
 		},
 	},
 	levels =
diff --git a/game/modules/tome/data/zones/trollshaws/traps.lua b/game/modules/tome/data/zones/trollshaws/traps.lua
new file mode 100644
index 0000000000..45fe257b4a
--- /dev/null
+++ b/game/modules/tome/data/zones/trollshaws/traps.lua
@@ -0,0 +1 @@
+load("/data/general/traps/natural_forest.lua")
diff --git a/game/modules/tome/data/zones/trollshaws/zone.lua b/game/modules/tome/data/zones/trollshaws/zone.lua
index 2490774f24..4ea22538e6 100644
--- a/game/modules/tome/data/zones/trollshaws/zone.lua
+++ b/game/modules/tome/data/zones/trollshaws/zone.lua
@@ -30,6 +30,10 @@ return {
 			nb_object = {6, 9},
 			filters = { {type="potion" }, {type="potion" }, {type="potion" }, {type="scroll" }, {}, {} }
 		},
+		trap = {
+			class = "engine.generator.trap.Random",
+			nb_trap = {6, 9},
+		},
 	},
 	levels =
 	{
-- 
GitLab