From e2ee83f0cb337c6ab93a03f5cb06910e6a297bf0 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 19 Jun 2010 19:02:17 +0000
Subject: [PATCH] populate mount doom

git-svn-id: http://svn.net-core.org/repos/t-engine4@816 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engine/Emote.lua                         |  41 +++++---
 game/modules/tome/class/Game.lua              |   2 +-
 game/modules/tome/class/NPC.lua               |  17 ++++
 game/modules/tome/class/PlayerDisplay.lua     |   5 +
 .../tome/class/generator/actor/MountDoom.lua  |   2 +
 game/modules/tome/data/autolevel_schemes.lua  |   4 +
 .../modules/tome/data/general/npcs/faeros.lua |  93 +++++++++++++++++
 .../tome/data/general/npcs/fire-drake.lua     |  96 ++++++++++++++++++
 .../tome/data/maps/zones/mount-doom.lua       |  13 +--
 .../tome/data/zones/mount-doom/npcs.lua       |  46 +++++++--
 .../tome/data/zones/mount-doom/zone.lua       |  18 ++--
 ideas/zones.ods                               | Bin 18093 -> 13529 bytes
 12 files changed, 300 insertions(+), 37 deletions(-)
 create mode 100644 game/modules/tome/data/general/npcs/faeros.lua
 create mode 100644 game/modules/tome/data/general/npcs/fire-drake.lua

diff --git a/game/engine/Emote.lua b/game/engine/Emote.lua
index 708d354f17..34fd22d690 100644
--- a/game/engine/Emote.lua
+++ b/game/engine/Emote.lua
@@ -30,32 +30,41 @@ function _M:init(text, dur, color)
 	w = w + 10
 	h = h + 15
 	self.dur = dur or 30
-	color = color or {r=0, g=0, b=0}
+	self.color = color or {r=0, g=0, b=0}
+	self.text = text
+	self.w = w
+	self.h = h
+	self:loaded()
+end
+
+--- Serialization
+function _M:save()
+	return class.save(self, {
+		surface = true,
+	})
+end
 
-	local s = core.display.newSurface(w, h)
+function _M:loaded()
+	local s = core.display.newSurface(self.w, self.h)
 	if not s then return end
 	s:erase(0, 0, 0, 255)
 
 	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/7.png"), 0, 0)
-	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/9.png"), w - 6, 0)
-	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/1.png"), 0, h - 10)
-	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/3.png"), w - 6, h - 10)
-	for i = 6, w - 6 do
+	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/9.png"), self.w - 6, 0)
+	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/1.png"), 0, self.h - 10)
+	s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/3.png"), self.w - 6, self.h - 10)
+	for i = 6, self.w - 6 do
 		s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/8.png"), i, 0)
-		s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/2.png"), i, h - 10)
+		s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/2.png"), i, self.h - 10)
 	end
-	for i = 6, h - 10 do
+	for i = 6, self.h - 10 do
 		s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/4.png"), 0, i)
-		s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/6.png"), w - 6, i)
+		s:merge(tiles:get(nil, 0,0,0, 0,0,0, "emote/6.png"), self.w - 6, i)
 	end
-	s:erase(255, 255, 255, 255, 6, 6, w - 6 - 6, h - 10 - 6)
-	s:erase(0, 0, 0, 0, 6, h - 4, w - 6, 4)
-
-	s:drawStringBlended(font, text, 5, 5, color.r, color.g, color.b)
+	s:erase(255, 255, 255, 255, 6, 6, self.w - 6 - 6, self.h - 10 - 6)
+	s:erase(0, 0, 0, 0, 6, self.h - 4, self.w - 6, 4)
 
-	self.text = text
-	self.w = w
-	self.h = h
+	s:drawStringBlended(font, self.text, 5, 5, self.color.r, self.color.g, self.color.b)
 	self.surface = s
 end
 
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 9b4db56c9e..ef8532877c 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -533,7 +533,7 @@ function _M:setupCommands()
 	self.key:addCommands{
 		[{"_d","ctrl"}] = function()
 			if config.settings.tome.cheat then
-				self.player:setEmote(require("engine.Emote").new("Hello World!", 100))
+				self.player:forceLevelup(50)
 --				self:changeLevel(1, "wilderness-arda-fareast")
 			end
 		end,
diff --git a/game/modules/tome/class/NPC.lua b/game/modules/tome/class/NPC.lua
index 6c082baf04..c1a38c2e8c 100644
--- a/game/modules/tome/class/NPC.lua
+++ b/game/modules/tome/class/NPC.lua
@@ -20,6 +20,7 @@
 require "engine.class"
 local ActorAI = require "engine.interface.ActorAI"
 local Faction = require "engine.Faction"
+local Emote = require("engine.Emote")
 require "mod.class.Actor"
 
 module(..., package.seeall, class.inherit(mod.class.Actor, engine.interface.ActorAI))
@@ -43,6 +44,11 @@ function _M:act()
 	-- Let the AI think .... beware of Shub !
 	-- If AI did nothing, use energy anyway
 	self:doAI()
+
+	if self.emote_random and rng.percent(self.emote_random.chance) then
+		self:doEmote(rng.table(self.emote_random))
+	end
+
 	if not self.energy.used then self:useEnergy() end
 end
 
@@ -120,3 +126,14 @@ UID: %d]]):format(
 	self.ai_target.actor and self.ai_target.actor.name or "none",
 	self.uid)
 end
+
+--- Make emotes appear in the log too
+function _M:setEmote(e)
+	game.logSeen(self, "%s says: '%s'", self.name:capitalize(), e.text)
+	mod.class.Actor.setEmote(self, e)
+end
+
+--- Simple emote
+function _M:doEmote(text, dur, color)
+	self:setEmote(Emote.new(text, dur, color))
+end
diff --git a/game/modules/tome/class/PlayerDisplay.lua b/game/modules/tome/class/PlayerDisplay.lua
index 48a630cbfd..a2d2ee9673 100644
--- a/game/modules/tome/class/PlayerDisplay.lua
+++ b/game/modules/tome/class/PlayerDisplay.lua
@@ -57,6 +57,11 @@ function _M:display()
 
 	h = h + self.font_h
 
+	if game.level and game.level.turn_counter then
+		self.surface:drawColorString(self.font, ("Turns remaining: %d"):format(game.level.turn_counter / 10), 0, h, 255, 0, 0) h = h + self.font_h
+		h = h + self.font_h
+	end
+
 	if game.player:getAir() < game.player.max_air then
 		self.surface:drawColorString(self.font, ("Air level: %d/%d"):format(game.player:getAir(), game.player.max_air), 0, h, 255, 0, 0) h = h + self.font_h
 		h = h + self.font_h
diff --git a/game/modules/tome/class/generator/actor/MountDoom.lua b/game/modules/tome/class/generator/actor/MountDoom.lua
index 83734c58d7..4a28446196 100644
--- a/game/modules/tome/class/generator/actor/MountDoom.lua
+++ b/game/modules/tome/class/generator/actor/MountDoom.lua
@@ -33,6 +33,8 @@ function _M:init(zone, map, level, spots)
 end
 
 function _M:tick()
+	if self.level.nb_attackers >= self.data.max_attackers then return end
+
 	local val = rng.float(0,1)
 	for i = 1,self.max_rate - 1 do
 		if val < rng.poissonProcess(i, self.turn_scale, self.rate) then
diff --git a/game/modules/tome/data/autolevel_schemes.lua b/game/modules/tome/data/autolevel_schemes.lua
index 8fd5a7e059..d5311823a5 100644
--- a/game/modules/tome/data/autolevel_schemes.lua
+++ b/game/modules/tome/data/autolevel_schemes.lua
@@ -63,6 +63,10 @@ Autolevel:registerScheme{ name = "warriormage", levelup = function(self)
 	learnStats(self, { self.STAT_MAG, self.STAT_MAG, self.STAT_WIL, self.STAT_STR, self.STAT_STR, self.STAT_DEX })
 end}
 
+Autolevel:registerScheme{ name = "dexmage", levelup = function(self)
+	learnStats(self, { self.STAT_MAG, self.STAT_MAG, self.STAT_DEX, self.STAT_DEX })
+end}
+
 Autolevel:registerScheme{ name = "snake", levelup = function(self)
 	learnStats(self, { self.STAT_CUN, self.STAT_DEX, self.STAT_CON, self.STAT_CUN, self.STAT_DEX, self.STAT_STR })
 end}
diff --git a/game/modules/tome/data/general/npcs/faeros.lua b/game/modules/tome/data/general/npcs/faeros.lua
new file mode 100644
index 0000000000..a8f1c88de7
--- /dev/null
+++ b/game/modules/tome/data/general/npcs/faeros.lua
@@ -0,0 +1,93 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+local Talents = require("engine.interface.ActorTalents")
+
+newEntity{
+	define_as = "BASE_NPC_FAEROS",
+	type = "elemental", subtype = "fire",
+	display = "E", color=colors.ORANGE,
+
+	combat = { dam=resolvers.rngavg(15,20), atk=15, apr=15, dammod={mag=0.8}, damtype=DamageType.FIRE },
+
+	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
+
+	infravision = 20,
+	life_rating = 8,
+	rank = 2,
+	size_category = 3,
+
+	autolevel = "dexmage",
+	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	energy = { mod=1 },
+	stats = { str=10, dex=8, mag=6, con=16 },
+
+	resists = { [DamageType.PHYSICAL] = 10, [DamageType.FIRE] = 100, },
+
+	no_breath = 1,
+	poison_immune = 1,
+	desease_immune = 1,
+}
+
+newEntity{ base = "BASE_NPC_FAEROS",
+	name = "faeros", color=colors.ORANGE,
+	desc = [[Faeros are highly intelligent fire elementals, rarely seen outside volcanos they are probably not native to this world.]],
+	level_range = {20, nil}, exp_worth = 1,
+	rarity = 7,
+	max_life = resolvers.rngavg(70,80),
+	combat_armor = 0, combat_def = 20,
+	on_melee_hit = { [DamageType.FIRE] = resolvers.mbonus(20, 10), },
+
+	resolvers.talents{
+		[Talents.T_FLAME]=3,
+	},
+}
+
+newEntity{ base = "BASE_NPC_FAEROS",
+	name = "greater faeros", color=colors.ORANGE,
+	desc = [[Faeros are highly intelligent fire elementals, rarely seen outside volcanos they are probably not native to this world.]],
+	level_range = {25, nil}, exp_worth = 1,
+	rarity = 9,
+	max_life = resolvers.rngavg(70,80), life_rating = 10,
+	combat_armor = 0, combat_def = 20,
+	on_melee_hit = { [DamageType.FIRE] = resolvers.mbonus(20, 10), },
+
+	resolvers.talents{
+		[Talents.T_FLAME]=4,
+		[Talents.T_FIERY_HANDS]=3,
+	},
+}
+
+newEntity{ base = "BASE_NPC_FAEROS",
+	name = "ultimate faeros", color=colors.ORANGE,
+	desc = [[Faeros are highly intelligent fire elementals, rarely seen outside volcanos they are probably not native to this world.]],
+	level_range = {35, nil}, exp_worth = 1,
+	rarity = 12,
+	rank = 3,
+	max_life = resolvers.rngavg(70,80),
+	combat_armor = 0, combat_def = 20,
+	on_melee_hit = { [DamageType.FIRE] = resolvers.mbonus(20, 10), },
+
+	resolvers.talents{
+		[Talents.T_FLAME]=4,
+		[Talents.T_FIERY_HANDS]=3,
+		[Talents.T_FLAMESHOCK]=3,
+		[Talents.T_INFERNO]=3,
+	},
+}
diff --git a/game/modules/tome/data/general/npcs/fire-drake.lua b/game/modules/tome/data/general/npcs/fire-drake.lua
new file mode 100644
index 0000000000..5f8c29aa51
--- /dev/null
+++ b/game/modules/tome/data/general/npcs/fire-drake.lua
@@ -0,0 +1,96 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+local Talents = require("engine.interface.ActorTalents")
+
+newEntity{
+	define_as = "BASE_NPC_FIRE_DRAKE",
+	type = "dragon", subtype = "fire",
+	display = "D", color=colors.WHITE,
+
+	combat = { dam=resolvers.rngavg(25,30), atk=15, apr=25, dammod={str=1} },
+
+	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
+	resolvers.drops{chance=100, nb=1, {type="money"} },
+
+	infravision = 20,
+	life_rating = 15,
+	rank = 2,
+	size_category = 5,
+
+	autolevel = "warrior",
+	ai = "dumb_talented_simple", ai_state = { talent_in=2, },
+	energy = { mod=1 },
+	stats = { str=20, dex=20, mag=30, con=16 },
+
+	resists = { [DamageType.FIRE] = 100, },
+
+	knockback_immune = 1,
+	stun_immune = 1,
+}
+
+newEntity{ base = "BASE_NPC_FIRE_DRAKE",
+	name = "fire drake hatchling", color=colors.RED, display="d",
+	desc = [[A drake hatchling, not too powerful in itself, but it usually comes with its brothers and sisters.]],
+	level_range = {8, nil}, exp_worth = 1,
+	rarity = 7,
+	rank = 1, size_category = 2,
+	max_life = resolvers.rngavg(40,60),
+	combat_armor = 5, combat_def = 0,
+	on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(7, 2)},
+	combat = { dam=resolvers.rngavg(10,15), atk=15, apr=5, dammod={str=0.6} },
+
+	make_escort = {
+		{type="dragon", subtype="fire", name="fire drake hatchling", number=3, no_subescort=true},
+	},
+}
+
+newEntity{ base = "BASE_NPC_FIRE_DRAKE",
+	name = "fire drake", color=colors.RED, display="D",
+	desc = [[A mature fire drake, armed with a deadly breath weapon and nasty claws.]],
+	level_range = {14, nil}, exp_worth = 1,
+	rarity = 8,
+	max_life = resolvers.rngavg(100,110),
+	combat_armor = 12, combat_def = 0,
+	on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(15, 10)},
+
+	resolvers.talents{
+		[Talents.T_WING_BUFFET]=2,
+		[Talents.T_FIRE_BREATH]=3,
+	},
+}
+
+newEntity{ base = "BASE_NPC_FIRE_DRAKE",
+	name = "fire wyrm", color=colors.LIGHT_RED, display="D",
+	desc = [[An old and powerful fire drake, armed with a deadly breath weapon and nasty claws.]],
+	level_range = {25, nil}, exp_worth = 1,
+	rarity = 12,
+	rank = 3,
+	max_life = resolvers.rngavg(170,190),
+	combat_armor = 30, combat_def = 0,
+	on_melee_hit = {[DamageType.FIRE]=resolvers.mbonus(25, 10)},
+	combat = { dam=resolvers.rngavg(25,40), atk=25, apr=25, dammod={str=1.1} },
+
+	resolvers.talents{
+		[Talents.T_WING_BUFFET]=5,
+		[Talents.T_FLAME]=5,
+		[Talents.T_FIRE_BREATH]=5,
+		[Talents.T_DEVOURING_FLAME]=3,
+	},
+}
diff --git a/game/modules/tome/data/maps/zones/mount-doom.lua b/game/modules/tome/data/maps/zones/mount-doom.lua
index 69ab9ebfc7..2ebf1be1d1 100644
--- a/game/modules/tome/data/maps/zones/mount-doom.lua
+++ b/game/modules/tome/data/maps/zones/mount-doom.lua
@@ -21,7 +21,8 @@ defineTile("'", "LAVA_FLOOR")
 defineTile('~', "LAVA")
 defineTile('#', "LAVA_WALL")
 defineTile(' ', "FLOOR")
-defineTile('@', "FLOOR", nil, "SUN_PALADIN_DEFENDER")
+defineTile('p', "FLOOR", nil, "SUN_PALADIN_DEFENDER")
+defineTile('@', "FLOOR", nil, "SUN_PALADIN_DEFENDER_RODMOUR")
 defineTile('o', "FLOOR", nil, "URUK-HAI_ATTACK")
 
 subGenerator{
@@ -49,18 +50,18 @@ return [[
 #          #
 ##         #
 ###       ##
-###@@@@@# ##
+###pp@pp# ##
 ##      ####
 ###     ####
 ##      ####
 ###      ###
 ###     ####
 ####   #####
+#####'######
+####'#'#####
+#####'######
 ####'''#####
-####'''#####
-####'''#####
-####'''#####
-####'''#####
+####'#######
 ####'''#####
 #####'''####
 ............
diff --git a/game/modules/tome/data/zones/mount-doom/npcs.lua b/game/modules/tome/data/zones/mount-doom/npcs.lua
index 514ce6705d..439a5c9847 100644
--- a/game/modules/tome/data/zones/mount-doom/npcs.lua
+++ b/game/modules/tome/data/zones/mount-doom/npcs.lua
@@ -17,11 +17,10 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
-load("/data/general/npcs/rodent.lua")
-load("/data/general/npcs/vermin.lua")
-load("/data/general/npcs/molds.lua")
-load("/data/general/npcs/skeleton.lua")
-load("/data/general/npcs/snake.lua")
+load("/data/general/npcs/faeros.lua")
+load("/data/general/npcs/fire_elemental.lua")
+load("/data/general/npcs/molten_golem.lua")
+load("/data/general/npcs/fire-drake.lua")
 
 local Talents = require("engine.interface.ActorTalents")
 
@@ -77,6 +76,36 @@ newEntity{ base = "BASE_NPC_SUNWALL_DEFENDER", define_as = "SUN_PALADIN_DEFENDER
 	end,
 }
 
+newEntity{ base = "BASE_NPC_SUNWALL_DEFENDER", define_as = "SUN_PALADIN_DEFENDER_RODMOUR",
+	name = "High Sun-Paladin Rodmour", color=colors.VIOLET,
+	desc = [[A human in a shiny plate armour.]],
+	level_range = {70, nil}, exp_worth = 1,
+	rank = 3,
+	positive_regen = 10,
+	life_regen = 5,
+	max_life = resolvers.rngavg(240,270),
+	resolvers.equip{
+		{type="weapon", subtype="mace", autoreq=true},
+		{type="armor", subtype="shield", autoreq=true},
+		{type="armor", subtype="massive", autoreq=true},
+	},
+	resolvers.talents{
+		[Talents.T_MASSIVE_ARMOUR_TRAINING]=5,
+		[Talents.T_CHANT_OF_FORTRESS]=5,
+		[Talents.T_SEARING_LIGHT]=5,
+		[Talents.T_MARTYRDOM]=5,
+		[Talents.T_WEAPON_OF_LIGHT]=5,
+		[Talents.T_FIREBEAM]=5,
+		[Talents.T_WEAPON_COMBAT]=10,
+		[Talents.T_HEALING_LIGHT]=5,
+	},
+	on_added = function(self)
+		self.energy.value = game.energy_to_act self:useTalent(self.T_WEAPON_OF_LIGHT)
+		self.energy.value = game.energy_to_act self:useTalent(self.T_CHANT_OF_FORTRESS)
+		self:doEmote("Go "..game.player.name.."! We will hold the line!", 150)
+	end,
+}
+
 newEntity{
 	define_as = "BASE_NPC_ORC_ATTACKER",
 	type = "humanoid", subtype = "orc",
@@ -105,7 +134,6 @@ newEntity{ base = "BASE_NPC_ORC_ATTACKER", define_as = "URUK-HAI_ATTACK",
 	name = "uruk-hai", color=colors.DARK_RED,
 	desc = [[A fierce soldier-orc.]],
 	level_range = {42, nil}, exp_worth = 1,
-	rarity = 6,
 	max_life = resolvers.rngavg(120,140),
 	life_rating = 8,
 	resolvers.equip{
@@ -118,4 +146,10 @@ newEntity{ base = "BASE_NPC_ORC_ATTACKER", define_as = "URUK-HAI_ATTACK",
 		[Talents.T_RUSH]=4,
 		[Talents.T_WEAPON_COMBAT]=4,
 	},
+	on_added = function(self)
+		game.level.nb_attackers = (game.level.nb_attackers or 0) + 1
+	end,
+	on_die = function(self)
+		game.level.nb_attackers = game.level.nb_attackers - 1
+	end,
 }
diff --git a/game/modules/tome/data/zones/mount-doom/zone.lua b/game/modules/tome/data/zones/mount-doom/zone.lua
index 04178e6bcc..cfcaf8d1a7 100644
--- a/game/modules/tome/data/zones/mount-doom/zone.lua
+++ b/game/modules/tome/data/zones/mount-doom/zone.lua
@@ -21,15 +21,15 @@ return {
 	name = "Mount Doom",
 	level_range = {30, 35},
 	level_scheme = "player",
-	max_level = 3,
+	max_level = 1,
 	decay = {300, 800},
 	actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
 	width = 12, height = 500,
-	all_remembered = true,
+--	all_remembered = true,
 	all_lited = true,
 --	persistant = "zone",
 	no_level_connectivity = true,
-	ambiant_music = "a_lomos_del_dragon_blanco.ogg",
+	ambiant_music = "Hold the Line.ogg",
 	generator =  {
 		map = {
 			class = "engine.generator.map.Static",
@@ -37,12 +37,10 @@ return {
 		},
 		actor = {
 			class = "engine.generator.actor.Random",
-			nb_npc = {0, 0},
+			area = {x1=0, x2=11, y1=30, y2=410},
+			nb_npc = {30, 30},
 			rate = 0.25,
-		},
-		object = {
-			class = "engine.generator.object.Random",
-			nb_object = {6, 9},
+			max_attackers = 12,
 		},
 		trap = {
 			class = "engine.generator.trap.Random",
@@ -50,7 +48,11 @@ return {
 		},
 	},
 
+	post_process = function(level)
+		level.turn_counter = 700 * 10
+	end,
 	on_turn = function(self)
 		require("mod.class.generator.actor.MountDoom").new(self, game.level.map, game.level, {}):tick()
+		game.level.turn_counter = game.level.turn_counter - 1
 	end,
 }
diff --git a/ideas/zones.ods b/ideas/zones.ods
index 98f215643ef0bf7aa20f20aaa120e42e664e6548..165a2001b1d93611dc88b7f8a96d61b35d4c49c1 100644
GIT binary patch
delta 11140
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

delta 15714
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

-- 
GitLab