From f5a721ba9b456e46373302f69f65703e29b16298 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Sat, 9 Apr 2011 16:57:49 +0000
Subject: [PATCH] Reduced the length of all starting zones to 3 levels and the
 next zone tier (daikara, maze, ...) to 5

git-svn-id: http://svn.net-core.org/repos/t-engine4@3195 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/Zone.lua                |  2 +-
 game/modules/tome/class/Game.lua                    | 13 ++++++++++++-
 .../modules/tome/data/zones/blighted-ruins/zone.lua |  6 +++---
 game/modules/tome/data/zones/daikara/zone.lua       |  4 ++--
 game/modules/tome/data/zones/deep-bellow/zone.lua   |  4 ++--
 game/modules/tome/data/zones/maze/zone.lua          |  8 ++++----
 game/modules/tome/data/zones/murgol-lair/zone.lua   |  2 +-
 game/modules/tome/data/zones/old-forest/zone.lua    |  6 +++---
 game/modules/tome/data/zones/reknor-escape/zone.lua |  6 +++---
 game/modules/tome/data/zones/rhaloren-camp/zone.lua |  6 +++---
 game/modules/tome/data/zones/ritch-tunnels/zone.lua |  2 +-
 game/modules/tome/data/zones/ruins-kor-pul/zone.lua |  6 +++---
 game/modules/tome/data/zones/sandworm-lair/zone.lua |  4 ++--
 .../tome/data/zones/scintillating-caves/zone.lua    |  4 ++--
 game/modules/tome/data/zones/trollmire/zone.lua     |  4 ++--
 15 files changed, 44 insertions(+), 33 deletions(-)

diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua
index 6470ed2550..dd68d4d0a8 100644
--- a/game/engines/default/engine/Zone.lua
+++ b/game/engines/default/engine/Zone.lua
@@ -678,7 +678,7 @@ function _M:newLevel(level_data, lev, old_lev, game)
 
 	-- Call a finisher
 	if level_data.post_process then
-		level_data.post_process(level)
+		level_data.post_process(level, self)
 		if level.force_recreate then
 			level:removed()
 			return self:newLevel(level_data, lev, old_lev, game)
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 921be41e37..59a9e241bd 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -1321,7 +1321,18 @@ function _M:playSoundNear(who, ...)
 end
 
 --- Create a random lore object and place it
-function _M:placeRandomLoreObject(define)
+function _M:placeRandomLoreObjectScale(base, nb, level)
+	local dist = ({
+		[5] = { {1}, {2,3}, {4,5} }, -- 5 => 3
+		korpul = { {1,2}, {3,4} }, -- 5 => 3
+		[7] = { {1}, {2,3}, {4}, {5, 6}, {7} }, -- 7 => 5
+	})[nb][level]
+	if not dist then return end
+	for _, i in ipairs(dist) do self:placeRandomLoreObject(base..i) end
+end
+
+--- Create a random lore object and place it
+function _M:placeRandomLoreObject(define, zone)
 	if type(define) == "table" then define = rng.table(define) end
 	local o = self.zone:makeEntityByName(self.level, "object", define)
 	if not o then return end
diff --git a/game/modules/tome/data/zones/blighted-ruins/zone.lua b/game/modules/tome/data/zones/blighted-ruins/zone.lua
index b7a7279c35..d45b8e2cd4 100644
--- a/game/modules/tome/data/zones/blighted-ruins/zone.lua
+++ b/game/modules/tome/data/zones/blighted-ruins/zone.lua
@@ -21,9 +21,9 @@ return {
 	name = "Blighted Ruins",
 	level_range = {1, 8},
 	level_scheme = "player",
-	max_level = 8,
+	max_level = 6,
 	decay = {300, 800},
-	-- 8 levels but actors gain one level every 2 levels
+	-- 6 levels but actors gain one level every 2 levels
 	actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + math.floor((zone.max_level - level.level) / 2) + rng.range(-1,2) end,
 	level_adjust_level = function(zone, level) return zone.base_level + math.floor((zone.max_level - level.level) / 2) end,
 	width = 50, height = 50,
@@ -79,7 +79,7 @@ return {
 	},
 	on_enter = function(_, _, newzone)
 		if newzone and not game.zone.created_lore then
-			local levels = {2,3,4,5,6,7}
+			local levels = {2,3,4,5,6}
 			game.zone.created_lore = {}
 			for i = 1, 4 do
 				local lev = rng.tableRemove(levels)
diff --git a/game/modules/tome/data/zones/daikara/zone.lua b/game/modules/tome/data/zones/daikara/zone.lua
index 9fc3714cb0..4e80db04be 100644
--- a/game/modules/tome/data/zones/daikara/zone.lua
+++ b/game/modules/tome/data/zones/daikara/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Daikara",
 	level_range = {7, 16},
 	level_scheme = "player",
-	max_level = 7,
+	max_level = 5,
 	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 = 50, height = 50,
@@ -71,7 +71,7 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 7, level.level)
 
 		-- Temporal rift on level 4
 		local p = game.party:findMember{main=true}
diff --git a/game/modules/tome/data/zones/deep-bellow/zone.lua b/game/modules/tome/data/zones/deep-bellow/zone.lua
index 44c15ae24a..7b1c65b849 100644
--- a/game/modules/tome/data/zones/deep-bellow/zone.lua
+++ b/game/modules/tome/data/zones/deep-bellow/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "The Deep Bellow",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
@@ -62,7 +62,7 @@ return {
 				up = "IRON_COUNCIL",
 			}, },
 		},
-		[5] = {
+		[3] = {
 			generator = {
 				map = {
 					class = "engine.generator.map.Static",
diff --git a/game/modules/tome/data/zones/maze/zone.lua b/game/modules/tome/data/zones/maze/zone.lua
index 6f15fdc550..0b0fec2b10 100644
--- a/game/modules/tome/data/zones/maze/zone.lua
+++ b/game/modules/tome/data/zones/maze/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "The Maze",
 	level_range = {7, 16},
 	level_scheme = "player",
-	max_level = 7,
+	max_level = 5,
 	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 = 40, height = 40,
@@ -60,7 +60,7 @@ return {
 				up = "UP_WILDERNESS",
 			}, },
 		},
-		[7] = {
+		[5] = {
 			generator = { map = {
 				force_last_stair = true,
 				down = "QUICK_EXIT",
@@ -70,10 +70,10 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 7, level.level)
 
 		local p = game.party:findMember{main=true}
-		if level.level == 5 and p:knowTalent(p.T_TRAP_MASTERY) then
+		if level.level == 4 and p:knowTalent(p.T_TRAP_MASTERY) then
 			local l = game.zone:makeEntityByName(level, "object", "NOTE_LEARN_TRAP")
 			if not l then return end
 			for i = -1, 1 do for j = -1, 1 do
diff --git a/game/modules/tome/data/zones/murgol-lair/zone.lua b/game/modules/tome/data/zones/murgol-lair/zone.lua
index 495df052ff..b749347d07 100644
--- a/game/modules/tome/data/zones/murgol-lair/zone.lua
+++ b/game/modules/tome/data/zones/murgol-lair/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Murgol Lair",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
diff --git a/game/modules/tome/data/zones/old-forest/zone.lua b/game/modules/tome/data/zones/old-forest/zone.lua
index 0de7cd1534..4426f47dde 100644
--- a/game/modules/tome/data/zones/old-forest/zone.lua
+++ b/game/modules/tome/data/zones/old-forest/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Old Forest",
 	level_range = {7, 16},
 	level_scheme = "player",
-	max_level = 7,
+	max_level = 5,
 	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 = 50, height = 50,
@@ -71,7 +71,7 @@ return {
 				up = "GRASS_UP_WILDERNESS",
 			}, },
 		},
-		[7] = {
+		[5] = {
 			generator =  { map = {
 				edge_entrances = {4,2},
 				down = "LAKE_NUR",
@@ -82,7 +82,7 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 7, level.level)
 
 		if not config.settings.tome.weather_effects then return end
 
diff --git a/game/modules/tome/data/zones/reknor-escape/zone.lua b/game/modules/tome/data/zones/reknor-escape/zone.lua
index d4bffc2aa2..723cf5a775 100644
--- a/game/modules/tome/data/zones/reknor-escape/zone.lua
+++ b/game/modules/tome/data/zones/reknor-escape/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Escape from Reknor",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
@@ -66,7 +66,7 @@ return {
 				up = "FLOOR",
 			}, },
 		},
-		[5] = {
+		[3] = {
 			generator = {
 				map = {
 					class = "engine.generator.map.Static",
@@ -85,7 +85,7 @@ return {
 			local norgan = game.party:findMember{type="squadmate"}
 			if norgan then norgan:forceLevelup(2) end
 		end
-		if lev == 4 then
+		if lev == 3 then
 			game.player:forceLevelup(3)
 			local norgan = game.party:findMember{type="squadmate"}
 			if norgan then norgan:forceLevelup(3) end
diff --git a/game/modules/tome/data/zones/rhaloren-camp/zone.lua b/game/modules/tome/data/zones/rhaloren-camp/zone.lua
index 431b1f2291..95b703010b 100644
--- a/game/modules/tome/data/zones/rhaloren-camp/zone.lua
+++ b/game/modules/tome/data/zones/rhaloren-camp/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Rhaloren Camp",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
@@ -64,7 +64,7 @@ return {
 				up = "UP_WILDERNESS",
 			}, },
 		},
-		[5] = {
+		[3] = {
 			generator = {
 				map = {
 					class = "engine.generator.map.Static",
@@ -79,6 +79,6 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 5, level.level)
 	end,
 }
diff --git a/game/modules/tome/data/zones/ritch-tunnels/zone.lua b/game/modules/tome/data/zones/ritch-tunnels/zone.lua
index 2329868a5d..a8d8e02938 100644
--- a/game/modules/tome/data/zones/ritch-tunnels/zone.lua
+++ b/game/modules/tome/data/zones/ritch-tunnels/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Ritches Tunnels",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
diff --git a/game/modules/tome/data/zones/ruins-kor-pul/zone.lua b/game/modules/tome/data/zones/ruins-kor-pul/zone.lua
index 9a975a016b..17207d4a07 100644
--- a/game/modules/tome/data/zones/ruins-kor-pul/zone.lua
+++ b/game/modules/tome/data/zones/ruins-kor-pul/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Ruins of Kor'Pul",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
@@ -67,7 +67,7 @@ return {
 				up = "UP_WILDERNESS",
 			}, },
 		},
-		[5] = {
+		[3] = {
 			generator = { map = {
 				class = "engine.generator.map.Static",
 				map = "zones/ruins-kor-pul-last",
@@ -77,6 +77,6 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		if level.level <= 4 then game:placeRandomLoreObject("NOTE"..level.level) end
+		game:placeRandomLoreObjectScale("NOTE", "korpul", level.level)
 	end,
 }
diff --git a/game/modules/tome/data/zones/sandworm-lair/zone.lua b/game/modules/tome/data/zones/sandworm-lair/zone.lua
index d05cff67c4..6c210f7341 100644
--- a/game/modules/tome/data/zones/sandworm-lair/zone.lua
+++ b/game/modules/tome/data/zones/sandworm-lair/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Sandworm lair",
 	level_range = {7, 16},
 	level_scheme = "player",
-	max_level = 7,
+	max_level = 5,
 	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 = 50, height = 50,
@@ -74,6 +74,6 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 7, level.level)
 	end,
 }
diff --git a/game/modules/tome/data/zones/scintillating-caves/zone.lua b/game/modules/tome/data/zones/scintillating-caves/zone.lua
index 5a6e185e3a..b48eb7abbd 100644
--- a/game/modules/tome/data/zones/scintillating-caves/zone.lua
+++ b/game/modules/tome/data/zones/scintillating-caves/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Scintillating Caves",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
@@ -67,7 +67,7 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 5, level.level)
 	end,
 
 	foreground = function(level, dx, dx, nb_keyframes)
diff --git a/game/modules/tome/data/zones/trollmire/zone.lua b/game/modules/tome/data/zones/trollmire/zone.lua
index a321b44ddf..11cc0a09d7 100644
--- a/game/modules/tome/data/zones/trollmire/zone.lua
+++ b/game/modules/tome/data/zones/trollmire/zone.lua
@@ -21,7 +21,7 @@ return {
 	name = "Trollmire",
 	level_range = {1, 5},
 	level_scheme = "player",
-	max_level = 5,
+	max_level = 3,
 	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 = 50, height = 50,
@@ -82,7 +82,7 @@ return {
 
 	post_process = function(level)
 		-- Place a lore note on each level
-		game:placeRandomLoreObject("NOTE"..level.level)
+		game:placeRandomLoreObjectScale("NOTE", 5, level.level)
 
 		-- Some clouds floating happily over the trollmire
 		game.state:makeWeather(level, 7, {max_nb=1, speed={0.5, 1.6}, shadow=true, alpha={0.23, 0.35}, particle_name="weather/grey_cloud_%02d"})
-- 
GitLab