From c17eea2c5ae28e4aebda4898990b04f3577b3e96 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Wed, 3 Nov 2010 20:42:31 +0000 Subject: [PATCH] Removed the spider quest from the east, replaced with a new one upon arrival git-svn-id: http://svn.net-core.org/repos/t-engine4@1768 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Player.lua | 4 +- .../modules/tome/data/achievements/quests.lua | 12 +++-- .../data/chats/gates-of-morning-welcome.lua | 33 ++++-------- .../data/chats/unremarkable-cave-bosses.lua | 9 +++- .../data/chats/unremarkable-cave-fillarel.lua | 11 +++- .../tome/data/general/encounters/fareast.lua | 36 ------------- .../tome/data/maps/wilderness/eyal.lua | 7 ++- .../tome/data/quests/strange-new-world.lua | 54 +++++++++++++++++++ game/modules/tome/data/zones/reknor/grids.lua | 8 ++- .../data/zones/unremarkable-cave/npcs.lua | 8 +++ tiled-maps/eyal.tmx | 9 +++- 11 files changed, 117 insertions(+), 74 deletions(-) create mode 100644 game/modules/tome/data/quests/strange-new-world.lua diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index 1bc8c1d0e0..f8200aee0f 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -731,7 +731,7 @@ function _M:useOrbPortal(portal) else if portal.change_wilderness then if portal.change_wilderness.spot then - local spot = game.memory_levels[portal.change_zone.."-"..portal.change_level]:pickSpot(portal.change_wilderness.spot) + local spot = game.memory_levels[portal.change_wilderness.level_name or (portal.change_zone.."-"..portal.change_level)]:pickSpot(portal.change_wilderness.spot) self.wild_x = spot and spot.x or 0 self.wild_y = spot and spot.y or 0 else @@ -740,6 +740,8 @@ function _M:useOrbPortal(portal) end end game:changeLevel(portal.change_level, portal.change_zone) + + if portal.after_zone_teleport then self:move(portal.after_zone_teleport.x, portal.after_zone_teleport.y, true) end end if portal.message then game.logPlayer(self, portal.message) end diff --git a/game/modules/tome/data/achievements/quests.lua b/game/modules/tome/data/achievements/quests.lua index e5714f8658..7a16cb1a7b 100644 --- a/game/modules/tome/data/achievements/quests.lua +++ b/game/modules/tome/data/achievements/quests.lua @@ -50,12 +50,12 @@ newAchievement{ desc = [[Killed Golbug the Destroyer.]], } newAchievement{ - name = "Race through fire", id = "CHARRED_SCAR_SUCCESS", - desc = [[Raced through the fires of the Charred Scar to stop the Sorcerers.]], + name = "Brave new world", id = "STRANGE_NEW_WORLD", + desc = [[Gone to the Far East and took side in the war.]], } newAchievement{ - name = "Arachnophobia", id = "SPYDRIC_INFESTATION", - desc = [[Destroyed the spydric menace.]], + name = "Race through fire", id = "CHARRED_SCAR_SUCCESS", + desc = [[Raced through the fires of the Charred Scar to stop the Sorcerers.]], } newAchievement{ name = "Orcrist", id = "ORC_PRIDE", @@ -133,3 +133,7 @@ newAchievement{ name = "Back and there again", id = "EAST_PORTAL", desc = [[Opened a portal to the Far East from Maj'Eyal.]], } +newAchievement{ + name = "Arachnophobia", id = "SPYDRIC_INFESTATION", + desc = [[Destroyed the spydric menace.]], +} diff --git a/game/modules/tome/data/chats/gates-of-morning-welcome.lua b/game/modules/tome/data/chats/gates-of-morning-welcome.lua index 7868401416..1b20b0fd9f 100644 --- a/game/modules/tome/data/chats/gates-of-morning-welcome.lua +++ b/game/modules/tome/data/chats/gates-of-morning-welcome.lua @@ -22,49 +22,36 @@ newChat{ id="welcome", Stop! You are clearly a stranger! Where do you come from? The Gates of Morning are the last bastion of freedom in these lands, so who are you? A spy?]], answers = { {"My lady, I am indeed a stranger in those lands. I come from the west, from Maj'Eyal.", jump="from", - cond=function(npc, player) return not player:hasQuest("spydric-infestation") end}, - {"The spiders will not cause you any more problems, my lady.", jump="access", - cond=function(npc, player) return player:hasQuest("spydric-infestation") and player:hasQuest("spydric-infestation"):isCompleted() end}, + cond=function(npc, player) return player:hasQuest("strange-new-world") and player:hasQuest("strange-new-world"):isCompleted("helped-fillarel") end}, {"Sorry, I have to go!"}, } } newChat{ id="from", - text = [[Maj'Eyal! We Sun Paladins have not heard from there for thousands of years... perhaps the Anorithil know more... + text = [[Maj'Eyal! We Sun Paladins have not heard from there for hundredss of years... perhaps the Anorithil know more... In any event, what is your purpose here?]], answers = { - {"It seems that I am stranded in these unfamiliar lands. #LIGHT_GREEN#*Tell her about your hunt for orcs.*#WHITE#", jump="orcs"}, + {"It seems that I am stranded in these unfamiliar lands. #LIGHT_GREEN#*Tell her about your hunt for orcs and your encounter with Fillarel.*#WHITE#", jump="orcs"}, {"Sun Paladins? What do you mean? We know of no such thing where I come from.", jump="sun-paladins", cond=function() return profile.mod.allow_build.divine_sun_paladin end}, } } -newChat{ id="orcs", - text = [[Orcs! Ah! Well then this is your lucky day. This whole continent is swarming with Orcs. They have united as the Orc Pride and, according to rumor, their masters are powerful. -They roam the lands freely, ever assaulting us. -@playername@, you are welcome in the Gates of Morning, should you prove to be trustworthy. -There is a cavern full of spiders just to the north. We cannot stand against both them and the Orc Pride. -Please go there and destroy the source of infestation.]], - answers = { - {"I will, my lady.", action=function(npc, player) player:grantQuest("spydric-infestation") end}, - {"Ahh .. if I must, I must.", action=function(npc, player) player:grantQuest("spydric-infestation") end}, - } -} - newChat{ id="sun-paladins", text = [[We are the mighty warriors of the Sunwall, channeling the power of the sun and merging it with martial training. -For thousands of years, we stood between the Orc Pride and the free people. Our numbers are diminishing, but we will stand firm until our last breath.]], +For hundreds of years, we stood between the Orc Pride and the free people. Our numbers are diminishing, but we will stand firm until our last breath.]], answers = { {"You have a noble spirit, my lady.", jump="from"}, } } -newChat{ id="access", - text = [[So I have heard. You have helped us enormously; consider yourself a friend of the Sunwall. -You may now enter the Gates of Morning.]], +newChat{ id="orcs", + text = [[Orcs! Ah! Well then this is your lucky day. This whole continent is swarming with Orcs. They have united as the Orc Pride and, according to rumor, their masters are powerful. +They roam the lands freely, ever assaulting us. +@playername@, you have helped one of ours, I grant you access to the Gates of Morning and name you friend of the Sunwall.]], answers = { {"Thank you, my lady.", action=function(npc, player) - world:gainAchievement("SPYDRIC_INFESTATION", game.player) - player:setQuestStatus("spydric-infestation", engine.Quest.DONE) + world:gainAchievement("STRANGE_NEW_WORLD", game.player) + player:setQuestStatus("strange-new-world", engine.Quest.DONE) npc:move(46, 27, true) npc.can_talk = "gates-of-morning-main" game:setAllowedBuild("divine") diff --git a/game/modules/tome/data/chats/unremarkable-cave-bosses.lua b/game/modules/tome/data/chats/unremarkable-cave-bosses.lua index e5e7ca7e1b..347ccfb8c6 100644 --- a/game/modules/tome/data/chats/unremarkable-cave-bosses.lua +++ b/game/modules/tome/data/chats/unremarkable-cave-bosses.lua @@ -27,6 +27,7 @@ local function attack_krogar(npc, player) fillarel.inc_damage = {all=-80} fillarel:setTarget(krogar) krogar:setTarget(filarel) + game.player:setQuestStatus("strange-new-world", engine.Quest.COMPLETED, "sided-fillarel") end local function attack_fillarel(npc, player) @@ -39,18 +40,22 @@ local function attack_fillarel(npc, player) krogar.inc_damage = {all=-80} fillarel:setTarget(krogar) krogar:setTarget(filarel) + game.player:setQuestStatus("strange-new-world", engine.Quest.COMPLETED, "sided-krogar") end +game.player:grantQuest("strange-new-world") + newChat{ id="welcome", text = [[#LIGHT_GREEN#*A beautiful elven woman in golden robes stands before you, facing an orc clad in mail.*#WHITE# Fillarel: "Abandon this fight, orc! You cannot win: I stand with the power of the sun and the shadows of the moon." Krogar: "Ha! It's only been one hour and you already look tired, my 'lady'." #LIGHT_GREEN#*As you enter the room they notice you.*#WHITE# -Fillarel: "You! @playerdescriptor.race@! help me defeat this monster or be gone with you!" +Fillarel: "You! @playerdescriptor.race@! help me defeat this monster or be gone!" Krogar: "Ah, looking for help? Bah. @playerdescriptor.race@, kill this wench for me and I shall reward you!"]], answers = { {"[attack Krogar]", action=attack_krogar}, - {"[attack Fillarel]", action=attack_fillarel}, +-- Not available yet +-- {"[attack Fillarel]", action=attack_fillarel}, } } return "welcome" diff --git a/game/modules/tome/data/chats/unremarkable-cave-fillarel.lua b/game/modules/tome/data/chats/unremarkable-cave-fillarel.lua index e69a03bb2e..336deec8d3 100644 --- a/game/modules/tome/data/chats/unremarkable-cave-fillarel.lua +++ b/game/modules/tome/data/chats/unremarkable-cave-fillarel.lua @@ -21,7 +21,6 @@ newChat{ id="welcome", text = [[Thank you, @playername@. I hate to admit it, but you saved my life.]], answers = { {"At your service. But may I ask what you were doing in this dark place?", jump="what"}, - {"It was only natural, my lady."}, } } @@ -29,7 +28,15 @@ newChat{ id="what", text = [[I am an Anorithil, a mage of the Sun and Moon; we fight all that is evil. I was with a group of sun paladins; we came from the Gates of Morning to the east. My companions were ... were slaughtered by orcs, and I nearly died as well. Thank you again for your help.]], answers = { - {"It was only natural, my lady.", action=function(npc, player) game:setAllowedBuild("divine") game:setAllowedBuild("divine_anorithil", true) end}, + {"It was my pleasure. But may I ask a favor myself? I am not from these lands, I used a farportal guarded by orcs deep bellow the Iron Throne and was brought here.", action=function(npc, player) game:setAllowedBuild("divine") game:setAllowedBuild("divine_anorithil", true) end, jump="sunwall"}, + } +} + +newChat{ id="sunwall", + text = [[Yes I noticed you were not from here. Your only hope is the Gates of Morning, the last bastion of freedom in this orc territory. When you leave the caves head south east, you can not miss it. +Tell High Sun Paladin Aeryn that you met me, I'll send word to let you pass.]], + answers = { + {"Thank you, I will talk with Aeryn.", action=function(npc, player) game.player:setQuestStatus("strange-new-world", engine.Quest.COMPLETED, "helped-fillarel") end}, } } diff --git a/game/modules/tome/data/general/encounters/fareast.lua b/game/modules/tome/data/general/encounters/fareast.lua index 54c21398fb..e2a990ca4c 100644 --- a/game/modules/tome/data/general/encounters/fareast.lua +++ b/game/modules/tome/data/general/encounters/fareast.lua @@ -17,42 +17,6 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org -newEntity{ - name = "Unmarked Cave", - type = "harmless", subtype = "special", unique = true, - level_range = {25, 35}, - rarity = 8, - coords = {{ x=36, y=28, likelymap={ - [[ 11111111 ]], - [[ 1111111111111 ]], - [[111111111111111]], - [[111111111111111]], - [[111111111111111]], - [[111111111111111]], - [[111111111111111]], - [[111111111111111]], - [[111111111111111]], - [[ 1111111111111 ]], - [[ 111111111 ]], - }}}, - on_encounter = function(self, who) - local x, y = self:findSpot(who) - if not x then return end - - local g = mod.class.Grid.new{ - show_tooltip=true, - name="Entrance to an unmarked cave", - display='>', color={r=0, g=255, b=255}, - notice = true, - change_level=1, change_zone="unremarkable-cave" - } - g:resolve() g:resolve(nil, true) - game.zone:addEntity(game.level, g, "terrain", x, y) - game.logPlayer(who, "#LIGHT_BLUE#You notice an entrance to what seems to be a cave...") - return true - end, -} - newEntity{ name = "Underwater Cave", type = "harmless", subtype = "special", unique = true, diff --git a/game/modules/tome/data/maps/wilderness/eyal.lua b/game/modules/tome/data/maps/wilderness/eyal.lua index f94cb3b806..5b6005cd4f 100644 --- a/game/modules/tome/data/maps/wilderness/eyal.lua +++ b/game/modules/tome/data/maps/wilderness/eyal.lua @@ -59,6 +59,7 @@ quickEntity('tol-falas', {always_remember = true, show_tooltip=true, name="The e quickEntity('daikara', {always_remember = true, show_tooltip=true, name="Passageway into Daikara",display='>', color=colors.UMBER, notice = true, change_level=1, change_zone="daikara"}) quickEntity('charred-scar', {always_remember = true, show_tooltip=true, name='Charred Scar Volcano', display='>', color=colors.RED, back_color=colors.LIGHT_DARK, image="terrain/volcano1.png", notice = true, change_level=1, change_zone="charred-scar"}) quickEntity('high-peak', {always_remember = true, show_tooltip=true, name="High Peak", display='>', color=colors.VIOLET, notice = true, change_level=1, change_zone="high-peak"}) +quickEntity('unremarkable-cave', {always_remember = true, show_tooltip=true, name="Unremarkable cave", display='>', color=colors.UMBER, notice = true, change_level=1, change_zone="unremarkable-cave"}) quickEntity('derth', {always_remember = true, show_tooltip=true, name="Derth (Town)", desc="A quiet town at the crossroads of the north", display='*', color={r=255, g=255, b=255}, back_color=colors.DARK_GREEN, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-derth"}) quickEntity('last-hope', {always_remember = true, show_tooltip=true, name="Last Hope (Town)", desc="Capital city of the Allied Kingdoms ruled by King Tolak", display='*', color={r=255, g=255, b=255}, back_color=colors.DARK_GREEN, image="terrain/town1.png", notice = true, change_level=1, change_zone="town-last-hope"}) @@ -82,6 +83,7 @@ addData{ wda = { script="eyal", zones={} }, } + -- addSpot section addSpot({33, 40}, "patrol", "allied-kingdoms") addSpot({24, 17}, "patrol", "allied-kingdoms") @@ -122,7 +124,7 @@ addSpot({51, 16}, "zone-pop", "antimagic") addSpot({12, 24}, "zone-pop", "angolwen") addSpot({14, 24}, "zone-pop", "angolwen-portal") addSpot({152, 13}, "zone-pop", "high-peak") -addSpot({153, 19}, "farportal-end", "fareast") +addSpot({153, 16}, "farportal-end", "fareast") addSpot({162, 31}, "farportal-end", "gates-of-morning") addSpot({59, 39}, "farportal-end", "last-hope") addSpot({68, 22}, "farportal-end", "iron-throne") @@ -132,6 +134,7 @@ addSpot({164, 42}, "patrol", "sunwall") addSpot({163, 18}, "patrol", "sunwall") addSpot({151, 30}, "patrol", "sunwall") addSpot({141, 51}, "patrol", "orc-pride") +addSpot({142, 51}, "patrol", "orc-pride") addSpot({147, 53}, "patrol", "orc-pride") addSpot({163, 48}, "patrol", "orc-pride") addSpot({167, 9}, "patrol", "orc-pride") @@ -169,7 +172,7 @@ return { {"~","~","=","=","=","=","=","=","=",".",".",".",".",".",".",".",".","!","!","!",".",".",".",".",".",".",".",".","trollshaws","T","t","t","t","t","t","t","t","T","T","!","shatur","!","T","T","T","T","T","T","T","T","T","T","T","T","T","T","!","!","!","!","!",".",".",".","\"","\"","\"","#","#","#","#","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".","!","!","!","^","T","T","T","T","T",".",".",".",".",".",".",".","T","T","T","!","^","^","^","high-peak","^","^","^","T","T","T","T",".",".",".",".",".",".",".",".","~","~",}, {"~","~","=","=","=","~","~","~",".",".",".",".",".",".",".",".",".","!","!","!",".",".",".",".","kor-pul",".",".",".",".","T","T","T","t","t","t","T","T","T","T","!","!","!","T","T","T","T","T","T","T","T","T","T","T","T","T","!","!","!","!","!","!",".",".",".",".",".",".","#","#","#","#","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".","!","!","!","T","T","T","T","T",".",".",".",".",".",".",".",".","T","T","^","^","^","^","^","^","^","^","T","T","T","T",".",".",".",".",".",".",".",".","~","~","~",}, {"~","~","~","~","~","~","~","|","|",".",".",".",".",".",".",".","!","!","!","!","&","&",".",".",".",".",".",".",".",".","T","T","T","T","T","T","T","T","T","T","!","T","T","T","T","T","T","T","T","T","T","T","T","T","!","!","!","!","!","!",".",".",".",".",".",".",".","#","#","#","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".","!","!","!",".",".",".",".",".",".",".",".",".",".",".",".",".",".","T","^","^","^","^","^","^","^","!","T","T","T",".",".",".",".",".",".",".",".",".",".","~","~","~",}, -{"~","~","~","~","~","~","|","|","|",".",".",".",".",".",".",".","!","!","!","&","&","&","&",".",".",".","T",".",".",".",".",".",".",".",".","T","T","T","T","T","T","T","T","T","T","T","T","T","T","T","T","T",".",".",".",".","!","!","!",".",".",".",".",".","T",".",".","#","#","#","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".","!","!","!",".",".",".",".",".",".",".",".",".",".",".",".",".",".","^","^","^","^","^","^","^","^","!","T","T","T",".",".",".",".",".",".",".",".",".",".","~","~","~",}, +{"~","~","~","~","~","~","|","|","|",".",".",".",".",".",".",".","!","!","!","&","&","&","&",".",".",".","T",".",".",".",".",".",".",".",".","T","T","T","T","T","T","T","T","T","T","T","T","T","T","T","T","T",".",".",".",".","!","!","!",".",".",".",".",".","T",".",".","#","#","#","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".","!","!","!",".",".",".",".",".",".",".",".",".",".",".",".",".",".","^","^","^","^","^","^","^","^","unremarkable-cave","T","T","T",".",".",".",".",".",".",".",".",".",".","~","~","~",}, {"~","~","~","~","~","|","|","|",".",".",".",".",".",".",".",".","!","!","!","&","&","&","&",".",".","derth","T","T",".",".",".",".",".",".",".",".","T","T","T","T","T","T","T","T","T","T","T","T","-","!","!",".",".",".",".",".",".",".",".",".",".",".",".",".","T",".",".","#","#","#","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".",".","!","!",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".","^","^","^","^","^","^","T","T","!","!",".",".",".",".",".",".",".",".",".",".",".","~","~","~","~",}, {"~","~","~","~","|","|","|","|",".",".",".","T","T",".",".",".","!","!","!","&","&","&",".",".",".","T","T","T",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".","-","-","!","!",".",".",".",".",".",".",".",".",".",".",".",".","T","T",".",".",".","-","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".","-","-",".",".",".","^","^","T","T","T","!","!",".",".",".",".",".",".",".",".",".",".",".","~","~","~","~",}, {"~","~","~","~","|","|","|","|",".",".","T","T","T","T","T",".","!","!","!","&","&","&",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".","-","!","!","!",".",".",".",".",".",".",".",".",".",".",".",".","T","T","T",".",".","-","#","#","#","#","#","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~","~",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".",".","-","-","-","-","-","-",".",".",".",".",".","(","T","T","T",".",".",".",".",".",".",".",".",".",".",".",".",".","~","~","~","~",}, diff --git a/game/modules/tome/data/quests/strange-new-world.lua b/game/modules/tome/data/quests/strange-new-world.lua new file mode 100644 index 0000000000..67f8c158c5 --- /dev/null +++ b/game/modules/tome/data/quests/strange-new-world.lua @@ -0,0 +1,54 @@ +-- ToME - Tales of Maj'Eyal +-- 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 + +name = "Strange new world" +desc = function(self, who) + local desc = {} + desc[#desc+1] = "You arrived through the farportal in a cave, probably in the Far East." + desc[#desc+1] = "Upon arrival you met an elf and an orc fighting." + + if self:isCompleted("sided-fillarel") then + desc[#desc+1] = "You decided to side with the elven lady." + elseif self:isCompleted("sided-krogar") then + desc[#desc+1] = "You decided to side with the orc." + end + + if self:isCompleted("helped-fillarel") then + desc[#desc+1] = "Fillarel told you to go to the south west and meet with High Sun Paladin Aeryn." + elseif self:isCompleted("helped-krogar") then + desc[#desc+1] = "Krogar told you to go to the east and look for the Kruk Pride." + end + return table.concat(desc, "\n") +end + +krogar_dies = function(self, npc) + if self:isCompleted("sided-fillarel") then game.player:setQuestStatus(self.id, self.COMPLETED, "helped-fillarel") + else + game.player:setQuestStatus(self.id, self.COMPLETED, "helped-krogar") + npc:doEmote(game.player.descriptor.race.." go to the east, find Kruk Pride!", 120) + end +end + +fillarel_dies = function(self, npc) + if self:isCompleted("sided-krogar") then game.player:setQuestStatus(self.id, self.COMPLETED, "helped-krogar") + else + game.player:setQuestStatus(self.id, self.COMPLETED, "helped-fillarel") + npc:doEmote(game.player.descriptor.race.." go to the south west, tell Aeryn what happened to me!", 120) + end +end diff --git a/game/modules/tome/data/zones/reknor/grids.lua b/game/modules/tome/data/zones/reknor/grids.lua index 5e77103b97..4a5576ec93 100644 --- a/game/modules/tome/data/zones/reknor/grids.lua +++ b/game/modules/tome/data/zones/reknor/grids.lua @@ -31,11 +31,15 @@ This one seems to go to the Far East, a continent of which only rumours are know orb_portal = { change_level = 1, - change_zone = "wilderness", + change_zone = "unremarkable-cave", change_wilderness = { + level_name = "wilderness-1", spot = {type="farportal-end", subtype="fareast"}, }, - message = "#VIOLET#You enter the swirling portal and in the blink of an eye you set foot on an unfamiliar land, with no trace of the portal...", + after_zone_teleport = { + x = 98, y = 25, + }, + message = "#VIOLET#You enter the swirling portal and in the blink of an eye you set foot on an unfamiliar cave, with no trace of the portal...", on_use = function(self, who) game.state:goneEast() who:setQuestStatus("wild-wild-east", engine.Quest.DONE) diff --git a/game/modules/tome/data/zones/unremarkable-cave/npcs.lua b/game/modules/tome/data/zones/unremarkable-cave/npcs.lua index e00ad16e8b..a9ad54c231 100644 --- a/game/modules/tome/data/zones/unremarkable-cave/npcs.lua +++ b/game/modules/tome/data/zones/unremarkable-cave/npcs.lua @@ -71,6 +71,10 @@ newEntity{ define_as = "FILLAREL", self.energy.value = game.energy_to_act self:useTalent(self.T_CHANT_OF_FORTITUDE) end, + on_die = function(self, who) + game.player:hasQuest("strange-new-world"):fillarel_dies(self) + end, + seen_by = function(self, who) if not self.has_been_seen and who.player then local Chat = require("engine.Chat") @@ -122,5 +126,9 @@ newEntity{ define_as = "CORRUPTOR", autolevel = "caster", ai = "dumb_talented_simple", ai_state = { talent_in=1, ai_move="move_astar" }, + on_die = function(self, who) + game.player:hasQuest("strange-new-world"):krogar_dies(self) + end, + can_talk = "unremarkable-cave-krogar", } diff --git a/tiled-maps/eyal.tmx b/tiled-maps/eyal.tmx index 77c89d6e22..14ca0d4211 100644 --- a/tiled-maps/eyal.tmx +++ b/tiled-maps/eyal.tmx @@ -202,10 +202,15 @@ <property name="display" value="high-peak"/> </properties> </tile> + <tile id="14"> + <properties> + <property name="display" value="unremarkable-cave"/> + </properties> + </tile> </tileset> <layer name="Terrain" width="170" height="100"> <data encoding="base64" compression="gzip"> - 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 </data> </layer> <objectgroup name="addSpot" width="170" height="100"> @@ -371,7 +376,7 @@ <property name="type" value=""zone-pop""/> </properties> </object> - <object name="Far East portal arrival" x="4899" y="614" width="24" height="20"> + <object name="Far East portal arrival" x="4899" y="517" width="24" height="20"> <properties> <property name="subtype" value=""fareast""/> <property name="type" value=""farportal-end""/> -- GitLab