Skip to content
Snippets Groups Projects
Commit 090ade8c authored by dg's avatar dg
Browse files

Mage apprentice quest changed, he wont collect rings/.. anymore, he just needs...

Mage apprentice quest changed, he wont collect rings/.. anymore, he just needs one arcane powered artifact


git-svn-id: http://svn.net-core.org/repos/t-engine4@4894 51575b47-30f0-44d4-a5cc-537603b46e54
parent c6a47a7b
No related branches found
No related tags found
No related merge requests found
......@@ -38,12 +38,7 @@ newChat{ id="welcome",
Good day to you, fellow traveler!]],
answers = {
{"What brings an apprentice mage out into the wilds?", jump="quest", cond=function(npc, player) return not player:hasQuest("mage-apprentice") end},
{"I have something for you!",
jump="welcome",
cond=function(npc, player) return player:hasQuest("mage-apprentice") and player:hasQuest("mage-apprentice"):can_offer(player) end,
action=function(npc, player, dialog) player:hasQuest("mage-apprentice"):collect_staff(npc, player, dialog) end
},
{"I found this artefact; it looks powerful. Maybe it would be enough?",
{"I found this artefact; it looks powerful and arcane infused. Maybe it would be enough?",
jump="unique",
cond=function(npc, player) return player:hasQuest("mage-apprentice") and player:hasQuest("mage-apprentice"):can_offer_unique(player) end,
action=function(npc, player, dialog) player:hasQuest("mage-apprentice"):collect_staff_unique(npc, player, dialog) end
......@@ -81,7 +76,7 @@ I am a novice mage, as you might have noticed, and my goal is to be accepted by
}
newChat{ id="quest3",
text = [[The keepers of ar... err, I do not think I am supposed to talk about them... sorry, my friend...
In any case, I must collect 10 magic staves, rings or amulets, and I have yet to find one. I would be grateful if you could bring me some should you find any!]],
In any case, I must collect many items. I have some already but I am still looking for an arcane-infused artefact. You do not happen to have one I imagine... Well if you do, tell me please!]],
answers = {
{"I will keep that in mind!", action=function(npc, player) player:grantQuest("mage-apprentice") end},
{"No way, bye!"},
......@@ -89,7 +84,7 @@ In any case, I must collect 10 magic staves, rings or amulets, and I have yet to
}
newChat{ id="quest3_mage",
text = [[I hope I will too ...
In any case, I must collect 10 magic staves, rings or amulets and I have yet to find one. I would be grateful if you could bring me some should you find any!]],
In any case, I must collect many items. I have some already but I am still looking for an arcane-infused artefact. You do not happen to have one I imagine... Well if you do, tell me please!]],
answers = {
{"I will keep that in mind!", action=function(npc, player) player:grantQuest("mage-apprentice") end},
{"No way, bye!"},
......
......@@ -41,47 +41,9 @@ on_status_change = function(self, who, status, sub)
end
end
collect_staff = function(self, npc, who, dialog)
who:showInventory("Offer which item?", who:getInven("INVEN"),
function(o) return
(
(o.type == "weapon" and o.subtype == "staff") or
(o.type == "jewelry" and o.subtype == "ring") or
(o.type == "jewelry" and o.subtype == "amulet")
) and not o.unique
end,
function(o, item)
self.nb_collect = self.nb_collect + 1
if self.nb_collect >= 10 then who:setQuestStatus(self, self.COMPLETED) end
who:removeObject(who:getInven("INVEN"), item)
game.log("You have no more %s", o:getName{no_count=true, do_color=true})
who:sortInven(who:getInven(inven))
dialog.next_dialog:regen()
return true
end
)
end
can_offer = function(self, who)
if self.nb_collect >= 10 then return end
if not who:getInven("INVEN") then return end
for item, o in ipairs(who:getInven("INVEN")) do
if (
(o.type == "weapon" and o.subtype == "staff") or
(o.type == "jewelry" and o.subtype == "ring") or
(o.type == "jewelry" and o.subtype == "amulet")
) and not o.unique then return true end
end
end
collect_staff_unique = function(self, npc, who, dialog)
who:showInventory("Offer which item?", who:getInven("INVEN"),
function(o) return (
(o.type == "weapon" and o.subtype == "staff") or
(o.type == "jewelry" and o.subtype == "ring") or
(o.type == "jewelry" and o.subtype == "amulet")
) and o.unique
function(o) return o.power_source and o.power_source.arcane and o.unique
end,
function(o, item)
-- Special handling for the staff of absorption
......@@ -95,8 +57,8 @@ collect_staff_unique = function(self, npc, who, dialog)
return true
end
self.nb_collect = self.nb_collect + 10
if self.nb_collect >= 10 then who:setQuestStatus(self, self.COMPLETED) end
self.nb_collect = self.nb_collect + 1
if self.nb_collect >= 1 then who:setQuestStatus(self, self.COMPLETED) end
who:removeObject(who:getInven("INVEN"), item)
game.log("You have no more %s", o:getName{no_count=true, do_color=true})
who:sortInven(who:getInven(inven))
......@@ -107,15 +69,11 @@ collect_staff_unique = function(self, npc, who, dialog)
end
can_offer_unique = function(self, who)
if self.nb_collect >= 10 then return end
if self.nb_collect >= 1 then return end
if not who:getInven("INVEN") then return end
for item, o in ipairs(who:getInven("INVEN")) do
if (
(o.type == "weapon" and o.subtype == "staff") or
(o.type == "jewelry" and o.subtype == "ring") or
(o.type == "jewelry" and o.subtype == "amulet")
) and o.unique then return true end
if o.power_source and o.power_source.arcane and o.unique then return true end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment