From 19d3d022677803a767c1ca7b4418807b2cde507b Mon Sep 17 00:00:00 2001 From: DarkGod <darkgod@net-core.org> Date: Mon, 23 Feb 2015 23:18:17 +0100 Subject: [PATCH] ogres can show up in the dark crypt too --- game/modules/tome/data/general/npcs/ogre.lua | 141 ++++++++++++++++++ .../tome/data/zones/conclave-vault/npcs.lua | 121 +-------------- .../data/zones/conclave-vault/objects.lua | 1 + .../data/zones/crypt-kryl-feijan/npcs.lua | 2 + 4 files changed, 145 insertions(+), 120 deletions(-) create mode 100644 game/modules/tome/data/general/npcs/ogre.lua diff --git a/game/modules/tome/data/general/npcs/ogre.lua b/game/modules/tome/data/general/npcs/ogre.lua new file mode 100644 index 0000000000..f08f59b30a --- /dev/null +++ b/game/modules/tome/data/general/npcs/ogre.lua @@ -0,0 +1,141 @@ +-- ToME - Tales of Maj'Eyal +-- Copyright (C) 2009 - 2015 Nicolas Casalini +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- +-- Nicolas Casalini "DarkGod" +-- darkgod@te4.org + +local Talents = require("engine.interface.ActorTalents") + +newEntity{ + define_as = "BASE_NPC_OGRE", + type = "giant", subtype = "ogre", + display = "O", color=colors.WHITE, + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 }, + + rank = 2, + size_category = 4, + infravision = 10, + + resolvers.racial(), + resolvers.sustains_at_birth(), + resolvers.inscriptions(1, "rune"), + resolvers.inscriptions(1, "infusion"), + + autolevel = "warriormage", + ai = "dumb_talented_simple", ai_state = { ai_move="move_complex", talent_in=2, }, + stats = { str=14, mag=14, con=14 }, + combat = { dammod={str=1, mag=0.5}}, + combat_armor = 8, combat_def = 6, + not_power_source = {antimagic=true}, +} + +newEntity{ base = "BASE_NPC_OGRE", + name = "ogre guard", color=colors.LIGHT_GREY, + desc = [[A maul-wield ogre. Ready to CRUSH!]], + resolvers.nice_tile{tall=1}, + level_range = {20, nil}, exp_worth = 1, + rarity = 2, + rank = 2, + max_life = resolvers.rngavg(150,170), life_rating = 14, + + resolvers.equip{{type="weapon", subtype="greatmaul", forbid_power_source={antimagic=true}, autoreq=true} }, + resolvers.talents{ + [Talents.T_SUNDER_ARMOUR]={base=3, every=4, max=8}, + [Talents.T_WEAPON_COMBAT]={base=3, every=4, max=7}, + [Talents.T_WEAPONS_MASTERY]={base=4, every=5, max=7}, + }, +} + +newEntity{ base = "BASE_NPC_OGRE", + name = "ogre warmaster", color=colors.CRIMSON, + desc = [[A master of combat, she is impatient to test his newfound skills.]], + resolvers.nice_tile{tall=1}, female = 1, + level_range = {21, nil}, exp_worth = 1, + rarity = 4, + rank = 3, + max_life = resolvers.rngavg(110,120), life_rating = 15, + + resolvers.equip{ + {type="weapon", subtype="mace", forbid_power_source={antimagic=true}, autoreq=true}, + {type="armor", subtype="shield", forbid_power_source={antimagic=true}, autoreq=true}, + }, + resolvers.talents{ + [Talents.T_BATTLE_CRY]={base=3, every=4, max=8}, + [Talents.T_DISARM]={base=3, every=4, max=8}, + [Talents.T_BATTLE_CALL]={base=3, every=4, max=8}, + [Talents.T_WEAPON_COMBAT]={base=3, every=4, max=7}, + [Talents.T_SHATTERING_BLOW]={base=3, every=4, max=8}, + [Talents.T_WEAPONS_MASTERY]={base=4, every=5, max=7}, + [Talents.T_ARMOUR_TRAINING]={base=4, every=5, max=7}, + }, +} + +newEntity{ base = "BASE_NPC_OGRE", + name = "ogre mauler", color=colors.LIGHT_UMBER, + desc = [[Crush! Destroy! Maim!]], + resolvers.nice_tile{tall=1}, + level_range = {22, nil}, exp_worth = 1, + rarity = 2, + rank = 2, + max_life = resolvers.rngavg(110,120), life_rating = 13, + + resolvers.equip{{type="weapon", subtype="greatmaul", forbid_power_source={antimagic=true}, autoreq=true} }, + resolvers.talents{ + [Talents.T_WARSHOUT_BERSERKER]={base=3, every=4, max=8}, + [Talents.T_WEAPON_COMBAT]={base=3, every=4, max=7}, + [Talents.T_WEAPONS_MASTERY]={base=4, every=5, max=7}, + }, +} + +newEntity{ base = "BASE_NPC_OGRE", + name = "ogre pounder", color=colors.DARK_UMBER, + desc = [[This ogre closes in fast on you, arms open for the hug of death.]], + resolvers.nice_tile{tall=1}, + level_range = {20, nil}, exp_worth = 1, + rarity = 3, + rank = 3, + max_life = resolvers.rngavg(150,170), life_rating = 15, + + resolvers.equip{{type="armor", subtype="hands", autoreq=true},}, + resolvers.talents{ + [Talents.T_DOUBLE_STRIKE] = {base=3, every=5, max=7}, + [Talents.T_UPPERCUT] = {base=3, every=5, max=7}, + [Talents.T_EMPTY_HAND] = 1, + [Talents.T_CLINCH] = {base=3, every=5, max=7}, + [Talents.T_MAIM] = {base=3, every=5, max=7}, + [Talents.T_UNARMED_MASTERY] = {base=4, every=6, max=8}, + [Talents.T_WEAPON_COMBAT] = {base=2, every=6, max=8}, + }, +} + +newEntity{ base = "BASE_NPC_OGRE", + name = "ogre rune-spinner", color=colors.LIGHT_RED, + desc = [[A towering ogre guard, her skin covered in runes and arcane designs.]], + female = 1, + resolvers.nice_tile{tall=1}, + level_range = {23, nil}, exp_worth = 1, + rarity = 2, + rank = 3, + max_life = resolvers.rngavg(110,120), life_rating = 13, + + resolvers.equip{{type="weapon", subtype="staff", forbid_power_source={antimagic=true}, autoreq=true} }, + resolvers.talents{ + [Talents.T_LIGHTNING]={base=3, every=4, max=8}, + [Talents.T_FLAME]={base=3, every=4, max=7}, + [Talents.T_EARTHEN_MISSILES]={base=4, every=5, max=7}, + [Talents.T_BARRIER]={base=4, every=5, max=7}, + }, +} diff --git a/game/modules/tome/data/zones/conclave-vault/npcs.lua b/game/modules/tome/data/zones/conclave-vault/npcs.lua index 0a7cd92925..52ea08e886 100644 --- a/game/modules/tome/data/zones/conclave-vault/npcs.lua +++ b/game/modules/tome/data/zones/conclave-vault/npcs.lua @@ -21,6 +21,7 @@ load("/data/general/npcs/jelly.lua") load("/data/general/npcs/ooze.lua") load("/data/general/npcs/mold.lua") load("/data/general/npcs/slime.lua") +load("/data/general/npcs/ogre.lua", switchRarity("special_rarity")) local Talents = require("engine.interface.ActorTalents") @@ -55,107 +56,6 @@ newEntity{ to_vat = "VAT2", } -newEntity{ - define_as = "BASE_NPC_OGRE", - type = "giant", subtype = "ogre", - display = "O", color=colors.WHITE, - body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 }, - - rank = 2, - size_category = 4, - infravision = 10, - - resolvers.racial(), - resolvers.sustains_at_birth(), - resolvers.inscriptions(1, "rune"), - resolvers.inscriptions(1, "infusion"), - - autolevel = "warriormage", - ai = "dumb_talented_simple", ai_state = { ai_move="move_complex", talent_in=2, }, - stats = { str=14, mag=14, con=14 }, - combat = { dammod={str=1, mag=0.5}}, - combat_armor = 8, combat_def = 6, - not_power_source = {antimagic=true}, -} - -newEntity{ base = "BASE_NPC_OGRE", - name = "ogre guard", color=colors.LIGHT_GREY, - desc = [[A maul-wield ogre. Ready to CRUSH!]], - resolvers.nice_tile{tall=1}, - level_range = {20, nil}, exp_worth = 1, - special_rarity = 2, - rank = 2, - max_life = resolvers.rngavg(150,170), life_rating = 14, - - resolvers.equip{{type="weapon", subtype="greatmaul", forbid_power_source={antimagic=true}, autoreq=true} }, - resolvers.talents{ - [Talents.T_SUNDER_ARMOUR]={base=3, every=4, max=8}, - [Talents.T_WEAPON_COMBAT]={base=3, every=4, max=7}, - [Talents.T_WEAPONS_MASTERY]={base=4, every=5, max=7}, - }, -} - -newEntity{ base = "BASE_NPC_OGRE", - name = "ogre warmaster", color=colors.CRIMSON, - desc = [[A master of combat, she is impatient to test his newfound skills.]], - resolvers.nice_tile{tall=1}, female = 1, - level_range = {21, nil}, exp_worth = 1, - special_rarity = 4, - rank = 3, - max_life = resolvers.rngavg(110,120), life_rating = 15, - - resolvers.equip{ - {type="weapon", subtype="mace", forbid_power_source={antimagic=true}, autoreq=true}, - {type="armor", subtype="shield", forbid_power_source={antimagic=true}, autoreq=true}, - }, - resolvers.talents{ - [Talents.T_BATTLE_CRY]={base=3, every=4, max=8}, - [Talents.T_DISARM]={base=3, every=4, max=8}, - [Talents.T_BATTLE_CALL]={base=3, every=4, max=8}, - [Talents.T_WEAPON_COMBAT]={base=3, every=4, max=7}, - [Talents.T_SHATTERING_BLOW]={base=3, every=4, max=8}, - [Talents.T_WEAPONS_MASTERY]={base=4, every=5, max=7}, - [Talents.T_ARMOUR_TRAINING]={base=4, every=5, max=7}, - }, -} - -newEntity{ base = "BASE_NPC_OGRE", - name = "ogre mauler", color=colors.LIGHT_UMBER, - desc = [[Crush! Destroy! Maim!]], - resolvers.nice_tile{tall=1}, - level_range = {22, nil}, exp_worth = 1, - special_rarity = 2, - rank = 2, - max_life = resolvers.rngavg(110,120), life_rating = 13, - - resolvers.equip{{type="weapon", subtype="greatmaul", forbid_power_source={antimagic=true}, autoreq=true} }, - resolvers.talents{ - [Talents.T_WARSHOUT_BERSERKER]={base=3, every=4, max=8}, - [Talents.T_WEAPON_COMBAT]={base=3, every=4, max=7}, - [Talents.T_WEAPONS_MASTERY]={base=4, every=5, max=7}, - }, -} - -newEntity{ base = "BASE_NPC_OGRE", - name = "ogre pounder", color=colors.DARK_UMBER, - desc = [[This ogre closes in fast on you, arms open for the hug of death.]], - resolvers.nice_tile{tall=1}, - level_range = {20, nil}, exp_worth = 1, - special_rarity = 3, - rank = 3, - max_life = resolvers.rngavg(150,170), life_rating = 15, - - resolvers.equip{{type="armor", subtype="hands", autoreq=true},}, - resolvers.talents{ - [Talents.T_DOUBLE_STRIKE] = {base=3, every=5, max=7}, - [Talents.T_UPPERCUT] = {base=3, every=5, max=7}, - [Talents.T_EMPTY_HAND] = 1, - [Talents.T_CLINCH] = {base=3, every=5, max=7}, - [Talents.T_MAIM] = {base=3, every=5, max=7}, - [Talents.T_UNARMED_MASTERY] = {base=4, every=6, max=8}, - [Talents.T_WEAPON_COMBAT] = {base=2, every=6, max=8}, - }, -} newEntity{ base = "BASE_NPC_OGRE", name = "degenerated ogric mass", color=colors.BLUE, @@ -195,25 +95,6 @@ newEntity{ base = "BASE_NPC_OGRE", }, } -newEntity{ base = "BASE_NPC_OGRE", - name = "ogre rune-spinner", color=colors.LIGHT_RED, - desc = [[A towering ogre guard, her skin covered in runes and arcane designs.]], - female = 1, - resolvers.nice_tile{tall=1}, - level_range = {23, nil}, exp_worth = 1, - special_rarity = 2, - rank = 3, - max_life = resolvers.rngavg(110,120), life_rating = 13, - - resolvers.equip{{type="weapon", subtype="staff", forbid_power_source={antimagic=true}, autoreq=true} }, - resolvers.talents{ - [Talents.T_LIGHTNING]={base=3, every=4, max=8}, - [Talents.T_FLAME]={base=3, every=4, max=7}, - [Talents.T_EARTHEN_MISSILES]={base=4, every=5, max=7}, - [Talents.T_BARRIER]={base=4, every=5, max=7}, - }, -} - ------------- Non random diff --git a/game/modules/tome/data/zones/conclave-vault/objects.lua b/game/modules/tome/data/zones/conclave-vault/objects.lua index 8ba592e327..e08da9e2c0 100644 --- a/game/modules/tome/data/zones/conclave-vault/objects.lua +++ b/game/modules/tome/data/zones/conclave-vault/objects.lua @@ -48,6 +48,7 @@ newEntity{ base = "BASE_GREATMAUL", define_as = "ASTELRID_CLUBSTAFF", level_range = {20, 30}, require = { stat = { str=23 }, }, cost = 650, + rarity = false, material_level = 3, combat = { dam = 45, diff --git a/game/modules/tome/data/zones/crypt-kryl-feijan/npcs.lua b/game/modules/tome/data/zones/crypt-kryl-feijan/npcs.lua index 67062cfb25..029f08c4c7 100644 --- a/game/modules/tome/data/zones/crypt-kryl-feijan/npcs.lua +++ b/game/modules/tome/data/zones/crypt-kryl-feijan/npcs.lua @@ -21,6 +21,8 @@ load("/data/general/npcs/elven-caster.lua", rarity(0)) load("/data/general/npcs/elven-warrior.lua", rarity(0)) load("/data/general/npcs/minor-demon.lua", rarity(5)) load("/data/general/npcs/major-demon.lua", function(e) e.rarity = nil end) +load("/data/general/npcs/ogre.lua", function(e) e.faction = "rhalore" if e.rarity then e.rarity = e.rarity + 4 end end) + local Talents = require("engine.interface.ActorTalents") newEntity{ base="BASE_NPC_MAJOR_DEMON", define_as = "KRYL_FEIJAN", -- GitLab