
Code: Select all
Index: data/quests/escort-duty.lua
===================================================================
--- data/quests/escort-duty.lua (revision 1164)
+++ data/quests/escort-duty.lua (working copy)
@@ -241,7 +241,16 @@
name = ""
desc = function(self, who)
local desc = {}
- desc[#desc+1] = "Escort the "..self.kind.name.." to the recall portal on level "..self.level_name.."."
+ if self:isStatus(engine.Quest.DONE) then
+ desc[#desc+1] = "You successfully escorted the "..self.kind.name.." to the recall portal on level "..self.level_name.."."
+ if self.reward_message then
+ desc[#desc+1] = ("As a reward you %s."):format(self.reward_message)
+ end
+ elseif self:isStatus(engine.Quest.FAILED) then
+ desc[#desc+1] = "You failed to protect the "..self.kind.name.." from death by "..self.killing_npc.."."
+ else
+ desc[#desc+1] = "Escort the "..self.kind.name.." to the recall portal on level "..self.level_name.."."
+ end
return table.concat(desc, "\n")
end
@@ -291,6 +300,7 @@
self.kind.actor.on_die = function(self, who)
game.logPlayer(game.player, "#LIGHT_RED#%s is dead, quest failed!", self.name:capitalize())
game.player:setQuestStatus(self.quest_id, engine.Quest.FAILED)
+ game.player:hasQuest(self.quest_id).killing_npc = who.name
end
-- Spawn actor
Index: data/chats/escort-quest.lua
===================================================================
--- data/chats/escort-quest.lua (revision 1164)
+++ data/chats/escort-quest.lua (working copy)
@@ -130,7 +130,11 @@
local answers = {}
if reward.stats then
for i = 1, #npc.stats_def do if reward.stats[i] then
- local doit = function(npc, player) player.inc_stats[i] = (player.inc_stats[i] or 0) + reward.stats[i]; player.changed = true end
+ local doit = function(npc, player)
+ player.inc_stats[i] = (player.inc_stats[i] or 0) + reward.stats[i]
+ player.changed = true
+ player:hasQuest(npc.quest_id).reward_message = ("improved %s by +%d"):format(npc.stats_def[i].name, reward.stats[i])
+ end
answers[#answers+1] = {("[Improve %s by +%d]"):format(npc.stats_def[i].name, reward.stats[i]), jump="done", action=doit}
end end
end
@@ -142,6 +146,7 @@
local doit = function(npc, player)
player:learnTalent(tid, true, level)
if t.hide then player.__show_special_talents[tid] = true end
+ player:hasQuest(npc.quest_id).reward_message = ("%s talent %s (+%d level(s))"):format(game.player:knowTalent(tid) and "improved" or "learnt", t.name, level)
end
answers[#answers+1] = {("[%s talent %s (+%d level(s))]"):format(game.player:knowTalent(tid) and "Improve" or "Learn", t.name, level), jump="done", action=doit}
end
@@ -153,6 +158,7 @@
local doit = function(npc, player)
player:learnTalentType(tt, false)
player:setTalentTypeMastery(tt, mastery)
+ player:hasQuest(npc.quest_id).reward_message = ("gained talent category %s (at mastery %0.2f)"):format(cat:capitalize().." / "..tt_def.name:capitalize(), mastery)
end
local cat = tt_def.type:gsub("/.*", "")
answers[#answers+1] = {("[Allow training of talent category %s (at mastery %0.2f)]"):format(cat:capitalize().." / "..tt_def.name:capitalize(), mastery), jump="done", action=doit}