diff --git a/game/engine/Zone.lua b/game/engine/Zone.lua index f52c1e327d729cfa8ce7456c41d6b780479eb32f..b3056e6b85afb59d9b2cfe188dfe7c2a76b25a8f 100644 --- a/game/engine/Zone.lua +++ b/game/engine/Zone.lua @@ -94,10 +94,10 @@ function _M:computeRarities(type, list, level, filter) local max = 10000 if lev < e.level_range[1] then max = 10000 / (3 * (e.level_range[1] - lev)) - elseif lev > e.level_range[2] then max = 10000 / (lev - e.level_range[2]) + elseif e.level_range[2] and lev > e.level_range[2] then max = 10000 / (lev - e.level_range[2]) end local genprob = math.ceil(max / e.rarity) - print(("Entity(%30s) got %3d (=%3d / %3d) chance to generate. Level range(%2d-%2d), current %2d"):format(e.name, math.floor(genprob), math.floor(max), e.rarity, e.level_range[1], e.level_range[2], lev)) + print(("Entity(%30s) got %3d (=%3d / %3d) chance to generate. Level range(%2d-%2s), current %2d"):format(e.name, math.floor(genprob), math.floor(max), e.rarity, e.level_range[1], e.level_range[2] or "--", lev)) -- Generate and store egos list if needed if e.egos and e.egos_chance then diff --git a/game/engine/interface/ActorStats.lua b/game/engine/interface/ActorStats.lua index 09e6baf6b57f1062384f80e0ba2674f9a34e5b4a..232e14cfec2c117d0d91ea6bb57ff3586df5af9d 100644 --- a/game/engine/interface/ActorStats.lua +++ b/game/engine/interface/ActorStats.lua @@ -29,6 +29,8 @@ _M.stats_def = {} function _M:defineStat(name, short_name, default_value, min, max, desc) assert(name, "no stat name") assert(short_name, "no stat short_name") + local no_max = false + if type(max) == "table" then no_max = max.no_max; max = max[1] end table.insert(self.stats_def, { name = name, short_name = short_name, @@ -36,6 +38,7 @@ function _M:defineStat(name, short_name, default_value, min, max, desc) def = default_value or 10, min = min or 1, max = max or 100, + no_max = no_max, }) self.stats_def[#self.stats_def].id = #self.stats_def self.stats_def[short_name] = self.stats_def[#self.stats_def] @@ -70,7 +73,11 @@ function _M:incStat(stat, val) end local old = self:getStat(stat) - self.stats[stat] = math.max(math.min(self.stats[stat] + val, _M.stats_def[stat].max), _M.stats_def[stat].min) + if _M.stats_def[stat].no_max then + self.stats[stat] = math.max(self.stats[stat] + val, _M.stats_def[stat].min) + else + self.stats[stat] = math.max(math.min(self.stats[stat] + val, _M.stats_def[stat].max), _M.stats_def[stat].min) + end if self:getStat(stat) ~= old then self:onStatChange(stat, self:getStat(stat) - old) end @@ -94,7 +101,11 @@ function _M:getStat(stat, scale, raw, no_inc) val = self.stats[stat] inc = self.inc_stats[stat] end - val = util.bound(val, _M.stats_def[stat].min, _M.stats_def[stat].max) + ((not no_inc) and inc or 0) + if _M.stats_def[stat].no_max then + val = math.max(val, _M.stats_def[stat].min) + ((not no_inc) and inc or 0) + else + val = util.bound(val, _M.stats_def[stat].min, _M.stats_def[stat].max) + ((not no_inc) and inc or 0) + end if scale then if not raw then val = math.floor(val * scale / _M.stats_def[stat].max) @@ -113,7 +124,7 @@ function _M:isStatMax(stat) else val = self.stats[stat] end - if math.floor(val) == _M.stats_def[stat].max then return true end + if math.floor(val) >= _M.stats_def[stat].max then return true end end --- Notifies a change of stat value diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 5e595b8d23cb7a77ed6d1ee0931158b5005aea8c..8c83ce4a1980770eb30e97ce9dfe09aec41bf1a6 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -529,7 +529,7 @@ function _M:setupCommands() self.key:addCommands{ [{"_d","ctrl"}] = function() if config.settings.tome.cheat then - self:changeLevel(1, "town-gates-of-morning") + self:changeLevel(1, "infinite-dungeon") end end, } diff --git a/game/modules/tome/data/general/npcs/ant.lua b/game/modules/tome/data/general/npcs/ant.lua index 151907359df10c5c58f31b258a036c89757bc892..09d65e60756e61e41b215f869c5f69276c705618 100644 --- a/game/modules/tome/data/general/npcs/ant.lua +++ b/game/modules/tome/data/general/npcs/ant.lua @@ -63,7 +63,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant green ant", color=colors.GREEN, desc = "It's a large green ant.", - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 4, combat = { DamageType.POISON }, } @@ -71,7 +71,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant red ant", color=colors.RED, desc = "It's a large red ant.", - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 4, combat = { damtype=DamageType.FIRE }, } @@ -79,7 +79,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant blue ant", color=colors.BLUE, desc = "It's a large blue ant.", - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 4, combat = { damtype=DamageType.COLD }, } @@ -87,7 +87,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant yellow ant", color=colors.YELLOW, desc = "It's a large yellow ant.", - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 4, combat = { damtype=DamageType.LIGHTNING }, } @@ -95,7 +95,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant black ant", color=colors.BLACK, desc = "It's a large black ant.", - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 4, combat = { damtype=DamageType.ACID }, } @@ -103,7 +103,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant fire ant", color=colors.RED, desc = "It's a large red ant, wreathed in flames.", - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(20,40), combat = { damtype=DamageType.FIRE }, @@ -114,7 +114,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant ice ant", color=colors.WHITE, desc = "It's a large white ant. The air is frigid around this ant.", - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(20,40), combat = { damtype=DamageType.ICE }, @@ -125,7 +125,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant lightning ant", color=colors.YELLOW, desc = "It's a large yellow ant with sparks arcing across its body.", - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(20,40), combat = { damtype=DamageType.LIGHTNING }, @@ -136,7 +136,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant acid ant", color=colors.DARK_GREY, desc = "It's a large black ant. Its porous skin oozes acid.", - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(20,40), combat = { damtype=DamageType.ACID }, @@ -147,7 +147,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "giant army ant", color=colors.ORANGE, desc = "It's a large ant with a heavy exoskeleton, geared for war.", - level_range = {18, 50}, exp_worth = 1, + level_range = {18, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(50,60), combat_armor = 15, combat_def = 7, @@ -156,7 +156,7 @@ newEntity{ base = "BASE_NPC_ANT", newEntity{ base = "BASE_NPC_ANT", name = "Queen Ant", color=colors.VIOLET, unique=true, desc = "Queen of the ants, queen of the biting death!", - level_range = {25, 50}, exp_worth = 2, + level_range = {25, nil}, exp_worth = 2, rank = 4, size_category = 3, rarity = 50, diff --git a/game/modules/tome/data/general/npcs/aquatic_critter.lua b/game/modules/tome/data/general/npcs/aquatic_critter.lua index fd7438ade4395888d6fa173de99fafc3269c4940..bcb30e11ed9b478100294f1f0069f873e11c621a 100644 --- a/game/modules/tome/data/general/npcs/aquatic_critter.lua +++ b/game/modules/tome/data/general/npcs/aquatic_critter.lua @@ -44,14 +44,14 @@ newEntity{ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", name = "giant eel", color=colors.CADET_BLUE, desc = "A snake-like being, moving toward you.", - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 4, } newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", name = "electric eel", color=colors.STEEL_BLUE, desc = "A snake-like being, radiating electricity.", - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 7, autolevel = "warriormage", combat = {damtype=DamageType.LIGHTNING}, @@ -61,7 +61,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", name = "dragon turtle", color=colors.DARK_SEA_GREEN, desc = "A snake-like being, radiating electricity.", - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 5, rank = 2, stats = { str=22, dex=10, mag=3, con=13 }, @@ -71,7 +71,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", name = "ancient dragon turtle", color=colors.DARK_SEA_GREEN, desc = "A snake-like being, radiating electricity.", - level_range = {20, 50}, exp_worth = 1, + level_range = {20, nil}, exp_worth = 1, rarity = 10, rank = 3, autolevel = "warriormage", @@ -82,7 +82,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", name = "squid", color=colors.TEAL, desc = "Darting its many tentacles toward you, it tries to lock you down.", - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 4, resolvers.talents{ [Talents.T_GRAB]=3, }, } @@ -90,7 +90,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", name = "ink squid", color=colors.LIGHT_STEEL_BLUE, desc = "Darting its many tentacles toward you, it tries to lock you down.", - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 5, stats = { mag=30, }, resolvers.talents{ [Talents.T_GRAB]=3, [Talents.T_BLINDING_INK]=3, }, diff --git a/game/modules/tome/data/general/npcs/aquatic_demon.lua b/game/modules/tome/data/general/npcs/aquatic_demon.lua index 43f9d9e37ca44a6ea55f5b24e0049c86cde59a57..52d4a8a17b2f8427036de9c06291a12873726c57 100644 --- a/game/modules/tome/data/general/npcs/aquatic_demon.lua +++ b/game/modules/tome/data/general/npcs/aquatic_demon.lua @@ -43,7 +43,7 @@ newEntity{ newEntity{ base = "BASE_NPC_AQUATIC_DEMON", name = "water imp", color=colors.YELLOW_GREEN, unique=true, desc = "A small water demon, lobbing spells at you.", - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 6, rank = 2, size_category = 1, diff --git a/game/modules/tome/data/general/npcs/bear.lua b/game/modules/tome/data/general/npcs/bear.lua index 89725410df2719dae7d4edca1cff6565abff2c6e..6d6f61c0abf6cb43e98da49a77ef387fdaecf5f3 100644 --- a/game/modules/tome/data/general/npcs/bear.lua +++ b/game/modules/tome/data/general/npcs/bear.lua @@ -48,7 +48,7 @@ newEntity{ newEntity{ base = "BASE_NPC_BEAR", name = "brown bear", color=colors.UMBER, desc = [[The weakest of bears, covered in brown shaggy fur.]], - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(80,90), combat_armor = 7, combat_def = 3, @@ -58,7 +58,7 @@ newEntity{ base = "BASE_NPC_BEAR", newEntity{ base = "BASE_NPC_BEAR", name = "black bear", color={50,50,50}, desc = [[Do you smell like honey? 'cause this bear wants honey.]], - level_range = {6, 50}, exp_worth = 1, + level_range = {6, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(90,100), combat_armor = 8, combat_def = 3, @@ -68,7 +68,7 @@ newEntity{ base = "BASE_NPC_BEAR", newEntity{ base = "BASE_NPC_BEAR", name = "cave bear", color=colors.DARK_SLATE_GRAY, desc = [[It has come down from its cave foraging for food. Unfortunately, it found you.]], - level_range = {7, 50}, exp_worth = 1, + level_range = {7, nil}, exp_worth = 1, rarity = 8, max_life = resolvers.rngavg(100,110), combat_armor = 9, combat_def = 4, @@ -79,7 +79,7 @@ newEntity{ base = "BASE_NPC_BEAR", newEntity{ base = "BASE_NPC_BEAR", name = "war bear", color=colors.DARK_UMBER, desc = [[Bears with tusks, trained to kill.]], - level_range = {7, 50}, exp_worth = 1, + level_range = {7, nil}, exp_worth = 1, rarity = 8, max_life = resolvers.rngavg(100,120), combat_armor = 9, combat_def = 4, @@ -90,7 +90,7 @@ newEntity{ base = "BASE_NPC_BEAR", newEntity{ base = "BASE_NPC_BEAR", name = "grizzly bear", color=colors.LIGHT_UMBER, desc = [[A huge, beastly bear, more savage than most of its kind.]], - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 9, max_life = resolvers.rngavg(110,120), combat_armor = 10, combat_def = 5, @@ -101,7 +101,7 @@ newEntity{ base = "BASE_NPC_BEAR", newEntity{ base = "BASE_NPC_BEAR", name = "polar bear", color=colors.WHITE, desc = [[This huge white bear has wandered south in search of food.]], - level_range = {12, 50}, exp_worth = 1, + level_range = {12, nil}, exp_worth = 1, rarity = 11, max_life = resolvers.rngavg(110,120), combat_armor = 10, combat_def = 7, diff --git a/game/modules/tome/data/general/npcs/canine.lua b/game/modules/tome/data/general/npcs/canine.lua index 76a77e3c5c8ea5e37ca9b83a3432fb608ac7e515..6ae7ead44b1e26f54963ba9ccb6f4fde7f7fbccd 100644 --- a/game/modules/tome/data/general/npcs/canine.lua +++ b/game/modules/tome/data/general/npcs/canine.lua @@ -43,7 +43,7 @@ newEntity{ newEntity{ base = "BASE_NPC_CANINE", name = "wolf", color=colors.UMBER, desc = [[Lean, mean, and shaggy, it stares at you with hungry eyes.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(40,70), combat_armor = 1, combat_def = 3, @@ -53,7 +53,7 @@ newEntity{ base = "BASE_NPC_CANINE", newEntity{ base = "BASE_NPC_CANINE", name = "great wolf", color=colors.UMBER, desc = [[Larger than a normal wolf, it prowls and snaps at you.]], - level_range = {3, 50}, exp_worth = 1, + level_range = {3, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(60,90), combat_armor =2, combat_def = 4, @@ -64,7 +64,7 @@ newEntity{ base = "BASE_NPC_CANINE", newEntity{ base = "BASE_NPC_CANINE", name = "dire wolf", color=colors.DARK_UMBER, desc = [[Easily as big as a horse, this wolf menaces you with its claws and fangs.]], - level_range = {4, 50}, exp_worth = 1, + level_range = {4, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(80,110), combat_armor = 3, combat_def = 5, @@ -75,7 +75,7 @@ newEntity{ base = "BASE_NPC_CANINE", newEntity{ base = "BASE_NPC_CANINE", name = "white wolf", color=colors.WHITE, desc = [[A large and muscled wolf from the northern wastes. Its breath is cold and icy and its fur coated in frost.]], - level_range = {4, 50}, exp_worth = 1, + level_range = {4, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(70,100), combat_armor = 3, combat_def = 4, @@ -88,7 +88,7 @@ newEntity{ base = "BASE_NPC_CANINE", newEntity{ base = "BASE_NPC_CANINE", name = "warg", color=colors.BLACK, desc = [[It is a large wolf with eyes full of cunning.]], - level_range = {6, 50}, exp_worth = 1, + level_range = {6, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(60,100), combat_armor = 5, combat_def = 7, @@ -99,7 +99,7 @@ newEntity{ base = "BASE_NPC_CANINE", newEntity{ base = "BASE_NPC_CANINE", name = "fox", color=colors.RED, desc = [[The quick brown fox jumps over the lazy dog.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 5, max_life = resolvers.rngavg(40,50), combat_armor = 1, combat_def = 3, @@ -109,7 +109,7 @@ newEntity{ base = "BASE_NPC_CANINE", newEntity{ base = "BASE_NPC_CANINE", name = "Rungof the Warg Titan", color=colors.VIOLET, unique=true, desc = [[It is a large wolf with eyes full of cunning, only 3 times bigger than a normal warg.]], - level_range = {20, 50}, exp_worth = 2, + level_range = {20, nil}, exp_worth = 2, rank = 4, size_category = 4, rarity = 50, diff --git a/game/modules/tome/data/general/npcs/cold-drake.lua b/game/modules/tome/data/general/npcs/cold-drake.lua index aeb02cba1aa01a1e877dc85181a3c7f02f50f43c..8190247ac706b6b2bfa187149653644401f48a37 100644 --- a/game/modules/tome/data/general/npcs/cold-drake.lua +++ b/game/modules/tome/data/general/npcs/cold-drake.lua @@ -48,7 +48,7 @@ newEntity{ newEntity{ base = "BASE_NPC_COLD_DRAKE", name = "cold drake hatchling", color=colors.WHITE, display="d", desc = [[A drake hatchling, not too powerful in itself, but it usually comes with its brothers and sisters.]], - level_range = {8, 50}, exp_worth = 1, + level_range = {8, nil}, exp_worth = 1, rarity = 7, rank = 1, size_category = 2, max_life = resolvers.rngavg(40,60), @@ -64,7 +64,7 @@ newEntity{ base = "BASE_NPC_COLD_DRAKE", newEntity{ base = "BASE_NPC_COLD_DRAKE", name = "cold drake", color=colors.SLATE, display="D", desc = [[A mature cold drake, armed with a deadly breath weapon and nasty claws.]], - level_range = {14, 50}, exp_worth = 1, + level_range = {14, nil}, exp_worth = 1, rarity = 8, max_life = resolvers.rngavg(100,110), combat_armor = 12, combat_def = 0, @@ -79,7 +79,7 @@ newEntity{ base = "BASE_NPC_COLD_DRAKE", newEntity{ base = "BASE_NPC_COLD_DRAKE", name = "ice wyrm", color=colors.AQUAMARINE, display="D", desc = [[An old and powerful cold drake, armed with a deadly breath weapon and nasty claws.]], - level_range = {25, 50}, exp_worth = 1, + level_range = {25, nil}, exp_worth = 1, rarity = 12, rank = 3, max_life = resolvers.rngavg(170,190), diff --git a/game/modules/tome/data/general/npcs/ghoul.lua b/game/modules/tome/data/general/npcs/ghoul.lua index adad1c530906720a093121f048edff19a0eea0ba..9d305499fd2e53c7e4a944f50ad9e1ccd015ed30 100644 --- a/game/modules/tome/data/general/npcs/ghoul.lua +++ b/game/modules/tome/data/general/npcs/ghoul.lua @@ -48,7 +48,7 @@ newEntity{ newEntity{ base = "BASE_NPC_GHOUL", name = "ghoul", color=colors.TAN, desc = [[Flesh is falling off in chunks from this decaying abomination.]], - level_range = {7, 50}, exp_worth = 1, + level_range = {7, nil}, exp_worth = 1, rarity = 5, max_life = resolvers.rngavg(90,100), combat_armor = 2, combat_def = 7, @@ -61,7 +61,7 @@ newEntity{ base = "BASE_NPC_GHOUL", newEntity{ base = "BASE_NPC_GHOUL", name = "ghast", color=colors.UMBER, desc = [[This vile abomination is a relative of ghouls, and often leads packs of them. It smells foul, and its bite carries a rotting disease.]], - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(90,100), combat_armor = 2, combat_def = 8, @@ -76,7 +76,7 @@ newEntity{ base = "BASE_NPC_GHOUL", newEntity{ base = "BASE_NPC_GHOUL", name = "ghoulking", color={0,0,0}, desc = [[Stench rises from this rotting abomination, its brow is adorned with gold, and it moves at you with hatred gleaming from its eyes.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 10, max_life = resolvers.rngavg(90,100), combat_armor = 3, combat_def = 10, diff --git a/game/modules/tome/data/general/npcs/minotaur.lua b/game/modules/tome/data/general/npcs/minotaur.lua index 329fa575a70e2ccb50d4cf2d9d2d8ec282208b40..c6e4af4d3a47f598320d5f81da36e92dec37eb73 100644 --- a/game/modules/tome/data/general/npcs/minotaur.lua +++ b/game/modules/tome/data/general/npcs/minotaur.lua @@ -52,7 +52,7 @@ newEntity{ base = "BASE_NPC_MINOTAUR", name = "minotaur", color=colors.UMBER, desc = [[It is a cross between a human and a bull.]], resolvers.equip{ {type="weapon", subtype="battleaxe", autoreq=true}, }, - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 9, combat_armor = 13, combat_def = 8, resolvers.talents{ [Talents.T_WARSHOUT]=3, [Talents.T_STUNNING_BLOW]=3, [Talents.T_SUNDER_ARMOUR]=2, [Talents.T_SUNDER_ARMS]=2, }, @@ -61,7 +61,7 @@ newEntity{ base = "BASE_NPC_MINOTAUR", newEntity{ base = "BASE_NPC_MINOTAUR", name = "maulotaur", color=colors.SLATE, desc = [[It is a belligerent minotaur with a destructive magical arsenal, armed with a hammer.]], - level_range = {20, 50}, exp_worth = 1, + level_range = {20, nil}, exp_worth = 1, rarity = 15, combat_armor = 15, combat_def = 7, resolvers.equip{ {type="weapon", subtype="maul", autoreq=true} }, diff --git a/game/modules/tome/data/general/npcs/ooze.lua b/game/modules/tome/data/general/npcs/ooze.lua index ab6798b26356059fc6745af97587828beee45fe9..04f16ed4705193874e859855ecb7bb6bfcdb13fe 100644 --- a/game/modules/tome/data/general/npcs/ooze.lua +++ b/game/modules/tome/data/general/npcs/ooze.lua @@ -101,7 +101,7 @@ newEntity{ base = "BASE_NPC_OOZE", name = "gelatinous cube", color=colors.BLACK, desc = [["It is a strange, vast gelatinous structure that assumes cubic proportions as it lines all four walls of the corridors it patrols. Through its transparent jelly structure you can see treasures it has engulfed, and a few corpses as well. "]], - level_range = {12, 50}, exp_worth = 1, + level_range = {12, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(50,100), combat = { dam=7, atk=15, apr=6, damtype=DamageType.ACID }, diff --git a/game/modules/tome/data/general/npcs/orc.lua b/game/modules/tome/data/general/npcs/orc.lua index 5c69118bdc19c0d1d823163516a7094d1a9b56f2..633259a7ce8c578f25df6fcdeb0f67eb067ba418 100644 --- a/game/modules/tome/data/general/npcs/orc.lua +++ b/game/modules/tome/data/general/npcs/orc.lua @@ -49,7 +49,7 @@ newEntity{ base = "BASE_NPC_ORC", define_as = "HILL_ORC_WARRIOR", name = "hill orc warrior", color=colors.LIGHT_UMBER, desc = [[He is a hardy, well-weathered survivor.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(70,80), resolvers.equip{ @@ -64,7 +64,7 @@ newEntity{ base = "BASE_NPC_ORC", define_as = "HILL_ORC_ARCHER", name = "hill orc archer", color=colors.UMBER, desc = [[He is a hardy, well-weathered survivor.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(70,80), combat_armor = 5, combat_def = 1, @@ -81,7 +81,7 @@ newEntity{ base = "BASE_NPC_ORC", newEntity{ base = "BASE_NPC_ORC", define_as = "URUK-HAI", name = "uruk-hai", color=colors.DARK_RED, desc = [[A fierce soldier-orc.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(120,140), life_rating = 11, @@ -95,7 +95,7 @@ newEntity{ base = "BASE_NPC_ORC", define_as = "URUK-HAI", newEntity{ base = "BASE_NPC_ORC", define_as = "URUK-HAI_FIRE_WYRMIC", name = "fiery wyrmic uruk-hai", color=colors.RED, desc = [[A fierce soldier-orc trained in the discipline of dragons.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 8, rank = 3, max_life = resolvers.rngavg(100,110), @@ -119,7 +119,7 @@ newEntity{ base = "BASE_NPC_ORC", define_as = "URUK-HAI_FIRE_WYRMIC", newEntity{ base = "BASE_NPC_ORC", name = "icy wyrmic uruk-hai", color=colors.BLUE, define_as = "URUK-HAI_ICE_WYRMIC", desc = [[A fierce soldier-orc trained in the discipline of dragons.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 8, rank = 3, max_life = resolvers.rngavg(100,110), diff --git a/game/modules/tome/data/general/npcs/plant.lua b/game/modules/tome/data/general/npcs/plant.lua index cab14d82ef8f3118511f2bd8eb3eda0a5ff6a238..c1de2235fba22bca8b4aaf5a1260b662a6474f4e 100644 --- a/game/modules/tome/data/general/npcs/plant.lua +++ b/game/modules/tome/data/general/npcs/plant.lua @@ -42,7 +42,7 @@ newEntity{ newEntity{ base = "BASE_NPC_PLANT", name = "giant venus flytrap", color=colors.GREEN, desc = "This flesh eating plant has grown to enormous proportions and seeks to quell its hunger", - level_range = {7, 50}, exp_worth = 1, + level_range = {7, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(5,9), combat = { dam=5, atk=15, apr=10 }, @@ -51,7 +51,7 @@ newEntity{ base = "BASE_NPC_PLANT", newEntity{ base = "BASE_NPC_PLANT", name = "huorn", color=colors.GREEN, desc = "A very strong near-sentient tree, which has become hostile to other living things.", - level_range = {12, 50}, exp_worth = 1, + level_range = {12, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(100,130), life_rating = 15, @@ -76,7 +76,7 @@ newEntity{ base = "BASE_NPC_PLANT", newEntity{ base = "BASE_NPC_PLANT", name = "honey tree", color=colors.UMBER, desc = "As you approach it, you hear a high pitched buzzing sound.", - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(100,130), life_rating = 15, diff --git a/game/modules/tome/data/general/npcs/sandworm.lua b/game/modules/tome/data/general/npcs/sandworm.lua index c00c59d5fa7d131f4f5783647d00413d58ab9f56..d7c3fff8ef352f01891ddef17593b2c0e45513da 100644 --- a/game/modules/tome/data/general/npcs/sandworm.lua +++ b/game/modules/tome/data/general/npcs/sandworm.lua @@ -23,7 +23,7 @@ newEntity{ define_as = "BASE_NPC_SANDWORM", type = "vermin", subtype = "sandworm", display = "w", color=colors.YELLOW, - level_range = {15, 50}, + level_range = {15, nil}, body = { INVEN = 10 }, infravision = 20, diff --git a/game/modules/tome/data/general/npcs/skeleton.lua b/game/modules/tome/data/general/npcs/skeleton.lua index 40af0815847803c81913f19d64b67dce10c13931..e042e96ba2ba7f3527893de4ccd71ba88cab74e5 100644 --- a/game/modules/tome/data/general/npcs/skeleton.lua +++ b/game/modules/tome/data/general/npcs/skeleton.lua @@ -59,7 +59,7 @@ newEntity{ base = "BASE_NPC_SKELETON", newEntity{ base = "BASE_NPC_SKELETON", name = "skeleton warrior", color=colors.SLATE, - level_range = {3, 50}, exp_worth = 1, + level_range = {3, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(90,100), combat_armor = 5, combat_def = 1, @@ -70,7 +70,7 @@ newEntity{ base = "BASE_NPC_SKELETON", newEntity{ base = "BASE_NPC_SKELETON", name = "skeleton mage", color=colors.LIGHT_RED, - level_range = {4, 50}, exp_worth = 1, + level_range = {4, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(50,60), max_mana = resolvers.rngavg(70,80), @@ -86,7 +86,7 @@ newEntity{ base = "BASE_NPC_SKELETON", newEntity{ base = "BASE_NPC_SKELETON", name = "skeleton archer", color=colors.UMBER, - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(70,80), combat_armor = 5, combat_def = 1, @@ -99,7 +99,7 @@ newEntity{ base = "BASE_NPC_SKELETON", newEntity{ base = "BASE_NPC_SKELETON", name = "skeleton master archer", color=colors.LIGHT_UMBER, - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(70,80), combat_armor = 5, combat_def = 1, @@ -113,7 +113,7 @@ newEntity{ base = "BASE_NPC_SKELETON", newEntity{ base = "BASE_NPC_SKELETON", name = "armoured skeleton warrior", color=colors.STEEL_BLUE, - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 8, max_life = resolvers.rngavg(90,100), combat_armor = 5, combat_def = 1, diff --git a/game/modules/tome/data/general/npcs/snake.lua b/game/modules/tome/data/general/npcs/snake.lua index 744fd2d80ebd858b28570b8f52c2e7d8244c1bc7..fd01fc46d59e8b66e06a4f10b30557116312ec13 100644 --- a/game/modules/tome/data/general/npcs/snake.lua +++ b/game/modules/tome/data/general/npcs/snake.lua @@ -40,7 +40,7 @@ newEntity{ newEntity{ base = "BASE_NPC_SNAKE", name = "large brown snake", color=colors.UMBER, desc = [[This large snake hisses at you, angry at being disturbed.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 3, max_life = resolvers.rngavg(20,30), combat_armor = 1, combat_def = 3, @@ -50,7 +50,7 @@ newEntity{ base = "BASE_NPC_SNAKE", newEntity{ base = "BASE_NPC_SNAKE", name = "large white snake", color=colors.WHITE, desc = [[This large snake hisses at you, angry at being disturbed.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 3, max_life = resolvers.rngavg(20,30), combat_armor = 1, combat_def = 3, @@ -60,7 +60,7 @@ newEntity{ base = "BASE_NPC_SNAKE", newEntity{ base = "BASE_NPC_SNAKE", name = "copperhead snake", color=colors.SALMON, desc = [[It has a copper head and sharp venomous fangs.]], - level_range = {2, 50}, exp_worth = 1, + level_range = {2, nil}, exp_worth = 1, rarity = 3, max_life = resolvers.rngavg(30,40), combat_armor = 2, combat_def = 5, @@ -72,7 +72,7 @@ newEntity{ base = "BASE_NPC_SNAKE", newEntity{ base = "BASE_NPC_SNAKE", name = "rattlesnake", color=colors.FIREBRICK, desc = [[As you approach, the snake coils up and rattles its tail threateningly.]], - level_range = {4, 50}, exp_worth = 1, + level_range = {4, nil}, exp_worth = 1, rarity = 3, max_life = resolvers.rngavg(30,50), combat_armor = 2, combat_def = 8, @@ -84,7 +84,7 @@ newEntity{ base = "BASE_NPC_SNAKE", newEntity{ base = "BASE_NPC_SNAKE", name = "king cobra", color=colors.GREEN, desc = [[It is a large snake with a hooded face.]], - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(40,70), combat_armor = 3, combat_def = 11, @@ -96,7 +96,7 @@ newEntity{ base = "BASE_NPC_SNAKE", newEntity{ base = "BASE_NPC_SNAKE", name = "black mamba", color=colors.DARK_GREY, desc = [[It has glistening black skin, a sleek body, and highly venomous fangs.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 8, max_life = resolvers.rngavg(50,80), combat_armor = 4, combat_def = 12, @@ -108,7 +108,7 @@ newEntity{ base = "BASE_NPC_SNAKE", newEntity{ base = "BASE_NPC_SNAKE", name = "anaconda", color=colors.YELLOW_GREEN, desc = [[You recoil in fear as you notice this huge, 10 meter long snake. It seeks to crush the life out of you.]], - level_range = {20, 50}, exp_worth = 1, + level_range = {20, nil}, exp_worth = 1, rarity = 9, rank = 9, max_life = resolvers.rngavg(100,120), diff --git a/game/modules/tome/data/general/npcs/snow-giant.lua b/game/modules/tome/data/general/npcs/snow-giant.lua index b7ec7a90dc3d86404e2edfa50ebf299396430d0d..ae046bd2b248127d5ffed24e6058368b8434b947 100644 --- a/game/modules/tome/data/general/npcs/snow-giant.lua +++ b/game/modules/tome/data/general/npcs/snow-giant.lua @@ -50,7 +50,7 @@ newEntity{ newEntity{ base = "BASE_NPC_SNOW_GIANT", name = "snow giant", color=colors.WHITE, desc = [[A towering creature, humanoid but huge. It wield a giant maul and does not look friendly.]], - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 5, max_life = resolvers.rngavg(100,120), combat_armor = 0, combat_def = 0, @@ -62,7 +62,7 @@ newEntity{ base = "BASE_NPC_SNOW_GIANT", newEntity{ base = "BASE_NPC_SNOW_GIANT", name = "snow giant thunderer", color=colors.LIGHT_BLUE, desc = [[A towering creature, humanoid but huge. It wield a giant maul and does not look friendly. Lightning crackles over its body.]], - level_range = {14, 50}, exp_worth = 1, + level_range = {14, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(100,120), combat_armor = 0, combat_def = 0, @@ -75,7 +75,7 @@ newEntity{ base = "BASE_NPC_SNOW_GIANT", newEntity{ base = "BASE_NPC_SNOW_GIANT", name = "snow giant boulder thrower", color=colors.LIGHT_UMBER, desc = [[A towering creature, humanoid but huge. It wield a giant maul and does not look friendly.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(100,120), combat_armor = 0, combat_def = 0, @@ -87,7 +87,7 @@ newEntity{ base = "BASE_NPC_SNOW_GIANT", newEntity{ base = "BASE_NPC_SNOW_GIANT", name = "snow giant chieftain", color=colors.AQUAMARINE, desc = [[A towering creature, humanoid but huge. It wield a giant maul and does not look friendly.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 13, rank = 3, max_life = resolvers.rngavg(150,170), diff --git a/game/modules/tome/data/general/npcs/spider.lua b/game/modules/tome/data/general/npcs/spider.lua index 080b421174d4f2e435bb6d5025f33c288f88e28e..9929a3456b3f8baaa6df3d84bdbf1bfa589015ac 100644 --- a/game/modules/tome/data/general/npcs/spider.lua +++ b/game/modules/tome/data/general/npcs/spider.lua @@ -47,7 +47,7 @@ newEntity{ newEntity{ base = "BASE_NPC_SPIDER", name = "giant spider", color=colors.LIGHT_DARK, desc = [[]], - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 4, max_life = 50, life_rating = 10, @@ -64,7 +64,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "spitting spider", color=colors.DARK_UMBER, desc = [[]], - level_range = {7, 50}, exp_worth = 1, + level_range = {7, nil}, exp_worth = 1, rarity = 4, max_life = 60, life_rating = 10, @@ -82,7 +82,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "chitinous spider", color=colors.LIGHT_GREEN, desc = [[]], - level_range = {12, 50}, exp_worth = 1, + level_range = {12, nil}, exp_worth = 1, rarity = 4, max_life = 70, life_rating = 10, @@ -99,7 +99,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "gaeramarth", color=colors.LIGHT_DARK, -- dreadful fate desc = [[These cunning spiders terrorize those who enter their ever-growing borders. Those who encounter them rarely return.]], - level_range = {27, 50}, exp_worth = 1, + level_range = {27, nil}, exp_worth = 1, rarity = 6, max_life = 120, life_rating = 13, @@ -124,7 +124,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "ninurlhing", color=colors.DARK_GREEN, -- water burn spider (acidic) desc = [[The air reeks with noxious fumes and the ground around it decays.]], - level_range = {27, 50}, exp_worth = 1, + level_range = {27, nil}, exp_worth = 1, rarity = 6, max_life = 120, life_rating = 13, @@ -149,7 +149,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "faerlhing", color=colors.PURPLE, -- spirit spider (arcane) desc = [[This spider seems to command the flow of mana, which pulses freely through its body.]], - level_range = {27, 50}, exp_worth = 1, + level_range = {27, nil}, exp_worth = 1, rarity = 8, max_life = 120, life_rating = 12, @@ -176,7 +176,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "ungolmor", color={0,0,0}, -- spider night, don't change the color desc = [[Largest of all the spiderkin, it's folds of skin seem nigh impenetrable.]], - level_range = {38, 50}, exp_worth = 1, + level_range = {38, nil}, exp_worth = 1, rarity = 8, max_life = 120, life_rating = 16, @@ -201,7 +201,7 @@ newEntity{ base = "BASE_NPC_SPIDER", newEntity{ base = "BASE_NPC_SPIDER", name = "losselhing", color=colors.LIGHT_BLUE, -- snow star spider desc = [[The air seems to freeze solid around this frigid spider]], - level_range = {27, 50}, exp_worth = 1, + level_range = {27, nil}, exp_worth = 1, rarity = 8, max_life = 120, life_rating = 14, diff --git a/game/modules/tome/data/general/npcs/sunwall-town.lua b/game/modules/tome/data/general/npcs/sunwall-town.lua index 13d1c1b45244fb1fd08359328124172c311d78a6..f4bb91cf27d681f0f71bb8e4d44c846e8acdddbf 100644 --- a/game/modules/tome/data/general/npcs/sunwall-town.lua +++ b/game/modules/tome/data/general/npcs/sunwall-town.lua @@ -46,7 +46,7 @@ newEntity{ newEntity{ base = "BASE_NPC_SUNWALL_TOWN", name = "human guard", color=colors.LIGHT_UMBER, desc = [[A stern looking guard, he will not let you disturb the town.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(70,80), resolvers.equip{ @@ -60,7 +60,7 @@ newEntity{ base = "BASE_NPC_SUNWALL_TOWN", newEntity{ base = "BASE_NPC_SUNWALL_TOWN", name = "elven archer", color=colors.UMBER, desc = [[A stern looking guard, he will not let you disturb the town.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(50,60), resolvers.talents{ [Talents.T_SHOOT]=1, }, @@ -72,7 +72,7 @@ newEntity{ base = "BASE_NPC_SUNWALL_TOWN", newEntity{ base = "BASE_NPC_SUNWALL_TOWN", name = "human sun-paladin", color=colors.GOLD, desc = [[A human in a shiny plate armour.]], - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 7, rank = 3, max_life = resolvers.rngavg(80,90), @@ -91,7 +91,7 @@ newEntity{ base = "BASE_NPC_SUNWALL_TOWN", newEntity{ base = "BASE_NPC_SUNWALL_TOWN", name = "elven sun-mage", color=colors.YELLOW, desc = [[An elf dressed in glowing robes.]], - level_range = {3, 50}, exp_worth = 1, + level_range = {3, nil}, exp_worth = 1, rarity = 7, rank = 3, max_life = resolvers.rngavg(70,80), diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua index a2fcf64996239dc0768798017c6ae1b85a534fdd..163449de094ac20bb45e4b8132610e5f19f33c7a 100644 --- a/game/modules/tome/data/general/npcs/swarm.lua +++ b/game/modules/tome/data/general/npcs/swarm.lua @@ -72,7 +72,7 @@ newEntity{ base = "BASE_NPC_INSECT", newEntity{ base = "BASE_NPC_INSECT", name = "hummerhorn", color=colors.YELLOW, desc = "A giant buzzing wasp, its stinger drips venom. ", - level_range = {16, 50}, exp_worth = 1, + level_range = {16, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(5,7), combat = { dam=10, atk=15, apr=20 }, diff --git a/game/modules/tome/data/general/npcs/thieve.lua b/game/modules/tome/data/general/npcs/thieve.lua index d5f72d58c4aee4bb01beb6eb3d4705ba9362779e..6ec5ee36aa630002a7addcf1dab9ba4104fee779 100644 --- a/game/modules/tome/data/general/npcs/thieve.lua +++ b/game/modules/tome/data/general/npcs/thieve.lua @@ -54,7 +54,7 @@ newEntity{ newEntity{ base = "BASE_NPC_THIEF", name = "cutpurse", color_r=0, color_g=0, color_b=resolvers.rngrange(235, 255), desc = [[The lowest of the thieves, they are just learning the tricks of the trade.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 5, combat_armor = 1, combat_def = 5, max_life = resolvers.rngavg(60,80), @@ -64,7 +64,7 @@ newEntity{ base = "BASE_NPC_THIEF", newEntity{ base = "BASE_NPC_THIEF", name = "rogue", color_r=0, color_g=0, color_b=resolvers.rngrange(215, 235), desc = [[Stronger than a cutpurse, this thief has been promoted.]], - level_range = {2, 50}, exp_worth = 1, + level_range = {2, nil}, exp_worth = 1, rarity = 5, combat_armor = 2, combat_def = 5, resolvers.talents{ [Talents.T_STEALTH]=1, }, @@ -75,7 +75,7 @@ newEntity{ base = "BASE_NPC_THIEF", newEntity{ base = "BASE_NPC_THIEF", name = "thief", color_r=0, color_g=0, color_b=resolvers.rngrange(195, 215), desc = [[He eyes you and your belongings, then suddenly vanishes... strange, why is your pack lighter?]], - level_range = {3, 50}, exp_worth = 1, + level_range = {3, nil}, exp_worth = 1, rarity = 5, combat_armor = 3, combat_def = 5, resolvers.talents{ [Talents.T_STEALTH]=2, }, @@ -86,7 +86,7 @@ newEntity{ base = "BASE_NPC_THIEF", newEntity{ base = "BASE_NPC_THIEF", define_as = "THIEF_BANDIT", name = "bandit", color_r=0, color_g=0, color_b=resolvers.rngrange(175, 195), desc = [[These ruffians often employ brute force over thievery, but they are capable of stealing as well.]], - level_range = {5, 50}, exp_worth = 1, + level_range = {5, nil}, exp_worth = 1, rarity = 7, combat_armor = 4, combat_def = 6, resolvers.talents{ [Talents.T_STEALTH]=3, [Talents.T_LETHALITY]=2, }, @@ -97,7 +97,7 @@ newEntity{ base = "BASE_NPC_THIEF", define_as = "THIEF_BANDIT", newEntity{ base = "BASE_NPC_THIEF", name = "bandit lord", color_r=resolvers.rngrange(75, 85), color_g=0, color_b=resolvers.rngrange(235, 255), desc = [[He is the leader of a gang of bandits, watch out for his men.]], - level_range = {8, 50}, exp_worth = 1, + level_range = {8, nil}, exp_worth = 1, rarity = 12, combat_armor = 5, combat_def = 7, max_life = resolvers.rngavg(90,100), @@ -120,7 +120,7 @@ newEntity{ base = "BASE_NPC_THIEF", newEntity{ base = "BASE_NPC_THIEF", define_as = "THIEF_ASSASSIN", name = "assassin", color_r=resolvers.rngrange(0, 10), color_g=resolvers.rngrange(0, 10), color_b=resolvers.rngrange(0, 10), desc = [[Before you looms a pair of eyes... A glint of steel... death.]], - level_range = {12, 50}, exp_worth = 1, + level_range = {12, nil}, exp_worth = 1, rarity = 12, combat_armor = 3, combat_def = 10, resolvers.talents{ [Talents.T_STEALTH]=3, [Talents.T_PRECISION]=3, [Talents.T_DUAL_WEAPON_TRAINING]=2, [Talents.T_DUAL_WEAPON_DEFENSE]=2, [Talents.T_DUAL_STRIKE]=1, [Talents.T_SWEEP]=1, [Talents.T_SHADOWSTRIKE]=2, [Talents.T_LETHALITY]=5, }, diff --git a/game/modules/tome/data/general/npcs/troll.lua b/game/modules/tome/data/general/npcs/troll.lua index 1e25974f5562f82826f09b4108d7430c2749baae..e0f2ec388b3074b89537ed56bd72d7c79b9a59f6 100644 --- a/game/modules/tome/data/general/npcs/troll.lua +++ b/game/modules/tome/data/general/npcs/troll.lua @@ -53,7 +53,7 @@ newEntity{ newEntity{ base = "BASE_NPC_TROLL", name = "forest troll", color=colors.YELLOW_GREEN, desc = [[Green-skinned and ugly, this massive humanoid glares at you, clenching wart-covered green fists.]], - level_range = {1, 50}, exp_worth = 1, + level_range = {1, nil}, exp_worth = 1, rarity = 6, max_life = resolvers.rngavg(100,120), combat_armor = 4, combat_def = 0, @@ -62,7 +62,7 @@ newEntity{ base = "BASE_NPC_TROLL", newEntity{ base = "BASE_NPC_TROLL", name = "stone troll", color=colors.DARK_SLATE_GRAY, desc = [[A giant troll with scabrous black skin. With a shudder, you notice the belt of dwarf skulls around his massive waist.]], - level_range = {3, 50}, exp_worth = 1, + level_range = {3, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(120,140), combat_armor = 7, combat_def = 0, @@ -72,7 +72,7 @@ newEntity{ base = "BASE_NPC_TROLL", newEntity{ base = "BASE_NPC_TROLL", name = "cave troll", color=colors.SLATE, desc = [[This huge troll wields a massive spear and has a disturbingly intelligent look in its piggy eyes.]], - level_range = {7, 50}, exp_worth = 1, + level_range = {7, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(120,140), combat_armor = 9, combat_def = 3, @@ -82,7 +82,7 @@ newEntity{ base = "BASE_NPC_TROLL", newEntity{ base = "BASE_NPC_TROLL", name = "mountain troll", color=colors.UMBER, desc = [[A large and athletic troll with an extremely tough and warty hide.]], - level_range = {12, 50}, exp_worth = 1, + level_range = {12, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(120,140), combat_armor = 12, combat_def = 4, @@ -92,7 +92,7 @@ newEntity{ base = "BASE_NPC_TROLL", newEntity{ base = "BASE_NPC_TROLL", name = "mountain troll thunderer", color=colors.AQUAMARINE, desc = [[A large and athletic troll with an extremely tough and warty hide.]], - level_range = {20, 50}, exp_worth = 1, + level_range = {20, nil}, exp_worth = 1, rarity = 7, rank = 3, max_life = resolvers.rngavg(120,140), diff --git a/game/modules/tome/data/general/npcs/vampire.lua b/game/modules/tome/data/general/npcs/vampire.lua index ac6c642fabc3bd454f18af2215584767192086f8..bcacb8c04604515241d14e62ce36c6aed84f3b3c 100644 --- a/game/modules/tome/data/general/npcs/vampire.lua +++ b/game/modules/tome/data/general/npcs/vampire.lua @@ -72,7 +72,7 @@ newEntity{ newEntity{ base = "BASE_NPC_VAMPIRE", name = "lesser vampire", color=colors.SLATE, desc=[[This vampire has only just begun it's new life, it has not yet fathomed its newfound power. Yet it still has its thirst for blood.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(40,50), combat_armor = 7, combat_def = 6, @@ -83,7 +83,7 @@ newEntity{ base = "BASE_NPC_VAMPIRE", newEntity{ base = "BASE_NPC_VAMPIRE", name = "vampire", color=colors.SLATE, desc=[[It is a humanoid with an aura of power. You notice a sharp set of front teeth.]], - level_range = {20, 50}, exp_worth = 1, + level_range = {20, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(70,80), combat_armor = 9, combat_def = 6, @@ -94,7 +94,7 @@ newEntity{ base = "BASE_NPC_VAMPIRE", newEntity{ base = "BASE_NPC_VAMPIRE", name = "master vampire", color=colors.GREEN, desc=[[It is a humanoid form dressed in robes. Power emanates from its chilling frame.]], - level_range = {23, 50}, exp_worth = 1, + level_range = {23, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(80,90), combat_armor = 10, combat_def = 8, @@ -106,7 +106,7 @@ newEntity{ base = "BASE_NPC_VAMPIRE", name = "elder vampire", color=colors.RED, desc=[[A terrible robed undead figure, this creature has existed in its unlife for many centuries by stealing the life of others. It can summon the very shades of its victims from beyond the grave to come enslaved to its aid.]], - level_range = {26, 50}, exp_worth = 1, + level_range = {26, nil}, exp_worth = 1, rarity = 4, max_life = resolvers.rngavg(90,100), combat_armor = 12, combat_def = 10, @@ -119,7 +119,7 @@ It can summon the very shades of its victims from beyond the grave to come ensla newEntity{ base = "BASE_NPC_VAMPIRE", name = "vampire lord", color=colors.BLUE, desc=[[A foul wind chills your bones as this ghastly figure approaches.]], - level_range = {30, 50}, exp_worth = 1, + level_range = {30, nil}, exp_worth = 1, rarity = 9, max_life = resolvers.rngavg(100,120), combat_armor = 15, combat_def = 15, diff --git a/game/modules/tome/data/general/npcs/wight.lua b/game/modules/tome/data/general/npcs/wight.lua index 38450aef4d5582ad8348ab6001765bc20e6ec09b..af2bd6d2dbaf7adbd3cb7a3837c364f3ef5c100e 100644 --- a/game/modules/tome/data/general/npcs/wight.lua +++ b/game/modules/tome/data/general/npcs/wight.lua @@ -62,7 +62,7 @@ newEntity{ newEntity{ base = "BASE_NPC_WIGHT", name = "forest wight", color=colors.GREEN, desc=[[It is a ghostly apparition with a humanoid form.]], - level_range = {16, 50}, exp_worth = 1, + level_range = {16, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(40,50), combat_armor = 7, combat_def = 6, @@ -76,7 +76,7 @@ newEntity{ base = "BASE_NPC_WIGHT", newEntity{ base = "BASE_NPC_WIGHT", name = "grave wight", color=colors.SLATE, desc=[[It is a ghostly form with eyes that haunt you.]], - level_range = {22, 50}, exp_worth = 1, + level_range = {22, nil}, exp_worth = 1, rarity = 7, max_life = resolvers.rngavg(70,80), combat_armor = 9, combat_def = 6, @@ -89,7 +89,7 @@ newEntity{ base = "BASE_NPC_WIGHT", newEntity{ base = "BASE_NPC_WIGHT", name = "barrow wight", color=colors.LIGHT_RED, desc=[[It is a ghostly nightmare of an entity.]], - level_range = {25, 50}, exp_worth = 1, + level_range = {25, nil}, exp_worth = 1, rarity = 8, max_life = resolvers.rngavg(80,90), combat_armor = 10, combat_def = 8, @@ -102,7 +102,7 @@ newEntity{ base = "BASE_NPC_WIGHT", newEntity{ base = "BASE_NPC_WIGHT", name = "emperor wight", color=colors.RED, desc=[[Your life force is torn from your body as this powerful unearthly being approaches.]], - level_range = {30, 50}, exp_worth = 1, + level_range = {30, nil}, exp_worth = 1, rarity = 9, rank = 3, max_life = resolvers.rngavg(100,150), diff --git a/game/modules/tome/data/general/npcs/xorn.lua b/game/modules/tome/data/general/npcs/xorn.lua index 347f1aecff0baa43f2568e25c57642fbb55fab97..6d7fb7929243930c1b6e502ad43e24ccf3395572 100644 --- a/game/modules/tome/data/general/npcs/xorn.lua +++ b/game/modules/tome/data/general/npcs/xorn.lua @@ -54,7 +54,7 @@ newEntity{ newEntity{ base = "BASE_NPC_XORN", name = "umber hulk", color=colors.LIGHT_UMBER, desc = [[This bizarre creature has glaring eyes and large mandibles capable of slicing through rock.]], - level_range = {10, 50}, exp_worth = 1, + level_range = {10, nil}, exp_worth = 1, rarity = 12, max_life = resolvers.rngavg(100,120), combat_armor = 12, combat_def = 0, @@ -65,7 +65,7 @@ newEntity{ base = "BASE_NPC_XORN", newEntity{ base = "BASE_NPC_XORN", name = "xorn", color=colors.UMBER, desc = [[A huge creature of the element Earth. Able to merge with its element, it has four huge arms protruding from its enormous torso.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 12, max_life = resolvers.rngavg(130,140), combat_armor = 15, combat_def = 10, @@ -76,7 +76,7 @@ newEntity{ base = "BASE_NPC_XORN", newEntity{ base = "BASE_NPC_XORN", name = "xaren", color=colors.SLATE, desc = [[It is a tougher relative of the Xorn. Its hide glitters with metal ores.]], - level_range = {15, 50}, exp_worth = 1, + level_range = {15, nil}, exp_worth = 1, rarity = 12, max_life = resolvers.rngavg(130,140), combat_armor = 15, combat_def = 10, diff --git a/game/modules/tome/data/zones/infinite-dungeon/grids.lua b/game/modules/tome/data/zones/infinite-dungeon/grids.lua new file mode 100644 index 0000000000000000000000000000000000000000..14dc047df0c83b59498fb0f62c673df2fbc8ca70 --- /dev/null +++ b/game/modules/tome/data/zones/infinite-dungeon/grids.lua @@ -0,0 +1,20 @@ +-- 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 + +load("/data/general/grids/basic.lua") diff --git a/game/modules/tome/data/zones/infinite-dungeon/npcs.lua b/game/modules/tome/data/zones/infinite-dungeon/npcs.lua new file mode 100644 index 0000000000000000000000000000000000000000..4816289dfa1d09eae6e9a5cacf27ea8979b3d0a1 --- /dev/null +++ b/game/modules/tome/data/zones/infinite-dungeon/npcs.lua @@ -0,0 +1,43 @@ +-- 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 + +load("/data/general/npcs/ant.lua") +load("/data/general/npcs/bear.lua") +load("/data/general/npcs/canine.lua") +load("/data/general/npcs/cold-drake.lua") +load("/data/general/npcs/ghoul.lua") +load("/data/general/npcs/jelly.lua") +load("/data/general/npcs/minotaur.lua") +load("/data/general/npcs/molds.lua") +load("/data/general/npcs/ooze.lua") +load("/data/general/npcs/orc.lua") +load("/data/general/npcs/plant.lua") +load("/data/general/npcs/rodent.lua") +load("/data/general/npcs/sandworm.lua") +load("/data/general/npcs/skeleton.lua") +load("/data/general/npcs/snake.lua") +load("/data/general/npcs/snow-giant.lua") +load("/data/general/npcs/spider.lua") +load("/data/general/npcs/swarm.lua") +load("/data/general/npcs/thieve.lua") +load("/data/general/npcs/troll.lua") +load("/data/general/npcs/vampire.lua") +load("/data/general/npcs/vermin.lua") +load("/data/general/npcs/wight.lua") +load("/data/general/npcs/xorn.lua") diff --git a/game/modules/tome/data/zones/infinite-dungeon/objects.lua b/game/modules/tome/data/zones/infinite-dungeon/objects.lua new file mode 100644 index 0000000000000000000000000000000000000000..b5facd63f5b34e95c1aab209db0f312a8aef3e91 --- /dev/null +++ b/game/modules/tome/data/zones/infinite-dungeon/objects.lua @@ -0,0 +1,20 @@ +-- 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 + +load("/data/general/objects/objects.lua") diff --git a/game/modules/tome/data/zones/infinite-dungeon/traps.lua b/game/modules/tome/data/zones/infinite-dungeon/traps.lua new file mode 100644 index 0000000000000000000000000000000000000000..df7ac5c00c1dfee69b234ae6f3465609d1647eeb --- /dev/null +++ b/game/modules/tome/data/zones/infinite-dungeon/traps.lua @@ -0,0 +1,22 @@ +-- 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 + +load("/data/general/traps/elemental.lua") +load("/data/general/traps/alarm.lua") +load("/data/general/traps/natural_forest.lua") diff --git a/game/modules/tome/data/zones/infinite-dungeon/zone.lua b/game/modules/tome/data/zones/infinite-dungeon/zone.lua new file mode 100644 index 0000000000000000000000000000000000000000..600611970d5d3767c6f1e23aac20c116fd768780 --- /dev/null +++ b/game/modules/tome/data/zones/infinite-dungeon/zone.lua @@ -0,0 +1,65 @@ +-- 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 + +return { + name = "Infinite Dungeon", + level_range = {1, 1}, + level_scheme = "player", + max_level = 1000000000, + decay = {300, 800}, + actor_adjust_level = function(zone, level, e) return math.floor((zone.base_level + level.level-1) * 1.7) + e:getRankLevelAdjust() + rng.range(-1,2) end, + width = 50, height = 50, +-- all_remembered = true, +-- all_lited = true, +-- persistant = "zone", + ambiant_music = "Swashing the buck.ogg", + generator = { + map = { + class = "engine.generator.map.Roomer", + nb_rooms = 10, + rooms = {"simple", "pilar", {"money_vault",5}}, + lite_room_chance = 50, + ['.'] = "FLOOR", + ['#'] = "WALL", + up = "UP", + down = "DOWN", + door = "DOOR", + }, + actor = { + class = "engine.generator.actor.Random", + nb_npc = {20, 30}, + }, + object = { + class = "engine.generator.object.Random", + nb_object = {6, 9}, + }, + trap = { + class = "engine.generator.trap.Random", + nb_trap = {6, 9}, + }, + }, + levels = + { + [1] = { + generator = { map = { + up = "UP_WILDERNESS", + }, }, + }, + }, +} diff --git a/game/modules/tome/load.lua b/game/modules/tome/load.lua index 140e8c5534afe226ff17d9b95dbb8cce31ad7671..885bb523dcba07be00785fe0d1aca76709779d9f 100644 --- a/game/modules/tome/load.lua +++ b/game/modules/tome/load.lua @@ -79,17 +79,17 @@ ActorResource:defineResource("Positive", "positive", ActorTalents.T_POSITIVE_POO ActorResource:defineResource("Negative", "negative", ActorTalents.T_NEGATIVE_POOL, "negative_regen", "Negative energy represents your reserve of negative power. It slowly decreases.") -- Actor stats -ActorStats:defineStat("Strength", "str", 10, 1, 100, "Strength defines your character's ability to apply physical force. It increases your melee damage, damage done with heavy weapons, your chance to resist physical effects, and carrying capacity.") -ActorStats:defineStat("Dexterity", "dex", 10, 1, 100, "Dexterity defines your character's ability to be agile and alert. It increases your chance to hit, your ability to avoid attacks, and your damage with light weapons.") -ActorStats:defineStat("Magic", "mag", 10, 1, 100, "Magic defines your character's ability to manipulate the magic of the world. It increases your spell power, and the effect of spells and other magic items.") -ActorStats:defineStat("Willpower", "wil", 10, 1, 100, "Willpower defines your character's ability to concentrate. It increases your mana and stamina capacity, and your chance to resist mental attacks.") -ActorStats:defineStat("Cunning", "cun", 10, 1, 100, "Cunning defines your character's ability to learn, think, and react. It allows you to learn many wordly abilities, increases your mental resistance, armor penetration, and critical chance.") -ActorStats:defineStat("Constitution", "con", 10, 1, 100, "Constitution defines your character's ability to withstand and resist damage. It increases your maximum life and physical resistance.") +ActorStats:defineStat("Strength", "str", 10, 1, {100, no_max=true}, "Strength defines your character's ability to apply physical force. It increases your melee damage, damage done with heavy weapons, your chance to resist physical effects, and carrying capacity.") +ActorStats:defineStat("Dexterity", "dex", 10, 1, {100, no_max=true}, "Dexterity defines your character's ability to be agile and alert. It increases your chance to hit, your ability to avoid attacks, and your damage with light weapons.") +ActorStats:defineStat("Magic", "mag", 10, 1, {100, no_max=true}, "Magic defines your character's ability to manipulate the magic of the world. It increases your spell power, and the effect of spells and other magic items.") +ActorStats:defineStat("Willpower", "wil", 10, 1, {100, no_max=true}, "Willpower defines your character's ability to concentrate. It increases your mana and stamina capacity, and your chance to resist mental attacks.") +ActorStats:defineStat("Cunning", "cun", 10, 1, {100, no_max=true}, "Cunning defines your character's ability to learn, think, and react. It allows you to learn many wordly abilities, increases your mental resistance, armor penetration, and critical chance.") +ActorStats:defineStat("Constitution", "con", 10, 1, {100, no_max=true}, "Constitution defines your character's ability to withstand and resist damage. It increases your maximum life and physical resistance.") -- Luck is hidden and starts at half max value (50) which is considered the standard ActorStats:defineStat("Luck", "lck", 50, 1, 100, "Luck defines your character's chance when dealing with unknown events. It increases your critical strike chance, your chance of random encounters, ...") --- Actor leveling, player is restricted to 50 bu npcs can go higher -ActorLevel:defineMaxLevel(75) +-- Actor leveling, player is restricted to 50 but npcs can go higher +ActorLevel:defineMaxLevel(nil) -- Factions dofile("/data/factions.lua") diff --git a/ideas/zones.ods b/ideas/zones.ods index 9f1342564a8d0b4cae22815f96901683382d3e04..98f215643ef0bf7aa20f20aaa120e42e664e6548 100644 Binary files a/ideas/zones.ods and b/ideas/zones.ods differ