diff --git a/python/maps/witherspoon_manor/devourers.py b/python/maps/witherspoon_manor/devourers.py index f05491287..97b903abf 100644 --- a/python/maps/witherspoon_manor/devourers.py +++ b/python/maps/witherspoon_manor/devourers.py @@ -82,6 +82,9 @@ def do_timer(): whoami.Say('I think there is a witch, Olandi or something, who lives south of Scorn and specializes in Devourers magic.') whoami.Say('Maybe she could help you?') + if pl.QuestGetState("scorn/Witherspoon-ghost") <= 30: + pl.QuestSetState("scorn/Witherspoon-ghost", 40) + if command == 'give': if whoami.ReadKey('examining_item') == '1': pl.Message('The priest is busy.', color) diff --git a/python/maps/witherspoon_manor/ghost.py b/python/maps/witherspoon_manor/ghost.py index caa0f3c5a..62408b280 100644 --- a/python/maps/witherspoon_manor/ghost.py +++ b/python/maps/witherspoon_manor/ghost.py @@ -35,6 +35,8 @@ def start_disappear(ghost, player): ghost.CreateTimer(5, 1) ghost.StandStill = True player.Write('The %s starts fading...'%ghost.Name) + if player.QuestGetState("scorn/Witherspoon-ghost") <= 50: + player.QuestSetState("scorn/Witherspoon-ghost", 60) def found_body(player, rule): '''Does the player have the body?''' @@ -61,9 +63,10 @@ def found_body(player, rule): ghost.CreateTimer(10, 1) ghost.Say('You fool! You lost my body!\nPrepare to feel my wrath!') warn_player(player, ghost) - return False + if player.QuestGetState("scorn/Witherspoon-ghost") <= 60: + player.QuestSetState("scorn/Witherspoon-ghost", 70) - return has_body(player) + return False def can_talk(player, rule): '''Is the ghost angry or disappearing? @@ -80,6 +83,9 @@ def do_dialog(): pl = Crossfire.WhoIsActivator() if pl.ReadKey('witherspoon_know_all') == '1': # player found the real story, through Rolanda. + pl.WriteKey('witherspoon_know_all', '') + pl.WriteKey('witherspoon_know_dagger', '') + pl.WriteKey('witherspoon_ghost', '') whoami.Say('Oh...') whoami.Map.Print('The %s manages to blush.'%whoami.Name) whoami.Say('Now I remember. I\'m so stupid. Poor Rolanda, will she ever forgive me...') @@ -107,7 +113,7 @@ def do_dialog(): speech.addRule(DialogRule(["help","yes","how"], prer, rmsg, postr),0) prer = [["token","witherspoon_ghost","explain"]] - postr = [["settoken","witherspoon_ghost", "wait"]] + postr = [["settoken","witherspoon_ghost", "wait"], ["quest", "scorn/Witherspoon-ghost", 10]] rmsg = ["I was walking near a lake west of Scorn, so maybe my body is buried here."] speech.addRule(DialogRule(["where","location"], prer, rmsg, postr),1) diff --git a/python/maps/witherspoon_manor/rolanda.py b/python/maps/witherspoon_manor/rolanda.py index e2885db2f..724997571 100644 --- a/python/maps/witherspoon_manor/rolanda.py +++ b/python/maps/witherspoon_manor/rolanda.py @@ -83,6 +83,8 @@ def explain(): whoami.Say('So I... I hide the body, hoping to forget him.') whoami.Say('But now I can\'t forget him! Ever!') pl.Write('You wonder what the ghost (Alfred, according to %s) will make of that...'%whoami.Name, color) + if pl.QuestGetState("scorn/Witherspoon-ghost") <= 40: + pl.QuestSetState("scorn/Witherspoon-ghost", 50) if event.Subtype == Crossfire.EventType.USER and command == 'give': do_give() diff --git a/python/maps/witherspoon_manor/tomb.py b/python/maps/witherspoon_manor/tomb.py index 3167bbc80..33b245ac9 100644 --- a/python/maps/witherspoon_manor/tomb.py +++ b/python/maps/witherspoon_manor/tomb.py @@ -67,5 +67,7 @@ def main(): dagger.InsertInto(pl) pl.Write('You find a body with a dagger in it!') + if pl.QuestGetState("scorn/Witherspoon-ghost") <= 10: + pl.QuestSetState("scorn/Witherspoon-ghost", 20) main() diff --git a/python/maps/witherspoon_manor/weapon_shop.py b/python/maps/witherspoon_manor/weapon_shop.py index a6dd3916d..13002a73a 100644 --- a/python/maps/witherspoon_manor/weapon_shop.py +++ b/python/maps/witherspoon_manor/weapon_shop.py @@ -46,6 +46,9 @@ def do_timer(): return whoami.Say('This dagger is pretty old, and is covered with runes. Unfortunately I can\'t describe what they mean, but they sure look like religious ones. Maybe you could go ask a priest?') + + if pl.QuestGetState("scorn/Witherspoon-ghost") <= 20: + pl.QuestSetState("scorn/Witherspoon-ghost", 30) if command == 'give': if whoami.ReadKey('examining_item') == '1': diff --git a/scorn/scorn.quests b/scorn/scorn.quests index d231b772f..8b62d9936 100644 --- a/scorn/scorn.quests +++ b/scorn/scorn.quests @@ -158,3 +158,49 @@ end_description end_step end_quest +quest scorn/Witherspoon-ghost +title Witherspoon's ghost +face ghost.111 +description +I'm helping a ghost rest in peace. +end_description +restart 1 +step 10 +description +The ghost in Witherspoon asked me to fetch his body, which is somewhere on the shore of the lake west of Scorn. +end_description +end_step +step 20 +description +I've found the body, and also a strange dagger. +end_description +end_step +step 30 +description +I should talk to a priest to figure what the runes on the dagger mean. +end_description +end_step +step 40 +description +The priest of Devourers suggested I go see a witch living south of Scorn. +end_description +end_step +step 50 +description +Rolanda explained me the situation, I should go see the ghost in Witherspoon. +end_description +end_step +step 60 +finishes_quest +description +I've brought back his body to the ghost, who went in peace. +end_description +end_step +step 70 +finishes_quest +description +I've angered the ghost. +end_description +end_step +end_quest +