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