diff --git a/game/modules/tome/data/chats/zemekkys.lua b/game/modules/tome/data/chats/zemekkys.lua index d4765d80ad90f5c6ebf606e460d1bffdbc2bbdf1..14f76c57c902f32f4ed4dd20212a8f3e367e1af9 100644 --- a/game/modules/tome/data/chats/zemekkys.lua +++ b/game/modules/tome/data/chats/zemekkys.lua @@ -21,11 +21,16 @@ newChat{ id="welcome", text = [[#LIGHT_GREEN#*A slot in the door opens and a pair of wild eyes peer out.*#WHITE# What do you want, @playerdescriptor.race@?]], answers = { - {"Paladin Aeryn told me that you could help me. I need to get to Middle Earth.", jump="help"}, + {"Paladin Aeryn told me that you could help me. I need to get to Middle Earth.", jump="help", cond=function(npc, player) return not player:hasQuest("west-portal") end}, + {"I found the Blood-Runed Athame, but there was no Resonating Diamond.", jump="athame", cond=function(npc, player) return player:hasQuest("west-portal") and player:hasQuest("west-portal"):isCompleted("athame") end}, {"Sorry, I have to go!"}, } } + +----------------------------------------------------------------- +-- Give quest +----------------------------------------------------------------- newChat{ id="help", text = [[Pfaugh! Her goal in life is to waste my time! Middle Earth? Why not Narnia or Chicago? Just as easy to send you someplace entirely fictional as Middle Earth. Go away. #LIGHT_GREEN#*Slot slams shut.*#WHITE#]], @@ -70,4 +75,39 @@ newChat{ id="quest", } } + +----------------------------------------------------------------- +-- Return athame +----------------------------------------------------------------- +newChat{ id="athame", + text = [[Of course there was no Resonating Diamond. What makes you think Briagh would let one loose for even a second?]], + answers = { + {"Briagh?", jump="athame2"}, + } +} +newChat{ id="athame2", + text = [[Briagh the Great Sand Wyrm. Where do you think Resonating Diamonds come from? They're just regular diamonds until they get stuck between Briagh's scales for a few centuries and get infused with his life rhythms. He sleeps on a hoard of precious gems and metals, you see.]], + answers = { + {"Where might I find Briagh's lair??", jump="athame3"}, + } +} +newChat{ id="athame3", + text = [[Well south of the Sunwall. I'll mark it for you on your map.]], + answers = { + {"I'll be back with a Resonating Diamond.", action=function(npc, player) player:hasQuest("west-portal"):wyrm_lair(player) end}, + } +} + +----------------------------------------------------------------- +-- Return gem +----------------------------------------------------------------- +newChat{ id="help", + text = [[Pfaugh! Her goal in life is to waste my time! Middle Earth? Why not Narnia or Chicago? Just as easy to send you someplace entirely fictional as Middle Earth. Go away. +#LIGHT_GREEN#*Slot slams shut.*#WHITE#]], + answers = { + {"I got here from Middle Earth, didn't I? I have this magic Orb I looted from a dead orc, see, and...", jump="offer"}, + } +} + + return "welcome" diff --git a/game/modules/tome/data/general/grids/sand.lua b/game/modules/tome/data/general/grids/sand.lua index c4983914d66b0a63025cfda1c8ea7208d7be5c32..fb83ee1d48f013c41b5ea611535de9531fe901c0 100644 --- a/game/modules/tome/data/general/grids/sand.lua +++ b/game/modules/tome/data/general/grids/sand.lua @@ -66,6 +66,18 @@ newEntity{ end, } +newEntity{ + define_as = "SANDWALL_STABLE", + name = "sandwall", image = "terrain/sandwall.png", + display = '#', color={r=203,g=189,b=72}, back_color={r=93,g=79,b=22}, + always_remember = true, + can_pass = {pass_wall=1}, + does_block_move = true, + block_sight = true, + air_level = -10, + dig = "SAND", +} + newEntity{ define_as = "PALMTREE", name = "tree", image = "terrain/sand.png", diff --git a/game/modules/tome/data/quests/west-portal.lua b/game/modules/tome/data/quests/west-portal.lua index 8f15edd52c959bffd97140ef8294c6591e28455f..ec67aecdc8f9cece9f7528369042162fc37f16d2 100644 --- a/game/modules/tome/data/quests/west-portal.lua +++ b/game/modules/tome/data/quests/west-portal.lua @@ -56,6 +56,21 @@ on_grant = function(self, who) game.logPlayer(game.player, "Zemekkys points the location of Vor Armoury on your map.") end +wyrm_lair = function(self, who) + -- Reveal entrances + local g = mod.class.Grid.new{ + show_tooltip=true, + name="Entrance into the sandpit of Briagh", + display='>', color=colors.YELLOW, + notice = true, + change_level=1, change_zone="briagh-lair" + } + g:resolve() g:resolve(nil, true) + game.zone:addEntity(game.memory_levels["wilderness-arda-fareast-1"], g, "terrain", 67, 49) + + game.logPlayer(game.player, "Zemekkys points the location of Briagh lair on your map.") +end + on_status_change = function(self, who, status, sub) if sub then -- if self:isCompleted() then diff --git a/game/modules/tome/data/zones/briagh-lair/grids.lua b/game/modules/tome/data/zones/briagh-lair/grids.lua new file mode 100644 index 0000000000000000000000000000000000000000..5fb9eaf1f710d55829e53fcdabf869c877f116b8 --- /dev/null +++ b/game/modules/tome/data/zones/briagh-lair/grids.lua @@ -0,0 +1,21 @@ +-- 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") +load("/data/general/grids/sand.lua") diff --git a/game/modules/tome/data/zones/briagh-lair/npcs.lua b/game/modules/tome/data/zones/briagh-lair/npcs.lua new file mode 100644 index 0000000000000000000000000000000000000000..249e21e9b8bad412b0a34c324e37c0f0882372cd --- /dev/null +++ b/game/modules/tome/data/zones/briagh-lair/npcs.lua @@ -0,0 +1,72 @@ +-- 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/spider.lua", rarity(0)) + +load("/data/general/npcs/all.lua", rarity(4, 35)) + +local Talents = require("engine.interface.ActorTalents") + +newEntity{ define_as = "BRIAGH", + type = "dragon", subtype = "sand", unique = true, + name = "Briagh, Great Sand Wyrm", + display = "D", color=colors.VIOLET, + desc = [[A towering sand-drake stands before you. This wingless worm is mighty and could easily crush you.]], + level_range = {35, nil}, exp_worth = 2, + max_life = 350, life_rating = 29, fixed_rating = true, + max_mana = 900, mana_regen=100, + equilibrium_regen = -50, + infravision = 20, + stats = { str=25, dex=10, cun=8, mag=80, wil=20, con=20 }, + move_others=true, + + instakill_immune = 1, + blind_immune = 1, + no_breath = 1, + rank = 4, + size_category = 5, + + combat = { dam=140, atk=130, apr=25, dammod={str=1.1} }, + + resists = { [DamageType.DARKNESS] = 70 }, + + can_pass = {pass_wall=20}, + move_project = {[DamageType.DIG]=1}, + + body = { INVEN = 10, BODY=1 }, + + resolvers.drops{chance=100, nb=1, {defined="RESONATING_DIAMOND"}, }, + resolvers.drops{chance=100, nb=10, {type="gem"} }, + + resolvers.talents{ + [Talents.T_PROBABILITY_TRAVEL]=10, + [Talents.T_SUMMON]=1, + [Talents.T_SAND_BREATH]=8, + [Talents.T_STUN]=5, + [Talents.T_KNOCKBACK]=5, + }, + resolvers.sustains_at_birth(), + + summon = { + {type="vermin", subtype="sandworm", number=8, hasxp=false}, + }, + + autolevel = "warrior", + ai = "dumb_talented_simple", ai_state = { ai_target="target_player_radius", sense_radius=400, talent_in=1, }, +} diff --git a/game/modules/tome/data/zones/briagh-lair/objects.lua b/game/modules/tome/data/zones/briagh-lair/objects.lua new file mode 100644 index 0000000000000000000000000000000000000000..7640d9cb7b7e501e1cb66e72e134021b704d759d --- /dev/null +++ b/game/modules/tome/data/zones/briagh-lair/objects.lua @@ -0,0 +1,33 @@ +-- 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") + +newEntity{ base = "BASE_GEM", + define_as = "RESONATING_DIAMOND", + name = "Resonating Diamond", color=colors.VIOLET, unique=true, + cost = 500, + + on_pickup = function(self, who) + if who == game.player then + who:setQuestStatus("west-portal", engine.Quest.COMPLETED, "gem") + return true + end + end, +} diff --git a/game/modules/tome/data/zones/briagh-lair/traps.lua b/game/modules/tome/data/zones/briagh-lair/traps.lua new file mode 100644 index 0000000000000000000000000000000000000000..4ee7b9dd16339fa08f75a53f0729e74fc71d6daf --- /dev/null +++ b/game/modules/tome/data/zones/briagh-lair/traps.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/traps/water.lua") diff --git a/game/modules/tome/data/zones/briagh-lair/zone.lua b/game/modules/tome/data/zones/briagh-lair/zone.lua new file mode 100644 index 0000000000000000000000000000000000000000..fcf9821bff75b1a38e60252d1bedaae79f8256d2 --- /dev/null +++ b/game/modules/tome/data/zones/briagh-lair/zone.lua @@ -0,0 +1,64 @@ +-- 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 = "Briagh's Lair", + level_range = {35, 50}, + level_scheme = "player", + max_level = 1, + 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 = 140, height = 140, +-- all_remembered = true, +-- all_lited = true, + persistant = "zone", + generator = { + map = { + class = "engine.generator.map.Cavern", + zoom = 16, + min_floor = 1200, + floor = "SAND", + wall = "SANDWALL_STABLE", + up = "UP", + down = "DOWN", + door = "SAND", + }, + actor = { + class = "engine.generator.actor.Random", + nb_npc = {120, 140}, + guardian = "BRIAGH", + }, + object = { + class = "engine.generator.object.Random", + nb_object = {6, 9}, + }, + trap = { + class = "engine.generator.trap.Random", + nb_object = {0, 0}, + }, + }, + levels = + { + [1] = { + generator = { map = { + up = "UP_WILDERNESS_FAR_EAST", + }, }, + }, + }, +} diff --git a/game/modules/tome/data/zones/vor-armoury/zone.lua b/game/modules/tome/data/zones/vor-armoury/zone.lua index a1ac2eb9ac119571feb53f516d5c08bd7807268f..f1f62eca4781578a9bcd28e47d193defbc4e8501 100644 --- a/game/modules/tome/data/zones/vor-armoury/zone.lua +++ b/game/modules/tome/data/zones/vor-armoury/zone.lua @@ -26,8 +26,8 @@ return { actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end, width = 30, height = 30, persistant = "zone", - all_remembered = true, - all_lited = true, +-- all_remembered = true, +-- all_lited = true, ambiant_music = "Breaking the siege.ogg", generator = { map = {