From 2f32f041d8552e6a7194e80842531522c338cd0d Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Thu, 21 Apr 2011 19:22:10 +0000 Subject: [PATCH] NPCs now do not regen when coming back to a level Objects now do not regen when coming back to a level git-svn-id: http://svn.net-core.org/repos/t-engine4@3248 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Game.lua | 18 +++++++++--------- game/modules/tome/class/GameState.lua | 13 ++++++++----- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 949dc1f689..b5072383bd 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -520,19 +520,19 @@ function _M:changeLevel(lev, zone, keep_old_lev, force_down) if self.level.last_turn and self.level.data.decay and self.level.last_turn + self.level.data.decay[1] * 10 < self.turn then local only = self.level.data.decay.only or nil if not only or only.actor then - local nb_actor, remain_actor = self.level:decay(Map.ACTOR, function(e) return not e.unique and not e.lore and not e.quest and self.level.last_turn + rng.range(self.level.data.decay[1], self.level.data.decay[2]) < self.turn * 10 end) - if not self.level.data.decay.no_respawn then - local gen = self.zone:getGenerator("actor", self.level) - if gen.regenFrom then gen:regenFrom(remain_actor) end - end +-- local nb_actor, remain_actor = self.level:decay(Map.ACTOR, function(e) return not e.unique and not e.lore and not e.quest and self.level.last_turn + rng.range(self.level.data.decay[1], self.level.data.decay[2]) < self.turn * 10 end) +-- if not self.level.data.decay.no_respawn then +-- local gen = self.zone:getGenerator("actor", self.level) +-- if gen.regenFrom then gen:regenFrom(remain_actor) end +-- end end if not only or only.object then local nb_object, remain_object = self.level:decay(Map.OBJECT, function(e) return not e.unique and not e.lore and not e.quest and self.level.last_turn + rng.range(self.level.data.decay[1], self.level.data.decay[2]) < self.turn * 10 end) - if not self.level.data.decay.no_respawn then - local gen = self.zone:getGenerator("object", self.level) - if gen.regenFrom then gen:regenFrom(remain_object) end - end +-- if not self.level.data.decay.no_respawn then +-- local gen = self.zone:getGenerator("object", self.level) +-- if gen.regenFrom then gen:regenFrom(remain_object) end +-- end end end diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua index 94b819edfe..75281a99b2 100644 --- a/game/modules/tome/class/GameState.lua +++ b/game/modules/tome/class/GameState.lua @@ -1080,7 +1080,9 @@ local random_zone_themes = { } end }, } -function _M:createRandomZone() +function _M:createRandomZone(zbase) + zbase = zbase or {} + ------------------------------------------------------------ -- Select theme ------------------------------------------------------------ @@ -1098,9 +1100,9 @@ function _M:createRandomZone() ------------------------------------------------------------ -- Misc data ------------------------------------------------------------ - data.depth = rng.range(2, 4) - data.min_lev, data.max_lev = game.player.level, game.player.level + 15 - data.w, data.h = rng.range(40, 60), rng.range(40, 60) + data.depth = zbase.depth or rng.range(2, 4) + data.min_lev, data.max_lev = zbase.min_lev or game.player.level, zbase.max_lev or game.player.level + 15 + data.w, data.h = zbase.w or rng.range(40, 60), zbase.h or rng.range(40, 60) data.max_material_level = util.bound(math.ceil(data.min_lev / 10), 1, 5) data.min_material_level = data.max_material_level - 1 @@ -1198,7 +1200,6 @@ function _M:createRandomZone() end function _M:createRandomBoss(base, level) - local boss_id = "RND_ZONE_BOSS" local b = base:clone() ------------------------------------------------------------ @@ -1207,6 +1208,8 @@ function _M:createRandomBoss(base, level) local ngd = NameGenerator.new(randart_name_rules.default) local name = ngd:generate() b.name = name.." the "..b.name + b.unique = b.name + local boss_id = "RND_BOSS_"..b.name:upper():gsub("[^A-Z]", "_") b.color = colors.VIOLET b.rank = rng.percent(30) and 4 or 3.5 b.level_range[1] = level -- GitLab