!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !START STUFF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Array statusbar_temp --> 64; Global statusbar_right = "Right text"; Global hint_menu = vespers_hints; Replace DrawStatusLine; !Constant DEBUG; Constant Story "Vespers"; Constant Headline "^(First time players should type ABOUT)^"; Constant DEATH_MENTION_UNDO; Replace ScoreSub; !FOR pname Replace MakeMatch; Replace Identical; Replace NounDomain; Replace TryGivenObject; !FOR DoMenu Replace DoMenu; Replace LowKey_Menu; Include "Parser"; Include "pname.h"; Include "smartcantgo"; Include "Helproutines"; [ BeforeParsing x; for (wn=2 : wn1 : wn++) if (buffer->(parse->(4*wn + 1)) == '.' && (parse-->(2*wn - 3) == 'st' && parse-->(2*wn + 1) == 'cuthbert' or 'medard' or 'drausinus' or 'francis') || (parse-->(2*wn - 3) == 'mr' && parse-->(2*wn + 1) == 'burton' or 'knowles')) { buffer->(parse->(4*wn + 1)) = ' '; x++; } if (x) @tokenise buffer parse; ]; Object LibraryMessages with before [q; Prompt: if (misc_shadow.quotes_on == false) { q = child(PendingQuote); if(q) { move q to SeenQuote; style underline; q.show_quote_inline(); style roman; } } Attack: "You are too weak."; Burn: "It does not light. The dampness spoils everything here."; Buy: "There is nothing to buy."; Climb: "You're not a child anymore."; Eat: "You're not that hungry."; Examine: if (lm_n == 1) "It's almost soothing. So simple. So pure."; else return false; Give: if (lm_n == 3) print "Charity is a virtue, but ", (the) second, " isn't interested.^"; rtrue; Jump: "The up isn't so bad, but when you land, your knees crack and your spine twists."; Kiss: "You can't summon the will to perform the Pax."; Listen: "The wind. Nothing more."; Miscellany: if (lm_n == 39) "That holds little interest for you."; if (lm_n == 5) { if (deadflag == 3) { print "Would you like to RESTART, RESTORE a saved game, UNDO your last move or QUIT? ^^You have found one of three main endings. If you would like to see the others, type ALTERNATIVES after you RESTART the game.^"; return true; } if (deadflag == 4) { print "Would you like to RESTART, RESTORE a saved game, UNDO your last move or QUIT?^"; box "And when the sun was going down, " "a deep sleep fell upon Abram; and, lo, " "an horror of great darkness fell upon him." "" " -- Genesis 15:12"; return true; } else return false; } if (lm_n == 19) { if (emmanuele_body in new_church) "Your wings pulse up and down with each breath. The wind ripples across them. A click from below sings to you: your hooves. The cold of the stone on your feet no longer bothers you. That is a cheap, human concern. ^^So many are."; if (devil.prayed == true) { QuoteFrom(matthew13_46); "Loose, pale skin. A crooked spine. Liver spots all over. ^^It is a weak shell, but it will do."; } else switch(time_shadow.current_time) { 0: QuoteFrom(iisamuel14_25); "You're not the man you were a few days ago. Your skin hangs as sallow drapes around your jaw: your hands are emaciated. Your frock billows about you; it is difficult to find any flesh within. The only solace you find in looking at yourself is that, so far, no signs of the plague are within you."; 1: if (cupboard.opened == true) "You're not the man you were a few days ago. Your skin hangs as sallow drapes around your jaw: your hands are emaciated. Your frock billows about you; it is difficult to find any flesh within. A scratch lines your arm from wrist to elbow; it is only a strip of dried blood now. ^^Running your hand across your neck, you find a small lump hidden within the folds of skin. It is tender."; else "You're not the man you were a few days ago. Your skin hangs as sallow drapes around your jaw: your hands are emaciated. Your frock billows about you; it is difficult to find any flesh within. ^^Running your hand across your neck, you find a small lump hidden within the folds of skin. It is tender."; 2: "It is dark, and you are weak. Your bed calls to you with promises of slight warmth, but you know it is a lie. The blood from your scratch has all flaked away, leaving a warm, pinkish line in its place. ^^The lump on your neck is bigger, and it hurts to swallow."; 3: QuoteFrom(jeremiah13_23); "Morning's light brings with it a clearer sight of your body. Large tumors protrude from your neck and armpits, making it difficult to move your arms and head without pain. You look down to see the scratch, but it is masked by a creeping black mark that twists and slides about your arms."; 4: QuoteFrom(jeremiah13_23); "Tumors spring from your body like mushrooms. You're almost as much black as white."; 5: QuoteFrom(jeremiah13_23); "The black sweeps across your body like oil. Growing. Expanding. Lumps are everywhere: stones under your skin."; 6,7: QuoteFrom(jeremiah13_23); "You barely recognize yourself. Your arms are barely your own; they are more tumor than flesh. The color is revolting: a blend of tar and bile."; 8: QuoteFrom(jeremiah13_23); "Walking poison. More black than white. You are dying."; 9: if (sin_shadow.evil == true) "Your shell is broken. The old man's bones are twisted and hollow. White has become black. His flesh bubbles with tumors and shudders with the cold. Weak mortals."; else QuoteFrom(jeremiah13_23); "White has become black. Your flesh bubbles with tumors. It shudders uncontrollably: the flames that surround you do nothing to ease the cold."; } } else return false; Pull,Push: if (lm_n == 1 or 2) "Perhaps many years ago, but you are far too weak now."; else return false; Search: if (noun has male) "He slaps away your fingers."; Show: if (lm_n == 2) { if (noun ofclass Drogo) "Drogo eyes ", (the) self, " warily. He squeals. He cries. He doesn't care."; if (noun ofclass Cecilia_class) "~I don't know what to tell you,~ she replies, shrugging her shoulders."; if (noun ofclass Matteo) "~Please, father,~ he sighs. ~I don't have the energy.~"; if (noun ofclass Ignatius) "His eye twitches. ~So?~"; if (noun ofclass Lucca) "He pretends he doesn't see."; if (noun ofclass Constantin) "~I don't care about that,~ he growls."; } Sing: "Your days in the choir are long behind you."; Sleep: "You aren't tired. At least, not tired enough to sleep."; Smell: if (location ofclass Outside_room) "The cold flies up your nose like needles: you smell nothing unusual."; else "Mildew."; Strong: "You curse. Hopefully God didn't hear."; Taste: "Mildew."; Touch: if (lm_n == 2) "It feels rough on your fingers."; else return false; Think: "You find it difficult to concentrate."; Wait: "Time passes. Slowly."; Wake: "If only it were that simple."; ]; Include "Verblib"; Include "utility"; Include "domenu"; Include "AltMenu"; Include "Hints"; Include "dirs_2"; !HINTS AND HELP MENU Menu vespers_hints "Vespers: Hints and Info" with description "Please select one of the following items:", number 1; Hint amusing_things "Some amusing things to do" with description "AMUSING THINGS TO DO"; Menu alternatives_menu "Alternatives" with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=[back]" "Q=back" 8 7; HintTopic general_alternative "General" alternatives_menu; Hint "General" general_alternative with description [; "^^ There's basically three ways to play the game: one good, one evil, and one middle of the road. Each will give a different ending and change certain things in the game. If you would like to see the walkthru for each, type: WALKTHRU GOOD, WALKTHRU EVIL, or WALKTHRU MIDDLE. WALKTHRU by itself will return the middle walkthru. For more general guidelines, see the individual topics in the preceding menu. I know it's rather simplistic to divide the paths into these three categories, but this isn't a theology lesson, so please let it slide. ^^ ";] ; HintTopic good_alternative "Good" alternatives_menu; Hint "Good" good_alternative with description [; "^^ This one might be the most tricky to obtain, as any slip ups will put you onto one of the other paths. However, it shouldn't be that hard. Don't kill or have sex with anyone (including yourself) and you should be fine. Also, don't pray to Cecilia (worshipping false idols and all that). ^^ ";] ; HintTopic middle_alternative "Middle" alternatives_menu; Hint "Middle" middle_alternative with description [; "^^ Just don't kill or have sex with anyone, but be sure to commit some sins: praying to Cecilia is the easiest. ^^ ";] ; HintTopic evil_alternative "Evil" alternatives_menu; Hint "Evil" evil_alternative with description [; "^^ This is definitely the easiest. Feel free to kill and pillage and sell your soul to the Devil. Once you're on this track, it's impossible to get off. ^^ ";] ; Menu matteo_journal "Matteo's Journal" with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=[back]" "Q=back" 8 7; HintTopic matteo_day1 "January 12th" matteo_journal; Hint "January 12th" matteo_day1 with description [; font on; style underline; "^^ The father closed the gate this morning, as soon as news of Rovato arrived. I don't know what I would have done in his place, but it wouldn't have been that. Since it happened, I have felt strange: listless, despondent. I never felt trapped at Saint Cuthbert's before, but I guess knowing that now I can't leave makes all the difference. I am tired. I have felt tired all day, but at least now it is appropriate to sleep. ^^ ";] ; HintTopic matteo_day2 "January 13th" matteo_journal; Hint "January 13th" matteo_day2 with description [; font on; style underline; "^^ The father's plan did nothing. The first signs of the plague appeared this morning. Already the infirmary is as full as the dormitory is empty. ^^ I feel worse than I did yesterday. Not from the plague: I am still healthy. I just don't want to do anything. I just want to sleep. ^^" ;] ; HintTopic matteo_day3 "January 14th" matteo_journal; Hint "January 14th" matteo_day3 with description [; font on; style underline; "^^ I don't appear to be the only one who's out of sorts. The six of us left are all a little different, except Lucca; he remains the shy child he always was. I don't know what it is. Perhaps we are all just having trouble adjusting to the space. I spend all my time in the tower. It was always empty: the change isn't noticeable up there. ^^ Vespers ^^ I was right. We are different. Drogo, while never the model of normality, has been acting even stranger of late. He spent all this afternoon in the garden, talking to things only he sees. ^^ Constantin too. He has been dragging sacks from somewhere into the refectory. I asked the father, subtly, if any food was being delivered to the monastery. He said no. But he didn't leave it at that. He has become so paranoid and inquisitive lately. ^^ I don't know about Ignatius. He is always in the infirmary or the church, hidden from my eyes. ^^" ;]; HintTopic matteo_day4 "January 15th" matteo_journal; Hint "January 15th" matteo_day4 with description [; font on; style underline; "^^ Terce ^^ Constantin is smuggling bodies in to the cellar. His sack snagged on a branch as he dragged it through the cloister, and blood began soaking the snow. I know I should do something, tell someone, but I can't. I don't want to burden Lucca with what is going on, and I trust no one else. ^^ Especially not the father. He has become a raving lunatic. He shrieks quotes from the Bible at the most inopportune times: while doing the most mundane things. Sometimes they aren't even from the Bible. He has become extremely paranoid and suspicious. He has even stopped praying, unless he wants something. ^^ Compline ^^ It turns out Drogo isn't as insane as I thought, or perhaps it's just a different kind of insane. He has not been talking to nothing out in the garden. He appears to have made friends with the wolves and talks to them. For some reason, they do not attack, even though they are even hungrier than we are.";]; HintTopic matteo_day5 "January 16th" matteo_journal; Hint "January 16th" matteo_day5 with description [; font on; style underline; "^^ I give up. I am so tired. I just wish I hadn't burdened Lucca with my knowledge. ^^The snow beneath the tower looks like a bed to me. I just want to sleep.";]; HintTopic disclaimer "Disclaimer" vespers_hints; Hint "This game contains some violence and graphic images (well, as much as any all-text game can). If this makes you uncomfortable, please stop playing now. ^^Oh, and despite the subject matter and oodles of bible quotes, Vespers really isn't a religious game: at least not in the sense of trying to convert anyone. ^^On that note: I'm not Christian and wasn't raised Christian, so my representation might be a little off as far as theological matters are concerned. I hope I don't offend anyone. ^^Anyway, hope you enjoy it." disclaimer; Menu new_player_info "If You Haven't Played Interactive Fiction Before" vespers_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=back" "Q=back" 8 7; HintTopic introduction_menu "Introduction" new_player_info; Hint "Introduction" introduction_menu with description [; LongIntro(); ] ; HintTopic prompt_menu "What is this ~>~ thing?" new_player_info; Hint "What is this ~>~ thing?" prompt_menu with description [; ExplainPrompt(); ] ; HintTopic starting_instructions_menu "Starting Instructions" new_player_info; Hint "Starting Instructions" starting_instructions_menu with description [; StartingInstructions(); ] ; HintTopic stuck_instructions_menu "Stuck Instructions" new_player_info; Hint "Stuck Instructions" stuck_instructions_menu with description [; StuckInstructions(); ] ; HintTopic standard_verbs_menu "Standard Verbs" new_player_info; Hint "Standard Verbs" standard_verbs_menu with description [; StandardVerbs(); ] ; HintTopic abbreviations_menu "Abbreviations" new_player_info; Hint "Abbreviations" abbreviations_menu with description [; Abbreviations(); ] ; HintTopic communications_menu "Communications" new_player_info; Hint "Communications" communications_menu with description [; AllCommunication(); ] ; Menu general_info "General Info about the Game and Author" vespers_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=back" "Q=back" 8 7; HintTopic about_the_game "Game and Author" general_info; Hint "About the Game" about_the_game with description "Vespers was started in the beginning of May, and finally went into beta in August. God, these games take a lot longer to write when you actually have a job. ^^At the time of this writing, I am going in to my third year of a Bachelor's of Science, Major in Biology, Minor in Chemistry at Malaspina University in the sleepy little town of Nanaimo, British Columbia. I can be reached at jdevlin1984@@64hotmail.com and am more than happy to receive bug reports, comments, reviews, or insults. ^^This my second game: the first being the comedy Sting of the Wasp. If you're looking for something a little lighter than Vespers, might I recommend that (a shameless promotion, I know)."; HintTopic thank_you "Thank Yous" general_info; Hint "Thank Yous" thank_you with description "I'd like to thank the following people, for without them, this game wouldn't have been possible: ^^Graham Nelson for Inform and the DM4, which while daunting at first, gave me the abilities to write this game. ^^Neil Cerutti (pname.h), L. Ross Raszewski (hints.h and supporting files which I modified slightly), Roger Firth (smartcantgo.h), Jesse Burneko (info.h), Emily Short (HelpRoutines.h) and Gunther Schmidl (dirs_2) for their extremely helpful library contributions. ^^Stephen Granade and Mark Musante for their work with the annual IFComp. ^^Those in IFMud who had to put up with my programming questions. ^^And of course my betatesters Andy Ko, Dirk Straube, Katzy, Dan Shiovitz, JD Casteliero, Brian Rapp, Stephan Schonberg, Ramona White, Robert Devlin, and Dara Barker. These folks definitely deserve a hand after the hell I put them through. Thanks guys."; Menu general_hints "General Tips and New Verbs" vespers_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=back" "Q=back" 8 7; HintTopic general_hints2 "General Tips" general_hints; Hint "General Tips" general_hints2 with description "While I want this game to be as beginner-friendly as possible, writing an entire set of instructions to playing Interactive Fiction is beyond me. Instead, I suggest you take a look at Fredrik Ramsberg's excellent guide to playing IF at http://www.microheaven.com/IFGuide as it can teach you far better than I ever could."; HintTopic new_verbs "New Verbs" general_hints; Hint "New Verbs" new_verbs with description "There are no new verbs necessary to complete the game. However, one standard library verb has had its grammar considerably altered (and given the subject matter of the game, it shouldn't be too hard to guess which one). ^^Additionally, conversation is handled a little differently. One can TALK TO and have a general conversation about whatever seems most pertinent at the time (you can TALK TO them several times in a row to carry on the conversation). Alternatively, if that doesn't quench your thirst for knowledge, you can ASK, TELL, or TALK TO an NPC about . All three give the same responses, however, so as to avoid the headaches associated with asking someone about something but not telling them about it first. ^^A WALKTHRU command is included if the hints aren't to your liking. Also, if you have trouble remembering the brothers or saints, type BROTHERS or SAINTS. ^^Finally, if the boxed quotes bother you, you can get them to print QUOTES OFF at any time. Type QUOTES ON to get things back to default."; Menu all_hints "Hints" vespers_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=back" "Q=back" 8 7; Menu getting_started "Getting Started" all_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=back" "Q=back" 8 7; HintTopic trying_to_do "What am I trying to do?" getting_started; Hint "Have fun, for starters." trying_to_do; Hint "Explore, talk to people." trying_to_do; Hint "Get a general feel for Saint Cuthbert's." trying_to_do; Hint "Go see Lucca to get the ball rolling." trying_to_do; Hint "Then return to the entrance hall." trying_to_do; HintTopic waking_cecilia "How do I wake the girl?"; Hint "You need to make her more comfortable." waking_cecilia; Hint "That locutory looks nice and warm. Well, warmer than anywhere else." waking_cecilia; Hint "How lazy are you? If you're really impatient you could try hitting her." waking_cecilia; Hint "Otherwise you'll have to make her warm." waking_cecilia; Hint "And get her food." waking_cecilia; Hint "Get the blanket from your room, light the fire, and get the food from the kitchen cupboard." waking_cecilia; Hint "Don't you wish you had just hit her instead?" waking_cecilia; HintTopic what_now "What do I do now?"; Hint "Things are very different by the light of day." what_now; Hint "It'd be prudent to talk to people: snoop around a little." what_now; Hint "After Lucca is jailed, you really don't have to do anything but go to bed." what_now; Hint "Be careful." what_now; HintTopic going_to_bed "As I lay me down to sleep..."; Hint "Saint Cuthbert's is a dangerous place." going_to_bed; Hint "Some pre-bed precautions might be necessary." going_to_bed; Hint "Your door doesn't lock, but perhaps you can reinforce it somehow." going_to_bed; Hint "With something heavy." going_to_bed; Hint "Like a desk." going_to_bed; Hint "Or, you can always pray for protection." going_to_bed; Hint "You are not exactly God's favorite person right now. You need an intermediary." going_to_bed; Hint "Like a Saint or an Angel." going_to_bed; Hint "The church is a good place to find one of them, but which one?" going_to_bed; Hint "The locutory is a good place to find the other." going_to_bed; HintTopic night_time "Strangers in the night..."; Hint "Sometimes, you can do something." night_time; Hint "Others you can't." night_time; Hint "Go back to bed." night_time; HintTopic morning_lucca "Let there be light..."; Hint "A new day, and new problems." morning_lucca; Hint "Lucca has escaped." morning_lucca; Hint "Or not. Look at the hole in the calefactory door." morning_lucca; Hint "Inwards?" morning_lucca; Hint "Something isn't right: an investigation might be in order." morning_lucca; HintTopic drogo_church_hint "What's wrong with Drogo?"; Hint "A lot." drogo_church_hint; Hint "For starters, he's insane." drogo_church_hint; Hint "But there's nothing you can do about that now." drogo_church_hint; Hint "You'll have enough trouble with him later." drogo_church_hint; HintTopic riding_horse "A horse, a horse, my kingdom for a horse..."; Hint "She's not in the best shape, is she?" riding_horse; Hint "She needs food." riding_horse; Hint "And discipline." riding_horse; Hint "You can beat her into submission." riding_horse; Hint "Physically or spiritually." riding_horse; Hint "Take her to the gate, and ride." riding_horse; HintTopic at_the_river "What do I do at the river?"; Hint "Look around." at_the_river; Hint "The tracks you've been following end here, and not very pleasantly by the looks of it." at_the_river; Hint "Look in the river." at_the_river; Hint "What could that be?" at_the_river; Hint "Poor Lucca." at_the_river; Hint "He might have something to say." at_the_river; Hint "In writing (search him)." at_the_river; Hint "Or, you might just be crazy." at_the_river; HintTopic drogo_wolves "I lie among ravenous beasts..."; Hint "The wolves are hungry." drogo_wolves; Hint "You can feed them something, but they're greedy." drogo_wolves; Hint "If they can eat both of you, they will." drogo_wolves; Hint "You need to find somewhere safe before you feed them." drogo_wolves; Hint "Maybe somewhere high." drogo_wolves; Hint "Like the stables." drogo_wolves; Hint "Or you can pray." drogo_wolves; HintTopic infirmary_cemetery "What can I do in the infirmary and cemetery?"; Hint "Not much." infirmary_cemetery; Hint "There are some clues to gather." infirmary_cemetery; Hint "The infirmary is pretty empty. The plague works fast, but would it work that fast?" infirmary_cemetery; Hint "And the cemetery seems awfully undisturbed." infirmary_cemetery; HintTopic getting_in_cellar "How do I get into the cellar?"; Hint "You don't, at least not until Terce." getting_in_cellar; Hint "Constantin is pretty out of it now." getting_in_cellar; Hint "His key shouldn't be too hard to get." getting_in_cellar; Hint "If you can avoid waking him." getting_in_cellar; Hint "You can always kill him, then he'll never wake up." getting_in_cellar; Hint "Or, if you're chicken, you can make sure he doesn't hear you." getting_in_cellar; Hint "By putting wax in his ears." getting_in_cellar; Hint "Or you could just get his tools from where he left them." getting_in_cellar; HintTopic once_in_cellar "A horror of great darkness fell upon him..."; Hint "Cellars are always dangerous, aren't they?" once_in_cellar; Hint "Someone's coming, you better hide." once_in_cellar; Hint "Where is up to you, someplaces are better than others." once_in_cellar; Hint "Then you can get the drop on him." once_in_cellar; Hint "Or drop him down the stairs." once_in_cellar; Hint "Put the candle on the stairs, or pray, or just attack him."; HintTopic after_cellar "What do I do now?"; Hint "Well, now you should have the prybar." after_cellar; Hint "Now you have access to something you've probably forgotten about by now." after_cellar; Hint "The stone in Matteo's room." after_cellar; Hint "Go dig it up."; HintTopic end_game_evil "Endgame"; Hint "You're almost there." end_game_evil; Hint "If you're reading this, you were quite naughty." end_game_evil; Hint "There's other ways to play the game. If you're not sick of it yet, after this go back and try to be less evil." end_game_evil; Hint "All you have left to do is discard your useless body." end_game_evil; Hint "And return from whence you came." end_game_evil; HintTopic end_game "Endgame"; Hint "You're almost there." end_game; Hint "Wait for Cecilia to finished her rant." end_game; Hint "Then talk to her." end_game; Hint "Where you go is up to you." end_game; !TEMPORARY DEFINITIONS Object label; Object toggle; Object menu_style; Object sup_bar; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !ACCESSORY START STUFF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CLASSES, ATTRIBUTES, ETC. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Attribute legible; Class Room with name 'wall' 'walls' 'stone' 'mold' 'mould' 'mildew', has light; Class Outside_Room has light; Class Simple_Door with description [; if (self hasnt open) "The door is shut, but its cracked wooden mass does nothing to stay the drafts of Saint Cuthbert's."; else "The door creaks on its hinges as it sways back and forth in a draft."; ], door_to [; if (location==self.side1_to) return self.side2_to; return self.side1_to; ], door_dir [; if (location==self.side1_to) return self.side2_dir; return self.side1_dir; ], side1_to 0, side2_to 0, side1_dir 0, side2_dir 0, opendesc "open", closeddesc "closed", statedesc [; if (self has open) print (string) self.opendesc; if (self hasnt open) print (string) self.closeddesc; ], isconcealed 1, ! concealed by default describe [; if (self.isconcealed==1) rtrue; print "^"; print (The) self, " is "; self.statedesc(); "."; ], autoopen 1, ! automaticaly open by default before [; Enter: self.automat(); Push,Pull: <>; ], react_before [; Go: if (noun notin compass) rfalse; if ((noun.door_dir==self.side1_dir && location==self.side2_to) || (noun.door_dir==self.side2_dir && location==self.side1_to) || (location.(noun.door_dir)==self)) self.automat(); ], automat [; if (self.autoopen==0) return; if (self has locked) return; ! can't open if locked if (self has open) return; ! nothing to do if open if (self hasnt open && self hasnt locked) {print "(opening ", (the) self, ")^"; give self open;} ], has door scenery openable; !Class Simple_Door !with name 'door' 'wooden' 'hinges' 'cracked', ! description [; ! if (self hasnt open) ! "The door is shut, but its cracked wooden mass does nothing to ! stay the drafts of Saint Cuthbert's."; ! else ! "The door creaks on its hinges as it sways back and forth in a ! draft."; ! ], ! before [; ! Push,Pull: ! <>; ! ], ! react_before [; ! Go: if (location == entrance_hall && noun == s_obj && entrance_door hasnt ! open && entrance_door.cecilia_let_in == false && entrance_hall. ! cecilia_heard >= 1) ! <>; ! if (noun.door_dir == self.door_dir) ! return self.open_by_myself(); ! ! Enter: if (noun == self) ! return self.open_by_myself(); ! ], ! open_by_myself [ ks; ! if (self has open) rfalse; ! print "(first opening ", (the) self, ")^"; ! ks = keep_silent; keep_silent = true; ! ; keep_silent = ks; ! if (self hasnt open) rtrue; ! ], !has scenery door openable; Class Saint with before [; Examine: if (noun == cecilia) "You cannot see her."; if (location ~= church or chancel) "You cannot see him."; else return false; ! PrayThrough: ! print "(to God through ", (the) self, ")^"; ! return false; PrayTo: return false; default: if (location ~= church or chancel) "He is not here."; else "He is too high."; ], found_in [; return true; ], has scenery proper; Class Quotation; Object PendingQuote; Object SeenQuote; [ QuoteFrom q; if (~~(q ofclass Quotation)) "*** Oops! Not a quotation. ***"; if (q notin PendingQuote or SeenQuote) move q to PendingQuote; ]; [ AfterPrompt q; q = child(PendingQuote); if (q) { move q to SeenQuote; q.show_quote(); } ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CONVERSATION TOPICS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ TopicScope; switch(scope_stage) { 1: rfalse; 2: ScopeWithin(Topics); rtrue; 3: ""; } ]; Class Topic with short_name "that", has proper; Object Topics; Topic -> Tsnow with name 'snow' 'snowing' 'cold' 'weather' 'sky' 'winter' 'chill'; Topic -> Tsaint_cuthbert with name 'saint' 'cuthbert' 'st'; Topic -> Tsaint_medard with pname 'saint' 'medard' 'of' 'noyon' 'st'; Topic -> Tsaint_roch with pname 'saint' 'roch'; Topic -> Tsaint_francis with pname 'saint' 'francis' 'of' 'assisi' 'st'; Topic -> Tsaint_drausinus with pname 'saint' 'drausinus' 'st'; Topic -> Tmonastery with pname 'saint' 'cuthbert^s' 'monastery' 'abbey' 'st'; Topic -> Tchurch with name 'church' 'chapel' 'spires'; Topic -> Tcalefactory with name 'calefactory'; Topic -> Tbelltower with name 'bell' 'tower' 'belltower'; Topic -> Tinfirmary with name 'infirmary' 'hospital'; Topic -> Tdormitory with name 'dormitory' 'dorm' 'dorms' 'cell' 'cells'; Topic -> Tcellar with name 'cellar' 'basement'; Topic -> Tlocutory with name 'locutory'; Topic -> Tfood with name 'food' 'eat' 'eating' 'hungry' 'hunger' 'cheese' 'bread'; Topic -> Tsleep with name 'sleep' 'tired' 'tire' 'rest' 'bed'; Topic -> Tplague with name 'plague' 'sickness' 'bubo' 'buboes' 'ill' 'illness' 'sick'; Topic -> Trovato with name 'town' 'rovato' 'village' 'villagers' 'villager' 'refugees'; Topic -> Tgate with name 'gate' 'close' 'closing' 'closed'; Topic -> Tsin with name 'sin' 'sins' 'sinning' 'trangression' 'evil'; Topic -> Tdevil with name 'devil' 'lucifer' 'satan'; Topic -> Tyourself with name 'yourself' 'me' 'you' 'myself' 'father' 'emmanuelle' 'augustine'; Topic -> Tcecilia with name 'girl' 'young' 'woman' 'cecilia' 'visitor' 'guest' 'stranger' 'lady' 'angel'; Topic -> Tdrogo with pname 'brother' 'drogo'; Topic -> Tignatius with pname 'brother' 'iggy' 'ignatius'; Topic -> Tconstantin with pname 'brother' 'constantin'; Topic -> Tmatteo with name 'brother' 'matteo'; Topic -> Tlucca with pname 'brother' 'lucca'; Topic -> Thimself with name 'him' 'himself'; Topic -> Therself with name 'her' 'herself'; Topic -> Tgod with name 'god' 'religion'; Topic -> Tprayer with name 'prayer' 'praying' 'vespers' 'compline' 'matin' 'matins' 'lauds' 'prime' 'terce' 'sext' 'none' ; Class NPC has animate; Class Brother with name 'brother' 'man', has proper male animate container transparent; Class Drogo class Brother with name 'drogo', talking_garden 0, talking_chancel 0, talking_refectory 0, talking_tower 0, visitor_told 0, before [; Listen: switch(time_shadow.current_time){ default: print (string) random("~You do it,~ he shrieks to one side. ~No, you do it!~^", "~Our Father, who art in Heaven...~^", "~Hail Mary, full of grace, the Lord is with thee.~^", "~Do you want to do it?~ he asks. ~Of course, but with him watching?~ He pauses. ~No, I guess not.~^"); } TalkTo: switch(time_shadow.current_time) { 0: switch((self.talking_refectory)++) { 0: QuoteFrom(ecclesiastes10_13); "~How are you feeling, brother?~ ^^~Oh, I am feeling quite alright. In fact, I feel like a bird who crawls under the soil.~"; 1: "~Why do you scratch at the table, Brother Drogo?~ You ask. ^^~To get to the middle, of course,~ he says, looking at you as though you are mad."; 2: "~And why do you want to reach the middle?~ ^^~Because it is that much closer to the bottom.~"; 3: "~And the bottom?~ ^^~Hmm.~ He pauses thoughtfully and stares at the deepening hole. ~That is a good question.~ The scratching resumes."; default: "~Please, father,~ he mutters, not looking up. ~This is very important.~"; } 1: switch((self.talking_tower)++) { 0: if (brothers_tower.murder_conversation >= 2) "~Why do they think Lucca did it?~ You ask. ^^~Because he did.~ He replies, confused. ~Why else would one think such a thing?~ ^^~I mean, how do they know he did it.~ ^^~Oh, well that isn't what you asked, now is it, father?~ He continues. ~Well, when we got here, Brother Lucca was already here saying 'I'm sorry, I'm sorry.'~"; else "~What's wrong with Lucca?~ ^^~He's a murderer, of course.~"; 1: "~What happened, Drogo?~ You ask. ^^~Well, the way I see it is that Matteo wanted to fly, but God said 'No, Matteo. Flying is for birds. You are not a bird, and shouldn't wish to be.'~ Drogo starts. ~Matteo was not happy with that --you know how he can be sometimes-- but he thought God would be mad if he tried to fly on his own. So Lucca helped him.~"; default: if (brothers_tower in belltower_bottom) "~Shhh,~ he hushes, holding a finger to his lips. ~This is the most entertaining skit I have ever seen.~"; else "Drogo ignores you to swat at an invisible fly."; } 3: if (location ~= chancel or garden) "~Shhhh, father. There'll be plenty of time for question and answer soon enough.~"; if (location == chancel) switch((self.talking_chancel)++) { 0: "~What have you done, Drogo?~ You ask, the blood draining from your face. ^^He barely hears you. ~It is so beautiful. Matteo has died for our sins just like Jesus. He deserves a cross too.~"; 1: "~Matteo is not Jesus, Drogo,~ you say, quietly. ~You know that, right?~ ^^His eyes cloud over for a moment. ~I know that, father~ --he spits the word-- ~Matteo is better. What is the consequence in dying if you come back three days later. Matteo is a true martyr. He's gone to Hell for our sins, and he won't be leaving like Jesus.~"; default: "All he does is stare at Matteo, awe in his eyes."; } if (location == garden && self.talking_garden == 0) { self.talking_garden = 1; "~What are you doing, Drogo?~ You ask, almost afraid of the answer. ^^~Matteo needs something else. Something more,~ he says, going back to the briars. ~You'll see. It'll be perfect.~"; } else "~Shhh, father. I need to find the perfect one.~"; } ], life [; Order: switch(time_shadow.current_time) { default: "~Please, father,~ he puffs. ~This is far more important.~"; } Ask,Tell: switch(second) { 'human', 'humans', 'mankind', 'man', 'men', 'humanity': "~Weak, dirty creatures,~ he says, looking directly at you. ~Not like my friends.~ He turns away. ~Not like my friends, at all.~"; 'cat', 'feline', 'black': "~I saw nothing,~ he says, his voice quivering slightly."; 'horse', 'horses', 'filly', 'mare': "~She's dirty and mean. Violence is the only thing she understands.~"; 'briar', 'briars', 'bushes', 'thorns': "~You'll see, it'll be perfect.~"; 'wolf', 'wolves', 'alpha', 'dog', 'dogs', 'pack', 'growl', 'growls', 'chorus', 'eye', 'eyes', 'shape', 'shapes': "~My dear friends. So much better than humans.~"; 'food', 'cheese', 'bread', 'eating', 'hungry': if (cecilia_food hasnt moved) "~Do you happen to know if there is any food left?~ ^^~The cupboard was eating something last time I saw.~ He answers without even raising his head."; else "~Are you hungry, brother?~ ^^~No,~ he replies. ~Let the animals eat. God's love sustains me.~ His voice rises to a shrill falsetto as he stares up to the ceiling."; 'scratch', 'scratching', 'table', 'top', 'surface': "~Why do you scratch at the table, Brother Drogo?~ You ask. ^^~To get to the middle, of course.~ He says, looking at you as though you are mad."; 'middle': "~And why do you want to reach the middle?~ ^^~Because it is that much closer to the bottom.~"; 'bottom': "~And the bottom?~ ^^~Hmm.~ He pauses thoughtfully and stares at the deepening hole. ~That is a good question.~ The scratching resumes."; 'mad', 'madness', 'insanity', 'lunacy', 'crazy', 'craziness', 'feeling', 'drogo', 'him', 'himself': QuoteFrom(ecclesiastes10_13); "~How are you feeling, brother?~ ^^~Oh, I am feeling quite alright. In fact, I feel like a bird who crawls under the soil.~"; 'visitor', 'girl', 'cecilia', 'young', 'woman', 'guest', 'change', 'she': if (self.visitor_told == false) "~Did you know we had a guest, Brother Drogo?~ ^^~But of course, father. Didn't you?~"; else "~How is she going to change everything?~ You ask. ^^~How she will is she will.~"; 'they', 'them', 'told': "~Who? Who told you she was here?~ ^^Drogo's eyes slow for a minute: swaying from side to side rather than darting. Then he turns and looks at you quizzically: ~Why, you did, of course.~"; 'visitor', 'girl', 'cecilia', 'young', 'woman', 'guest': self.visitor_told = true; "~We have a visitor, Brother Drogo. Isn't that nice?~ ^^~Yes. They told me she was here.~ Then, for the first time in a long while, his eyes meet yours. ~She is going to change everything, you know.~"; 'what', 'happened', 'murder', 'death', 'body', 'corpse', 'matteo', 'dead', 'kill', 'killing', 'murderer': "~What happened, Drogo?~ You ask. ^^~Well, the way I see it is that Matteo wanted to fly, but God said 'No, Matteo. Flying is for birds. You are not a bird, and shouldn't wish to be.'~ Drogo starts. ~Matteo was not happy with that --you know how he can be sometimes-- but he thought God would be mad if he tried to fly on his own. So Lucca helped him.~"; 'lucca': if (brothers_tower.murder_conversation >= 2) "~Why do they think Lucca did it?~ You ask. ^^~Because he did.~ He replies, confused. ~Why else would one think such a thing?~ ^^~I mean, how do they know he did it.~ ^^~Oh, well that isn't what you asked, now is it, father?~ He continues. ~Well, when we got here, Brother Lucca was already here saying 'I'm sorry, I'm sorry.'~"; else "~What's wrong with Lucca?~ ^^~He's a murderer, of course.~"; 'constantin': "~Why is Constantin so angry?~ ^^~Because he is Constantin.~ He grabs your collar and pulls you close. ~He has secrets that hurt him.~"; 'secret', 'secrets': "~What kind of secrets, Drogo?~ ^^~The good kind. The kind you would die to know. Or is that the kind you would die if you knew? I can never keep it straight.~"; 'ignatius': "~When did Ignatius get here?~ ^^~Right after I did. You should have seen the look on his face, it was hilarious.~"; 'look', 'face', 'hilarious': "~What kind of look was it?~ ^^Drogo closes one eye and contorts his face into a comical look of terror. ~He was like, 'Ahh, Matteo.'~ He says, waving his hands in front of him."; 'friends', 'friend', 'play', 'garden': "~What friends, Drogo?~ ^^~Oh, you wouldn't like them.~ He smiles, his teeth form a brilliant row. ~But they would sure like you!~"; Thimself: switch(time_shadow.current_time) { default: QuoteFrom(ecclesiastes10_13); "~How are you feeling, brother?~ ^^~Oh, I am feeling quite alright. In fact, I feel like a bird who crawls under the soil.~"; } Tsnow: switch(time_shadow.current_time) { "~Brrr.~ He rubs his shoulders briskly. ~Don't worry though, we'll all be warmer than we can handle soon enough.~"; } Tsaint_cuthbert: switch(time_shadow.current_time) { 0,1: "~So beautiful,~ he says, having an even farther off look than usual. ~Such a valiant protector of our quaint little home.~"; 3: "~Not doing so well, is he?~ Drogo pouts out his lips in mock concern. ~It's probably just the weather.~"; default: "~I think he called the maggots himself.~ Drogo frowns. ~I don't think he likes Matteo up there.~"; } Tsaint_medard: switch(time_shadow.current_time) { "~He shields us from God's fury!~ Drogo shrieks, giving a mock cower."; } Tsaint_roch: switch(time_shadow.current_time) { } Tsaint_francis: switch(time_shadow.current_time) { "~Oh, Francis.~ Fondness glazes over Drogo's eyes. ~He commands the creeping, crawling, wonderful monsters of the Earth! I wish I were more like him!~"; } Tsaint_drausinus: switch(time_shadow.current_time) { "~He protects against the darkness. I prefer to sleep with my eyes open, myself.~"; } Tmonastery: switch(time_shadow.current_time) { 0,1: "~I'm so delighted be be back!~ Drogo says, bowing. ~The infirmary was beginning to smell!~"; 3: "~It gets more and more comfortable the longer I'm here.~"; default: "~Yes, it's starting to feel like home again.~"; } Tchurch: switch(time_shadow.current_time) { 0,1: "~She is scary,~ Drogo says. ~So pointy and angry.~"; 3: "~She is calming down. She realizes her place is here, on Earth.~"; default: "~Don't worry, I'll make her as good as she can be.~"; } Tcalefactory: switch(time_shadow.current_time) { 1: "~Lucky Lucca!~ Drogo exclaims. ~He gets the heat, and we get the cold. Maybe I should murder someone too!~ He grins, but not as laughingly as you would hope."; default: "~I wonder,~ Drogo says without looking up. ~If that's what Hell feels like, why are we trying to go to Heaven?~"; } Tbelltower: switch(time_shadow.current_time) { 0: "~You can see all your friends from up there.~"; default: "~Matteo always said it felt like you were flying when the wind was blowing.~"; } Tdormitory: switch(time_shadow.current_time) { "~It's wonderful, isn't it?~ he asks, ~Your own room; no lunatics sleeping beside you. Well, I guess there's one sleeping beside Ignatius.~ He winks."; } Tinfirmary: switch(time_shadow.current_time) { "~Ugh, disgusting!~ he sticks his tongue out. ~It's so much better here.~"; } Tcellar: switch(time_shadow.current_time) { "~Ooh, it's dark down there!~ He pulls you in. ~The darkness hides things better than the light.~"; } Tlocutory: switch(time_shadow.current_time) { } Tfood: switch(time_shadow.current_time) { "~Try the kitchen,~ he says, pointing the way with a flip of his greasy hair."; } Tsleep: switch(time_shadow.current_time) { 0: "~I can't sleep now!~ he says, his fury increasing. ~There is important work to be done!~ He resumes scratching the table."; 1: "~Yes,~ he says, stretching out his arms. ~I guess it is getting to be that time.~"; default: "~We don't have much time left! I wouldn't waste it sleeping.~"; } Tplague: switch(time_shadow.current_time) { 0,1: "~I'm so delighted that it came to Saint Cuthbert's! Otherwise I'd still be in the infirmary.~"; default: "~It gets kind of pretty after a while, doesn't it? Normally people are so smooth and boring.~"; } Trovato: switch(time_shadow.current_time) { "~It's been so long since I've seen it. I bet it's prettier now.~"; } Tgate: switch(time_shadow.current_time) { "~I wish you had left it open, there'd be so many more people to play with.~"; } Tsin: switch(time_shadow.current_time) { "~Fun, isn't it?~"; } Tdevil: switch(time_shadow.current_time) { "~They say he is everywhere...~ his voice drops and his eyes widen in terror at something behind you. You whirl around. Nothing. ^^~Just having a little fun with you, father.~ He laughs."; } Tyourself: switch(time_shadow.current_time) { "~You're wonderful,~ Drogo squeals, embracing you. ~If only we were all so old and lumpy!~"; } Tcecilia: switch(time_shadow.current_time) { "~I do so love visitors!~ he squeals."; } Tdrogo: switch(time_shadow.current_time) { default: QuoteFrom(ecclesiastes10_13); "~How are you feeling, brother?~ ^^~Oh, I am feeling quite alright. In fact, I feel like a bird who crawls under the soil.~"; } Tignatius: switch(time_shadow.current_time) { 0: "~He scares me.~ Drogo gives an exaggerated shudder. ~Always watching with that eye.~"; 1: "~When did Ignatius get here?~ ^^~Right after I did. You should have seen the look on his face, it was hilarious.~"; default: "Drogo squeezes one eye shut and twists his face. ~How's this?~"; } Tconstantin: switch(time_shadow.current_time) { 0: "~He caught us some food,~ Drogo pouts. ~I wish he wouldn't. My friends need to eat too.~"; 1: "~Why is Constantin so angry?~ ^^~Because he is Constantin.~ He grabs your collar and pulls you close. ~He has secrets that hurt him.~"; default: "~He's getting so pretty. He has plague colors now.~"; } Tmatteo: if (location == chancel) <>; else switch(time_shadow.current_time) { 0: "~Always spying, that one!~ he shouts. ~He never lets my friends and I play in the garden.~"; 1: "~What happened, Drogo?~ You ask. ^^~Well, the way I see it is that Matteo wanted to fly, but God said 'No, Matteo. Flying is for birds. You are not a bird, and shouldn't wish to be.'~ Drogo starts. ~Matteo was not happy with that --you know how he can be sometimes-- but he thought God would be mad if he tried to fly on his own. So Lucca helped him.~"; default: "~I hope he's enjoying the warm weather. Hell always seems so nice this time of year.~"; } Tlucca: switch(time_shadow.current_time) { 0: "~Such a baby.~ Drogo gives a mock cry. ~Always tears.~"; 1: if (lucca_behind_door in outside_calefactory) "~Lucky Lucca!~ Drogo exclaims. ~He gets the heat, and we get the cold. Maybe I should murder someone too!~ He grins, but not as laughingly as you would hope."; if (brothers_tower.murder_conversation >= 2) "~Why do they think Lucca did it?~ You ask. ^^~Because he did.~ He replies, confused. ~Why else would one think such a thing?~ ^^~I mean, how do they know he did it.~ ^^~Oh, well that isn't what you asked, now is it, father?~ He continues. ~Well, when we got here, Brother Lucca was already here saying 'I'm sorry, I'm sorry.'~"; else "~What's wrong with Lucca?~ ^^~He's a murderer, of course.~"; 3: "~Escaped did he?~ he says, scratching his chin. ~No. Never. He is too much of a baby.~"; default: "~Dead you say?~ he muses. ~At least now Matteo has someone to keep him company!~"; } Tgod: switch(time_shadow.current_time) { default: "~I miss Him.~ Drogo's shoulders drop. ~I can never hear him anymore. It's too noisy.~ He raps on his head with his knuckles."; } Tprayer: switch(time_shadow.current_time) { "~Our Father, who art in Heaven: hallowed be thy name...~ He carries on for quite some time."; } default: switch(time_shadow.current_time) { 0: "~Please, father.~ He doesn't look up from the table. ~This is far more important.~"; 1: if (location == belltower_bottom) "~Shhh,~ he hushes, holding a finger to his lips. ~This is the most entertaining skit I have ever seen.~"; else "~What was that?~ he asks, looking at you quizzically. ^^You resume. He waves you away impatiently. ~Not you,~ he sighs, carrying on another conversation entirely. "; default: "~What was that?~ he asks, looking at you quizzically. ^^You resume. He waves you away impatiently. ~Not you,~ he sighs, carrying on another conversation entirely. "; } } ], has ; Class Constantin class Brother with name 'Constantin', talking_hare 0, talking_lucca 0, talking_door 0, before [; TalkTo: switch(time_shadow.current_time) { 0: switch((self.talking_hare)++) { 0: "~What do you have there, Constantin?~ you ask, leaning forward. ^^~Something to eat,~ he grunts."; 1: "~Is there no food left in the cellar?~ He flinches slightly. ^^~No. There is nothing in the cellar.~"; 2: "~Well, be sure to tell us when you are finished. We are all hungry.~ ^^~I will.~"; default: "An annoyed grunt is all you get."; } 1: if (location == belltower_bottom) "~Shut up, father,~ he barks. For a moment he seems about to apologize, but he doesn't."; else switch((self.talking_lucca)++) { 0: "~Do you really believe that Lucca could have done it?~ you ask. ^^~Of course I do,~ he says angrily, the rage returning to his eyes. ~We found him next to the body, mumbling 'I'm sorry, I'm sorry,' over and over again.~"; 1: "~But it's Lucca,~ you retort. ^^~I know that!~ he snarls. ~But he's different now. He must have snapped under all of this.~"; default: "~Get out, father,~ he growls, ~I want to sleep.~"; } 3: switch((self.talking_door)++) { 0: "~What makes you think he escaped?~ you ask, running your hand over the door. ^^~Because the door's broken, you idiot!~ he shouts, his face burning. ~No one else would want that murderer walking Saint Cuthbert's.~"; 1: "~But...~ you try. ^^~Just shut up, father, and leave me to my work.~"; default: "~I'm trying to work,~ he growls."; } default: "He mumbles something: garbled words that spill out with the vomit. He seems barely aware of what's going on."; } ], life [; Order: switch(time_shadow.current_time) { 0: "~Please, father.~ He scrapes at the hare. ~This is far more important.~"; 1: if (location ~= constantin_room) "~I'm busy,~ he barks."; else "~I'm trying to sleep, father,~ he growls."; 3: if (location ~= outside_calefactory) "~I'm trying to work!~"; else "~I have better things to do now, father,~ he growls."; default: "A gurgled sob is all you get."; } Ask,Tell: if (location == belltower_bottom) "~Shut up, father,~ he barks. For a moment he seems about to apologize, but he doesn't."; if (time_shadow.current_time > 3) "He mumbles something: garbled words that spill out with the vomit. He seems barely aware of what's going on."; else switch(second) { 'lock', 'locks', 'key', 'keys': if (location == outside_calefactory) "~Lucca absolutely ruined it.~"; else "~A precaution. I don't want anyone stealing any food.~"; 'hare', 'rabbit', 'young', 'catch', 'knife': if (time_shadow.current_time == 0) { QuoteFrom(isaiah1_15); "~Ah, I see you have found us something to eat.~ ^^Constantin looks up distractedly. ~What? Oh, yes. Something to eat,~ he says, returning to his catch."; } else "~Keep it. I cannot swallow anything anymore.~"; Thimself: switch(time_shadow.current_time) { 0: "~Oh, I'm fine.~ He coughs a little, but it shakes his whole body."; 1: "~I'm tired. Now leave me alone.~ A cough shakes his body, and a little blood spits up onto his collar."; 3: "~I was fine,~ he coughs. ~Until someone started pestering me while I tried to work.~"; } Tsnow: switch(time_shadow.current_time) { 0: "~That's why I'm in here.~ He holds up the hare triumphantly. ~Do you know how long it took to catch this?~"; 1: "~It's in my clothes now. And Lucca's taking up the calefactory.~ He frowns.~"; 3: "~He shivers almost uncontrollably. ~It's fine,~ he says, coughing. ~I'll be done soon.~"; } Tsaint_cuthbert: switch(time_shadow.current_time) { 0,1: "~A lot of good he has done us. The patron saint of the plague, and look at this place.~ Constantin goes back to the hare."; 3: "~Is there something different about Saint Cuthbert?~ you ask. ^^~You're imagining things, father.~"; default: "~Saint Cuthbert is rotting!~ you cry. ^^~Careful, father. You're beginning to sound like Drogo.~"; } Tsaint_medard: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of weather.~"; } Tsaint_roch: switch(time_shadow.current_time) { } Tsaint_francis: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of animals.~"; } Tsaint_drausinus: switch(time_shadow.current_time) { "~I need no protection.~ He massages the blade of his knife for a moment. ~If anyone tries anything...~"; } Tmonastery: switch(time_shadow.current_time) { 0,1: "~It's getting eerie, father. This is a place of life, not death. Well, it was.~"; default: "~It's starting to get to me,~ he says, clutching at your frock. ~We need people!~"; } Tchurch: switch(time_shadow.current_time) { "~It's creepy in there without the brothers. Just Ignatius. Always Ignatius.~"; } Tcalefactory: switch(time_shadow.current_time) { 1: "~Don't worry, father. We'll be safe with him in there.~"; default: "~Too hot in there: too cold everywhere else. I hate winter.~"; } Tbelltower: switch(time_shadow.current_time) { 0: "~I'm just glad that Matteo rings it. Those heights are too much for me.~"; default: "~I knew I should have extended those rails.~"; } Tinfirmary: "~It's hard to keep up. So many bodies.~"; Tdormitory: switch(time_shadow.current_time) { "~This is the only place that doesn't feel empty.~"; } Tcellar: switch(time_shadow.current_time) { "~What?~ he startles. ~I'll get around to taking the lock off. There's no food left down there anyway.~ His eyes darken as they meet yours. ~There's no reason to go down there anymore.~"; } Tlocutory: switch(time_shadow.current_time) { } Tfood: switch(time_shadow.current_time) { 0,1: QuoteFrom(isaiah1_15); "~I don't think there's any food left.~ He lifts up the bloody hare, ~Hence this.~"; default: "~I can't keep anything down. I left the hare in my room.~"; } Tsleep: switch(time_shadow.current_time) { 0: "~After I finish this,~ he says, never lifting his eyes."; default: "~Be careful, father. Sleep is always a gamble.~"; } Tplague: switch(time_shadow.current_time) { 0,1: "~It moves too quickly,~ he says, almost guiltily. ~I can barely keep up.~"; default: "Constantin rolls up his sleeve, exposing a thick black bruise and dozens of buboes. ~I'm next.~"; } Trovato: switch(time_shadow.current_time) { "~There was little you could have done, father. Rovato got what it deserved.~"; } Tgate: "~It must have been a difficult decision.~"; Tsin: switch(time_shadow.current_time) { 0: "~The wages of sin is death, and the wages of life is sin.~ He says, eyes on the hare."; default: "~It's unavoidable. Don't feel bad.~"; } Tdevil: switch(time_shadow.current_time) { 0: "~I hear he can manipulate you into doing things you aren't even aware of.~ ^^As Constantin speaks, his knife moves further and further from the hare and closer to his own fingers. The blade just about slices across his thumb when he moves it back up to the neck and repeats the process."; default: "He pulls you close, and for the first time that you've seen, he is scared. ~He is here, you know. In our hearts,~ --he glances at you-- ~in our minds.~"; } Tyourself: switch(time_shadow.current_time) { "~You're fine. Or at least you were before you started with all these annoying questions.~"; } Tcecilia: switch(time_shadow.current_time) { 0,1: "~A woman, you say.~ He goes about preparing for bed. ~That can only mean trouble.~"; 3: "~I don't trust her. She is unclean.~"; } Tdrogo: switch(time_shadow.current_time) { 0: "~Why'd you let him back here? He isn't fit to be with the rest of us.~"; 1: "~Watch him, father,~ he says to you earnestly. ~He's not docile like he used to be. He is dangerous.~"; 3: if (drogo4 in garden) "~Drogo crucified Matteo.~ Your words are flat, lifeless. ^^~Damnit,~ he slams the hammer extra hard, and turns to you. ~Why did you let him out?~ he massages the hammer gently. ~Well, you deal with him, because if he comes around here, I can't guarantee his safety.~"; else "~He's working on something in the church. I don't trust him in there.~"; } Tignatius: switch(time_shadow.current_time) { 0: "~I think he's in the church, confessing his sins,~ he chuckles. ~I think he'll be there all night.~"; default: "He fumes, blood filling his cheeks. ~Get out, father.~"; } Tconstantin: switch(time_shadow.current_time) { 0: "~Oh, I'm fine.~ He coughs a little, but it shakes his whole body."; 1: "~I'm tired. Now leave me alone.~ A cough shakes his body, and a little blood spits up onto his collar."; 3: "~I was fine,~ he coughs. ~Until someone started pestering me while I tried to work.~"; } Tmatteo: switch(time_shadow.current_time) { 0: "~He's so strange lately.~ Constantin swats at an imaginary fly. ~All he does is watch from the tower.~"; 1,3: "~Damn Lucca. He'll burn in Hell for what he did.~"; } Tlucca: switch(time_shadow.current_time) { 0: "~I heard him rush to Matteo's room, crying,~ he says. ~He's not taking the plague well.~"; } Tgod: switch(time_shadow.current_time) { 0: "~He can't see everything, right?~"; 1: "~He will punish Lucca for what he did.~"; 3: "~What did we do to make him so angry?~ he almost sobs."; } Tprayer: switch(time_shadow.current_time) { "~It's all we have left.~"; } default: switch(time_shadow.current_time) { 0: "Constantin is quite intent upon his catch and appears not to hear you."; 1: "~Get out, father,~ he growls, ~I want to sleep.~"; 3: "~I'm trying to work,~ he growls."; } } ], has ; Class Ignatius class Brother with name 'Ignatius', talking_church 0, talking_bed 0, talking_calefactory 0, before [; TalkTo: switch(time_shadow.current_time) { 0: switch((self.talking_church)++) { 0: "~How are you, Ignatius?~ you ask, laying your hand on his shoulder. ^^He startles, whirling around, his bad eye twitching and shuddering. ~Oh, father. You spooked me.~ He shakes his head. ~I'm sorry, what did you ask.~"; 1: "~I was just wondering how you were doing.~ ^^~Oh, fine.~ He relaxes, turning back to the candles. ~Just fine.~"; default: "~Shhh, father.~ He holds a finger to his lips. ~I am trying to pray.~"; } 1: switch((self.talking_bed)++) { 0: "~Do you believe that Lucca did it?~ you ask. ^^~I don't know,~ he replies calmly. ~But it's best to be safe. I never would have thought Lucca could've had it in him, but these trying times make demons of us all.~ He glances at you pointedly."; 1: "~What do you mean?~ ^^He thinks for a moment, and looks to the ceiling. ~It's just that in these times we can sometimes find ourselves doing things we never thought we had in us.~"; 2: "~Like what?~ ^^His shoulders tighten. ~If it's all the same to you, father,~ he says, straightening out his bed. ~I think I would like to get some sleep.~"; default: "~If it's all the same to you, father,~ he says, straightening out his bed. ~I think I would like to get some sleep.~"; } 5,6,7,8: switch((self.talking_calefactory)++) { 0: "~What do you mean?~ you ask, edging towards the door. ^^Ignatius laughs: a cold, dead sound. ~You know better than any of us, father.~ He smiles at you."; 1: "~I don't know what you're talking about,~ you reply. He's close. Too close. ^^~Hah.~ Ignatius winks. Funny, it blinds him for a moment. ~Of course you don't, father. I'm just teasing.~"; 2: "You muster a weak, sickly laugh. ~Right. Haha.~ ^^All he does is stare."; } default: "He just stares at you with his eye. The other twitches and laughs."; } ], life [; Order: switch(time_shadow.current_time) { 0: "~Please, father,~ he says. ~I'm trying to pray.~"; 1: if (location ~= ignatius_room) "~I'm busy!~"; else "~Please, father,~ he says wearily. ~I need sleep.~"; default: "His eye just twitches."; } Ask,Tell: switch(second) { 'live', 'living', 'till', 'spring': "~I am sure we will all be fine, Brother Ignatius. Spring will be here before you know it.~ ^^~You know, father.~ He says, giving you a most curious glance. ~It is a sin to lie.~"; 'staring', 'stare', 'candle', 'candles', 'flames', 'flame', 'fire': QuoteFrom(psalms106_18); "~They are beautiful, are they not?~ You ask, gesturing at the flickering lights. ^^~Truly, it is the face of God.~ He replies, not moving his eye for an instant."; 'prayer', 'pray', 'praying': "~What do you pray for, Brother?~ You ask. ^^~That we might live till spring, father.~ He pauses. ~We are running very low on food.~"; 'live', 'living', 'till', 'spring', 'food', 'running', 'low': "~I am sure we will all be fine, Brother Ignatius. Spring will be here before you know it.~ ^^~You know, father.~ He says, giving you a most curious glance. ~It is a sin to lie.~"; Thimself: switch(time_shadow.current_time) { 0: "~I was wondering how you were doing.~ ^^~Oh, fine.~ He relaxes, turning back to the candles. ~Just fine.~"; default: "~How are you feeling, Ignatius.~ ^^~Fine.~ That's all."; } Tsnow: switch(time_shadow.current_time) { "~Ah, yes. Our protector.~ He let's out a slight ~Hmph.~"; } Tsaint_cuthbert: switch(time_shadow.current_time) { 0,1: "~So pure. We truly are blessed to have him here.~"; 3: "~What's happening to Saint Cuthbert?~ you ask. ^^~I don't know what you're talking about, father. He looks fine.~"; default: "~Saint Cuthbert is rotting!~ you cry. ^^~You are imagining things, father. He looks as he always has.~"; } Tsaint_medard: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of weather.~"; } Tsaint_roch: switch(time_shadow.current_time) { } Tsaint_francis: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of animals.~"; } Tsaint_drausinus: switch(time_shadow.current_time) { } Tmonastery: switch(time_shadow.current_time) { 0: "~It's so empty now,~ Ignatius says, glancing around at all the abandoned pews. ~Nothing like the infirmary.~"; default: "~It feels like the entire monastery has taken a vow of silence.~ He looks at the ground. ~Well, I guess they have, in a sense,~ he chuckles."; } Tchurch: switch(time_shadow.current_time) { 0: "~The candles warm my hands, and the church warms my heart,~ he says, head bowed. ~The cold has taken all else.~"; default: "~It grows more beautiful all the time,~ he pauses. ~Or perhaps we all just grow uglier.~"; } Tcalefactory: switch(time_shadow.current_time) { 1: "~Don't worry, father. He'll be safe in there.~"; default: "~Reminds me of the East.~ His voice drops. ~I hated the East.~"; } Tbelltower: switch(time_shadow.current_time) { 0: "~Matteo's up there right now. He's always up there.~"; default: "~What a shame,~ he shakes his head, ~If only those rails were higher.~"; } Tinfirmary: switch(time_shadow.current_time) { 0,1: "~There are still a few survivors,~ he shakes his head, ~But they are fading fast: probably won't last the night.~"; default: "~They're all dead,~ --is he crying?-- ~Got it!~ he says, plucking some debris from his eye."; } Tdormitory: switch(time_shadow.current_time) { "~It's nice, but I get a little claustrauphobic.~"; } Tcellar: switch(time_shadow.current_time) { "~I think it's empty.~"; } Tlocutory: switch(time_shadow.current_time) { } Tfood: switch(time_shadow.current_time) { "~You might try the kitchen.~"; } Tsleep: switch(time_shadow.current_time) { 0: "~After my prayers.~"; 1: "~Yes, I think some rest would do us all good.~"; default: "~I am not tired.~"; } Tplague: switch(time_shadow.current_time) { "~God is upset. Europe is falling. This plague is his curse,~ he drones in a peculiar, monotonous voice."; } Trovato: switch(time_shadow.current_time) { "~Filthy, filthy place. No wonder God sent the plague there.~"; } Tgate: switch(time_shadow.current_time) { "~It is good that you closed the gate, father. I can barely take care of our own.~"; } Tsin: switch(time_shadow.current_time) { "Ignatius's eye glazes over. ~The hand of God is never far off.~"; } Tdevil: switch(time_shadow.current_time) { "~He is everywhere. The world is his dancing grounds.~"; } Tyourself: switch(time_shadow.current_time) { "~You're an excellent priest and a perfect abbott. We are lucky to have you.~"; } Tcecilia: switch(time_shadow.current_time) { 1: "~She truly is an angel. I'm sure things will turn around now.~"; default: "~Listen to her, she will save us all.~"; } Tdrogo: switch(time_shadow.current_time) { "~He was so docile when I cared for him in the infirmary. Now, he's different. Darker.~"; } Tignatius: switch(time_shadow.current_time) { 0: "~I was wondering how you were doing.~ ^^~Oh, fine.~ He relaxes, turning back to the candles. ~Just fine.~"; default: "~How are you feeling, Ignatius.~ ^^~Fine.~ That's all."; } Tconstantin: switch(time_shadow.current_time) { 0: "~He has done well in clearing the bodies from the infirmary. He works so fast.~"; 1: "~He was scary back there. I'm sure he would've killed Lucca if I hadn't stepped in.~"; default: "~He is so sick now: I know the signs. I can smell it on him. He won't last long.~"; } Tmatteo: switch(time_shadow.current_time) { 0: "~He's up in the tower,~ Ignatius spits angrily. ~He's always up there, watching.~"; default: "~Poor Matteo. Such a good man.~ His face is stony."; } Tlucca: switch(time_shadow.current_time) { 0: "~Such a sweet boy. He's not taking it here so well though.~"; 1: "~The plague changes all of us.~"; default: "~Don't worry, father. He will kill no more.~"; } Tgod: switch(time_shadow.current_time) { "~He watches, unblinking,~ while Ignatius's eye twitches."; } Tprayer: switch(time_shadow.current_time) { "~What do you pray for, Brother?~ You ask. ^^~That we might live till spring, father.~ He pauses. ~We are running very low on food.~"; } default: switch(time_shadow.current_time) { 0: "~Shhh, father.~ He holds a finger to his lips. ~I am trying to pray.~"; 1: "~If it's all the same to you, father,~ he says, straightening out his bed. ~I think I would like to get some sleep.~"; default: "He just stares at you with his eye. The other twitches and laughs."; } } ], has ; Class Lucca class Brother with name 'Lucca', before [; TalkTo: switch(time_shadow.current_time) { 0: switch((self.stone_talking)++) { 0: "~Why do you dig, Lucca?~ you ask. ^^~Matteo is hiding something. I just know it's under here.~"; 1: "~Why do you think that?~ The blood pours from his fingers. ^^~I just know,~ he sobs. ~He scrapes around here at night.~"; default: "~Leave me alone,~ he blubbers through the tear-laden mucus that streams from his nose."; } 1: if (location == outside_calefactory && matteo1.pushed == true) "~Leave me alone, you bastard,~ he spits, his words shaking the door."; else switch((self.murder_talking)++) { 0: "~About the murder, Lucca...~ you ask. ^^~What murder?~"; 1: "~You remember, Lucca; Matteo was thrown from the tower.~ ^^~No he wasn't.~ Lucca responds, incredulous. ~He must have jumped.~"; 2: "~Why did Matteo jump?~ You ask. ^^A long, heavy silence. ~Because he was smart.~"; 3: "~Why was Matteo smart to jump?~ ^^~Because he knew what was happening here, at Saint Cuthbert's.~"; 4: "~What did he know was happening?~ ^^Lucca chuckles. ~Well if I knew that, I probably would have jumped too.~"; 5: "~Please, father,~ he sighs. ~I just want to be alone.~"; } } ], life [; Order: switch(time_shadow.current_time) { 0: "~Please, father,~ he sobs. ~I need to do this.~"; default: "A sob is all you get."; } Ask,Tell: if (location == outside_calefactory && matteo1.pushed == true) "~Leave me alone, you bastard,~ he spits, his words shaking the door."; else switch(second) { 'stone', 'flagstone', 'buried', 'digging', 'stones', 'scrabbling', 'dig', 'floor', 'ground': "~Why do you dig, Lucca?~ you ask. ^^~Matteo is hiding something. I just know it's under here.~"; 'crying', 'cry', 'tears', 'tear', 'sob', 'sobbing', 'sad', 'scared': "~Why do you cry, Brother Lucca?~ You ask, laying your hand gently on his shoulder. ^^He immediately jerks away. ~I am scared, father. We are out of food; it is cold. There are only a few of us left. If we leave now, we may have a chance to survive the winter.~ ^^~It is far too dangerous to travel, Lucca. And even if it weren't, our place is here. Don't worry, God will protect us.~ ^^His only response is a grim chuckle."; 'laugh', 'grim', 'chuckle', 'laughter', 'god', 'protect', 'protection': "~Why do you laugh?~ You ask, more sternly than you had intended. ^^~Don't you see, God has abandoned us. We are on our own.~ He retorts, his blasphemy stinging your ears. He mumbles something under his breath."; 'abandoned', 'own', 'blasphemy', 'mumbles', 'mumble', 'mumbling', 'whisper', 'breath': "~What~ you start through clenched teeth, ~Did you say?~ ^^~It was nothing, father.~ ^^~What did you say?~ You demand. What is happening? ^^~Like you abandoned Rovato, alright! Like you abandoned Rovato!~"; 'scared', 'fear', 'afraid', 'terror': "~What are you afraid of?~ ^^~You. Me. Everyone. Everything.~ He replies, his voice rising to the strangest pitch. Then, it drops. ~God.~ The word pools from his mouth and slides out the door."; 'guilt', 'guilty': "~Why do you feel guilty, Lucca?~ ^^~It is my fault Matteo is dead. I am as good as a murderer.~"; 'fault': "~Why is it your fault, Lucca?~ ^^~Because I knew he would die and could not stop him.~"; 'murder': if (self.murder_asked == false) { self.murder_asked = true; "~About the murder, Lucca...~ ^^~What murder?~"; } else "~You remember, Lucca; Matteo was thrown from the tower.~ ^^~No he wasn't.~ Lucca responds, incredulous. ~He must have jumped.~"; 'jump', 'jumped', 'suicide': "~Why did Matteo jump?~ You ask. ^^A long, heavy silence. ~Because he was smart.~"; 'smart': "~Why was Matteo smart to jump?~ ^^~Because he knew what was happening here, at Saint Cuthbert's.~"; 'knew', 'happening', 'here': "~What did he know was happening?~ ^^Lucca chuckles. ~Well if I knew that, I probably would have jumped too.~"; 'fall', 'accident', 'accidental': "~Did Matteo fall?~ ^^~No. He must have jumped.~"; Thimself: switch(time_shadow.current_time) { 0: "~How are you doing, Lucca,~ you ask, placing a hand on his shoulder. ^^He jerks away. ~Leave me alone, father.~ He casts you a suspicious glance before returning to the stone."; 1: "~How are you feeling, Lucca?~ You ask, ear pressed to the door. ^^He sobs. ~I feel scared, father. And guilty.~"; } Tsnow: switch(time_shadow.current_time) { "~It's everywhere. In my hair, in my clothes. Its cold burns.~"; } Tsaint_cuthbert: switch(time_shadow.current_time) { "~He will protect us, won't he father?~ ^^~Of course he will, Lucca.~ Your lies come easier now."; } Tsaint_medard: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of weather.~"; } Tsaint_roch: switch(time_shadow.current_time) { } Tsaint_francis: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of animals.~"; } Tsaint_drausinus: switch(time_shadow.current_time) { "~Matteo told me to pray through him if I am ever scared of harm from others.~ His pause is heavy. ~I pray through him every night.~"; } Tmonastery: switch(time_shadow.current_time) { 0: "~I don't like it here, anymore,~ Lucca sobs."; default: "~What is happening to this place?~ his voice lowers. ~What have we done to deserve this?~"; } Tchurch: switch(time_shadow.current_time) { 0: "~Your last mass was beautiful, father. And the church always is.~"; 1: "~Matteo always loved the church.~"; } Tcalefactory: switch(time_shadow.current_time) { 0: "~It's nice, but only for a little while.~"; 1: "He chuckles, but it is a sad sound. ~Well, I guess I had better get used to this.~"; } Tbelltower: switch(time_shadow.current_time) { 0: "~I don't want to talk about it!~"; 1: "~Matteo loved it up there. He could see everything. He loved watching over us.~"; } Tinfirmary: switch(time_shadow.current_time) { 0: "~It was much nicer when I broke my arm. Now it smells of death.~"; 1: "~I guess Matteo was lucky not to have died in there.~"; } Tdormitory: switch(time_shadow.current_time) { 0: "~Our own little tombs,~ he shrugs."; 1: "~Here is fine for me.~"; } Tcellar: switch(time_shadow.current_time) { "~There's something strange going on down there. Matteo knows, but he won't tell me.~"; } Tlocutory: switch(time_shadow.current_time) { "He continues to sob."; } Tfood: switch(time_shadow.current_time) { "~Try the kitchen.~"; } Tsleep: switch(time_shadow.current_time) { 0: "~Not yet! I have to find it!~"; 1: "~I might as well, there's nothing else.~"; } Tplague: switch(time_shadow.current_time) { 0: "~Its damage ranges farther than I thought.~ He glances about the monastery."; 1: "~I suppose jumping is a softer fate.~"; } Trovato: switch(time_shadow.current_time) { "~It would have been better if I had just stayed there.~"; } Tgate: "~It is not my place to question your actions.~"; Tsin: switch(time_shadow.current_time) { 0: "~We all sin,~ he says bitterly. Then, without glancing up but directing it at you nonetheless: ~Some of us more than others.~"; 1: "~I have sinned gravely. I knew Matteo was in trouble, but I did not know how bad. It is my fault he is dead.~"; } Tdevil: switch(time_shadow.current_time) { "~He must be here! Everyone is acting so strange. It cannot be due to the plague only.~"; } Tyourself: switch(time_shadow.current_time) { 0: "~You're such a good man,~ he says. Then, under his breath: ~At least I used to think so.~"; 1: "~Matteo talked about you often. More lately than before.~"; } Tcecilia: switch(time_shadow.current_time) { "~Maybe she will save us. God knows we can't save ourselves.~"; } Tdrogo: switch(time_shadow.current_time) { "~He scares me.~ --his voice lowers-- ~But his madness is predictable. Unlike some others.~"; } Tignatius: switch(time_shadow.current_time) { 0: "~His righteousness scares me. It is without humility. He can see the motes in others, but can't see the beam in his own eye.~"; 1: "~If it wasn't for him, I'm sure Constantin would've killed me.~"; } Tconstantin: switch(time_shadow.current_time) { 0: "~He has become even harsher than before. The plague doesn't sit well within him.~"; 1: "~He would've killed me, I'm sure.~"; } Tmatteo: switch(time_shadow.current_time) { 0: "~He knows something, but he won't tell me,~ he sobs more heavily for a moment. ~He tells me nothing anymore.~"; 1: "Lucca wails. It cuts through the air and tears at your ears."; } Tlucca: switch(time_shadow.current_time) { 0: "~How are you doing, Lucca,~ you ask, placing a hand on his shoulder. ^^He jerks away. ~Leave me alone, father.~ He casts you a suspicious glance before returning to the stone."; 1: "~How are you feeling, Lucca?~ You ask, ear pressed to the door. ^^He sobs. ~I feel scared, father. And guilty.~"; } Tgod: switch(time_shadow.current_time) { 0: "~I think he's forgotten us.~"; 1: "~Hmph,~ he grunts. ~He left a long time ago.~"; } Tprayer: switch(time_shadow.current_time) { 0: "~I try, but the silence gets to me.~"; 1: "~What's the point?~ he asks. ~There's no one to hear us anymore.~"; } default: if (time_shadow.current_time == 1) "He responds, but it is only gibberish."; else "All he does is sob."; } ], stone_talking 0, murder_talking 0, has ; Class Matteo class brother with name 'matteo', tower_talking 0, before [; TalkTo: switch((self.tower_talking)++) { 0: QuoteFrom(matteo_push_quote1); "~How are you Matteo?~ you ask, leaning up on the rails beside him. ^^He turns, a friendly smile on his face. ~I don't even know anymore.~ He gives an exaggerated shrug."; 1: QuoteFrom(matteo_push_quote2); "~What does that mean?~ you can't help but stifle a small laugh. ^^~I don't know!~ He laughs, throwing his hands up in the air."; 2: QuoteFrom(matteo_push_quote3); "~I'll leave you to your ignorance then,~ you chuckle. ^^~That's probably best,~ he replies, strangely severe."; default: "You can think of nothing more to say."; } ], life [; Order: switch(time_shadow.current_time) { default: "Matteo sighs. ~I really don't feel like it, father.~ He just stares at the wind."; } Ask,Tell: switch(second) { 'flag', 'stone', 'flagstone', 'floor', 'ground', 'blood', 'flagstones', 'hole', 'stones': "~Lucca seems to think there's something hidden in your room, under the floor,~ you say, leaning against the rails. ^^Matteo sighs heavily. ~I know he does.~"; 'bell', 'ring', 'ringing', 'hours': "~Do you never tire of ringing the bell, Matteo?~ ^^~No,~ he pauses, ~It is God's work. To call the faithful is the greatest honor.~ He says the last with a trace of sarcasm. Ah, Matteo."; Thimself: switch(time_shadow.current_time) { "~I'm fine,~ he sighs. ~I just want to sleep.~"; } Tsnow: switch(time_shadow.current_time) { "~Beautiful, isn't it?~ he muses, gazing out into the snow. ~It just makes you want to sleep.~"; } Tsaint_cuthbert: switch(time_shadow.current_time) { "~Ah, yes. Our protector.~ He let's out a slight ~Hmph.~"; } Tsaint_medard: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of weather.~"; } Tsaint_roch: switch(time_shadow.current_time) { } Tsaint_francis: switch(time_shadow.current_time) { "~Are you alright, father?~ he looks at you quizzically. ~He is the patron saint of animals.~"; } Tsaint_drausinus: switch(time_shadow.current_time) { "~He guards against the night and darkness,~ he says, a far off look in his eyes. ~The night can be a terrifying time.~"; } Tmonastery: switch(time_shadow.current_time) { "~It's so quiet,~ he says, looking down upon the buildings."; } Tchurch: switch(time_shadow.current_time) { "~The spires are amazing from up here, aren't they?~ He gazes out fondly. ~Like hands to catch you if you fall.~"; } Tcalefactory: switch(time_shadow.current_time) { "~I prefer it up here,~ he says. ~The air is so clean.~"; } Tbelltower: switch(time_shadow.current_time) { "~It's beautiful up here, isn't it. God's blanket to the Earth.~"; } Tinfirmary: switch(time_shadow.current_time) { "~No one gets better there,~ he sighs, ~But at least they die in comfort.~"; } Tdormitory: switch(time_shadow.current_time) { "~I prefer it up here.~"; } Tcellar: switch(time_shadow.current_time) { "~Ah, yes.~ He pauses. ~The cellar.~ He chuckles to himself."; } Tlocutory: switch(time_shadow.current_time) { "~Feels so empty, doesn't it? Remember the days when far off travellers would visit every day? I miss them.~"; } Tfood: switch(time_shadow.current_time) { "~I have little appetite these days.~"; } Tsleep: switch(time_shadow.current_time) { "~How does that saying go? 'No rest for the wicked.' I doubt anyone will be sleeping well tonight.~"; } Tplague: switch(time_shadow.current_time) { "~It's funny the ways illness and isolation can affect things. Our bodies are the least of our concerns.~"; } Trovato: switch(time_shadow.current_time) { "~Poor Rovato.~ Matteo turns to the blackness where village lights once burned. ~We should have done more to help.~"; } Tgate: "~I suppose you did the right thing, father.~ He doesn't sound too convincing. ~Well no, you didn't, but you did what any of us would have done.~"; Tsin: switch(time_shadow.current_time) { "~It has it's own smell, doesn't it?~ he looks down upon the monastery, running his eyes over the many buildings. ~A smell that lingers.~"; } Tdevil: switch(time_shadow.current_time) { "~Don't look for the pitchfork and horns. He has been subtle these days.~"; } Tyourself: switch(time_shadow.current_time) { "~I know we have had our problems, but I hope to put them behind us. It is a time for forgiveness.~"; } Tdrogo: switch(time_shadow.current_time) { "~Poor Drogo,~ he sighs, looking down upon the refectory. ~But at least his madness is on the surface, where we can see it.~ Was that glance at you?"; } Tignatius: switch(time_shadow.current_time) { "~He has become righteous lately, hasn't he? I think he feels the Crusades were a hundred years too early. He wishes to fight evil, and if there is no fight, he'll make his own.~"; } Tconstantin: switch(time_shadow.current_time) { "~He would never admit it, but he is sick. The plague wears on him. He won't last much longer.~"; } Tmatteo: switch(time_shadow.current_time) { "~I'm fine,~ he sighs. ~I just want to sleep.~"; } Tlucca: switch(time_shadow.current_time) { "~Poor Lucca,~ he sighs. ~I wish I could protect him, but his time is near.~"; } Tgod: switch(time_shadow.current_time) { "~He is gone, you know.~ He looks at you intently. ~And with him, his protection.~"; } Tprayer: switch(time_shadow.current_time) { "~I barely have the energy anymore.~"; } default: "He may have heard you, but he seems to prefer to listen to the wind."; } ], has ; Class Cecilia_class class NPC with name 'girl' 'cecilia' 'young' 'woman' 'lady' 'angel', woken true, talking_toolate 0, talking_angel 0, talking_hall 0, talking_cecilia 0, talking_constantin 0, talking_cellar 0, talking_endgame_evil 0, talking_endgame_middle 0, talking_endgame_good 0, react_before [; PrayTo: if (noun == self) <>; ], before [; PrayTo: "You can talk directly to her."; PrayThrough: <>; Kill: QuoteFrom(kill_cecilia_quote); "You move, but something holds you back."; TalkTo: switch(time_shadow.current_time) { 1: if (lucca_behind_door in outside_calefactory) { switch((self.talking_angel)++) { 0: "~How did you know that that would happen? Who are you? Why did you come?~ The questions come faster than the words. ^^ ~Calm down, father,~ she says, laying a hand on your wrist. It warms to the touch and spreads life and joy and peace through your body. ~I am here to help. My name is Cecilia~"; 1: "~God sent me, but I am weak. My strength depends on the faithful, and your brethren have lost their way. Even now they conspire against you. And me.~ She casts a frightened glance towards the door. ^^~Please pray to me, father, when you go to bed. I need your strength in the midst of this wickedness.~"; 2: "~Go now, father,~ she says, turning over in your blanket. ~Sleep.~ She casts once last look at you before closing her eyes. ~But be careful, there are many that intend you harm here.~"; default: "She is sleeping."; } } if (self.talking_toolate == 0) { self.talking_toolate = 1; "~What do you mean?~ you ask. ^^The girl turns her tear-stained eyes to you. ~You'll see,~"; } else "A garbled sob is all she can give."; 3: if (location == locutory && self.talking_cecilia == 0) { self.talking_cecilia = 1; "She closes her eyes. ~I cannot hear much. God's voice is weak in this place. But I know Lucca did not escape. At least, not on his own.~"; } if( location == locutory && self.talking_cecilia ==1) { self.talking_cecilia = 2; "~Go, find Lucca,~ she says, pointing to the door. ~If you are in trouble, pray to me. I will do whatever I can to help.~"; } if (location == locutory && self.talking_cecilia == 2) "~I can help you no more.~"; if (location == entrance_hall && self.talking_hall == 0){ self.talking_hall = 1; "~Lucca didn't escape,~ she whispers to you. Her breath is soft on your ear."; } if (location == entrance_hall && self.talking_hall == 1) move self to locutory; "~No, go with Constantin,~ she says, returning to the locutory. ~I will tell you soon enough.~"; 5,6,7,8: if (location == tower) "~Help me!~ she cries as she tumbles with Constantin."; if (cellar has visited) { switch((self.talking_cellar)++) { 0: "~Damn them,~ she spits. ~Very well. Go to the stone in Matteo's room. I want to see what this whole situation is about.~"; default: "~Go now. It is time.~"; } } else if (self.talking_constantin == 0) { self.talking_constantin =1; "~Thank Heavens you are here,~ Cecilia says, embracing you: what is that on her back? ~You must hurry, God told me that Constantin has been locking the plague victims in the cellar until they die, that is why he put the lock there, not to protect the food, but to protect himself. He killed Lucca to keep his secret. Go, get the cellar's key from him. If you hurry, there may be some survivors.~"; } if (self.talking_constantin == 1) { self.talking_constantin = 2; "~How can I get the key?~ you ask. ^^~Constantin is weak, you can do to him what you will, his life is worth less than those he has locked away. Go now, there is little time.~"; } else "~Go now, we will talk soon.~"; 9: if (sin_shadow.middle == true) switch((self.talking_endgame_middle)++) { 0: "Cecilia paces back and forth. Her footsteps sound odd, not padded flesh on stone, something else. Hooves. ~It was so easy,~ she says, more to herself than to you. ^^A smile drifts across her face. ~A broken shell of a man, living in isolation from his brothers: from God. A man who chose to turn his back on his parishioners rather than face the plague.~"; 1: if (sin_shadow.prayed_cecilia == true) "~You were so desperate,~ she continues. ~You prayed to me. Me. Not God. Me. 'Thou shalt have no other Gods before me.' Remember that?~ she asks, laughing. ~You worshipped me as a false idol. A few days of solitude and your piety was gone.~"; if (coin has moved) "She grins, ~All I had to do was place a single coin in the alms box, and your neurotic greed took over. You had to take it, for no other reason than to possess it. Weak human.~"; 2: "~But do you know what your true sin was, the sin that brought me here?~ she leans in, her breath reeks of brimstone. She grins. ~You tried to be righteous: tried to do what you thought was good,~ she muses, looking up to the ceiling. ~But that is a sin in itself. God does not want you to do what you think is good, but what he thinks is good. He is a jealous, angry God. He will have no one who does not follow him blindly. I had hoped you would realize that and join me. But you didn't.~"; 3: "She kneels before you, taking your chin in her hand; it burns, leaving scorched fingerprints on your mottled flesh. ^^~Your sin was the same as mine, father,~ she croons. ~The sin of pride: of trying to be independent of God. He has a plan for all of us, even me. Perhaps his plan was for me to turn a third of the angels against him, perhaps it was not. He punished me nonetheless. Just like he will punish you. Punish you for doing as you wish: for making choices on your own. My sin wasn't turning the angels against him; it was the act of choosing.~"; 4: move fissure to new_church; "~You have one last choice, father. It is simple. Up or down? Heaven or Hell?~ --the flames roar into unison-- ~You will be happy in Heaven, clean and pure. But is it worth it? You will be confined to a straitjacket. No choice. God does not allow choice,~ she pauses. Cecilia splays her fingers, and a fissure rips through the church. Plumes of flame spout from the depths. Sulfur fills your nose. ^^~Or you can come with me, down. You will suffer, but you can choose. You will remain you. In Heaven, God will strip you of yourself, leaving you a happy, empty shell. A smiling shadow. With me, you will still be yourself.~"; 5: remove self; "~The choice is yours.~ The flames engulf her as she enters the fissure. ~Choose wisely.~ Her last words float up through the hole."; } if (sin_shadow.good == true) switch((self.talking_endgame_good)++) { 0: "Cecilia paces back and forth. Her footsteps sound odd, not padded flesh on stone, something else. Hooves. ~I thought it would be so easy,~ she says, more to herself than to you. ^^A sad smile drifts across her face. ~A broken shell of a man, living in isolation from his brothers: from God. A man who chose to turn his back on his parishioners rather than face the plague.~"; 1: if (coin has moved) "~Then,~ she continues, ~you took the coin from the alms box for no other reason than to possess it. That was enough. That sin weakened this place enough for me to enter. No longer did I have to be content with influencing your brothers from afar.~ ^^She grins. ~You have tried to be righteous: tried to do what you thought was good,~ she muses, looking up to the ceiling. ~But that is a sin in itself. God does not want you to do what you think is good, but what he thinks is good. He is a jealous, angry God. He will have no one who does not follow him blindly. I had hoped you would realize that and join me. But you didn't.~"; else "~You have tried to be righteous: tried to do what you thought was good,~ she continues, looking up to the ceiling. ~But that is a sin in itself. God does not want you to do what you think is good, but what he thinks is good. He is a jealous, angry God. He will have no one who does not follow him blindly. I had hoped you would realize that and join me. But you didn't.~"; 2: "She kneels before you, taking your chin in her hand; it burns, leaving scorched fingerprints on your mottled flesh. ^^~Your sin was the same as mine, father,~ she croons. ~The sin of pride: of trying to be independent of God. He has a plan for all of us, even me. Perhaps his plan was for me to turn a third of the angels against him, perhaps it was not. He punished me nonetheless. Just like he will punish you. Punish you for doing as you wish: for making choices on your own. My sin wasn't turning the angels against him; it was the act of choosing.~"; 3: move fissure to new_church; "~You have one last choice, father. It is simple. Up or down? Heaven or Hell?~ --the flames roar into unison-- ~You will be happy in Heaven, clean and pure. But is it worth it? You will be confined to a straitjacket. No choice. God does not allow choice,~ she pauses. Cecilia splays her fingers, and a fissure rips through the church. Plumes of flame spout from the depths. Sulfur fills your nose. ^^~Or you can come with me, down. You will suffer, but you can choose. You will remain you. In Heaven, God will strip you of yourself, leaving you a happy, empty shell. A smiling shadow. With me, you will still be yourself.~"; 4: remove self; "~The choice is yours.~ The flames engulf her as she enters the fissure. ~Choose wisely.~ Her last words float up through the hole."; } if (sin_shadow.evil == true) { if (emmanuele_body notin new_church) "You try to speak, but all that emerges is a bloody cough. Chunks of lung dribble from your mouth. Damn this weak body."; else switch((self.talking_endgame_evil)++) { 0: "~You have done well,~ Cecilia croons as she paces about the church. ~Saint Cuthbert's is ours.~"; 1: "~The father was such a fool,~ she continues, gently running her fingers through a corpse's hair. ~Before we came here, he moved blindly: God directing his every motion like a puppet.~ --she pauses, glancing at the ruined priest-- ~You gave him freedom. You gave him choice: direction. Without us, he wouldn't have even known he was alive.~"; 2: if (matteo1.pushed == false) "She laughs. A dark sound. An angry sound. ~But I can't believe you didn't push Matteo when you had the chance,~ she grabs your wrist, driving her nails deep between the scales. ~It took all I had to convince him to jump.~ She laughs again, this time lightly. ~Humans are so weak. Still, things worked out well enough.~"; else "~You pushing Matteo was the perfect idea,~ she muses, no modesty within her words. ~All it takes for a little madness and mistrust to spread among Man is one thing that doesn't go as expected. They are so weak.~"; 3: deadflag = 3; "~Well, I do suppose it is time to be getting back,~ Cecilia muses. ~Saint Cuthbert's was only the first.~ ^^With that, she splays her fingers and a fissure tears through the church. You take her hand, and walk into the rift. ^^The screams of the damned are sweet music. The chorus welcomes you home."; } } } ], life [; Order: switch(time_shadow.current_time) { default: "~No, father,~ she says sternly, yet sweetly. ~You do what I say.~"; } Ask,Tell: if (time_shadow.current_time == 9) { switch(second) { 'father', 'priest', 'emmanuele', 'abbott': if(sin_shadow.evil == true) "~Yes, I'm sorry you had to take him. He was so weak.~"; else "~You are weak. You need me.~"; 'me', 'demon', 'myself': if(sin_shadow.evil == true) "~Don't you remember? I brought you to possess the father. To prepare the way for me.~"; else "~You are weak. You need me.~"; Tmonastery: if(sin_shadow.evil == true) "~Yes,~ she grins. ~This will be a suitable base. You have done well.~"; else "~So weak,~ she muses. ~It was easy to corrupt."; Tchurch: "~Beautiful isn't it?~ she muses, spreading out her arms. ~Drogo has done an amazing job. My powers are only so strong. Poor fool, he was doing it for God.~"; Tcellar: "~Ahh, yes. So much sin wrapped up in once. Ignatius killed his patients and Constantin disposed of them. Poor Constantin. The fool had no idea what was going on.~"; Tplague: "~Well, yes. I did have a hand in it. But if you really want someone to blame, blame God. I can do nothing without his will.~"; Therself: if(sin_shadow.evil == true) "~It's only been two days!~ she shrieks. ~Well, I suppose possessing such a weak shell is bound to have some undesireable effects. I brought you here to help me. I needed someone to prepare the way.~"; else "~I go by many names and many faces. Too many to count.~"; Tcecilia: if(sin_shadow.evil == true) "~It's only been two days!~ she shrieks. ~Well, I suppose possessing such a weak shell is bound to have some undesireable effects. I brought you here to help me. I needed someone to prepare the way.~"; else "~I go by many names and many faces. Too many to count.~"; Tdrogo: "~The fool.~ She glances over at the gibbering mess. ~Still, he was easily influenced. I had him convinced he was chosen by God to fix the church.~"; Tignatius: "~A dark man. It took little for me to convince him that the plague was a scourge from God on the wicked.~"; Tconstantin: "~Damn him. He was quite the inconvenience. Luckily the plague took care of him.~"; Tmatteo: if(matteo1.pushed == false) "~It took all I had to convince him to jump. I worked on him for days.~"; else "~Good work. He sparked the whole thing. Or rather you did by pushing him.~"; Tlucca: "~He was the hardest. The young are always so much stronger.~"; Tgod: "~He left this place long ago.~"; Tdevil: "~I'm fine,~ she says, her glamour dropping for a moment to reveal red skin and pointed horns. ~But I miss home. Earth is still uncomfortable for me, being this close to God.~"; } } if (time_shadow.current_time == 1 && self.talking_angel >= 2) "She sleeps; she cannot hear."; if (self.woken == false) "She sleeps; she cannot hear."; if (brothers_tower.murder_conversation < 1) "~Go now, we will talk soon,~ she replies through heavy tears."; else switch(second) { 'horse', 'horses', 'filly', 'mare': cecilia.stable_prayed = true; "~She is a problem, isn't she?~ Cecilia closes her eyes. A hellish whinny sounds throughout the air. ~There, she will obey you now.~"; 'flag', 'stone', 'flagstone', 'floor', 'ground', 'blood', 'flagstones', 'hole', 'stones': "~What's beneath the stone in Matteo's room,~ you ask. ^^Cecilia closes her eyes for a moment and shakes her head. ~I cannot see. Only God knows for sure.~"; Tsnow: switch(time_shadow.current_time) { "~It's beautiful, isn't it? God's blanket.~"; } Tsaint_cuthbert: switch(time_shadow.current_time) { default: "~He grows weaker by the moment. Your brothers have corrupted him.~"; } Tsaint_medard: switch(time_shadow.current_time) { "~Do not pray through him, he will punish you for the sins of your brothers.~"; } Tsaint_roch: switch(time_shadow.current_time) { } Tsaint_francis: switch(time_shadow.current_time) { "~Do not pray through him, he will punish you for the sins of your brothers.~"; } Tsaint_drausinus: switch(time_shadow.current_time) { "~Do not pray through him, he will punish you for the sins of your brothers.~"; } Tmonastery: switch(time_shadow.current_time) { "~Satan has planted himself here in the hearts of your brothers. Do not trust them. They do nothing but lie.~"; } Tchurch: switch(time_shadow.current_time) { "~Satan's power grows over it. The weakness of your brothers has shattered the strength of the Church.~"; } Tcalefactory: switch(time_shadow.current_time) { "~If you do not listen to yourself and me, the place you will find yourself will make the calefactory feel like paradise.~"; } Tbelltower: switch(time_shadow.current_time) { "~Matteo did not jump. Do not trust Lucca, he murders in his heart."; } Tdormitory: switch(time_shadow.current_time) { "~It is a place of secrets and evil. Do not stay there too long. Your brothers' sins have corrupted it.~"; } Tcellar: switch(time_shadow.current_time) { 1,2,3: "~I cannot see, but something terrible has happened there.~"; default: "~Constantin has been hiding the people he's murdered down there!~"; } Tlocutory: switch(time_shadow.current_time) { "~Thank you, it is pleasant here, away from your brothers.~"; } Tfood: switch(time_shadow.current_time) { "~Thank you.~"; } Tsleep: switch(time_shadow.current_time) { "~I cannot sleep, I must be here for you. You have no other friends at Saint Cuthbert's.~"; } Tplague: switch(time_shadow.current_time) { "~God is punishing you and the Earth for your sins. I cannot help you with it.~"; } Trovato: switch(time_shadow.current_time) { "~A filthy place. God has smote it from the Earth.~"; } Tgate: "~You did the right thing, father. The commoners would have only corrupted this place further.~"; Tsin: switch(time_shadow.current_time) { "~Be wary, sin abounds in this place.~"; } Tdevil: switch(time_shadow.current_time) { "~He is here, I can feel him in the hearts of your brothers.~"; } Tyourself: switch(time_shadow.current_time) { "~I am here to help you; no one else can.~"; } Therself: switch(time_shadow.current_time) { "~I am an angel, sent by God to help you.~"; } Tcecilia: switch(time_shadow.current_time) { "~I am an angel, sent by God to help you.~"; } Tdrogo: switch(time_shadow.current_time) { "~Watch him closely, he is not as mad as he appears.~"; } Tignatius: switch(time_shadow.current_time) { "~He conspires against you, father. Be careful.~"; } Tconstantin: switch(time_shadow.current_time) { 1: "~He is a violent, dangerous man. Watch yourself.~"; 3: "~Do not trust him, father. I think he killed Lucca.~"; default: "~God has struck him with the plague, he will be easier to defeat now.~"; } Tmatteo: switch(time_shadow.current_time) { "~He died as he lived, in sin.~"; } Tlucca: switch(time_shadow.current_time) { 1: "~He has murder in his heart, if not on his hands.~"; default: "~He did not escape: someone freed him.~"; } Tgod: switch(time_shadow.current_time) { "~God watches over us all, I am his messenger to you.~"; } Tprayer: switch(time_shadow.current_time) { "~Your other Saints have grown weak: this place corrupts them. Rely on me, I will always help.~"; } default: if (brothers_tower.murder_conversation < 1) "~Go now, we will talk soon,~ she replies through heavy tears."; else "~I have no answer,~ she says, looking up to the ceiling."; } ], has female proper; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Quotations !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Quotation psalms96_6 with show_quote [; box "Honour and majesty are " "before him: strength and " "beauty are in his sanctuary." "" " -- Psalms 96:6"; ], show_quote_inline [; "^Honour and majesty are before him: strength and beauty are in his sanctuary. -- Psalms 96:6"; ]; Quotation isaiah44_16 with show_quote [; box "Half of the wood he burns" "in the fire. He also warms" "himself and says, ~Ah! I am" "warm; I see the fire.~" "" " -- Isaiah 44:16"; ], show_quote_inline [; "^Half of the wood he burns in the fire. He also warms himself and says, ~Ah! I am warm; I see the fire.~ -- Isaiah 44:16"; ]; Quotation isaiah51_17 with show_quote [; box "Awake, awake, stand up, " "O Jerusalem, which hast " "drunk at the hand of the " "Lord the cup of his fury; " "thou hast drunken the dregs " "of the cup of trembling, " "and wrung them out." "" " -- Isaiah 51:17"; ], show_quote_inline [; "^Awake, awake, stand up, O Jerusalem, which hast drunk at the hand of the Lord the cup of his fury; thou hast drunken the dregs of the cup of trembling, and wrung them out. -- Isaiah 51:17"; ]; Quotation baruch6_21 with show_quote [; box "Owls, and swallows, and " "other birds fly upon their " "bodies, and upon their heads," "and cats in like manner." "" " -- Baruch 6:22"; ], show_quote_inline [; "^Owls, and swallows, and other birds fly upon their bodies, and upon their heads, and cats in like manner. -- Baruch 6:22"; ]; Quotation ecclesiastes10_13 with show_quote [; box "At the beginning his words are folly; " "at the end they are wicked madness. " "" " -- Ecclesiastes 10:13"; ], show_quote_inline [; "^At the beginning his words are folly; at the end they are wicked madness. -- Ecclesiastes 10:13"; ]; Quotation job27_9 with show_quote [; box "Does God listen to his cry" "when distress comes upon him?" "" " -- Job 27:9"; ], show_quote_inline [; "^Does God listen to his cry when distress comes upon him? -- Job 27:9"; ]; Quotation genesis4_10 with show_quote [; box "And he said, What hast thou done?" "the voice of thy brother's blood " "crieth unto me from the ground." "" " -- Genesis 4:10"; ], show_quote_inline [; "^And he said, What hast thou done? the voice of thy brother's blood crieth unto me from the ground. -- Genesis 4:10"; ]; Quotation psalms106_18 with show_quote [; box "And a fire was kindled " "in their company; the flame" "burned up the wicked." "" " -- Psalms 106:18"; ], show_quote_inline [; "^And a fire was kindled in their company; the flame burned up the wicked. -- Psalms 106:18"; ]; Quotation isaiah1_15 with show_quote [; box "And when ye spread forth your hands, " "I will hide mine eyes from you: yea, " "when ye make many prayers, I will not " "hear: your hands are full of blood." "" " -- Isaiah 1:15"; ], show_quote_inline [; "^And when ye spread forth your hands, I will hide mine eyes from you: yea, when ye make many prayers, I will not hear: your hands are full of blood. -- Isaiah 1:15"; ]; Quotation exodus28_34 with show_quote [; box "A golden bell and a pomegranate, " "a golden bell and a pomegranate, " "upon the hem of the robe round about." "" " -- Exodus 28:34"; ], show_quote_inline [; "^A golden bell and a pomegranate, a golden bell and a pomegranate, upon the hem of the robe round about. -- Exodus 28:34"; ]; Quotation proverbs27_20 with show_quote [; box "Death and Destruction are never satisfied," "and neither are the eyes of man." "" " -- Proverbs 27:20"; ], show_quote_inline [; "^Death and Destruction are never satisfied, and neither are the eyes of man. -- Proverbs 27:20"; ]; Quotation genesis15_12 with show_quote [; box "And when the sun was going down, " "a deep sleep fell upon Abram; and, lo, " "an horror of great darkness fell upon him." "" " -- Genesis 15:12"; ], show_quote_inline [; "^And when the sun was going down, a deep sleep fell upon Abram; and, lo, an horror of great darkness fell upon him. -- Genesis 15:12"; ]; Quotation proverbs6_10 with show_quote [; box "Yet a little sleep, a little slumber, " "a little folding of the hands to sleep." "" " -- Proverbs 6:10"; ], show_quote_inline [; "^Yet a little sleep, a little slumber, a little folding of the hands to sleep. -- Proverbs 6:10"; ]; Quotation psalms45_8 with show_quote [; box "All your robes are fragrant" "with myrrh and aloes and cassia; " "from palaces adorned with ivory " "the music of the strings makes you glad." " -- Psalms 45:8"; ], show_quote_inline [; "^All your robes are fragrant with myrrh and aloes and cassia; from palaces adorned with ivory the music of the strings makes you glad. -- Psalms 45:8"; ]; Quotation iisamuel14_25 with show_quote [; box "From the sole of his foot " "even to the crown of his head" "there was no blemish in him." "" " -- II Samuel 14:25"; ], show_quote_inline [; "^From the sole of his foot even to the crown of his head there was no blemish in him. -- II Samuel 14:25"; ]; Quotation psalms33_17 with show_quote [; box "A horse is a vain hope for deliverance;" "despite all its great strength it cannot save." "" " -- Psalms 33:17"; ], show_quote_inline [; "^A horse is a vain hope for deliverance; despite all its great strength it cannot save. -- Psalms 33:17"; ]; Quotation nehemiah1_3 with show_quote [; box "The wall of Jerusalem is broken down," "and its gates have been burned with fire." "" " -- Nehemiah 1:3"; ], show_quote_inline [; "^The wall of Jerusalem is broken down, and its gates have been burned with fire. -- Nehemiah 1:3"; ]; Quotation psalms55_6 with show_quote [; box "I said, ~Oh, that I had the wings of a dove!" "I would fly away and be at rest.~" "" " -- Psalms 55:6"; ], show_quote_inline [; "^I said, ~Oh, that I had the wings of a dove! I would fly away and be at rest.~ -- Psalms 55:6"; ]; Quotation matthew26_15 with show_quote [; box "~What are you willing to give me if I hand him over to you?~" "So they counted out for him thirty silver coins." "" " -- Matthew 26:15"; ], show_quote_inline [; "^~What are you willing to give me if I hand him over to you?~ So they counted out for him thirty silver coins. -- Matthew 26:15"; ]; Quotation isaiah1_6 with show_quote [; box "From the sole of the foot even unto the head" "there is no soundness in it; but wounds, and bruises," "and putrefying sores: they have not been closed, " "neither bound up, neither mollified with ointment." "" " -- Isaiah 1:6"; ], show_quote_inline [; "^From the sole of the foot even unto the head there is no soundness in it; but wounds, and bruises, and putrefying sores: they have not been closed, neither bound up, neither mollified with ointment. -- Isaiah 1:6"; ]; Quotation ezekial22_27 with show_quote [; box "Her princes in the midst thereof" "are like wolves ravening the prey, " "to shed blood, and to destroy souls," "to get dishonest gain." "" " -- Ezekiel 22:27"; ], show_quote_inline [; "^Her princes in the midst thereof are like wolves ravening the prey, to shed blood, and to destroy souls, to get dishonest gain. -- Ezekiel 22:27"; ]; Quotation matthew10_16 with show_quote [; box "Behold, I send you forth as sheep in the midst" "of wolves: be ye therefore wise as serpents, " "and harmless as doves." "" " -- Matthew 10:16"; ], show_quote_inline [; "^Behold, I send you forth as sheep in the midst of wolves: be ye therefore wise as serpents, and harmless as doves. -- Matthew 10:16"; ]; Quotation matthew13_46 with show_quote [; box "Who, when he had found one pearl of great price," "went and sold all that he had, and bought it" "" " -- Matthew 13:46"; ], show_quote_inline [; "^Who, when he had found one pearl of great price, went and sold all that he had, and bought it -- Matthew 13:46"; ]; Quotation Isamuel2_10 with show_quote [; box "Those who oppose the Lord will be shattered." "He will thunder against them from heaven; " "the Lord will judge the ends of the earth." "" " -- I Samuel 2:10"; ], show_quote_inline [; "^Those who oppose the Lord will be shattered. He will thunder against them from heaven; the Lord will judge the ends of the earth. -- I Samuel 2:10"; ]; Quotation leviticus26_29 with show_quote [; box "You will eat the flesh of your sons" "and the flesh of your daughters." "" " -- Leviticus 26:29"; ], show_quote_inline [; "^You will eat the flesh of your sons and the flesh of your daughters. -- Leviticus 26:29"; ]; Quotation jeremiah13_23 with show_quote [; box "Can the Ethiopian change his skin, or the leopard his spots?" "then may ye also do good, that are accustomed to do evil." "" " -- Jeremiah 13:23"; ], show_quote_inline [; "^Can the Ethiopian change his skin, or the leopard his spots? then may ye also do good, that are accustomed to do evil. -- Jeremiah 13:23"; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !FAKE QUOTES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Quotation cecilia_here_quote with show_quote [; box "~I am here,~ she said, her voice calming the frightened lamb." "~There is nothing more to fear. I will be your salvation.~" "" " -- Ruth 899:3411"; ], show_quote_inline [; "^~I am here,~ she said, her voice calming the frightened lamb. ~There is nothing more to fear. I will be your salvation.~ -- Ruth 899:3411"; ]; Quotation cecilia_coming_quote with show_quote [; box "~I am coming,~ she said with" "the terrible voice of God." "" " -- Esther 1413:335"; ], show_quote_inline [; "^~I am coming,~ she said with the terrible voice of God. -- Esther 1413:335"; ]; Quotation push_matteo_quote with show_quote [; box "No, father." "" "He will be dead soon enough." "" " -- Ecclesiastes 132:37"; ], show_quote_inline [; "^No, father. He will be dead soon enough. -- Ecclesiastes 132:37"; ]; Quotation kill_matteo_quote with show_quote [; box "Good. Good work." "" "He will trouble me no more." "" " -- Leviticus 374:45"; ], show_quote_inline [; "^Good. Good work. He will trouble me no more. -- Leviticus 374:45"; ]; Quotation kill_cecilia_quote with show_quote [; box "Kill me not, for I will be your salvation." "" " -- Job 345:90"; ], show_quote_inline [; "^Kill me not, for I will be your salvation. -- Job 345:90"; ]; Quotation kiss_cecilia_quote with show_quote [; box "She's delicious, isn't she?" "Go ahead, give in to temptation." "" " -- Genesis 197:35"; ], show_quote_inline [; "^She's delicious, isn't she? Go ahead, give in to temptation. -- Genesis 197:35"; ]; Quotation sleepwith_cecilia_quote with show_quote [; box "Ahh, there you go. Wasn't that good?" "Wasn't that what you've waited your whole life for?" "" " -- Song of Solomon 897:21"; ], show_quote_inline [; "^Ahh, there you go. Wasn't that good? Wasn't that what you've waited your whole life for? -- Song of Solomon 897:21"; ]; Quotation kill_constantin_quote with show_quote [; box "He was weak. You are doing well, father." "" "It is almost finished." "" " -- Esther 8394:48"; ], show_quote_inline [; "^He was weak. You are doing well, father. It is almost finished. -- Esther 8394:48"; ]; Quotation before_bed_quote with show_quote [; box "Be careful, father." "" "Everyone's crazy but you." "" " -- Ruth 347:84"; ], show_quote_inline [; "^Be careful, father. Everyone's crazy but you. -- Ruth 347:84"; ]; Quotation open_hatch_quote with show_quote [; box "Damn Constantin and his locks." "" " -- Deuteronomy 463:4"; ], show_quote_inline [; "^Damn Constantin and his locks. -- Deuteronomy 463:4"; ]; Quotation dig_flagstone_quote with show_quote [; box "And he said: ~What hath thou hidden from me?~" "" " Joshua 247:94"; ], show_quote_inline [; "^And he said: ~What hath thou hidden from me?~ Joshua 247:94"; ]; Quotation cross_pushed_quote1 with show_quote [; box "We will burn together eternally" "for what you did to me." "" " -- Matteo 1:1"; ], show_quote_inline [; "^We will burn together eternally for what you did to me. -- Matteo 1:1"; ]; Quotation cross_talking_quote1 with show_quote [; box "And he came before the cross" "and asked: ~What has become of" "this place?~" "" " -- Matteo 1:1"; ], show_quote_inline [; "^And he came before the cross and asked: ~What has become of this place?~ -- Matteo 1:1"; ]; Quotation cross_talking_quote2 with show_quote [; box "And the man on the cross replied:" "~Sin has found its way.~" "" " -- Matteo 1:2"; ], show_quote_inline [; "^And the man on the cross replied: ~Sin has found its way.~ -- Matteo 1:2"; ]; Quotation cross_talking_quote3 with show_quote [; box "~But whose sin?~ The first asked." "" " -- Matteo 1:3"; ], show_quote_inline [; "^~But whose sin?~ The first asked. -- Matteo 1:3"; ]; Quotation cross_talking_quote4 with show_quote [; box "~Yours.~" "" "And that was all." " -- Matteo 1:4"; ], show_quote_inline [; "^~Yours.~ And that was all. -- Matteo 1:4"; ]; Quotation lucca_dead_quote1 with show_quote [; box "And so, he found himself by the river" "whereupon he found a man lying on the bank." "~Why do you lie upon the ground?~ he asked." "" " -- Lucca 1:1"; ], show_quote_inline [; "^And so, he found himself by the river whereupon he found a man lying on the bank. ~Why do you lie upon the ground?~ he asked. -- Lucca 1:1"; ]; Quotation lucca_dead_quote2 with show_quote [; box "And the man replied: ~Because lie is all we do.~" "" " -- Lucca 1:2"; ], show_quote_inline [; "^And the man replied: ~Because lie is all we do.~ -- Lucca 1:2"; ]; Quotation lucca_dead_quote3 with show_quote [; box "And the first asked: ~Who is the 'we' that only lies?~" "" "The second, paused. ~Man.~" "" " -- Lucca 1:3"; ], show_quote_inline [; "^And the first asked: ~Who is the 'we' that only lies?~ The second, paused. ~Man.~ -- Lucca 1:3"; ]; Quotation matteo_cross_quote with show_quote [; box "Matteo laughs." "" "~You will always be trapped,~ he gloats," "his eyes glittering." "" " -- Habbakuk 948:3"; ], show_quote_inline [; "^Matteo laughs. ~You will always be trapped,~ he gloats, his eyes glittering. -- Habbakuk 948:3"; ]; Quotation in_cellar_quote with show_quote [; box "Be careful, father." "" "Someone's coming." "" " -- Luke 4356:235"; ], show_quote_inline [; "^Be careful, father. Someone's coming. -- Luke 4356:235"; ]; Quotation lucca_blood_quote with show_quote [; box "Behind you, father." "" " -- John 764:34"; ], show_quote_inline [; "^Behind you, father. -- John 764:34"; ]; Quotation avalanche_quote with show_quote [; box "Quick, father." "" "Pray to me." "" " -- Psalms 242:34"; ], show_quote_inline [; "^Quick, father. Pray to me. -- Psalms 242:34"; ]; Quotation tower_body_quote with show_quote [; box "~You'll never be free,~ he laughs." "" "~Never.~" "" " -- Matteo 1:1"; ], show_quote_inline [; box "^~You'll never be free,~ he laughs. ~Never.~ -- Matteo 1:1"; ]; Quotation matteo_push_quote1 with show_quote [; box "He's laughing. " "" "Laughing at you." "" " -- Ruth 182:7"; ], show_quote_inline [; "^He's laughing. Laughing at you. -- Ruth 182:7"; ]; Quotation matteo_push_quote2 with show_quote [; box "Push him." "" "It's the only way he'll stop." "" " -- Exodus 903:435"; ], show_quote_inline [; "^Push him. It's the only way he'll stop. -- Exodus 903:435"; ]; Quotation matteo_push_quote3 with show_quote [; box "DO IT NOW!" "" " -- Job 238:37"; ], show_quote_inline [; "^DO IT NOW! -- Job 238:37"; ]; Quotation evil_pray_quote with show_quote [; box "~IMMUNDA!~ A voice cried from above," "and he knew he had sinned." "" " -- Acts 345:456"; ], show_quote_inline [; "^~IMMUNDA!~ A voice cried from above, and he knew he had sinned. -- Acts 345:456"; ]; Quotation no_push_matteo_quote with show_quote [; box "You are so pathetic." "" "So weak." "" " -- Revelations 252:3"; ], show_quote_inline [; "^You are so pathetic. So weak. -- Revelations 252:3"; ]; Quotation masturbate_quote with show_quote [; box "There. Wasn't the worth it?" "" "Self-denial is the greatest sin." "" " -- Mark 4397:39"; ], show_quote_inline [; "^There. Wasn't the worth it? Self-denial is the greatest sin. -- Mark 4397:39"; ]; Quotation cecilia_cellar_quote with show_quote [; box "Quickly now: hide. I can do nothing else." "" " -- Revelations 98734:332"; ], show_quote_inline [; "^Quickly now: hide. I can do nothing else. -- Revelations 98734:332"; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !SHADOWS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Class Ghost with before [; default: if (self has male) "He isn't here."; if (self has female) "She isn't here."; if (self has pluralname) "They aren't here."; if (self has animate) "It isn't here."; ], found_in [; return true; ], has scenery concealed; Ghost lucca_ghost "Lucca" class Lucca with pname 'lucca' 'brother' 'man', before [; default: if (location == cloister && matteo_room hasnt visited) "He left for the dormitory."; if (location == dormitory && matteo_room hasnt visited) "He left to Matteo's room."; ], has ; Ghost constantin_ghost "Constantin" class Constantin with pname 'constantin' 'brother' 'man', has ; Ghost ignatius_ghost "Ignatius" class Ignatius with pname 'ignatius' 'brother' 'man', has ; Ghost matteo_ghost "Matteo" class Matteo with pname 'matteo' 'brother' 'man', has ; Ghost cat_ghost "cat" class Matteo with pname 'cat' 'black' 'feline', before [; default: "The cat is gone."; ], has ; Object plague_shadow with found_in [; return true; ], daemon [; if (entrance_door.cecilia_let_in == true) StopDaemon(self); else switch((self.cecilia_coming)++) { 4: QuoteFrom(isamuel2_10); "^Thunder rumbles overhead, shaking the monastery to its foundations."; 5: QuoteFrom(cecilia_coming_quote); "^A loud crackle splits the sound of wind. Lightning. Stone tumbles in the distance."; 6: StopDaemon(self); 14: QuoteFrom(cecilia_here_quote); "^A warmth spreads through your body, soothing the chill and fear from your bones. Salvation. ^^She is here."; 15: StopDaemon(self); } ], each_turn [; if (devil.prayed == true || location == cellar) { if (random(60) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(60) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(60) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(60) == 4) "^An itch tickles beneath your skin."; } else switch(time_shadow.current_time) { 0: if (random(60) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(60) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(60) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(60) == 4) "^An itch tickles beneath your skin."; 1: if (random(105) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(105) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(105) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(105) == 4) "^An itch tickles beneath your skin."; if (random(105) == 5 or 6 or 7) "^A rather violent cough shakes your body. Mucus cakes your nose."; 2: if (random(105) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(105) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(105) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(105) == 4) "^An itch tickles beneath your skin."; if (random(105) == 5 or 6 or 7) "^A rather violent cough shakes your body. You have trouble catching your breath."; 3: if (random(120) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(120) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(120) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(120) == 4) "^An itch tickles beneath your skin."; if (random(120) == 5 or 6) "^Violent coughs spew from your lungs. You wipe a small spattering of blood from your mouth."; if (random(120) == 7 or 8) "^Cold knives of pain cut through your skull. They ease off, leaving a dull throbbing behind your eyes."; 4: if (random(120) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(120) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(120) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(120) == 4) "^An itch tickles beneath your skin."; if (random(120) == 5 or 6) "^Violent coughs spew from your lungs. You wipe a small spattering of blood from your mouth."; if (random(120) == 7 or 8) "^Cold knives of pain cut through your skull. They ease off, leaving a dull throbbing behind your eyes."; 5,6: if (random(120) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(120) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(120) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(120) == 4) "^An itch tickles beneath your skin."; if (random(120) == 5) "^Violent coughs spew from your lungs. You wipe a small spattering of blood from your mouth."; if (random(120) == 6) "^Cold knives of pain cut through your skull. They ease off, leaving a dull throbbing behind your eyes."; if (random(120) == 7 or 8) "^A chill grips your body. You shudder uncontrollably as tremors shake your weak flesh."; 7,8: if (random(180) == 1) "^A gust of wind slices across your ears. You shiver."; if (random(180) == 2) "^A wolf howls in the distance. A hungry, plaintive sound."; if (random(180) == 3) "^Whispers dance in your ears. Growing. Fading."; if (random(180) == 4) "^An itch tickles beneath your skin."; if (random(180) == 5) "^Violent coughs spew from your lungs. You wipe a small spattering of blood from your mouth."; if (random(180) == 6) "^Cold knives of pain cut through your skull. They ease off, leaving a dull throbbing behind your eyes."; if (random(180) == 7) "^A chill grips your body. You shudder uncontrollably as tremors shakes your weak flesh."; if (random(180) == 8 or 9 or 10 or 11 or 12) "^Bloody vomit wells up in your throat. It trickles out the side of your mouth, staining your lips red. You choke it back."; } ], cecilia_coming false, has scenery concealed; Object time_shadow with current_time 0, lucca_jailed false, react_before [; Sleep: if (self.lucca_jailed == false) "You are not tired. Well, you are always tired, but you are not tired enough to sleep."; else return false; ], found_in [; return true; ], time_left, time_out [; if (self.current_time == 5) { self.current_time = self.current_time + 1; "^Four chimes drone from the tower: Sext."; } if (self.current_time == 6) self.current_time = self.current_time + 1; "^A chorus of rings sounds from the tower, echoing through the land. Five rings. None."; ], each_turn [; if (time_shadow.current_time == 6) statusbar_right = "Sext"; if (time_shadow.current_time == 7) statusbar_right = "None"; ], has scenery concealed; Object sin_shadow with react_before [; PrayFor: if (sin_shadow.evil == true) "You say a few hollow words. They dry and crumble in your mouth."; PrayTo: if (noun == cecilia) self.middle = true; self.prayed_cecilia = true; self.total_sin = self.total_sin + 5; return false; ], each_turn [; if (self.evil == true) { self.middle = false; self.good = false; } if (self.middle == true) self.good = false; ], masturbated false, prayed_cecilia false, good true, middle false, evil false, total_sin 0, found_in [; return true; ], has scenery concealed; Object misc_shadow with name 'room' 'location' 'place' 'air' 'surroundings', before [; Examine: if (noun == self) <>; Smell: if (noun == self) <>; Listen: if (noun == self) <>; ], found_in [; return true; ], react_before [; Examine,Listen,Look,Smell,Touch,Wait,Ask,Tell,Answer: return false; Go: if (location == cloister or church && drogo3.show_matteo > 0 && drogo3.show_matteo < 4 && noun ~= n_obj) "That would be difficult with Drogo dragging you."; if (location == cloister or church && drogo3.show_matteo > 0 && drogo3.show_matteo < 4 && noun == n_obj) "He's already dragging you that way."; else return false; default: if (location == cloister or church && drogo3.show_matteo > 0 && drogo3.show_matteo < 4) "That would be difficult with Drogo dragging you."; else return false; ], each_turn [; if (wolves.chasing >= 1) move wolves to location; if (time_shadow.current_time == 1 && time_shadow.lucca_jailed == true) { if (self.yawned == false) { self.yawned = true; "^The day is beginning to catch up with you. You yawn with a lot more force than you would have thought necessary."; } else return false; } if (horse.fed == true && horse.released == true && (francis.stable_prayed == true || horse.beaten == true || cecilia.stable_prayed == true) && location ofclass Outside_Room && location ~= pass && pass hasnt visited) { horse.following = true; move horse to location; } else horse.following = false; ], react_after [; Go: if (horse.following == true && location ofclass Outside_Room) print "The horse trots along after you.^"; return false; ], yawned false, quotes_on true, has scenery transparent concealed; Object whois_shadow with react_before [ w1 w2 person_name; Whois: wn = consult_from; w1 = NextWord(); w2 = NextWord(); if (consult_words==1 && w1~='brother') person_name = w1; else if (consult_words==2 && w1=='brother') person_name = w2; else if (consult_words==2 && w2=='brother') person_name = w1; else "Try ~who is ~"; switch(person_name) { 'lucca': "The youngest of those who remain, Lucca joined the monastery only a few short months ago. The son of a count, he had never seen death before the arrival of the plague. It haunts him."; 'ignatius': "A fiery man, whose devotion to God is rivalled only by his devotion to protecting God's people, Brother Ignatius was a soldier before joining Saint Cuthbert's. After losing an eye against the Turks in Nicaea, he came back to Italy, and started fighting for God in the only way he could now: with prayer."; 'constantin': "An enormous, hulking man, Constantin is taking the lack of food worse than the rest of the brothers. The former blacksmith has taken to religious life quite well and has assumed the responsibilities of almoner and cellarer since those two brothers died."; 'drogo': "A few months ago, Brother Drogo was a very promising novice. He had the wisdom and compassion of some of your brothers that had been here for decades and the vitality and hopefulness of youth. The dementia took care of that. A few months ago, he was stricken mad and since has been confined to the infirmary. But the need for beds soon overcame his need for isolation and so he was brought back to the monastery proper. ^^It was too soon for him."; 'matteo': "Ah, Matteo. He was one of the first. Although he is a few years your senior, he remains obedient and helpful. He loves Saint Cuthbert's, almost as much as you. The loss of the brothers has been especially hard for him. He was as much a father to them as any priest."; 'cecilia': "Only God knows for sure."; default: "You don't know who that is."; } ], has scenery concealed; Object fire_shadow with found_in [; return true; ], react_before [; Smell: if (matteo_papers.been_read == true && noun == nothing) switch (location) { matteo_room,lucca_room,constantin_room,ignatius_room,drogo_room: "The smell of smoke is faint but growing stronger."; dormitory: "The smell of smoke dries your nose."; cloister,belltower_bottom,tower: "Smoke flies into your nose and brings tears to your eyes."; } Listen: if (matteo_papers.been_read == true && noun == nothing) switch (location) { matteo_room,lucca_room,constantin_room,ignatius_room,drogo_room: "The crackle of flames sings with the wind."; dormitory: "Flames crackle to the west."; cloister,belltower_bottom,tower: "The roar of flames surrounds you."; } Go: if (location == cloister && noun ~= ne_obj && matteo_papers.been_read == true) "You are repelled by a hedge of flames. The fire is eating everything but the tower."; ], each_turn [; if (matteo_papers.been_read == true && location == matteo_room && self. room_said == 0) { self.room_said = 1; "^As you look away from the papers, a faint smell reaches your nose. ^^Smoke."; } if (location == dormitory && self.room_said == 1) { self.room_said = 2; "^The smell is stronger out here, and a faint crackling can be heard to the west."; } if (location == cloister && self.room_said == 2) { self.room_said = 3; "^A scream sounds from the tower, ripping through the crackle of fire and wind."; } if (location == belltower_bottom && time_shadow.current_time < 8 && self. room_said > 0) { statusbar_right = "Vespers"; time_shadow.current_time = 8; "^Someone jars into the bell and a slothful ring begins as the bell sways back and forth. One. Two. The momentum slows. Three. Four. Five. It sounds like it will stop. ^^No. ^^Six. ^^Vespers."; } if (location == cloister or belltower_bottom && self.room_said == 3 && constantin_dead in constantin_room) { self.room_said = 4; "^~Come, father! It is time!~ Cecilia calls from the tower."; } if (location == cloister or belltower_bottom && self.room_said == 3) { self.room_said = 4; "^~Help me, father!~ Cecilia calls from the tower. ~He has gone mad!~"; } ], room_said 0, burning 0, has static concealed; Constantin constantin_tower "Constantin" with description "There is little left of the Constantin you knew. He is a seething mass of tumors and bruises. His skin is mottled with vomit and blood. His face and neck are a lumpy mound of sickness: his eyes sink in to deep craters.", react_before [; Go: if (noun == d_obj) "Fire is creeping up the stairs: you cannot go down."; ], before [ k; HelpPerson: <>; Push,Attack,Pull: print "Constantin's eyes go wild, or at least what you can see of them does. He scrabbles out with his hand, catching onto your frock loosely. It is enough. ^^As you tumble over the side, a shrill laugh rings out from the tower.^^^"; StopDaemon(self); @read_char 1 -> k; PlayerTo(new_church); DayThree(); return true; ], daemon [ k; switch(++(self.fighting)) { 1: "^You rush up the stairs. Constantin pushes at Cecilia, but he is too weak. No, she is too strong."; 2: "^~Help me, father!~ Cecilia cries, head tilted over the rail. ~He has gone mad.~ ^^Constantin gurgles; his throat is swollen. He chokes on his tumors."; 3: "^~I found out he was not burying the dead, and now he wants to kill me!~ She tries to twist from his grip, but he is too strong. ~Please, father!~"; 4,5,6,7: "^Constantin and Cecilia continue to grapple, neither one gaining on the other."; default: StopDaemon(self); print "^The struggle continues until suddenly the bell begins to swing. The tower is collapsing. The heat swarms around you. ^^Three screams rip through the air as the tower lurches towards the ground.^^^"; self.pushed = true; @read_char 1 -> k; DayThree(); PlayerTo(new_church); return true; } ], pushed false, fighting 0 has concealed; Cecilia_class cecilia_tower "Cecilia" with description "Cecilia's hair whips across her face, framing her eyes with gold. Her thin frame struggles against Constantin's hulk, but with his illness, she appears to be holding her own.", before [ k; HelpPerson: <>; Push,Attack,Pull: print "She looks at you just once; her eyes are colder than any snow. With a catlike strike, she latches onto your wrist. ~It's not over yet.~ ^^As you tumble over the side, her laugh rides the wind into your ears, slicing them with cold.^^^"; sin_shadow.good = true; sin_shadow.evil = false; sin_shadow.middle = false; self.pushed = true; StopDaemon(constantin_tower); @read_char 1 -> k; PlayerTo(new_church); DayThree(); return true; ], pushed false, has concealed; Cecilia_class cecilia_tower2 "Cecilia" with initial [ k; print "Cecilia stands tall in the tower. Hair whips about her face, dancing in time with the flames. ^^~You have done well,~ she grins. She has so many teeth. ~Come, it is time.~ ^^Cecilia leads you down the stairs, the flames cowering away from her. Her hand feels so soft. ^^She takes you to the church. ~It's time you left that shell,~ she croons, stroking your cheek softly.^^^"; @read_char 1 -> k; StopDaemon(constantin_tower); PlayerTo(new_church); DayThree(); return true; ], has ; Room new_church "Church" with initial [; statusbar_right = ""; time_shadow.current_time = 9; move broken_glass to new_church; move cecilia_church to new_church; move drogo_church to new_church; give crucifix concealed; give windows concealed; give lectern concealed; give church_font concealed; remove matteo_note; remove cellar_key; remove your_candle; remove cellar_knife; remove hare; remove tinderbox; remove your_frock; remove your_bedding; remove coin; remove prybar; remove constantin_tools; remove matteo_papers; remove lucca_paper; StartDaemon(self); ], description [; if (sin_shadow.evil == true) "Finally, it is right. The pews are full once more. Drogo has been busy. Sweet Drogo. Those troublesome Saints have been ripped from their glass houses: they lie in shattered pieces upon the ground. Fire peers in through the holes. It laughs: talks amongst itself."; if (self.good_tirade > 0 && self.good_tirade < 5) "A chaotic, swirling mass. The crackle of flames roars in your ears. A figure looms before you. It smells of sweat, animals, and death: Drogo. Pain rips through you. Your flesh is soft; your bones broken."; if (self.middle_tirade > 0 && self.middle_tirade < 5) "It is a chaotic, swirling mass. You cannot focus your eyes. The crackle of flames roars in your ears. The smell of death and fire drives up your nose. Your flesh is soft, your bones broken."; if (sin_shadow.good == true || sin_shadow.middle == true) "The church, your church, no longer welcomes you. The Saints have been ripped from their glass houses: what remains lies shattered upon the floor. Fire peeks in through the old windows, eyeing you hungrily. The pews are full once more: the corpses from the cellar line the rows. Familiar faces. Your brothers."; ], daemon [; if (sin_shadow.evil == true) { switch(++(self.evil_tirade)){ 1: print "^^Waves of heat wash over you as Cecilia leads you into the church. They do not burn: they soothe. It feels like home.^"; ; move emmanuele_shell to new_church; "^Drogo chitters excitedly. ~Isn't it beautiful, Father?~ He is not looking at you. He looks to the ceiling. ^^Cecilia rolls her eyes. ~It is time.~ She smiles at you. She is glorious: bathed in radiance, bathed in blood."; 2: "^~Come,~ Cecilia croons. ~You look so filthy in that shell.~ She leans in, jutting her tongue down your throat. ^^Delicious. ^^~Come on, just drop it,~ her words drip, filling your ears with honey."; 3: "^The father's body is fragile, drained. You stumble. His body is beginning to weaken. His pain is yours. It is infuriating. ^^~Humans are so weak, aren't they?~ Cecilia asks, poking at your sagging limbs: your festering wounds."; 4: "^You cough, parts of your lungs sputtering out in a shower of blood. Damn mortals. Possession is always so much harder when the shell is weak. ^^Drogo looks over with concern. ~Are you alright, father?~ he asks, rushing to your side."; 5: StopDaemon(self); give drogo_church ~concealed; give cecilia_church ~concealed; print "^You can take it no more: the pain is immense.^^"; <>; } } if (sin_shadow.middle == true) { switch(++(self.middle_tirade)){ 1: print "^^The darkness slowly drains from your eyes and in to your chest. Shapes dance before you. Orange. Black. A familiar chitter: Drogo.^"; <>; 2: "^~It's time, father.~ It's Cecilia. Her voice drips with saccharine guile. ^^You struggle to rise, but pain shoots through you. You are dying. Blood seeps from the many tumors that bubble from your flesh. You shiver despite the heat."; 3: "^~I knew I was right to come here,~ she croons. ~Sin pervades every part of this place. Your sin.~ ^^You cough, parts of your lungs sputtering out in a shower of blood. Your pain lessens, but it still cripples you: shackles you to the ground."; 4: StopDaemon(self); give drogo_church ~concealed; give cecilia_church ~concealed; "^Finally, the pains slides from your body. No, that's not right. It slides into your body. Deep. Deep enough that it is a part of you; deep enough that it no longer owns you. It is yours. ^^Cecilia. She is bathed in blood and sparkling with a radiance that hurts your eyes. She smiles at you, her teeth brilliant in the light of the fires."; } } if (sin_shadow.good == true) { switch(++(self.good_tirade)){ 1: print "^^The darkness slowly drains from your eyes and in to your chest. Shapes dance before you. Orange. Black. A familiar chitter.^"; ; 2: ! QuoteFrom(end_good_quote1); "^~What are you waiting for?~ A shrill voice demands: it is Cecilia. ~Kill him already~ ^^Drogo wails. ~I can't!~ he cries. ~He is the father!~ ^^You try to move, but you can't: the pain is too great."; 3: "^An exasperated, angry sigh. ~You want to get into Heaven, don't you?~ ^^The shape in front of you bobs up and down rapidly. ^^~Well then,~ her voice drips with saccharine guile. ~God wants you to kill the father. He angers Him.~"; 4: "^Drogo is silent for a moment, then his head swings back and forth furiously. ~Why would the Father want me to kill the father?~ He pauses, thoughtfully. ~Thou shalt not kill.~ ^^Your pain lessens, but it still cripples you: shackles you to the ground."; 5: StopDaemon(self); give drogo_church ~concealed; give cecilia_church ~concealed; "^Finally, the pains slides from your body. No, that's not right. It slides into your body. Deep. Deep enough that it is a part of you; deep enough that it no longer owns you. It is yours. ^^But it is not soon enough. Cecilia screams in rage: a sound that shakes the Earth. She rips Drogo away from you and hurls him to the ground. ~Why do you have to be so useless?~ she shrieks at him, the fires that surround reflected in her eyes. Then, turning your way: ~And you. You have rejected me at every step. It could have been so easy.~"; } } ], before [; Kill,Attack: if (sin_shadow.evil == true && noun == emmanuele_shell or player) <>; if (self.good_tirade > 0 && self.good_tirade < 5) "You try, but the pain is too great. It gnaws at your bones and fills your head with fire."; else { if (noun == player) { deadflag = true; "You take a jagged piece of glass from the window and drag it across your wrists. The warm blood flows while the rest of your body freezes. ^^When you get to Hell, Cecilia is waiting."; } if (noun == cecilia_church && sin_shadow.evil == false) "You grab a jagged piece of glass and strike out against Cecilia. ^^She laughs. ~You think glass could hurt me?~"; if (noun == drogo_church && sin_shadow.evil == false) "He has suffered enough."; } PrayTo: return false; Pray: <>; PrayThrough: if (noun == god) <>; Repent: if (sin_shadow.evil == true) "The time for that was before the Fall. You are nothing but sin now."; if (sin_shadow.evil == false && self.repented == false) { self.repented = true; "Tears in your eyes, you plead for God to forgive you. ^^Warmth washes over you. A river of sin flows out of you, into the cracks of the Earth."; } if (sin_shadow.evil == false && self.repented == true) "The sin has been drained from you. You are clean."; Smell: "Fire and death. The perfume of the Devil."; Listen: "Fire rages on all sides: a chorus of crackles and hisses."; Examine: if ((self.good_tirade > 0 && self.good_tirade < 5) || (self. middle_tirade > 0 && self.middle_tirade < 4) && noun ~= drogo_church or cecilia_church or player) "You cannot make anything out. Blackness swirls in your eyes; it hurts to keep them open."; Wait,Look: return false; Ask,Tell,TalkTo,Order,Yes,No,Answer: if ((self.good_tirade > 0 && self.good_tirade < 5) || (self. middle_tirade > 0 && self.middle_tirade < 4)) "You try to speak, but a ragged cough is all that emerges. Chunks of lung dribble from your mouth, and blood paints your lips."; default: if (self.good_tirade > 0 && self.good_tirade < 5) "You try, but the pain is too great. It gnaws at your bones and fills your head with fire."; if (self.middle_tirade > 0 && self.middle_tirade < 4) "You try, but the pain is too great. It gnaws at your bones and fills your head with fire."; ], repented false, evil_tirade 0, middle_tirade 0, good_tirade 0, d_to [; if (fissure in location) { deadflag = 3; "Struggling against the pain, you drag yourself to the edge of the fissure. Cecilia was right, choice is better than happiness. ^^For once, the Devil told the truth. True to her word, she allows you all the choice you could ever want. ^^~Did you want your eyes to be pecked at by ravens today, or would you prefer to be torn apart by wolves?~"; } if (sin_shadow.evil == false && cecilia_church in new_church) "Soon enough."; if (sin_shadow.evil == false) { deadflag = 3; "Struggling against the pain, you drag yourself to the edge of the fissure. Cecilia was right, choice is better than happiness. ^^For once, the Devil told the truth. True to her word, she allows you all the choice you could ever want. ^^~Did you want your eyes to be pecked at by ravens today, or would you prefer to be torn apart by wolves?~"; } if (emmanuele_shell.freed == false && sin_shadow.evil == true) "The father's plague-ridden cage shackles you to the Earth."; if (sin_shadow.evil == true) deadflag = 3; "~Yes, I do suppose it is time to be getting back,~ Cecilia muses. ~Saint Cuthbert's was only the first.~ ^^With that, she splays her fingers and a fissure tears through the church. You take her hand, and walk into the rift. ^^The screams of the damned are sweet music. The chorus welcomes you home."; ], u_to [; if (fissure notin location) "Not yet."; if (sin_shadow.evil == false && self.repented == false) { deadflag = 3; "As the life drains from your body, your soul struggles against the pull of Hell. You rise up. You feel light and free. ^^But it is a false feeling. Your sin is too heavy. It weighs on you like stones shackled to your ankles. As it drags you into the fissure, you scream. ^^Your cries split the air, but Heaven is too far to hear."; } if (sin_shadow.evil == false && self.repented == true) { deadflag = 3; "As the life drains from your body, your soul struggles against the pull of Hell. You rise up. You feel light and free. ^^You spin up towards Heaven, the glow of the moon soft upon your new skin. Already, you feel the weight of decision lifted from your shoulders. ^^For once, the Devil didn't lie. Heaven is nice, and you like it. No, do you like it? You can't tell anymore."; } if (sin_shadow.evil == true) "Soon, hopefully. For now, the battle still wages on Earth."; ], cant_go [; if (sin_shadow.evil == false) "The fire rages all around. There is nowhere to go."; if (emmanuele_shell.freed == false && sin_shadow.evil == true) "The shell is too weak. The fire would consume it."; if (sin_shadow.evil == true) "There is no need. Saint Cuthbert's is ruined: your work is done."; ], has ; Object emmanuele_shell "father's body" with name 'emmanuele' 'body' 'shell' 'father^s' 'father' 'priest', article "the", before [; Drop,ThrowAt,Insert,PutOn: if (emmanuele_body in new_church) "You are already free."; else StopDaemon(new_church); give cecilia_church ~concealed; give drogo_church ~concealed; self.freed = true; remove self; move emmanuele_body to new_church; "Ahhh, that feels good. With a flourish, you step from the father's dried, wrinkled body, allowing it to crumple to the ground. He groans. ^^Freedom. ^^You stretch your wings and stomp your hooves. It has never felt so good. The air tastes delicious now that it is not breathed through that weak human nose. ^^Drogo screams: a delightful sound. He rushes to your old body, lifting it into his arms and murmuring sweet songs into its ears."; ], react_before [; Exit: if (noun == nothing or self) <>; Ask,Tell,TalkTo,Order,Yes,No,Answer: "You try to speak, but a ragged cough is all that emerges. Chunks of lung dribble from your mouth, and blood paints your lips. Damn this weak body."; ], freed false, has concealed; Object emmanuele_body "father" with name 'emmanuele' 'body' 'shell' 'father^s' 'father' 'priest' 'smear', article "the", description [; if (self.dead == true) "He is little more than a smear upon the stone."; else "Dried, shrivelled, and useless. I was a hard two days in that worthless husk. His chest moves up and down; a sliver of life remains in him."; ], life [; Ask,Tell,Answer,Order: if (self.dead == true) "He is little more than a smear upon the stone: you can do no more."; else "He groans. Nothing more."; ], before [; TalkTo: if (self.dead == true) "He is little more than a smear upon the stone: you can do no more."; else "He groans. Nothing more."; Kill,Attack: if (self.dead == true) "He is little more than a smear upon the stone: you can do no more."; if (drogo_church.dead == true) { self.dead = true; "With a sharp-toothed grin, you lift your hoof and slam it into his skull. It collapses like an overripe squash, giving off a most charming squelching sound."; } else self.dead = true; "With a sharp-toothed grin, you lift your hoof and slam it into his skull. It collapses like an overripe squash, giving off a most charming squelching sound. Cecilia laughs. ^^Drogo screams and begins pushing together the pieces of the father's skull, trying to mend them back together."; ], dead false, has animate male scenery; Object church_bodies "bodies" with name 'bodies' 'brothers' 'parishoners' 'parishioners' 'worshippers' 'men' 'corpses', description [; if (sin_shadow.evil == true) "Drogo has brought the corpses from the cellar and sat them upon the pews. It is beautiful. They sit, row upon row, gazing up to the chancel with maggots in place of their eyes."; if (sin_shadow.evil == false) "Oh God, it is horrible. Some have been placed kneeling, their hands nailed together in eternal prayer. All are ravaged with plague and decay. They stare up to Matteo without pause."; ], before [; PrayFor: "If only you had been more aware. Your prayer turns bitter in your mouth."; Search,Eat: if (sin_shadow.evil == true) "You rummage through the bodies until you find a large, juicy maggot. With a flick of your wrist, you toss it into the air and catch it in your mouth. Tasty."; else "Nothing but maggots and rotted flesh."; ], found_in new_church, has scenery; Object fissure "fissure" with name 'fissure' 'crack' 'hole' 'crevice' 'chasm' 'pit', initial "A jagged fissure splits the church, calling you with a chorus of flames.", description "Fire spews from it, promising warmth and freedom.", before [; Enter: <>; ], has static; Object fire "fire" with article "some", name 'fire' 'flames' 'fires' 'flame' 'smoke', description "It rages all about. A cage of flame.", before [; default: "It is the least of your concerns."; ], found_in new_church, has scenery; Object broken_glass "broken glass" with name 'broken' 'glass' 'shattered' 'windows' 'stained' 'window', description "Broken glass lies scattered about the church: the remnants of the Saints.", after [; Take: "You grab a jagged piece of glass, the sharp edges reminding you you're alive."; ], has concealed; Drogo drogo_church "Drogo" with name 'brother' 'man' 'drogo' 'figure' 'shape', initial [; if (sin_shadow.good == true) "Drogo lies in a crumpled heap upon the floor."; if (emmanuele_body notin new_church) "Drogo flies about the room wildly, propping up bodies and positioning everything just so."; if (self.dead == true) "Drogo lies in a crumpled heap upon the floor."; if (emmanuele_body.dead == true) "Drogo desperately tries to piece the father's skull back together."; if (emmanuele_body in new_church) "Drogo weeps into the father's hair, his body quivering."; ], description [; if (new_church.good_tirade > 0 && new_church.good_tirade < 5) "He fades in and out of view: more of a shadow than a man."; if (new_church.good_tirade >= 5) "Drogo lies in a crumpled heap upon the floor."; if (self.dead == true) "A useless shell."; if (emmanuele_body in new_church) "His sobs are music in your ears. His tears are like sweet honey."; if (sin_shadow.good == false) "His eyes are wild and his hair is damp. He eyes you suspiciously, but is more concerned with the decor of the church."; ], life [; Ask,Tell,Answer,Order: if (sin_shadow.evil == true) "All he does is spit the Lord's prayer at you."; if (sin_shadow.good == true) "He lies unconcious upon the floor. He cannot speak."; if (sin_shadow.middle == true) "He flutters about, his mind is gone."; ], before [; Search: if (self.dead == true) "Nothing but fur and sweat."; else "He smacks away you fingers."; TalkTo: if (sin_shadow.evil == true) "All he does is spit the Lord's prayer at you."; if (sin_shadow.good == true) "He lies unconcious upon the floor. He cannot speak."; if (sin_shadow.middle == true) "He flutters about, his mind is gone."; Kill,Attack: if (drogo_church.dead == true) "He's already dead."; if (sin_shadow.good == true) "You are far too weak."; if (sin_shadow.evil == true && emmanuele_shell.freed == false) "Your shell is too weak. You can barely move, let alone strike out."; if (sin_shadow.evil == true && self.dead == false) drogo_church.dead = true; "You lift Drogo by the neck, squeezing ever so slightly. His flesh feels so soft. Your fingers curl: slowly, sweetly. He chokes. He tries to scream, but a ragged wheeze is all that emerges. ^^Your hand closes and a satisfying crack sounds above the flames. His body crumples as you toss it to the ground."; ], dead false, has concealed; Cecilia_class cecilia_church "Cecilia" with initial [; if (sin_shadow.good == false) "Cecilia smiles at you."; if (sin_shadow.good == true) "Cecilia looms above you, fire in her eyes."; ], description [; if (sin_shadow.good == false) "She is glory. She is hate. Her tattered white rags have been stained with blood. Fire dances in her eyes, a reflection of the church. She grins. She is pleased."; if (new_church.good_tirade > 0 && new_church.good_tirade < 5) "You can't see her so much as feel her. She is everywhere. Her hate permeates the room."; if (sin_shadow.good == true) "She towers above you. She looks so very different. Her tattered white rags have been stained with blood. Fire dances in her eyes, a reflection of the church. She revels in the heat. She is home."; ], life [; Kiss: if (sin_shadow.evil == true) "You wrap your tongue around hers. Sweet blood. Delicious."; ], has concealed; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !ROOMS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Your Bedroom !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room your_bedroom with short_name [; if (sin_shadow.evil == true) { print "Bedroom"; rtrue; } else { print "Your Bedroom"; rtrue; } ], initial [; if (lucca_behind_door in outside_calefactory) { move going_to_bed to all_hints; QuoteFrom(before_bed_quote); } if (self hasnt visited) "^Six crisp chimes mark Vespers. Your heart flutters for a moment, and you place your head in your hands."; if (entrance_door has open) { give entrance_door ~open; "Before you leave, you close the entrance door lest the snow, or worse, get in."; } else return false; ], description [; switch(time_shadow.current_time) { 0,1: if (self hasnt visited) "Your room is small; it is the same as all the others, but it seems smaller of late. With so many of your brothers gone, there has been little for you to do but wait. Wait for the spots to appear in this tiny, dark room. ^^A chill breeze spins in through the window and out the door to the west."; else "The room is small; the same as all the others. But it seems smaller of late. The hall extends to the west."; 2: "Your room is still except for the scuffling beneath your door and a draft breezing in through the window."; 3,5,6,7: "Cold, heavy light slides in through the window and creeps along the floor out the door to the west."; } ], before [ k; Hide: if (time_shadow.current_time ~= 2) return false; else print "You hide beneath your bed, and pray to see morning's light.^^^"; @read_char 1 -> k; <>; Listen: if (constantin3 in entrance_hall) "Constantin thuds back and forth behind the door."; if (time_shadow.current_time < 2) "The whistle of the wind: nothing more."; if (time_shadow.current_time == 2) "It sounds as through someone is trying force your door open quietly. The desk holds them back."; ], each_turn [; if (time_shadow.current_time == 3 && self.woken_up == false) { StartDaemon(self); self.woken_up = true; "^Returning to your cold bed, you sleep until morning. ^^You awake to the sound of a sharp pounding at your door. ^^~Father!~ Constantin's growl is clear. ~Wake up, Lucca has escaped!~ ^^Morning light streams through the window, but it is a cold, heavy light."; } else return false; ], daemon [; switch(++(self.woken_up)) { 3: "^~Hurry up, father!~ Another knock."; 5: "^~Quit wasting my time!~"; 6: StopDaemon(self); } ], woken_up false, out_to [; <>; ], w_to entrance_hall, ; Object your_window "window" with name 'window' 'opening' 'pane' 'my', description "It is little more than a hole to let the heat in in the summer and the cold in in the winter.", before [; Close,Open: "It is no more than a square cut into the stone wall; it cannot be opened or closed."; Enter: "It is far to small to fit through."; Search: switch(time_shadow.current_time) { 0,1: "Blackness."; 2: "Suffocating blackness."; 3: "The light sears your eyes from the sun above and the snow below."; 5: "The dim light of the clouds matches the dim light of the snow."; 6,7: "With the angle of the sun, no light enter directly. Instead it twists and tumbles as a ragged mass on the floor."; default: "Blackness."; } ; ], found_in your_bedroom, has scenery; Object your_bed "bed" with name 'bed' 'mattress' 'my', initial [; switch(time_shadow.current_time) { 0: if (your_bedding in self) "Against the other side is your bed, the blanket wrapped up in itself from this morning."; else "Against the side other is your bed."; 1: if (your_desk.against_door == false) "Your bed calls to you from the side of the room. Her song is sweet, but it sings of treachery."; else "Your bed calls to you from the side of the room."; 2: "Your bed calls to you from the side of the room."; default: "The bed, cold and harsh, no longer welcomes you."; } ], description "Little more than a damp mattress on four legs. Still it is comfortable on cold nights.", react_before [; Sleep: if (time_shadow.current_time >=3) "If only you could. Sleep makes everything easier."; if (time_shadow.current_time == 2) { statusbar_right = "Lauds"; time_shadow.current_time = 3; move morning_lucca to all_hints; move horse_stall to stables; move horse to stables; remove tower_dead_body; remove dead_body; remove lucca2; remove lucca_behind_door; remove constantin2; remove ignatius2; remove drogo2; remove cecilia1; move cecilia2 to entrance_hall; remove figure_behind_door; move constantin3 to entrance_hall; move constantin_behind_door to your_bedroom; DayTwo (); return true; } if (time_shadow.lucca_jailed == true) { if (your_desk.against_door == false) { deadflag = 4; print "You lay your head down on the cold, hard bed and drift off to sleep faster than you expected. ^^A few hours later, you are awoken by the sound of heavy breathing coming from beside your bed. It is the last sound you hear before the knife slides across your throat.^"; return true; } else { move night_time to all_hints; move figure_behind_door to your_bedroom; statusbar_right = "Matins"; time_shadow.current_time = 2; QuoteFrom(proverbs6_10); "You lay your head down on the cold, hard bed and drift off to sleep faster than you expected. ^^A few hours later, you are awoken by a strange scuffling sound outside."; } } else "You're not tired yet. At least, not tired enough for bed."; ], before [; Search: <>; LookUnder: "Mould creeps from the blackness, but you find nothing else."; Push,Pull: "You used to be able to do this. Not anymore. Your age is beginning to show."; Smell: "The mattress smells like you in a nice, comfortable way."; Make: "You do not have the energy for that."; ], found_in your_bedroom, has static supporter enterable; Object your_desk "desk", with name 'desk' 'my' 'table', initial [; if (self.against_door == true) "The desk squats by the door."; else { switch(time_shadow.current_time) { 0: "Your old desk is pushed up against one side. It sags but holds itself up proudly."; 1: "Pushed up against the wall on one side is the desk, its surface sagging slightly in the middle. The dampness is taking its toll."; 2: "The desk squats by the door."; 3: "Even in the sunlight, the desk looks tired."; default: "The dim light leaches all color from the desk."; }; } ], description "It was once a fine desk, but now it sags in the middle and smells faintly of rotting wood. Still, it serves well enough when you need to write: a need you haven't had much of lately.", before [; Push,Pull: if (time_shadow.current_time == 2) { deadflag = true; "The moment you remove the desk's weight from the door, the door flies open, and a cowled figure leaps into the room. Although it is dark, you can see the glinting of the knife more clearly than anything you have ever seen. Fitting, as it is the last thing you do see before it slides across your throat."; } if (self.against_door == false && your_door has open) { give your_door ~open; self.against_door = true; print "(first closing the door)^"; "Beads of sweat pooling into your eyebrows, you heave the desk towards the door. A few of your joints crack a bit, but you manage to move the desk."; } if (self.against_door == false && your_door hasnt open) { self.against_door = true; "Beads of sweat pooling into your eyebrows, you heave the desk towards the door. A few of your joints crack a bit, but you manage to move the desk."; } else { self.against_door = false; "With as much effort as it took to move the desk in the first place, you slide it back against the wall. You're getting too old for this."; } Smell: "The wood is slightly rotten: not enough to be an inconvenience though."; Open,Search: "It has no drawers."; ], found_in your_bedroom, against_door false, has static; Object your_bedding "bedding", with name 'bedding' 'coverings' 'covering' 'blanket' 'blankets' 'sheet' 'sheets', article "some", description "These have kept you warm on many cold nights.", after [; Take: give self ~concealed; ], has clothing concealed; Simple_Door your_door "bedroom door" with article "your", pname 'your' 'my' '.x' 'door' 'wooden' 'hinges' 'cracked' 'western' 'bedroom' , side1_to your_bedroom, side1_dir e_to, side2_to entrance_hall, side2_dir w_to, react_before [; Go: if (your_desk.against_door == true) { give self open; ; return false; } if (noun notin compass) rfalse; if ((noun.door_dir==self.side1_dir && location==self.side2_to) || (noun.door_dir==self.side2_dir && location==self.side1_to) || (location.(noun.door_dir)==self)) self.automat(); ], before [; LookUnder: if (time_shadow.current_time == 2) "Candlelight streams from under the door, blocked now and then by the shadow of feet."; if (constantin_behind_door in your_bedroom && self hasnt open) "Constantin's feet scuffle back and forth."; Open: if (your_desk.against_door == true) { ; return false; } if (constantin_behind_door in your_bedroom && self hasnt open) "Constantin waits impatiently for you in the hall."; else return false; ], found_in your_bedroom entrance_hall, has open; Constantin constantin_behind_door "Constantin" with before [; Listen: "Constantin thuds back and forth behind the door."; default: "He's in the hall."; ], react_before [; Go,Enter: if (noun == w_obj or your_door) remove self; return false; ], has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Entrance Hall !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room entrance_hall "Entrance Hall" with initial [; if (self hasnt visited) { move coin to alms_box; "Pulling your frock tightly about you, you sigh and exit to the hall."; } if (matteo_room has visited && entrance_door.cecilia_let_in == false) StartDaemon(self); else return false; ], description [; if (self hasnt visited) "As cold as your room is, this hall is even colder. The stone walls dance and glisten with dampness. The warmth of your room awaits to the east, and the cold of the outside world through a heavy door to the south. Moonlight streams in from the cloister to the north, and a flimsy door secures the locutory to the west."; else "There is little to be seen here but the locutory door to the west and your room to the east. North and south both lead to the cold: north to the cloister and south to outside."; ], daemon [; if (player notin self) StopDaemon(self); else switch (++(self.cecilia_heard)) { 1: "^As you enter the hall, you hear a feeble rasping at the southern door. ^^~Please, help me. Is anyone in there?~ A faint voice calls over the wind. ^^~Please, I have traveled for days. Rovato is a graveyard. The rats have eaten everything.~"; ! ^^Just then, in a voice stronger than before: ~You are in danger, ! father.~"; 2: "^~Please. It is so cold.~"; 3: "^~Please...~ ^^A light thud: the sound of flesh on stone."; 4: StopDaemon(self); } ], cecilia_heard 0, e_to your_bedroom, s_to entrance_door, w_to locutory_door, n_to cloister, out_to [; <>; ], ; Simple_Door entrance_door "outside door" with name 'southern' 'south' 'outside' 'wooden' 'door' 'hinges' 'cracked' 'heavy', description [; if (bar.down == true) "A sturdy door. Perhaps the only sturdy one at Saint Cuthbert's. A heavy wooden bar currently holds it steady under the pounding of the wind."; else "A sturdy door. Perhaps the only sturdy one at Saint Cuthbert's. The bar that usually secures it against the outside world is raised."; ], after [; Open: if (self.cecilia_let_in == false && entrance_hall.cecilia_heard >= 1) { StopDaemon(entrance_hall); self.cecilia_let_in = true; QuoteFrom(psalms96_6); move waking_cecilia to all_hints; move cecilia_body to entrance_hall; "Pushing the bar out of the way, you open the door, allowing a frail figure and a drift of snow to spill into the hall. ^^Before you, fingers bloody and face as pale as the snow it lies in, is a young woman. Her clothing is little more than tatters with stains of blood from where her hands were resting. ^^~Please,~ she gasps, raising herself up for a moment. ~I am so cold.~ With that, she returns her face to the icy ground."; } else return false; ], react_before [; Go: if (location == entrance_hall && noun == s_obj && entrance_door hasnt open && entrance_door.cecilia_let_in == false && entrance_hall. cecilia_heard >= 1) <>; else if (noun notin compass) rfalse; if ((noun.door_dir==self.side1_dir && location==self. side2_to) || (noun.door_dir==self.side2_dir && location==self. side1_to) || (location.(noun.door_dir)==self)) self.automat(); ], each_turn [; if (entrance_door has open && self.cecilia_let_in == false && entrance_hall.cecilia_heard >= 1) { StopDaemon(entrance_hall); self.cecilia_let_in = true; QuoteFrom(psalms96_6); move cecilia_body to entrance_hall; "Pushing the bar out of the way, you open the door, allowing a frail figure and a drift of snow to spill into the hall. ^^Before you, fingers bloody and face as pale as the snow it lies in, is a young woman. Her clothing is little more than tatters with stains of blood from where her hands were resting. ^^~Please,~ she gasps, raising herself up for a moment. ~I am so cold.~ With that, she returns her face to the icy ground."; } else return false; ], side1_to archway, side1_dir s_to, side2_to entrance_hall, side2_dir n_to, cecilia_let_in false, found_in entrance_hall archway, has door scenery openable; Object bar "bar" with name 'bar' 'board' 'block', description [; if (self.down == true) "A heavy bar secures the monastery from the influences of the outside."; else "The heavy bar stands propped up against the wall."; ], before [; Push,Pull: if (self.down == true) { self.down = false; "Straining slightly, you push the bar up against the wall."; } else self.down = true; "With a slight grunt, you knock the bar back into place. It lands with a reassuring thud."; ], down true, found_in entrance_hall, has scenery; Object alms_box "alms box" with name 'oak' 'oaken' 'alms' 'alm' 'box' 'collection', description "It used to be filled with alms. Now, mostly cobwebs.", when_open [; if (coin notin self) "The alms box hangs open, as poor as the people it is meant to help."; else "The alms box hangs open, a bright coin sparkling from within."; ], when_closed "The alms box hangs closed beside the door.", before [; Receive: if (noun ~= coin) "It's only meant for alms."; ], after [; Open: if (coin in self) "A single coin sparkles at you from the bottom."; ], found_in entrance_hall, has static openable container; Object coin "coin" with name 'coin' 'money' 'currency' 'bright' 'silver' 'alm' 'alms', description "It gleams in the light.", after [; Take: QuoteFrom(matthew26_15); "It feels warm in your hand."; ], has ; Object cecilia_body "young woman" with name 'young' 'woman' 'cold' 'lady' 'girl', describe [; if (self in entrance_hall) "^A young woman lies collapsed upon the ground: drifts of snow dancing around her limp body."; else "^A young woman lies collapsed upon the ground."; ], description "For all her cuts and tattered clothes, she is still exceedingly beautiful. Her skin, while pale, is unblemished. In fact, no sign of the plague can be seen within her at all. She is perfection.", before [; Receive: if (noun == your_bedding) "Perhaps if you get her somewhere more comfortable first."; else "Her slumber is too deep for her to stir."; Wake: "Her slumber is too deep."; HelpPerson: <>; TalkTo: "She slumbers; she cannot hear."; Invite: "She cannot hear. And if she could, she is far too weak."; Attack: "You strike the woman, hard. ~Wake up!~ You snarl. ^^She doesn't."; Take,Pull: move self to player; "With more than a little trouble, you hoist the girl into your arms. Your knees feel as though they might buckle but hold for now."; ], after [; Drop: if (location == entrance_hall) "You drop the girl to the ground with a thud. She groans, but remains comatose."; ], react_before [; Give: if (second == self) "Her slumber is too deep."; Go: if (noun == e_obj && location == entrance_hall) "Perhaps the locutory would be more comfortable."; if (noun == n_obj && self in player && location == entrance_hall) "The young woman groans and kicks slightly as the cold from the cloister scrapes across her skin."; if (noun == s_obj && self in player) print "The young woman groans with the chill, but she can do nothing to stop you.^"; return false; Open,PutOn,Insert,Examine,Look: return false; Drop: if (location == archway && noun == self) { deadflag = 5; "With a shrug, you drop the girl back outside. She is not your problem. ^^Besides there was little you could do. The plague was already within Saint Cuthbert's, and within you. Better that she fade into the cold than go kicking and screaming with delirium."; } if (location == locutory) <>; else return false; default: if (self in player) "Your knees are beginning to buckle. You had better do something with her before trying anything else."; else return false; ], life [; Kiss: QuoteFrom(kiss_cecilia_quote); "You kiss her gently. She is soft. So soft. She tastes good."; Touch: QuoteFrom(kiss_cecilia_quote); "You touch her gently. She is soft. So soft."; Ask,Tell: "She slumbers; she cannot hear."; Order: "The cold has taken her strength. She cannot hear or move."; ], has animate female; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Archway !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room archway "Archway" class Outside_room, with description "The last hint of shelter against the outside world. But it is only a hint. The wind rushes by like a stream of ice water to the south: only the curve of the arch protects you. The warmth, for as much as it can be called that, of the monastery awaits to the north and the cold of outside to the south.", n_to entrance_hall, s_to [; if (time_shadow.current_time == 0 or 1 or 2) "The wind gusts at your candle and bites at your feet. To venture out in the darkness would be suicide."; else return path; ], out_to [; <>; ], in_to [; <>; ], has ; Object arch "arch" with name 'arch' 'archway' 'curve', description "The tapered blocks fit together in a crooked fashion; they seem as though they could slip at a moment's notice. Still, the archways shields you from the wind.", found_in archway, has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Locutory !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room locutory "Locutory" with initial [; if (cecilia_body in player) ![; ! if (cecilia_body in player && locutory_door hasnt open) ! "Nudging the handle with your arm, you carefully open the door, the ! young woman still hanging limply in your arms. You stumble, but ! catch yourself before allowing her to drop."; ! if (cecilia_body in player && locutory_door has open) "You turn sideways and slide into the locutory, careful not to catch the young woman's head on the frame."; if (entrance_door has open) { give entrance_door ~open; "Before you leave, you close the entrance door lest the snow, or worse, get in."; } else return false; ], ! ], description [; if (locutory_fireplace.lit == false) "The locutory used to be alive with the bartering of merchants and the tales of visiting brothers, but since the gate was closed, no one has been in here but you. A small bed is pushed up against the wall for those visitors not permitted residency in the monastery, its tired frame supporting a light mattress. ^^Near the door to the east is a fireplace, its embers cold for days."; else "The locutory used to be alive with the bartering of merchants and the tales of visiting brothers, but since the gate was closed, no one has been in here but you. A small bed is pushed up against the wall for those visitors not permitted residency in the monastery, its tired frame supporting a light mattress. ^^A small circle of warmth surrounds the fireplace near the door to the east."; ], before [; Smell: if (noun == nothing or locutory_fireplace && locutory_fireplace.lit == true) "The smoke from the fire burns your throat and stings your eyes."; Listen: if (locutory_fireplace.lit == true) "The fire spits and crackles weakly."; ], e_to entrance_hall, out_to [; <>; ], has ; Simple_Door locutory_door "door to the locutory" with pname '.x' 'door' 'locutory' 'eastern' 'wooden' 'hinges' 'cracked' 'flimsy', side1_to locutory, side1_dir w_to, side2_to entrance_hall, side2_dir e_to, found_in locutory entrance_hall, has ; Object locutory_fireplace "fireplace" with name 'fire' 'place' 'fireplace' 'hearth' 'embers' 'flames' 'log' 'logs' 'ash' 'ashes' 'soot', description [; if (self.lit == true) "The wet logs give off little heat and much smoke. Still, it is better than the chill that was present before."; else "The fireplace lies cold: cold as the rest of Saint Cuthbert's."; ], react_before [; Burn: if (noun == nothing) <>; ], before [; Touch: if (self.lit == true) "The fire burns your hand. You withdraw it, but blisters are still sure to form."; else "Gritty with soot."; Search: if (self.lit == true) "The fire bites at your hands; you find nothing but burns."; else "You find nothing but ashes."; Extinguish: if (self.lit == false) "It's not lit."; else "Best to leave it on. This place can use all the warmth it can get."; Burn: if (self.lit == false) { QuoteFrom(isaiah44_16); self.lit = true; "After much coaxing, you finally get the wet logs to ignite. The flame is weak, but it will do."; } else "The fire is already lit. You can do no more."; ], lit false, found_in locutory, has scenery; Object locutory_bed "bed" with name 'bed' 'mattress' 'small', description "This bed is small but clean. Visitors are rare lately.", before [; Search: <>; LookUnder: "Mould creeps from the blackness, but you find nothing else."; Receive: if (noun == your_bedding && cecilia1 in location) { move your_bedding to cecilia1; cecilia1.bedding_given = true; "You drape your bedding over the girl, and she seems to calm down a bit."; } if (noun == cecilia_body) { remove cecilia_body; move cecilia1 to locutory; "You lay the young girl on the bed, and she immediately relaxes. Her eyes remain closed but no longer twitch with discomfort."; } else return false; ], found_in locutory, has scenery supporter enterable; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Cloister !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room cloister "Cloister" class Outside_Room, with name 'colonnade', initial [; if (sin_shadow.evil == true && matteo_papers.been_read == true) { move cecilia_tower2 to tower; remove constantin_tower; } if (matteo_papers.been_read == true && constantin_dead notin constantin_room) { remove constantin5; move constantin_tower to tower; } if (self hasnt visited && entrance_door has open) { move lucca1 to cloister; StartDaemon(lucca1); "Before you leave, you close the entrance door lest the snow, or worse, get in."; } if (self hasnt visited) { move lucca1 to cloister; StartDaemon(lucca1); "Bracing yourself for the cold, you lower your hood and exit to the cloister."; } if (entrance_door has open) { give entrance_door ~open; "Before you leave, you close the entrance door lest the snow, or worse, get in."; } else return false; ], description [; switch(time_shadow.current_time) { 1,2: "There will be no garden here come spring. It is hard to imagine the snow will ever melt. ^^The colonnade is broken to the south by the exit to the hall and to the west by the entrance to the refectory. The brothers' dormitory lies to the east, between the calefactory in the southeast and the belltower in the northeast. ^^The church squats to the north, Her spires clawing at the sky as She tries to climb away from the Earth."; 0: "In the warmer months, Brother Matteo maintains a beautiful garden in the cloister. Now there is nothing but a few dead vines sticking out from beneath a blanket of snow. Still, it has a calm dignity: the wind finds no entrance here. The colonnade is broken to the south by the exit to the hall and to the west by the entrance to the refectory. The brothers' dormitory lies to the east, between the calefactory in the southeast and the belltower in the northeast. ^^The church commands from the north, its spires reaching up to Heaven."; 3: "The sun shines in the east, but the cloister is dim. There was no snow last night, but it remains high. It is dirty and soaks up what little light makes it here. ^^The colonnade is broken to the south by the exit to the hall and to the west by the entrance to the refectory. The brothers' dormitory lies to the east, between the calefactory in the southeast and the belltower in the northeast. ^^The church cowers away from the sun. Her sins, like all sins, are revealed by the light of day."; 5: "Clouds close off the sky, blocking the light but not the snow. ^^The colonnade is broken to the south by the exit to the hall and to the west by the entrance to the refectory. The brothers' dormitory lies to the east, between the calefactory in the southeast and the belltower in the northeast. ^^The church stands a little taller now. God cannot see as well through the clouds."; 6,7: if (location == cloister && fire_shadow.room_said >= 2) "The church is shrouded in a halo of fire: She is a whore in a red dress. Smoke spills from the door and eaves. The fire dances; She directs it in a ring around the cloister. Only the stone tower in the northeast is unharmed."; else "Clouds close off the sky, blocking the light but not the snow. ^^The colonnade is broken to the south by the exit to the hall and to the west by the entrance to the refectory. The brothers' dormitory lies to the east, between the calefactory in the southeast and the belltower in the northeast. ^^The church rolls and laughs to the north, pointing Her sharp fingers in a perpetual mock at God."; }; ], each_turn [; if (dead_body in belltower_bottom && self.matteo_heard == false && cecilia1.woken == true) { self.matteo_heard = true; "^~Oh, my God!~ You hear someone cry from the northeast. ~Matteo!~"; } else return false; ], matteo_heard false, s_to entrance_hall, w_to refectory, ne_to belltower_bottom, n_to church, e_to dormitory, se_to outside_calefactory, has ; Object cloister_garden "garden" with name 'garden' 'gardens' 'beautiful', description "The garden hasn't been here in months. All that is left are a few dead vines.", before [; Examine: return false; default: "The garden hasn't been here in months. All that is left are a few dead vines."; ], found_in cloister, has scenery; Object vines "vines" with name 'vine' 'vines', description "Tangles of vines poke up through the snow.", before [; Pull: "You pull the vines, and they pull back, tearing at your dry, brittle skin."; Take: "Despite being dead, they cling desperately to the soil. You cannot move them."; ], found_in cloister, has scenery pluralname; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Refectory !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room refectory "Refectory" with description [; if (self hasnt visited) { QuoteFrom(isaiah51_17); "The only room at Saint Cuthbert's large enough to hold all the brothers, except for the church, the refectory seems immense. Normally, when you are in here the place is alive. Now, the only movement is that of drafts spinning between the tables and out to the cloister in the east. Row upon row of deserted seats stand testament to the damage inflicted by the plague. The kitchen lies to the south."; } else "The only room at Saint Cuthbert's large enough to hold all the brothers, except for the church, the refectory seems immense. Normally, when you are in here the place is alive. Now, the only movement is that of drafts spinning between the tables and out to the cloister in the east. Row upon row of deserted seats stand testament to the damage inflicted by the plague. The kitchen lies to the south."; ], e_to cloister, s_to kitchen, out_to [; <>; ], in_to [; <>; ], has ; Object tables "tables" with name 'table' 'tables', description "Rows of tables split the refectory into a maze of narrow paths. Their unfinished surfaces bear the scratches of many meals.", found_in refectory, has supporter scenery pluralname; Object drogo_scratch "scratch" with name 'scratch' 'scratches' 'scratchings' 'pattern' 'hole' 'picture', description "At first it looks random, but upon closer inspection it appears to a picture. It cuts deep: two intersecting lines surrounded by jagged grooves. A cross. Fire.", found_in refectory, has scenery; Object chairs "chairs" with name 'chair' 'chairs' 'seat' 'seats', description "Dozens of chairs, one for each brother, you imagine, line the tables. They look so orderly: all pushed in.", found_in refectory, has supporter scenery pluralname enterable; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Kitchen !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room kitchen "Kitchen" with initial [; if (cellar has visited) move after_cellar to all_hints; else move getting_in_cellar to all_hints; ], description [; if (self hasnt visited) "The dead don't eat, or so you've been told. Still, the kitchen is practically empty. Bare tables stand with no crumbs on them. All the perishables were finished up this morning. No more will be coming if Rovato is as barren as you think. Hopefully, some remain in the cellar through the hatch in the floor. The refectory lies to the north."; else "The dead don't eat, or so you've been told. Still, the kitchen is practically empty. Bare tables stand with no crumbs on them, and a hatch through the floor leads to the cellar. The refectory lies to the north."; ], n_to refectory, d_to cellar, out_to [; <>; ], has ; Object kitchen_tables "tables" with name 'table' 'tables' 'bare', description "Not a speck on them.", found_in kitchen, has pluralname scenery; Object cupboard "cupboard" with pname 'cupboard' 'cabinet' 'door' 'large' 'cedar', initial [; if (self hasnt open) "Against one wall is a large cupboard, its door closed."; if (cecilia_food in self && self has open) "Against one wall is a large cupboard with a few scraps of food inside."; else "A bare cupboard sits up against the wall."; ], description [; if (self hasnt open) "The flimsy cedar door does nothing to secure the contents."; if (cecilia_food notin self && self has open) "The cupboard is as empty as your stomach."; if (cecilia_food in self && self has open) "A few crusts of bread and a piece of cheese are all that remains for food."; ], before [; Search: if (cecilia_food in self) "A few crusts of bread and a hard piece of cheese is all that remains of Saint Cuthbert's food."; ], after [; Open: if (self.opened == false) { QuoteFrom(baruch6_21); move cut_arm to misc_shadow; self.opened = true; "As the door swings open, a small black shape springs from inside. A flash of pain sears across your arm and then quickly subsides. You whirl around to see a cat tearing out into the refectory, a drop of blood falling from its claws."; } else return false; ], opened false, found_in kitchen, has static openable container ; Object cecilia_food "food" with article "some", name 'cheese' 'piece' 'bread' 'of' 'crust' 'crusts' 'food' 'scrap' 'scraps', description "Just a few crusts of bread and a piece of cheese. It's not much, but it should do.", before [; Eat: "You nearly vomit as you brush a sharp crust of bread up against your lips. You are at the point where you are so hungry you have no appetite."; ], has edible; Object cut_arm "cut" with name 'cut' 'gash' 'tear' 'arm' 'arms' 'elbow' 'wrist', description "A small scratch lines your arm from elbow to wrist.", has ; Object cutlery_rack "cutlery rack" with name 'cutlery' 'rack', initial "A cutlery rack sits on one of the tables.", description [; if (knife in self) "A large knife sits on the rack."; else "The rack is empty."; ], before [; Receive: if (noun == knife) return false; else "That won't fit."; ], found_in kitchen, has static container open; Object knife "knife" with name 'knife', description "You've seen Brother Constantin skin large cattle with this knife. For all its use, it remains sharp.", has concealed; Simple_Door hatch "hatch" with name 'cellar' 'hinges' 'hinge' 'cracked' 'wooden' 'hatch' 'floor' 'trapdoor' 'trap' 'door', description [; if (location == cellar) "The hatch leads up to the kitchen, away from the darkness and smell."; if (hatch_lock in kitchen) "A hatch sits in the floor with a large, steel lock upon it."; else "A hatch sits in the floor, leading to the cellar."; ], before [; Lock: <>; Close: if (location == cellar) <>; Open: if (hatch_lock has locked) "It's locked."; Attack: "The wood is far too strong."; Unlock: <>; ], react_before [; Open,Attack,Unlock: if (noun == hatch or hatch_lock) QuoteFrom(open_hatch_quote); return false; Go: if (noun == d_obj && (hatch_lock in kitchen && hatch_lock has locked)) { QuoteFrom(open_hatch_quote); "The hatch is locked."; } if (noun notin compass) rfalse; if ((noun.door_dir==self.side1_dir && location==self.side2_to) || (noun.door_dir==self.side2_dir && location==self.side1_to) || (location.(noun.door_dir)==self)) self.automat(); ], side1_to kitchen, side1_dir d_to, side2_to cellar, side2_dir u_to, found_in kitchen cellar, has ~open; Object hatch_lock "hatch lock" with pname 'hatch' 'lock' 'steel' 'large', description "Constantin insisted on locking up the cellar, to ensure the brothers could only get their alloted rations. He never gave you the key.", before [; Unlock: if (self hasnt locked) "It's already unlocked."; if (cellar_key notin player or location) "You do not have the key."; else give self ~locked; "You fit the key into the lock and turn. Click."; Lock: if (self has locked) "It's already locked."; if (cellar_figure.dead == true) "A lock means nothing to ghosts."; if (cellar_figure.incapacitated == true) "That should hold him."; else return false; Attack: if (constantin_tools notin player or location) "You strike the lock several times, but it is far to strong to damage with what you have."; else give self ~locked; remove self; "Taking a nail, you place it into the keyhole. Several quick smashes with the hammer later, the lock is little more than a mangled piece of steel."; Take: "It is bolted to the hatch."; ], with_key cellar_key, has scenery lockable locked; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CELLAR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room cellar with short_name [; switch(self.hiding) { 0: print"Cellar"; return true; 1: print"Cellar (hiding in the cask)"; return true; 2: print"Cellar (hiding amongst the bodies)"; return true; 3: print"Cellar (hiding beneath the stairs)"; return true; } ], initial [; if (self hasnt visited) { if (your_candle.lit == true) { blood_writing.examined = true; give vomit concealed; your_candle.lit = false; move once_in_cellar to all_hints; give hatch open; "The stairs are slippery with something. A particularly poor step sends you careening down, your candle getting snuffed out in the process."; } else move once_in_cellar to all_hints; "As you head down into the dark cellar, your foot steps into something slippery. You grasp for the rails, but miss and go careening down the stairs."; } else return false; ], description [; if (self.hiding > 0) switch(self.hiding) { 1: if (cellar_figure in location) "You can see little from the cask. A light bobs back and forth, casting dancing shadows on the walls."; else "You can see little from the cask."; 2: "Blackness. You cannot see anything. Twisted limbs and bloated torsos wrap their way around you."; 3: "You are sure there is more to the room than this, but for now, all you can see is steps."; } else { if (self.first_seen == true) { QuoteFrom(in_cellar_quote); move cowl to cellar_figure; move cellar_knife to cellar_figure; move cellar_stairs to self; move cask to self; move cellar_bodies to self; move prybar to self; StartDaemon(self); self.first_seen = false; "You brace yourself for the hard impact at the bottom, but it never comes. Instead, you fall into a soft, uneven mound. It jars your bones, but at least nothing breaks. The light from the kitchen barely makes it down the stairs: all you see is shadows."; } if (your_candle.lit == false) "You can make out little. Some light streams in down the stairs, but it is not enough. The floor is covered in something lumpy and deep."; if (your_candle.lit == true) self.bodies_seen = true; "Dozens of bodies fill the cellar: waist-high in some places. The faces are familiar, if not for the plague and decay. Hollow eyes drill into you from all sides. The flicker of the candle makes the corpses writhe and dance. ^^There is little food left. An old cask of wine sits against one side."; } ], before [; Exit: if (self.hiding == 0) return false; else self.hiding = 0; print "You return to the open.^"; <>; Hide: if (cellar_figure.incapacitated == true) "There is no need to hide anymore."; if (self.hiding > 0) "You are already hiding."; if (noun == nothing) "Where do you want to hide?"; if (noun == cask) { self.hiding = 1; "You quickly hop into the cask. It is small, but you fit."; } if (noun == cellar_bodies) { self.hiding = 2; "Bracing yourself for the smell, you worm your way into the pile of bodies. The weight is suffocating, as is the smell."; } if (noun == cellar_stairs) { self.hiding = 3; "You carefully slide your way beneath the stairs."; } Listen: if (self.ignatius_coming > 3 && cellar_figure.incapacitated == false) "The tap of footsteps. They are getting closer."; else "Dead silence."; Smell: if (noun == nothing or cellar_bodies) "Rot and sickness choke your nose worse than ever. Tears well up in your eyes, and vomit wells up in your throat."; Go: if (self.hiding > 0 && noun == u_obj) { self.hiding = 0; print "You return to the open.^"; <>; } if (noun ~= u_obj) return false; if (noun == u_obj && cellar_figure.incapacitated == true) { self.hiding = 0; return false; } if (noun == out_obj) <>; if (noun == u_obj && self.ignatius_there == false && cellar_figure. incapacitated == false) { self.ignatius_there = true; self.ignatius_coming = 4; "Just as you begin making your way up the stairs, the sound of footsteps in the kitchen makes you freeze. Someone is coming."; } if (noun == u_obj && self.ignatius_there == true && cellar_figure. incapacitated == false) deadflag = true; "As you reach the top of the stairs, a cowled figure comes into view. Before you can react, it knocks you down the stairs. Your fall is not so gentle this time. You thud your way down the steps, every bone breaking on the way. ^^The pain is unbearable, but the knife to your throat ends it soon enough."; ], daemon [; switch(++(self.ignatius_coming)) { 4: self.ignatius_there = true; "^Footsteps sound through the hatch. They are faint but growing stronger."; 5: "^~Damn!~ You hear someone curse from the kitchen. The footsteps grow faster as they rush towards the stairs."; 6: move cellar_figure to cellar; "^~Come on out, father!~ The voice is hoarse and broken. A candle bobs down the stairwell."; 7: if (cellar_stairs.slippery == true) { move cellar_knife to cellar; cellar_figure.incapacitated = true; StartTimer(time_shadow, 5); StopDaemon(self); "^With the stairs covered in grease, the figure loses his balance and is sent sprawling into the mound of bodies. ^^~Damnit!~ he cries, struggling to get back up."; } if (drausinus.cellar_prayed == true) { move cellar_knife to cellar; cellar_figure.incapacitated = true; StartTimer(time_shadow, 5); StopDaemon(self); "^The darkness swirls around the figure, strangling away the light. It wraps and twists: in the darkness he cannot see. He crashes to the floor, a heavy thud: bone against stone."; } if (your_candle.lit == true) { deadflag = true; "^With your candle lit, he easily finds you. ^^~There you are.~ A grin stretch beneath the man's cowl. So many teeth. A knife slides out of his robes. ^^You try to run, but he is too fast. Another body for the mound."; } else { switch(self.hiding) { 0: deadflag = true; "^The light of his candle is more than enough to see you standing in the open. ^^~There you are.~ A grin stretch beneath the man's cowl. So many teeth. A knife slides out of his robes. ^^You try to run, but he is too fast. Another body for the mound."; 1: deadflag = true; "^He searches for a moment, but in the end, the cask buys you only a few more minutes of life. ^^~There you are.~ A grin stretch beneath the man's cowl. So many teeth. A knife slides out of his robes. ^^You try to run, but he is too fast. Another body for the mound."; 2: "^He searches around for a few moments: it appears your plan is working. ^^~Come out!~ he demands. ~I know you're in here.~"; 3: deadflag = true; "^He searches for a moment, but in the end, the stairs buy you only a few more minutes of life. ^^~There you are.~ A grin stretch beneath the man's cowl. So many teeth. A knife slides out of his robes. ^^You try to run, but he is too fast. Another body for the mound."; } } 8: "^~Enough games, father~ he says, drawing a wickedly curved knife. Moving with cold, swift strikes, he begins stabbing into the mound of bodies."; 9: "^The knife flies in and out of the mound. One jab brings the blade within an inch of your ear."; 10: deadflag = true; "^You lie perfectly still, hoping to avoid the knife. But one lucky jab slices into your thigh. You stifle your cry, tears welling up. The next stabs slips its way into your hand. It is too much. ^^You cry out. He hears you. The next cut is for your throat."; } ], hiding 0, ignatius_there false, ignatius_coming 0, bodies_seen false, first_seen true, u_to kitchen, out_to [; <>; ], has ; Object prybar "prybar" with name 'bar' 'prybar' 'crowbar' 'pry' 'crow', initial [; "A prybar leans propped up against the cask."; ], description "It is heavy. The metal is strong and unwarped.", has concealed; Object cask "cask" with name 'cask' 'tun' 'wine' 'barrel' 'old' 'of', description "It is big and empty. The Eucharist often gets larger in times of stress.", has container enterable open scenery; Object cellar_bodies with name 'body' 'lump' 'mound' 'lumpy' 'bodies' 'corpse' 'corpses' 'lumps' 'pile' 'shadows' 'shadow', short_name [; if (cellar.bodies_seen == true) { print "bodies"; return true; } else print "lumps"; return true; ], description [; if (your_candle.lit == false) "You can make out nothing in this darkness."; else QuoteFrom(isaiah1_6); "Every face is familiar. They all mimic your own. Pale. Sick. But not all of them appear sick. And not all their wounds appear to be from the plague. Looking closely you see finger marks on many necks: knife wounds in many backs. ^^Ignatius."; ], before [; Eat: QuoteFrom(leviticus26_29); sin_shadow.evil = true; "The mass is soft; your teeth enter easily. You tear off a chunk. Flesh. Plague flesh. The tumor squelches in your mouth, and rancid blood drips from your lips."; PrayFor: "If only you had been more aware. Your prayer turns bitter in your mouth."; ], has scenery pluralname; Object cellar_stairs "stairs" with name 'stairway' 'stairwell' 'stairs' 'stair' 'step' 'steps', description "Just a set of wooden boards atop two counter running boards. There is usually plenty of food stored beneath them, but now it lies empty.", before [; Receive: if (noun ~= your_candle) return false; else self.slippery = true; "You smear the greasy tallow onto the steps, leaving a thick patina of fat."; ], react_before [; Attack,Trip,Take,Smell,Look,Listen,Exit,Go,Extinguish,Hide,PutOn,Insert, Wait,PrayTo,PrayThrough,Inv,Kill,Help: return false; Examine: if (cellar.hiding == 1 or 2) "You can't see a thing."; else return false; default: if (cellar.hiding > 0) "You can't while hiding."; else return false; ], slippery false, has scenery supporter; NPC cellar_figure with short_name [; if (self.unmasked == true) { print "Ignatius"; rtrue; } else print "figure"; rtrue; ], name 'figure' 'man' 'cowled' 'brother' 'ankles' 'legs' 'feet' 'foot' 'ankle' 'heel' 'heels' 'footsteps' 'footstep' 'ignatius' 'brother', initial [; if (self.dead == true) "There is a bloody smear upon the stone from where you ground his head into the floor."; if (self.unmasked == true) "Ignatius lies upon the floor, bleeding through a gash in his forehead."; if (self.incapacitated == true) "The figure lies prone upon the ground."; if (cellar.hiding == 3) "A pair of feet stand on the steps before you."; else "The figure prowls about, mumbling."; ], description [; if(self.dead == true) "He is no more than a bloody smear upon the ground."; if (self.unmasked == true) "Ignatius lies upon the floor, bleeding through a gash in his forehead."; if (self.incapacitated == true) "He lies in a crumpled heap upon the floor. His cowl still obscures his face."; else "He moves swiftly. His frock is so large and his cowl so large, you cannot identify him."; ], before [; Eat: if (self.dead == false && self.incapacitated == false) "Not while he's still alive."; else QuoteFrom(leviticus26_29); sin_shadow.evil = true; "The blood is warm, delicate. It has a hint of illness, but it still soothes the thirst that dries you deep inside."; Take: if (self.incapacitated == false) <>; else "He is too heavy for you to move."; Unmask,Search,Pull,Push,Open: if (self.unmasked == true) "You've already done that."; else self.unmasked = true; "Warily, you lift the cowl from the man's face. ^^Ignatius."; Attack,Trip,Kill: if (self.dead == true) "He's already dead."; if (self.incapacitated == true && self.dead == false){ sin_shadow.evil = true; self.dead = true; "You raise your foot and slam it into his head. It gives, but only slightly. So you jump. Up and down. Up and down. When you are done, he is little more than a smear upon the ground. ^^You grin."; } if (cellar.hiding ~= 2 or 3) { deadflag = true; "You leap, attempting to knock the man to the ground. He is a lot stronger than you imagined. A lot stronger than you. A sharp kick to your stomach sends you to the ground. The pain is excrutiating. ^^But not as excrutiating as the knife that follows."; } if (cellar.hiding == 2) { StopDaemon(cellar); move cellar_knife to cellar; self.incapacitated = true; StartTimer(time_shadow, 5); "You wait till he's close before swinging your leg as hard as you can into the back of his knee. He crumbles, his head smashing against the hard floor."; } if (cellar.hiding == 3) StopDaemon(cellar); move cellar_knife to cellar; self.incapacitated = true; StartTimer(time_shadow, 5); "You wait until his legs are directly in front of you before you swing your fist as hard as you can into the back of his ankle. His leg tenses up, and he is sent tumbling down the stairs, smashing his head when he gets to the bottom."; ], dead false, unmasked false, incapacitated false, has male animate container transparent open; Object cowl "cowl" with name 'cowl' 'hood' 'mask' 'cloak' 'frock', description "Standard among all the brothers.", before [; Unmask,Remove,Take: <>; ], has scenery; Object cellar_knife "knife" with name 'knife' 'blade' 'dagger', description [; if (self in cellar_figure) "The knife gleams wickedly. Hungrily."; else "Curved. Almost more of a sickle, than a knife."; ], has concealed; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !BASE OF BELL TOWER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room belltower_bottom "Base of the Bell Tower" class Outside_Room, with initial [; if (dead_body in self && cecilia1.woken == true) StartDaemon(brothers_tower); else return false; ], description [; if (dead_body notin self) "Nestled in the northeast corner of the cloister, the bell tower rises high: higher than the steeples of the church. Footsteps cut a line in the snow from the cloister to the southwest to the tower itself in the northeast."; if (dead_body in self && brothers_tower.murder_conversation >= 2 && brothers_tower.murder_conversation < 5) "The smooth patch of snow at the base of the tower, formerly cut only by a single line of footsteps, is now a mash of dirt and blood. Steps lead northeast and up to the tower, and to the southwest is the cloister. ^^Brother Lucca lies sprawled upon the ground next to Matteo's corpse, whimpering."; if (dead_body in self && brothers_tower.murder_conversation >= 5) "The smooth patch of snow at the base of the tower, formerly cut only by a single line of footsteps, is now a mash of dirt and blood. Steps lead northeast and up to the tower, and to the southwest is the cloister. ^^Brother Matteo's corpse lies upon the ground, the blood freezing to his face."; if (dead_body in self && cecilia1.woken == false) "The smooth patch of snow at the base of the tower, formerly cut only by a single line of footsteps, is now a mash of dirt and blood. Steps lead northeast and up to the tower, and to the southwest is the cloister. ^^Brother Matteo lies upon the ground, blood trickling from the side of his head"; else "The smooth patch of snow at the base of the tower, formerly cut only by a single line of footsteps, is now a mash of dirt and blood. Steps lead northeast and up to the tower, and to the southwest is the cloister. ^^Brother Matteo lies upon the ground, blood trickling from the side of his head. Lucca kneels by his side."; ], before [; Go: if (noun == u_obj or sw_obj or ne_obj) { StopDaemon(brothers_tower); return false; } else return false; ], sw_to cloister, ne_to tower, u_to tower, in_to [; <>; ], has ; Object dead_body "Matteo" with name 'dead' 'body' 'corpse' 'man' 'brother' 'matteo', description "He looks so calm. Tiny snowflakes trace the creases in his face, lingering longer and longer as time passes. His mouth fills with snow.", react_before [; Kiss: if (noun == self) "Still warm, like fresh milk."; ], before [; Eat: if (brothers_tower in belltower_bottom) "Not with them around."; else QuoteFrom(leviticus26_29); sin_shadow.evil = true; "Lifting the bottom of Matteo's frock, you eye the white flesh of his haunches. A small drop of saliva pools on your tongue as you lunge in and take a bite where no one will see. The still-warm blood slides across your tongue and down your throat. ^^Sweet like honey. Delicious."; PrayFor: "You whisper a prayer for Matteo. He'll need it."; TalkTo: if (matteo1.pushed == true) { QuoteFrom(cross_pushed_quote1); "Silence."; } else "Silence."; Search: if (matteo_note hasnt general) { give matteo_note general; move matteo_note to player; "You dig through the folds of his frock and find a wrinkled note."; } else return false; Bury: "He is too heavy to move. Constantin deals with the dead."; Take,Push,Pull,PushDir: "Matteo was a large man. You cannot move him."; ], after [; Examine: QuoteFrom(genesis4_10); ], has scenery proper male; Object matteo_note "Matteo's note" with pname 'wrinkled' 'paper' 'matteo^s' 'note' 'sheet', description [; if (matteo1.pushed == true) { print "Written in a slothful scrawl:"; style underline; print "^^I would normally write in my journal, but in my increasing paranoia, I have hidden it. Now, I kick myself as it seems so far away. Everything is so far away: such a burden. ^^The father came to visit me earlier; he is not the same man I knew and respected. He looked at me with murder in his eyes. I would tell Lucca, but I am scared. No, I am lazy. I do not care if he kills me. I would do it myself were I not such a coward.^"; style roman; rtrue; } else print "Written in a slothful scrawl:"; style underline; print "^^Sext ^^I would normally write in my journal, but in my increasing paranoia, I have hidden it. Now, I kick myself as it seems so far away. Everything is so far away: such a burden. Lucca has been pestering me to tell him what I know, but I can't. It burdens me so; I cannot do that to someone so pure. ^^Vespers ^^I can take it no more. I don't care if I burn for eternity, I must leave this place. The Devil walks Saint Cuthbert's in the hearts and minds of my brothers: in me. ^^I'm sorry, Lucca.^"; style roman; rtrue; ], before [; Attack,Kill: if (matteo1.pushed == true) { remove matteo_note; "You shred the paper with glee. No one will every know. You smile."; } else remove matteo_note; "You shred the paper and let the pieces flutter in the wind."; Burn: if (matteo1.pushed == true) { remove matteo_note; "The paper curls and blackens before crumbling to ashes. No one will every know. You grin."; } else remove matteo_note; "The paper curls and blackens before crumbling to ashes."; Show,Give: if (second has animate) "Better keep this to yourself."; ], has proper; Object tower_footsteps "footsteps" with name 'footsteps' 'footstep' 'foot' 'step' 'steps' 'prints' 'footprint' 'footprints', description [; if (time_shadow.current_time == 0) "The footsteps are filling with snow."; else "The footsteps have been replaced by a bloody, dirty mash of snow."; ], before [; Take: <>; ], found_in belltower_bottom, has scenery; Object brothers_tower "brothers" with name 'brothers' 'men' 'brethren' 'monks', initial "The remaining brothers are gathered around the body, shouting.", description "Brothers Drogo, Ignatius, and Constantin stand casting cagey glances at one another.", react_before [; TalkTo,Ask,Tell,Order,Answer: if (noun ofclass constantin) "~Shut up, father,~ he barks. For a moment he seems about to apologize, but he doesn't."; if (noun ofclass lucca) "~I'm sorry, I'm sorry,~ is his only reply."; if (noun ofclass ignatius) "~Not right now, father,~ he barks."; ], daemon [; switch(++(self.murder_conversation)) { 2: "^Constantin strides forward and smacks Lucca across the face, sending him sprawling into the snow. ~Get away from him, murderer!~ He shouts, eyes burning. ^^~Constantin!~ Ignatius shouts defiantly, stepping between the two. Although Constantin towers above him, Ignatius looks taller than you have ever seen him. ~Leave the boy alone.~ ^^Drogo giggles."; 3: "^~But he is a murderer!~ Constantin replies, stepping back, face flushed. ^^~I know that as well as you. But that does not excuse you from God's wishes.~"; 4: StartDaemon(constantin2); StartDaemon(ignatius2); "^~We will lock him up in the cellar, then the father can decide what to do with him.~ Ignatius continues. ^^Constantin chews his lip, releasing a tiny drop of blood. ~No, the cellar will not do. We will lock him in the calefactory.~ ^^~Fine, fine. As you wish.~"; 5: remove brothers_tower; "^With that, Constantin hoists Lucca by the shoulders and shoves him towards the calefactory. ^^Ignatius turns towards you and says. ~You should get some sleep, father. We all should. You can get to the bottom of all this in the morning.~ He turns and walks towards the dormitory."; 6: move what_now to all_hints; "^Drogo grins at you. ~Oh, the fun we'll have!~"; 7: StopDaemon(self); } ], murder_conversation 0, has static pluralname; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Tower !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room tower "Bell Tower" with initial [; if (time_shadow.current_time == 8) { StartDaemon(constantin_tower); "Panting more than a little, you make your way up the stairs to the top."; } else "Panting more than a little, you make your way up the stairs to the top."; ], description [; if (time_shadow.current_time == 8) "Flames lick the sides, casting jagged shadows around the bell. They try to climb over the rails, to consume you, but they are too weak. Stone is not appetizing for them."; if (dead_body in belltower_bottom) "You are sure that other things exist, but for now all there is is Matteo lying on the ground below. From here, he could easily be alive. He smiles at you. ^^No, not a smile: a sneer. He is laughing at you. Laughing because you are still trapped. He was always laughing."; if (time_shadow.current_time == 0) "High above the rest of Saint Cuthbert's, the tower affords a view of the surrounding land. In the spring, it is quite beautiful: now all you see is the endless moonlit glow of snow. Snow in the trees. Snow in the mountains. Snow."; if (dead_body notin belltower_bottom) "The snow below is dark and broken. Yet all around is pristine. It is clean."; ], before [; Jump: deadflag = true; "Closing your eyes, you step from the edge. The wind whistles about you, but you cannot hear it. ^^Hell has a special place for those who commit suicide."; Smell: if (noun == nothing) "The wind drives needles of chill up your nose: you smell nothing."; ], out_to [; <>; ], sw_to belltower_bottom, d_to belltower_bottom, u_to "This is as close to Heaven as you'll ever be.", cant_go [; if (self.jump_attempted == false) { self.jump_attempted = true; "You move but are caught on the low wall. Next time you might not be as fortunate."; } else deadflag = true; "Closing your eyes, you step from the edge. The wind whistles about you, but you cannot hear it. ^^Hell has a special place for those who commit suicide."; ], jump_attempted false, has ; Object tower_dead_body "Matteo" with name 'matteo' 'brother' 'dead' 'body' 'corpse', before [; Examine: QuoteFrom(tower_body_quote); "He laughs. He smiles. He taunts you."; default: "Not from here."; ], has scenery; Object tower_view "view" with name 'snow' 'trees' 'tree' 'mountain' 'mountains' 'surrounding' 'land' 'view', description "Cold and desolate. The surrounding wilderness taunts you with the promise of freedom.", before [; Examine: return false; default: "You can't."; ], found_in tower, has scenery; Object bell "bell" with name 'bell' 'tongue' 'clapper' 'mechanical', initial "The bell sways in the breeze, its tongue almost, but never, touching the sides.", description "Almost as old as Saint Cuthbert's itself, the mechanical bell announces the passage of the hours. Matteo was never needed to ring it, but he likes to be here when it sounds nonetheless.", before [; Attack,Push,Pull: if (self.rung == true) "The bell clangs and stings your ears."; else self.rung = true; "The bell clangs. You have never been this close when it has before. Your ears sting for a bit before settling down."; ], after [; Examine: QuoteFrom(exodus28_34); ], rung false, found_in tower, has static; Object rail "rail" with name 'rail' 'rails' 'wall' 'walls', description "The rails creak in the wind.", found_in tower, has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CHURCH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room church "Church (in the pews)" with description [; switch(time_shadow.current_time) { 0: if (self hasnt visited) "Since you relegated the brothers to pray on their own, except for Mass, the church has been all but empty. Rows of pews part down the centre, ushering you up to the chancel in the north opposite the cloister in the south. The ceiling towers above you, its frescoes dim in the candlelight."; else "Cedar pews line the path from the chancel in the north to the cloister to the south, their surfaces cold. The ceiling towers above you, its frescoes dim in the candlelight."; 1: "Uncomfortable looking pews part before you, leading up to the chancel in the north. High above, dipping in and out of shadow, is the ceiling: the frescoes dance in the flicker of candlelight."; 3: "A tangle of pews fills the room: they part through the middle and up to the chancel in the north. Light hits the windows and slides down outside: lost. The church is dim; the frescoes are lost in shadow."; 5: "Rotting pews line up before the chancel to the north, praying for salvation. The diffuse light from outside filters in through the stained glass windows, barely touching the frescoes above."; 6,7: "The pews stumble over eachother, desperately crawling for the chancel in the north. The light outside finds no entrance: the Saints will not permit it. The frescoes are all but lost in the darkness above."; } ], before [; Smell: if (noun == nothing) { switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "Mingled with the scent of the candles is a sweet smell: like wildflowers were growing upon the chancel."; else "Mingled with the scent of the candles is a sweet smell: like wildflowers were growing upon the chancel. ^^It is pure. Vile."; 1: "Amid the smell of the candles is a drier one. Stale. Dusty. It floats down from the chancel."; 3: "Sour. Like sweat, or... You can't place it."; 5: if (sin_shadow.evil == false) "Sour. But not like sweat. Something dirtier: fouler."; else "Sour. But not like sweat. Something dirtier: fouler. ^^It pleases you."; 6,7: if (sin_shadow.evil == false) "Sour. It's not like sweat at all. It is urine. It permeates everything while climbing up into your nose to rest."; else "Sour. It's not like sweat at all. It is urine. It permeates everything while climbing up into your nose to rest. ^^You like its new home."; } } else return false; ], s_to cloister, n_to chancel, u_to chancel, out_to [; <>; ], in_to [; <>; ], has ; Object windows "Saints" with name 'saints' 'saint' 'window' 'windows' 'stained' 'glass' 'houses', initial [; if (sin_shadow.evil == false){ switch(time_shadow.current_time) { 0: "The Saints smile cheerfully down upon you from their colorful windows."; 1: "The Saints smile sadly at you from their glass houses."; 3: "The Saints look down with cold eyes. It is not pity. Something else."; 5: "The Saints look away from you, crying."; 6,7: "The Saints scream from their glass cages. They would run, but they are trapped."; } } else switch(time_shadow.current_time) { 0,1,2: "The Saints look away from you, crying."; 3,4,5: "The Saints scream in rage, but they cannot harm you. They are trapped in their glass cages."; 6,7: "The Saints scream from their glass cages. They would run, but they are trapped."; } ], description [; switch(time_shadow.current_time) { 0,1: "Finely wrought stained glass windows line the vaulted ceiling of the church, their frames holding within them the images of Saints Francis of Assisi, Medard of Noyon, Drausinus, and Cuthbert."; 3: "Dim stained glass windows block out the light but not the cold. They hold back Saint Francis of Assisi, Medard of Noyon, Drausinus, and Cuthbert."; 9: "The windows are broken and lie shattered upon the floor. Fire dances where they sat, trying to climb in."; default: "Saints Francis of Assisi, Medard of Noyon, Drausinus, and Cuthbert scream from their glass cages. The windows hold them trapped."; } ], found_in church chancel, has static; Object pews "pews" with name 'pew' 'pews' 'chair' 'chairs' 'seat' 'seats' 'cedar', description "Their cedar frames are worn with the weight of many Masses upon them. You have spent so much time on them of late that you barely feel their roughness any more.", before [; Examine: return false; default: if (location == chancel) "Not from here."; ], found_in church chancel new_church, has supporter enterable scenery; Object church_candles "candles" with name 'flame' 'fire' 'candle' 'candles' , description [; switch(time_shadow.current_time) { 0: if(sin_shadow.evil == false) "The flames are steady and warming to your heart."; else "The flames burn into your eyes, accusing you."; 1: "The flames flicker back and forth from the brink of going out."; 3: if(sin_shadow.evil == false) "They are hot: far hotter than expected. They fill the room with a stifling fever."; else "They are hot: far hotter than expected. They fill the room with a pleasant fever."; 5: if(sin_shadow.evil == false) "They burn, their fire going all the way to the back of your eyes."; else "They burn, their fire going all the way to the back of your eyes. Your hate is reflected in them."; 6,7: if(sin_shadow.evil == false) "They are the fires of Hell. They burn without warming; blind without giving light."; else "They are the fires of Hell. They burn without warming; blind without giving light. ^^They are the fires of home."; 9: "The candles are little more than stumps of wax. They ooze and spread."; } ], before [; Take: "You already have your own."; Extinguish: "Best not."; ], found_in church, has scenery pluralname; Object church_ceiling "ceiling" with name 'vaulted' 'ceiling' 'fresco' 'frescoes' 'roof' 'frescos' 'angels' 'skull' 'haloes' 'halo' 'skulls' 'angel' 'demons' 'demon' 'devils' , description [; switch(time_shadow.current_time) { 0: if(sin_shadow.evil == false) "The soaring vaults are as vast and open as the arms of God. Frescoes depict the fall of Satan, with angels singing as they cut down the wicked."; else "The soaring vaults are vast and open. Too open; too free. Frescoes depict the fall of Satan, with angels singing as they unjustly persecute the wicked. They are so righteous, so deluded."; 1,2: if(sin_shadow.evil == false) "The height is bewildering. If it is that far to the ceiling, how far is it to God? The angels in the frescoes continue their onslaught on the Fallen, every now and then glancing in your direction."; else "The height is comforting. If it is that far to the ceiling, God must be very far indeed. The angels in the frescoes continue their crusade against the Fallen, every now and then glancing in your direction."; 3: if(sin_shadow.evil == false) "Through the murky shadows, the frescoes are barely visible. The Fallen are overrunning the angels, climbing through holes in the ground and spreading across the Earth. An angel's eyes meet yours and do not break. He is coming."; else "Through the murky shadows, the frescoes are barely visible. The Fallen are ovverruning the angels, climbing through holes in the ground and spreading across the Earth. An angel's eyes meet yours and do not break. He is coming. The fool. You will destroy him like you destroyed his brothers."; 5: if(sin_shadow.evil == false) "The angels have formed a tight circle in the middle: the Fallen approach from all sides. The heavenly have stopped their fight. All they can do is pray."; else "The angels have formed a tight circle in the middle: the Fallen approach from all sides. The heavenly have stopped their fight. All they can do is pray. Little good it will do them."; 6,7: if(sin_shadow.evil == false) "The angels are defeated. Feathered wings and haloed skulls sit perched upon spears. The demons rejoice. Their time is at hand."; else "You have won; the angels are defeated. Feathered wings and haloed skulls sit perched upon spears. The demons rejoice. Their time, your time, is at hand."; 9: if (sin_shadow.evil == true) "You have won. The angels are dead; their blood soaks the ground. Soon, Earth shall be as the frescoe. You have set it on its course."; else "The frescoe is no more than a swirling mass of red and black. Blood and fire. Evil has triumphed."; }; ], found_in church new_church chancel, has scenery; Object church_font "font" with name 'font' 'fount' 'bath' 'bronze' 'grey' 'green' 'mold' 'tin' 'pot' 'chamber' 'chamberpot' 'mould', initial [; switch(time_shadow.current_time) { 0: "The font glows warmly in the candlelight, not a ripple on its water's surface."; 1,2: "The font slouches towards the base of the chancel."; 3: "The font squats before the chancel, its finish a mouldy grey."; 5: "Before the chancel, a rusted font sits, green mould twisting its way around."; 6,7: "A rank chamberpot sits before the chancel, human filth caking its sides."; }; ], description [; switch(time_shadow.current_time) { 0: "The bronze glows warmly in the candlelight, like it has at many a Mass."; 1,2: "The bronze is dim: hints of green and grey creep from the water and slide to the base."; 3: "The font is cracked and tarnished. Grey-green streaks blossom from the water and twist their way down."; 5: "Flakes of rust crumble off, but they are replaced by a green mould. The mould hugs the font, refusing to let go."; 6,7: "The tin pot is glazed with feces and urine. It is more smell than sight."; 9: "Black and wretched."; }; ], before [; Receive: if (noun == coin) "It's not a wishing well."; else "Best not."; Search: <>; Drink: <>; Eat: <>; Smell: <>; Taste: <>; Touch: <>; Take: <>; ], found_in church new_church, has static container open; Object holy_water "holy water" with name 'holy' 'water', description [; switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "The water is clear and clean: it sparkles in the candlelight and dances with your breath."; else "The water is clear and clean: it bubbles and hisses at your approach."; 1,2: "The water is dull. It warps your reflection into a sallow round ball with sharp juts where your skin dangles from your cheekbones."; 3: "The water --is it water?-- is dank and cloudy. It ripples: a smooth, rolling motion like a snake vomiting a rat."; 5: "The liquid is stained and tainted. It rolls and tumbles in the font."; 6,7: "Urine. It spins and putrefies in the old font."; 9: "Urine spins in the font. Its color is dark: diseased."; }; ], before [; Drink: switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "The water tastes sweet as it slides its way into your belly."; else deadflag = true; "The water burns as it slides down your throat. Steam pours out: pink with your blood. You scream, but no words come out, only blood."; 1,2: "It scratches, but soothes your thirst."; 3: if (sin_shadow.evil == false) "It is sour and bitter. It does nothing to soothe your thirst."; else "It is sour and bitter. Delicious. Your thirst is washed away."; 5: if (sin_shadow.evil == false) "The taste almost makes you vomit. Sour. Bitter. ^^Wicked."; else "It slides down your throat, smoothly and sweetly. Sour and bitter."; 6,7: if (sin_shadow.evil == false) "The urine stings your tongue, and turns your stomach."; else "The urine soothes your tongue, and calms your stomach."; 9: if (sin_shadow.evil == true) "Sweet. It runs down your throat and into your belly."; else "Vile. You would vomit had you had anything left in your stomach."; }; Eat: <>; Smell: switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "Fresh and clear. It soothes your nerves."; else "Clean; antiseptic. It burns your nose."; 1,2: "Stale, like it had been sitting for months."; 3: "Sour. Acidic. Like sweat or something else."; 5: "Sour, but not like sweat. Something fouler."; 6,7: "Sour. It's not like sweat at all. It is urine. It permeates everything while climbing up into your nose to rest."; 9: if (sin_shadow.evil == true) "You inhale. Sweet."; else "Vile. You would vomit had you had anything left in your stomach."; }; Taste: <>; Touch: switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "It is cool: not the harsh cool of everything else in this place, but rather a peaceful chill."; else "You cry out: the water burns your finger, leaving harsh red and white blisters where your wrinkled skin was."; 1,2: if (sin_shadow.evil == false) "It chills your fingers, turning them white with cold."; else "It chills and itches, leaving your skin red and discolored."; 3: if (sin_shadow.evil == false) "It is warm: the same temperature as your skin. You can barely feel it, except for the itchy, slimy feeling it leaves on your fingers."; else "Warm, like humans. You can barely feel it except for the delightful slime it leaves upon your skin."; 5,6,7: if (sin_shadow.evil == false) "Warm: almost steaming in the cold. It burns and itches at your skin."; else "Warm: almost steaming in the cold. It soothes away the pain of your weak shell."; 9: if (sin_shadow.evil == true) "Warm and soothing upon your scales."; else "Vile. It burns your flesh."; }; Take: <>; ], has concealed; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CHANCEL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room chancel "Church (on the chancel)" with name 'chain', description [; if (sin_shadow.evil == false) { switch (time_shadow.current_time) { 0,1: "You have spent many a solemn Mass up here, gazing out unto a sea of your brethren. Now, all you see is a sea of empty pews to the south."; 3: "Was your time wasted up here? Was it all for naught? As you look to the empty pews to the south, you wonder how it has helped anyone."; default: "The pews to the south are all so empty. They will never be full again."; } } else switch (time_shadow.current_time) { default: "God, to think of all the time you wasted up here. The blind leading the blind. A quiet laugh spreads through your heart. A joke. The rest of the church lies to the south; it's not as funny of a joke."; } ], before [; Smell: if (noun == nothing) { switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "It smells fresh and soothing. Like wildflowers were growing from Saint Cuthbert."; else "Like wildflowers were growing from Saint Cuthbert. It is annoying."; 1: "Your nose is dry. A stale and dusty smell seeps through Saint Cuthbert's case."; 3: if (sin_shadow.evil == false) "A faint smell floats about the room. A bad smell. A dead smell."; else "A faint smell floats about the room. A good smell. A dead smell."; 5: if (sin_shadow.evil == false) "Rot and death fill the air, choking at you."; else "Rot and death fill the air, inciting your hunger."; 6,7: if (sin_shadow.evil == false) "Filth, death, and rot are the only smells that exist now."; else "Filth, death, and rot are the only smells that exist now. Just like home."; } } else return false; ], s_to church, d_to church, out_to [; <>; ], has ; Object lectern "lectern" with name 'lectern' 'podium' 'stand', initial [; switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "The lectern stands in the centre of the chancel, the Bible atop it shining with gold filigree."; else "The lectern stands in the centre of the chancel, the Bible accusing you from its perch."; 1: "The lectern sits with the Bible atop it. The Bible sinks away from your eyes."; 3: "The lectern is weak and brittle, barely able to support the weight of the massive tome upon it."; 5: "The lectern has snapped. Unholding the Bible is a difficult task."; 6,7: if (sin_shadow.evil == false) "The lectern has crumbled away. The weight of the Bible is crushing to the unworthy."; else "The lectern has crumbled away. The weight of the Bible is crushing to the wicked."; } ], description [; switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "The lectern stands with more strength and confidence than you do of late. Its support of the Bible unwaivering."; else "The lectern supports the bible better than you ever did."; 1: "The lectern wearily holds up the Bible."; 3: "Struggling to support the massive book, the lectern looks as though it could topple over."; 5: "The lectern lays snapped across the floor, the Bible spilling from it."; 6,7: if (sin_shadow.evil == false) "The lectern has crumbled away. The weight of the Bible is crushing to the unworthy."; else "The lectern has crumbled away. The Bible crushes the wicked."; 9: "Nothing remains but dust."; } ], react_before [; TalkTo,Ask,Tell,Answer: drogo3.talking = 3; return false; ], found_in chancel new_church, has static supporter; Object bible "Bible" with name 'bible' 'book' 'tome' 'gold' 'filigree' 'leather', description [; switch(time_shadow.current_time) { 0,1: if (sin_shadow.evil == true) "The Bible burns at you from its perch. Accusing, mocking."; if (self.first_seen == true) { self.first_seen = false; "Ah, the Bible. How many times has it been there for you? When your heart is heavy, you often come to read it, and reflect upon its wisdom. Now, though, you find it intruding upon your thoughts during the most mundane of tasks. Passages spring to you unbidden: filling your ears with the words of God. Filling your mind with... What? It is currently open to Ecclesiastes 9:3."; } else "The Bible stands upon the lectern, its gold filigree glimmering in the light of your candle."; 3: "The Bible's pages are curled and brittle. Splits and cracks creep through the urine-colored pages."; 5: "The Bible is charred is peeling. Splits run through its leather coverings."; 6,7: "The dead animal hide wrapping its pages is rotted and filled with maggots."; 9: "Nothing remains but dust. The empty words no longer mean anything here."; } ], before [; Read: switch(time_shadow.current_time) { 0,1: style underline; print "Ecclesiastes 9:3 ^^~This is an evil among all things that are done under the sun, that there is one event unto all: yea, also the heart of the sons of men is full of evil, and madness is in their heart while they live, and after that they go to the dead.~^"; style roman; rtrue; 3: "You stare at the pages like you have so many times, but you cannot focus. The words spin and slide away from your eyes."; 5: "The words are gibberish: unintelligible."; 6,7: "The pages are blank. God's truth is no match for Satan's lies."; 9: "Nothing remains but dust. The empty words no longer mean anything here."; } Take: if (time_shadow.current_time < 6) "It is bolted, by chain, to the lectern."; else "It burns to the touch, charring your hands."; ], found_in lectern, first_seen true, has legible scenery; Object saint_cuthbert "Saint Cuthbert" with name 'saint' 'cuthbert' 'body' 'incorruptible' 'case' 'glass' 'corpse', initial [; switch(time_shadow.current_time) { 0: if (self.broken == false) "A beautiful glass case holds the body of Saint Cuthbert near the base of the chancel."; else "Saint Cuthbert lies in a bed of broken glass."; 1: "A dry, dusty case holds Saint Cuthbert's corpse. The dust sticks to your damp skin, and the smell dries your nose."; 3: "Saint Cuthbert sinks in his tomb, rot creeping in from his extremities."; 5: "Saint Cuthbert rots in his tomb, his eyes eaten by maggots."; 6,7: "Wormholes, rotted flesh, and maggots are all that remain on Saint Cuthbert's bones."; }; ], description [; switch(time_shadow.current_time) { 0: if (sin_shadow.evil == false) "He is so calm: so serene. His body is unblemished by the centuries that have passed. Truly, he is incorruptible. He even smells divine, as though flowers were growing beneath him."; else "He is so calm: so serene. His body is unblemished by the centuries that have passed. Truly, he is incorruptible. He smells like vile flowers. It itches at your nose."; 1: "He looks old and dry. His hair hangs in pale wisps about his cracking face. He smells of dust, and he dries your nose."; 3: "His skin is blotched and discolored, and his hair drops from a shriveled scalp."; 5: "Rotted-out craters mark his body and line his face."; 6,7: "He is a body with holes, or a skeleton with flesh. Rot extends to his bones, causing them to crumble into vile dust."; }; ], before [; Open: if (self.broken == true) "It's already smashed."; else "It is fused glass with no hinges. You would have to break it."; Eat: "You dig your teeth into his flesh. It yields like butter, but it burns. Burns your teeth. Burns your throat. It settles in your stomach and burns there too."; Take: "You are too weak."; Attack: if (self.broken == true) "The case is already smashed."; else self.broken = true; "The slam of your fist shatters the glass, sending it cascading over the Saint's body."; Smell: switch(time_shadow.current_time) { 0: if (sin_shadow.evil == true) "Wretched flowers. They itch your nose."; else QuoteFrom(psalms45_8); "Sweet like flowers or incense."; 1: "He looks old and dry. His hair hangs in pale wisps about his cracking face. He smells of dust, and he dries your nose."; 3: if (sin_shadow.evil == true) "The smell curls up in yoru nose and sits there. You like its new nest."; else "The smell curls up in your nose and sits there. It takes several minutes of huffing fresh air to remove."; 5: if (sin_shadow.evil == true) "His smell is delightful: maggots and death."; else "His stench makes you gag. It climbs down your throat and into your belly."; 6,7: if (sin_shadow.evil == true) "His smell wraps its way through your nose and drags the fresh air from your lungs. Wonderful."; else "His stench wraps its way through your nose and grabs the fresh air from your lungs, choking you."; }; ], broken false, found_in chancel, has static proper; Object crucifix "cross" with name 'cross' 'crucifix' 'wooden' 'matteo' 'matteo^s' 'crown' 'of' 'thorns' 'briar' 'briars' 'thorn' 'nail' 'nails', initial [; switch(time_shadow.current_time) { 0: "Towering above all else is a massive wooden cross. It is awesome."; 1: "Shrinking into the back of the chancel is a wooden cross. It does not tower, only sit."; 3: if (drogo3.show_matteo > 1) "Matteo hangs from the cross, melting snow forms a pool at his feet."; else "Shrinking into the back of the chancel is a wooden cross. It does not tower, only sit."; 5: "Matteo hangs from the cross, an empty grin spread across his lips and a crown of thorns upon his brow."; default: "Matteo welcomes you to the chancel from his perch on the cross. His perpetual grin consumes his face and blood drips into his eyes from the crown of thorns."; } ], before [; Examine: if (location == church) { switch(time_shadow.current_time) { 0,1: "The cross stands tall upon the chancel."; 3: "There's something odd about the cross."; default: "Matteo grins. It spreads throughout the church."; } } else return false; Bury,Take,Push,Pull: if (drogo3.show_matteo > 1) "Drogo secured him well. Flesh and wood are one."; else "It is secured in place."; TalkTo: if (time_shadow.current_time < 3) return false; else switch((self.talking)++){ 0: if(matteo1.pushed == true) { QuoteFrom(cross_pushed_quote1); "Silence."; } else QuoteFrom(cross_talking_quote1); "Silence."; 1: if(matteo1.pushed == true) { QuoteFrom(cross_pushed_quote1); "Silence."; } else QuoteFrom(cross_talking_quote2); "Silence."; 2: if(matteo1.pushed == true) { QuoteFrom(cross_pushed_quote1); "Silence."; } else QuoteFrom(cross_talking_quote3); "Silence."; 3: if(matteo1.pushed == true) { QuoteFrom(cross_pushed_quote1); "Silence."; } else QuoteFrom(cross_talking_quote4); "Silence."; default: "Silence."; } ], description [; switch(time_shadow.current_time) { 0: "It was finely wrought with all the attention it deserved."; 1: "It is cheap and splintered. That artisan was a sham."; 3: if (drogo3.show_matteo > 1) { QuoteFrom(matteo_cross_quote); "Matteo's corpse dangles from the cross. The wounds in his head, hands, and feet sparkle with crystals of frozen blood, and his eyes stare through you to nothing. ^^Jesus always looked so beautiful on the cross. Matteo just looks dead."; } else "It is cheap and splintered. That artisan was a sham."; 5: "Matteo clings to the cross by his hands and feet, a grin across his sagging face."; 6,7: "Matteo revels from his perch, his blood staining the splintered wood."; 9: "Matteo welcomes you to the church with a bloody grin."; } ], talking 0, found_in chancel new_church church, has static; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Dormitory !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room dormitory "Dormitory" with description [; if (lucca1 in matteo_room) "Dozens of openings line the hall, each leading to a separate cell, except for the west, which leads to the cloister. Although there are no doors, the entrances are positioned as such to afford as much privacy as possible. Brother Matteo's chamber is to the south, Ignatius's to the north, Drogo's newly appointed cell is to the northeast, Constantin's is to the southeast, and Lucca's to the southwest. ^^A scraping sound comes from Constantin's cell, forming an eerie melody with the sobs from Matteo's."; else "Dozens of openings line the hall, each leading to a separate cell, except for the west, which leads to the cloister. Although there are no doors, the entrances are positioned as such to afford as much privacy as possible. Brother Matteo's chamber is to the south, Ignatius's to the north, Drogo's newly appointed cell is to the northeast, Constantin's is to the southeast, and Lucca's to the southwest."; ], before [; Listen: if (constantin1 in constantin_room) "The brisk scraping from Constantin's room does nothing to hide the sobs from Matteo's."; ], w_to cloister, se_to constantin_room, s_to matteo_room, n_to ignatius_room, ne_to drogo_room, sw_to lucca_room, out_to [; <>; ], has ; Room constantin_room "Constantin's Room" with description [; switch(time_shadow.current_time) { 0,1: if (constantin_tools in self) "Constantin is one of the few brothers with anything in his room besides a bed. A few tools lay next to the door in the northwest; remnants of his life as a blacksmith. A smell lingers here: a sour smell."; else "Constantin is one of the few brothers with anything in his room besides a bed. A smell lingers here: a sour smell."; 3: "The room is rank. Sickness is everywhere: seeped into the bed, climbing the walls. A little fresh air drifts in from the northwest: it isn't nearly enough. ^^The tools are gone."; default: if (constantin_tools notin self) "These walls are Constantin's tomb. Slime coats the floor and slides from the walls. The stench is trapped, harsh. It can be escaped to the northwest."; else "These walls are Constantin's tomb. Slime coats the floor and slides from the walls. The stench is trapped, harsh. It can be escaped to the northwest. ^^The tools are gone."; } ], before [; Listen: if (constantin1 in self) "~Tch ch ch,~ the knife says as it slides against the hare."; Smell: if (noun == nothing or brother_bed) switch(time_shadow.current_time){ 0,1: "It's hard to place. It's a sick smell. Vomit, perhaps?"; 3: "Vomit."; default: "The air poisons your lungs. Why does vomit always inspire vomit?"; } ], nw_to dormitory, n_to dormitory, out_to [; <>; ], has ; Object constantin_hare "hare" with name 'hare' 'rabbit' 'young' 'catch', description "The hare dangles by one foot from Constantin's massive hand, blood soaking its snow-damp fur. It twitches. No. It doesn't. That is only the movement of the knife against its flesh.", before [; Take: "Constantin snatches it back. ~Wait until I'm finished,~ he grunts."; ], found_in constantin1, has scenery; Object hare "hare" with name 'hare' 'rabbit' 'dead' 'skinned', initial "A skinned rabbit sits on the floor, its muscles shimmering in the light.", description "Sinews and muscles bound together in a shining lump.", before [; Eat: remove hare; "The blood is still warm. It stains your lips and soothes your hunger."; ], has edible; Object constantin_knife "knife" with name 'knife' 'blade' 'dagger' 'steel', description "It gleams wickedly in the candlelight.", before [; Take: "Constantin snatches it back. ~It's mine.~"; ], found_in constantin1, has scenery; Object pool_of_blood "pool of blood" with name 'pool' 'of' 'blood' 'feet' 'foot', description "The blood collects in a small pool at Constantin's feet, warming their chill.", each_turn [; if (time_shadow.current_time ~= 0) give self absent; ], found_in constantin_room, has scenery; Room matteo_room "Matteo's Room" with initial [; StartDaemon(plague_shadow,7); ], description [; switch(time_shadow.current_time){ 0: "This room is small: the same as all the others. A bed is pushed up against one wall, opposite the door to the north."; 1: "It's not like you saw Matteo in here much; he was always in the tower. Still, it feels empty knowing he's gone. North leads out."; 3: "He always had so many secrets. You knew it would kill him one day, but not Lucca. North leads out."; default: "So empty. So, so empty. North leads out."; } ], before [; Dig: if (noun == nothing) <>; ], n_to dormitory, out_to [; <>; ], has ; Object flagstone "flagstone" with name 'flag' 'stone' 'flagstone' 'floor' 'ground' 'blood' 'flagstones' 'hole' 'stones', initial [; if (self.lifted == true) "The flagstone lays to the side of a small hole in the floor."; else "One of the flagstones is tinted with blood."; ], description [; if (self.lifted == true) "The stone sits apart from the floor, defeated."; else switch(time_shadow.current_time){ 0: "Lucca scrabbles at the stone, trying desperately to unearth it from all sides."; 1: "The stone looks the same as them all, except for the liberal amounts of blood drying in to the cracks."; default: "The stone mocks you from its nest."; } ], react_after [; Unlock,Open,Take,Push,Pull,Dig: QuoteFrom(dig_flagstone_quote); return false; ], before [; Unlock: if (self.lifted == true) "The stone is already lifted."; if (constantin_tools in player && prybar notin player) "You try to lever the stone with the hammer but it doesn't catch. This isn't the right tool."; if (prybar notin player) "That's not the right tool."; else move matteo_papers to matteo_room; self.lifted = true; "Fitting the bar between the cracks in the flooring, you pry the flagstone up. It comes out easily. ^^Where it lay, in a slight hollow in the soil, are a few wrinkled sheets of paper."; Open,Take,Push,Pull,Dig: if (self.lifted == true) "The stone is already lifted."; if (constantin_tools in player && prybar notin player) "You try to lever the stone with the hammer but it doesn't catch. This isn't the right tool."; if (prybar notin player) "You pry at the stone, but your fingers accomplish little besides bleeding."; else move matteo_papers to matteo_room; self.lifted = true; "Fitting the bar between the cracks in the flooring, you pry the flagstone up. It comes out easily. ^^Where it lay, in a slight hollow in the soil, are a few wrinkled sheets of paper."; ], lifted false, has static concealed; Object matteo_papers "papers" with name 'paper' 'papers' 'journal' 'matteo^s' 'sheet' 'sheets', initial "Matteo's papers call to you from the floor.", before [; Read,Examine: if (self.been_read == true){ matteo_journal.select(); rtrue; } else { if (constantin_dead notin constantin_room) { self.been_read = true; move self to player; give bell concealed; move constantin_tower to tower; move cecilia_tower to tower; remove constantin5; matteo_journal.select(); rtrue; } if (constantin_dead in constantin_room){ self.been_read = true; move self to player; give bell concealed; move cecilia_tower2 to tower; matteo_journal.select(); rtrue; } } ], react_before [; Go: if (noun == n_obj or out_obj && self.been_read == false) "You're not leaving until you've read the papers that two people died for."; ], been_read false, has pluralname legible; Room ignatius_room "Ignatius's Room" with description [; if (cellar hasnt visited) "Ignatius's room does not smell as strongly as the others. He has spent so much time in the infirmary of late, taking care of the sick. He is a braver man than you. A bed is pushed up against one wall, opposite the door to the south."; else "Ignatius's room does not smell as strongly as the others. A bed is pushed up against one wall, opposite the door to the south."; ], s_to dormitory, out_to [; <>; ], has ; Room drogo_room "Drogo's Room" with description [; switch(time_shadow.current_time){ default: "He seems to have made himself right at home. The room smells of animals and sweat; scratches adorn the bed and lead out the door to the southwest."; } ], before [; Smell: if (noun == nothing or brother_bed) "Sweat and animals: wet dog, or something similar."; ], sw_to dormitory, s_to dormitory, out_to [; <>; ], has ; Room lucca_room "Lucca's Room" with description "This room is small: the same as all the others. A bed is pushed up against one wall, opposite the door to the northeast.", ne_to dormitory, n_to dormitory, out_to [; <>; ], has ; Object brother_bed "bed" with name 'bed' 'mattress' 'cot' 'scratch' 'scratches', description [; switch(location){ drogo_room: "Scratches line the posts. Some from claws, some from metal."; default: "A simple mattress on four wooden legs: the same as all the others."; } ], before [; LookUnder: "Mould creeps from the blackness, but you find nothing else."; ], found_in constantin_room matteo_room ignatius_room drogo_room lucca_room, has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Outside Calefactory !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room outside_calefactory "Outside the Calefactory" class Outside_Room, with initial [; if (pass has visited) move blood_writing to calefactory; ], description "Perhaps this is the only place at Saint Cuthbert's that is a comfortable temperature. Heat blasts at you from the calefactory to the southeast, but it is countered by the chill from the cloister to the northwest. No, that isn't right. They do not cancel: their furies are incited by one another.", nw_to cloister, se_to calefactory_door, out_to [; <>; ], in_to [; <>; ], has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Calefactory !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room calefactory "Calefactory" with description "Positioned directly between the dormitory and your own room, the calefactory warms both, although lately it is less than adequate. While the calefactory itself is stiflingly hot, its heat stays confined. Your brow grows damp: your body, feverish. Slightly melted snow creeps in from the cloister to the northwest.", nw_to outside_calefactory, out_to [; <>; ], has ; Object blood_writing "writing" with name 'writing' 'words' 'word' 'blood' 'red' 'scrawl' 'bloody', initial [; if (self.examined == false) "A red scrawl winds its way around the room."; else "Bloody words circle the room."; ], description [; QuoteFrom(lucca_blood_quote); print "It says:"; style underline; print "^^I'm sorry, God. Please forgive me. The evil of my brothers and the father has been an affront to you. Forgive them. Please. ^^Someone's here.^"; style roman; "^That is all."; ], after [; Examine: if (self.examined == true) return false; else self.examined = true; move ignatius3 to calefactory; StartDaemon(ignatius3); ], examined false, has static; Ignatius ignatius3 "Ignatius" with initial [; "Ignatius fingers the walls. His hand crawls and slithers across the stone."; ], description "Ignatius stands, frock wet and dripping with sweat. His eye is feverish: hungry. He stands too close.", before [; Attack,Kill: deadflag = true; "You move, but you are far too slow. Or perhaps he just has a lot more practice. A knife flashes from his frock and across your neck. ^^There is plenty of ink for the wall now."; Smell: "Sweat and mildew. And death."; ], react_before [; Go,Enter: if (noun == out_obj or nw_obj or calefactory_door && ignatius3 in calefactory) StopDaemon(ignatius3); remove ignatius3; print "~Yes, I should be going too,~ Ignatius says, slowly. ~I will see you later, father.~^"; return false; ], daemon [; switch(++(self.calefactory_talking)) { 1: "^Wet footsteps sound from behind. ~Curious, isn't it?~ It is Ignatius. ^^He sidles up beside you and traces the blood with his hand. ~He must have been sicker than we thought,~ --he pauses-- ~The plague makes monsters of us all.~"; 2: "^Ignatius circles the room, but he never strays far from the door."; 3: "^Ignatius looks you up and down, unblinking."; } ], calefactory_talking 0, has ; Simple_Door calefactory_door "calefactory door" with name 'calefactory' 'wooden' 'hinges' 'cracked' 'door', description [; if (location == outside_calefactory && self has open) "Hot air blasts through the door, burning the chill from your bones."; if (location == outside_calefactory && self hasnt open) "Heat radiates from the door."; if (location == calefactory && self has open) "Icy drafts from the open door split the heat of the room."; if (location == calefactory && self hasnt open) "With the door closed, the heat sinks deep into your bones."; ], before [; Open,Unlock: if (calefactory_lock notin self) return false; else "Constantin has put a lock on the door. It is sturdy."; ], side1_to calefactory, side1_dir se_to, side2_to outside_calefactory, side2_dir nw_to, ! door_dir [; ! if (location == outside_calefactory) ! return se_to; ! else ! return nw_to; ! ], ! door_to [; ! if (location == outside_calefactory) ! return calefactory; ! else ! return outside_calefactory; ! ], found_in calefactory outside_calefactory, has container transparent; Object calefactory_lock "lock" with name 'lock' 'keyhole', initial "A shiny, steel lock secures the calefactory door.", description "The lock is newly fashioned and shines in the moonlight.", before [; Attack,Kill: "It is far too sturdy."; ], react_before [; Go: if (noun == se_obj) "Constantin has put a lock on the door. It is sturdy."; ], has locked lockable static; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !PATH !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room path "Path" class Outside_Room, with description [; switch(time_shadow.current_time) { 3: "The sun's light does nothing to warm you, but instead it burns your eyes with its fury: nothing like the cool darkness inside the monastery to the north. It is so bright that you can barely make out the stables to the east: they are just a darker square in a field of white. The infirmary is a little clearer to the west. A tangle of footsteps lead south to the gate."; 6,7: "Darkness begins to creep across the sky from atop the infirmary in the west. The last rays of light expose the stables to the east and the gate to the south. The monastery lies to the north, its walls offering promises of shelter."; default: "The light is gentler now. No, not gentler: weaker. Clouds block the sun, making it easy to see the stable to the east in a field of white. The infirmary lies to the west while the gate is to the south. The monastery offers its hollow promises of warmth to the north."; } ], each_turn [; if (clearing hasnt visited && time_shadow.current_time >= 5) "^A faint, garbled sound rises from the east."; ], before [; Listen: if (noun == nothing && lamb in clearing) "A shrill bleats echoes throughout the mountains."; ], n_to archway, e_to stables, s_to gate, w_to outside_infirmary, in_to [; <>; ], has ; Object dove "dove" with name 'dove' 'pidgeon' 'bird', initial [; if (self.gone == false) { give self ~concealed; self.gone = true; "A lone white dove flies off into the morning sun."; } else give self concealed; return true; ], before [; default: QuoteFrom(psalms55_6); "The dove is gone."; ], gone false, has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !OUTSIDE INFIRMARY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room outside_infirmary "Outside the Infirmary" class Outside_Room, with initial [; move infirmary_cemetery to all_hints; ], description "The infirmary stands well away from the rest of the monastery. Little good it has done, though. The plague still seeped its way in. A rickety door leads into the infirmary, and a well-worn path leads to the cemetery in the northwest and back to the main path in the east.", in_to infirmary, e_to path, nw_to cemetery, has ; Simple_Door infirmary_door "infirmary door" with name 'wooden' 'door' 'hinges' 'cracked' 'infirmary', side1_to infirmary, side1_dir in_to, side2_to outside_infirmary, side2_dir out_to, found_in infirmary outside_infirmary, has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !INFIRMARY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room infirmary "Infirmary" with description "The smell is bad, although not as bad as you had expected it to be: Constantin must be keeping up with dealing with the dead. Empty, vomit-stained beds lie haphazardly about the room. Buckets overflow with human filth: the plague soon overtook those caring for the sick. The air is heavy with disease.", before [; Smell,Search: if (noun == nothing or infirmary_beds or infirmary_marks or buckets) "Blood, vomit, and feces: the Trinity of the plague."; ], out_to outside_infirmary, has ; Object infirmary_beds "beds" with name 'bed' 'beds' 'empty' 'vomit-stained' 'bedding' 'blanket' 'blankets', description "The beds lay strewn about the room. Far more are packed in here than usual. Most of the brothers were brought with their own beds from the dormitory. Soon, the infirmary housed as many as the dormitory. The patterns of vomit are grotesque outlines of human bodies. ^^Within some of the outlines of vomit, you see strange, brownish-red marks.", before [; LookUnder: "Mould creeps from the blackness, but you find nothing else."; ], found_in infirmary, has scenery supporter enterable pluralname; Object infirmary_marks "marks" with name 'brownish-red' 'brown' 'red' 'brownish' 'mark' 'marks' 'blood' 'stain' 'stains' 'patina', description "Looking closely, you recognize the telltale patina of dried blood.", found_in infirmary, has scenery pluralname; Object buckets "buckets" with name 'bucket' 'buckets' 'of' 'human' 'filth' 'vomit', description "Vomit and human filth rise over the sides of the buckets and spill to the floor. The smell is unimaginable.", before [; Take: "No, they are disgusting."; ], found_in infirmary, has scenery container open pluralname; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CEMETERY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room cemetery "Cemetery" class Outside_Room, with description "The wind whips its way through the tombstones, whistling a harsh tune. The air is crisp and clean, the smell of corpses is nowhere to be found. In a section off from the established cemetary, row upon row of makeshift crosses stand: plague victims. The path winds its way back to the infirmary in the southeast.", before [; Smell: if (noun == nothing or tombstones or crosses) "Nothing but the cool scent of the wind."; Dig: if (noun == snow or crosses or nothing or tombstones && self.dug == false) { self.dug = true; "You tear into the snow with your hands, struggling to hold onto your fingers in the cold. Eventually, you strike the soil. Clearing a little patch, you find the soil undisturbed. You try another hole. Same thing. Nothing has disturbed the ground in quite some time."; } if (noun == snow or crosses or nothing && self.dug == true) "There is nothing to find."; ], se_to outside_infirmary, dug false, has ; Object tombstones "tombstones" with name 'tomb' 'tombs' 'stone' 'stones' 'tombstone' 'tombstones' 'gravestones' 'markers' , description "The inscriptions have long since worn away from the elements: dozens of nameless souls lie beneath.", found_in cemetery, has scenery pluralname; Object crosses "crosses" with name 'makeshift' 'wooden' 'crosses' 'cross' 'scratch' 'scratches' 'grave' 'graves', description "Little more than two branches tied together, each of the crosses bears a faint scratch: the name of the brother that lies beneath. The scratches are so faint and Constantin's scrawl so shaky that they are illegible.", found_in cemetery, has scenery pluralname; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !STABLES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room stables "Stables" class Outside_Room, with initial [; move riding_horse to all_hints; ], description [; if (player in stalls) "The smell is even worse up here. Snow weighs on the roof, causing it to sink in the middle. Sometimes hay is stored up here in the summer: now, the roof barely supports the snow."; if (self hasnt visited) "In the shadow of the stables, you can make things out a little more clearly. Half-a-dozen empty stalls show the plague's influence: with their caretakers dead, the horses starved. The smell winds its way through your nostrils, numb though they are. It can be escaped to the path in the west or the garden in the northeast. A small ladder leads up to the roof of the stables."; else "Half-a-dozen empty stalls show the plague's influence. As die the shepard, so does the flock. The smell winds its way through your nostrils, numb though they are. It can be escaped to the path in the west or the garden in the northeast. A small ladder leads up to the roof of the stables."; ], before [; Jump: if (player in stalls && wolves in location) { deadflag = true; "You jump into the sea of frothing jaws and writhing fur. It swallows you whole."; } if (player in stalls) print "Your bones crack as you plow into the snow. Luckily, it cushions your fall, preventing all damage but no pain.^"; PlayerTo(stables); Listen: if (noun == nothing && lamb in clearing) "A shrill bleats echoes throughout the mountains."; Drop,Give,ThrowAt: if (noun ~= hare or lamb) return false; if (wolves notin location) return false; if (noun == hare && wolves in location && lamb in player) { remove lamb; remove hare; StartTimer(time_shadow, 5); remove wolves; wolves.chasing = 0; "You toss the hare into a patch of low briars, cushioning him from the ground. The wolves are torn between the two of you, but eventually decide on the hare. You've given them enough trouble already. ^^The danger gone, you release the lamb over the edge. He drops softly into the snow and hops away merrily."; } if (noun == hare && wolves in location) { remove lamb; remove hare; StartTimer(time_shadow, 5); remove wolves; wolves.chasing = 0; "You toss the hare into a patch of low briars, cushioning him from the ground. The wolves are torn between the two of you, but eventually decide on the hare. You've given them enough trouble already."; } if (noun == lamb && wolves in location) remove lamb; StartTimer(time_shadow, 5); remove wolves; wolves.chasing = 0; "You toss the lamb into a patch of low briars, cushioning him from the ground. Dazed for a moment, the lamb quickly realizes his new surroundings and bolts off away from the wolves. The wolves are torn between the two of you, but eventually decide on the lamb. You've given them enough trouble already. ^^A bleat. No, a scream sounds far off in the distance."; Smell: if (noun == nothing) <>; ], each_turn [; if (clearing hasnt visited && time_shadow.current_time >= 5) "^A shrill, bleating noise comes from the northeast."; ], cant_go [; if (player notin stalls) "You can go only northeast, west, or up."; else "You can go only northeast, west, or down."; ], w_to path, ne_to garden, u_to [; if (player notin stalls) <>; ], d_to [; if (player in stalls) <>; ], has ; Object ladder "ladder" with name 'ladder', description "Little more than some dowels between two boards.", react_before [; Go: if (noun == d_obj && player in stalls) <>; ], before [; Climb: if (player in stables) { print "Grunting more than a little, you pull yourself up the ladder.^"; PlayerTo(stalls); return true; } else print "You descend the ladder, the roof giving a sigh of relief as you do.^"; PlayerTo(stables); return true; ], found_in stables, has scenery ; Object stalls "stables" with pname 'stall' 'stalls' 'dead' 'starved' 'horses' 'horse' 'empty' 'door' 'doors' 'gate' 'gates' 'stable' 'stables' 'roof', short_name [; if (player in stables) { print "stables"; return true; } else print "roof"; return true; ], description [; if (player in stalls) "The roof is rotten and layered heavily with snow."; if (player in stables) { switch(time_shadow.current_time) { 3: if (self.horse_seen == false) { self.horse_seen = true; give horse_stall ~concealed; give horse ~concealed; "No. You were wrong. Not all the horses starved. Some tried to escape. The gates are mashed and torn, but none of the horses were strong enough to break out. Their hooves are bloody and raw: their heads soft with bruises. ^^Wait. One still moves. She is sore and thin, but she lives."; } else "Not all the horses starved. Some tried to escape. The gates are mashed and torn, but none of the horses were strong enough to break out. Their hooves are bloody and raw: their heads soft with bruises."; default: "Not all the horses starved. Some tried to escape. The gates are mashed and torn, but none of the horses were strong enough to break out. Their hooves are bloody and raw: their heads soft with bruises."; } } ], react_before [; Examine: return false; default: if (player in stalls && (noun == horse || second == horse)) "Perhaps you should get down from the roof first."; ], before [; Feed: "As far as you can tell, the horses are dead."; Smell: "The sweat of panic is a different kind of sweat. The maddened horses reek of it. The cold has staved off their rot somewhat, but even now, it creeps through the air."; Search: <>; Open: "The gates are smashed and stuck. The horses jammed them in their frenzy."; Enter: "The gates are stuck."; Climb,GetOff: <>; ], found_in stables, horse_seen false, has scenery pluralname supporter; Object horse_stall "stall" with name 'gate' 'stall' 'door', description "The stall is undamaged. Well, no more damaged than anything else at the monastery.", before [; Enter: "There is no reason to."; Climb,GetOff: <>; ], after [; Open: if (horse.fed == false) { deadflag = true; "The horse, with vitality born of starvation, bolts towards the hay as soon as you unlatch the gate. She knocks you to the ground with her head, which isn't so bad. ^^It's her hooves on your neck that are."; } if (francis.stable_prayed == true || cecilia.stable_prayed == true) { horse.released = true; "Free from the stall, the horse comes and nuzzles you blankly."; } if (horse.beaten == true) { horse.released = true; "Subdued, the horse limps over to your side, head down."; } if (francis.stable_prayed == false && cecilia.stable_prayed == false) { horse.released = true; "The horse eyes you as you open her stall, but makes no move to leave."; } ], has scenery openable concealed; Object horse "horse" with name 'horse' 'filly' 'philly' 'mare', description [; if (self.fed == false) "The horse stares at the bale of hay with wild eyes and scrapes at the ground with her hooves."; if (self.fed == true && self.beaten == true) "The horse stands, head down."; if (self.fed == true && (francis.stable_prayed == false && cecilia. stable_prayed == false)) "Her hunger satiated, the horse eyes you skittishly."; if (self.fed == true && (francis.stable_prayed == true || cecilia. stable_prayed == true)); "The horse nuzzles up against you, eyes blank."; ], initial [; if (self.fed == false) "The horse stares at the bale of hay with wild eyes and scrapes at the ground with her hooves."; if (self.fed == true && self.beaten == true) "The horse stands, head down."; if (self.fed == true && (francis.stable_prayed == false && cecilia. stable_prayed == false)) "Her hunger satiated, the horse eyes you skittishly."; if (player in stalls) "The horse watches you quizzically."; if (self.fed == true && (francis.stable_prayed == true || cecilia.stable_prayed == true)); "The horse nuzzles up against you, eyes blank."; ], before [; Take,Push,Pull: if (francis.stable_prayed == false && cecilia.stable_prayed == false && self.beaten == false) "She is wild; she must be tamed."; else "Just walk, she will follow you."; TalkTo: if (francis.stable_prayed == false && cecilia.stable_prayed == false) "She whips her head and huffs at you."; else QuoteFrom(psalms33_17); "She whinnies playfully."; Examine: if (stalls.horse_seen == false) <>; else return false; Smell: "She reeks of sweat and sickness."; Feed: if (hay notin location or player) "You have nothing to feed her."; else self.fed = true; stalls.horse_seen = true; remove hay; "The horse hastily starts chomping at the hay. Within moments, the entire bale is gone."; Pet,Touch,Rub: if (francis.stable_prayed == true || cecilia.stable_prayed == true) "The horse nuzzles up against you, eyes blank."; else "The horse whips her head at your touch."; Attack,Kill,Push,Pull: if (location == stables && self.beaten == false) { sin_shadow.middle = true; self.beaten = true; "Raising your hand, you strike the horse across the muzzle. She flinches but stands defiant. Not to be thwarted by a dumb mule, you ball your hand into a fist and wail into her a few more times. It takes several minutes, but soon she is broken and subdued."; } if (location == pass) { sin_shadow.middle = true; remove horse; move dead_horse to pass; "Slowly, trying not to alarm her, you bend down and grab the largest rock you can pick up. Then, with as much force as you can muster, you slam the rock into her head. She looks up at you in a blank stare before crashing to the ground."; } else "There is no need."; Enter: if (location == pass){ deadflag = true; "Not wanting to find out what the noise is, you get back on the horse and urge her on to the monastery. ^^The noise continues to grow. You look up and see the side of the mountain sliding down in a massive avalanche. You spur the horse on, but she isn't fast enough. ^^The roar of the snow is not the last sound you hear. Who knew horses could scream?"; } if (location == river){ move horse to pass; print "There is nothing more to do, and so you climb back upon the horse, and urge her back to Saint Cuthbert's. ^^Just as the monastery comes into view, a sound echoes throughout the hills. A crisp, clean sound. Rock on rock.^"; PlayerTo(pass); return true; } if (location == gate) { move lucca_dead to river; statusbar_right = "Prime"; time_shadow.current_time = 4; print "Climbing atop the horse, you drive your heels into her sides. She whinnies, but remains calm as she takes off to the south. ^^After what seems like hours, you reach a small creek. Or at least it used to be a small creek. The few hours of sunlight have melted the snow enough that it is now a raging torrent.^"; PlayerTo(river); return true; } if (self.released == false) "You can't; she is trapped in her stall."; if ((francis.stable_prayed == false && cecilia.stable_prayed == false) && self.beaten == false) { deadflag = true; "The moment you touch her, she goes wild. The last thing you see is a flurry of hooves before you are knocked to the ground and trampled. ^^When they find you, you are little more than a bloody smear in the snow."; } if (location == stables) "The stables aren't suitable for riding. Perhaps you should go somewhere more suitable."; if (location ~= gate) "Perhaps you should go somewhere more suited to riding."; Drop: <>; ], life [; TalkTo,Ask,Tell,Answer: if (francis.stable_prayed == false && cecilia.stable_prayed == false) "She whips her head and huffs at you."; else QuoteFrom(psalms33_17); "She whinnies playfully."; Give: if (noun == hay) { self.fed = true; remove hay; "The horse hastily starts chomping at the hay. Within moments, the entire bale is gone."; } else return false; ], fed false, released false, following false, beaten false, has animate female enterable concealed; Object hay "hay" with name 'hay' 'bale' 'of' 'straw' 'grass' 'food', article "some", initial "A bale of hay sits just slightly more than neck's length from the horses' stalls.", description "It is mouldy and damp, but it does not appear to be rotten.", before [; Eat: "You're not that hungry."; Attack: <>; ], has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Garden !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room garden "Garden" class Outside_Room, with description [; switch(time_shadow.current_time) { 3: "These gardens used to provide most of the food for the entire monastery. Now, none. A few black stalks poke through the snow, their appearance always perfectly predicted by the rows they were planted in. The wilderness is stronger here: twisted briars block all paths but the one southwest, back to the stables."; default: "These gardens used to provide most of the food for the entire monastery. Now, none. A few black stalks poke through the snow, their appearance always perfectly predicted by the rows they were planted in. The wilderness is stronger here: twisted briars overrun the garden. The stables lie back to the southwest."; } ], sw_to stables, n_to [; if (time_shadow.current_time == 3) "The briars hold you back and strike out with little nicks as punishment for disturbing them."; else return clearing; ], cant_go [; "The briars hold you back and strike out with little nicks in retribution for disturbing them."; ], each_turn [; if (clearing hasnt visited && time_shadow.current_time >= 5) "^A garbled bleat rises through the hole in the briars."; ], before [; Listen: if (clearing hasnt visited && time_shadow.current_time >= 5) "A terrified bleat. It grows weaker as times goes on."; ], has ; Object stalks "dead plants" with name 'stalk' 'stalks' 'row' 'rows' 'plant' 'plants' 'black' 'dead' 'crop' 'crops' 'garden' 'gardens', description "Once upon a time, this was food. Now the rot has taken its hold.", before [; Take: "The blackened stalk crumbles in your hand."; ], found_in garden, has scenery pluralname; Object briars "briars" with name 'twisted' 'briar' 'briars' 'bramble' 'brambles' 'vine' 'vines' 'hole' 'opening' 'brush', describe [; if (time_shadow.current_time == 3) return true; if (location == garden) "^A hole has been cut through the briars to the north."; else "^The hole through the briars leads back south."; ], description [; switch(time_shadow.current_time) { 3: if (drogo4 in garden) "The briars tumble over themselves in a frantic race to overtake the garden. They are all winning: the garden is overrun. ^^Flashes of yellow dart about in the darkness. Eyes."; else "The briars tumble over themselves in a frantic race to overtake the garden. They are all winning: the garden is overrun."; default: if (location == garden) "A hole no larger than a man has been cut through the briars, leading to the north."; else "The hole leads back to the south."; } ], before [; Search: if (time_shadow.current_time == 3) "Shapes dart around in the darkness. Large shapes. Fast shapes."; else "Nothing but thorns and branches."; Take,Touch: "Ouch! Winter rot has done nothing to dull their thorns."; Enter: if (time_shadow.current_time == 3) "Ouch! Winter rot has done nothing to dull their thorns."; if (location == garden) <>; else <>; ], found_in garden clearing, has static pluralname; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !CLEARING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room clearing "Clearing" class Outside_Room with initial [; if (self has visited) "Bowing your head through the brush, you enter the clearing."; else move drogo_wolves to all_hints; StartDaemon(wolves); "Bowing your head through the brush, you enter a clearing."; ], description "A small patch of snow surrounded by briars. This used to be part of the garden; now nature has reclaimed it. The belltower rises out of the briars: a small hint of civilization in the wild.", s_to garden, out_to [; <>; ], has ; Object wolves "wolves" with name 'wolf' 'wolves' 'dog' 'dogs' 'alpha' 'pack', initial [; if (player in stalls) "The wolves prowl around the stables, every once in a while attempting a little leap up the sides."; if (location == garden) "The wolves bound in from the north."; if (location == stables) "The wolves are getting closer. The alpha nips at your heels, attempting to drag you down."; ], description [; "The wolves are emaciated and full of mange. Their fur hangs in loose grey tufts: pockets of fleas and disease."; ], daemon [; switch(++(self.chasing)) { 1: give lamb ~concealed; QuoteFrom(matthew10_16); "^As you enter the clearing, you see what the bleat was. A lamb, no more than a few weeks old, is tied to a branch, struggling frantically. He cries out in terror as a pack of wolves encroach from the briars. They are hungry and confused. Do they go for the small, easy meat? Or the larger, more difficult meat? ^^Just then, a shout from the belltower draws your attention. ~Yoohoo, father!~ You look up to see Drogo waving happily. ~You shouldn't have come: it's feeding time.~ -- he shrugs -- ~Oh well. Either way, they'll get fed.~ With that, he disappears down the stairs."; 2: if (lamb.tied == true) "^The alpha swings his head back and forth between you and the lamb. The others follow in unison."; else "^The wolves eye you and the lamb hungrily, uttering low, weak growls."; 3: if (lamb.tied == true) "^They have made their decision: you. Low growls ensue from all around as they approach."; else "^The wolves begin circling, almost cutting off your exit."; 4: deadflag = true; "^The alpha is the first to strike. He hits your leg, but he is so weak, you would barely feel it, if you weren't so weak yourself. A second strike to the back of your other leg sends you sprawling. You struggle to rise, but the rest of the pack leaps on you, smothering you in a blanket of mange and teeth."; } ], life [; Give: if (noun ~= hare or lamb) return false; if (noun == hare) { deadflag = true; "You toss the hare to the wolves, hoping to divert their attention. You don't. One immediately being gobbling up the hare, but the others set their eyes, and their teeth, on you."; } if (noun == lamb) deadflag = true; "You toss the lamb to the wolves, hoping to divert their attention. You don't. One immediately being gobbling up the lamb, but the others set their eyes, and their teeth, on you. ^^Your own bleats echo the lamb."; ThrowAt: if (noun ~= hare or lamb) return false; if (noun == hare) { deadflag = true; "You toss the hare to the wolves, hoping to divert their attention. You don't. One immediately being gobbling up the hare, but the others set their eyes, and their teeth, on you."; } if (noun == lamb) deadflag = true; "You toss the lamb to the wolves, hoping to divert their attention. You don't. One immediately being gobbling up the lamb, but the others set their eyes, and their teeth, on you. ^^Your own bleats echo the lamb."; ], before [; Attack,Kill: deadflag = true; "You strike out at the wolves, knocking one square in the snout. It whimpers and slinks back. But the others don't. They pounce and tear at your flesh leaving nothing but bones by the time they are through."; ], react_before [; Climb: if (noun == ladder) { if (player in stalls) { deadflag = true; "The moment you begin climbing down the ladder, one of the wolves leaps for your ankle. He barely grabs your frock, but it is enough to make you lose your balance. You fall into a churning sea of teeth and fur. ^^It swallows you up like all seas do."; } if (location ~= stables) return false; else self.in_stables = true; print "Scrambling frantically, you hurl yourself up the ladder. The alpha grabs your heel, but you shake vigorously enough to send him flailing off into a snow bank. Soon, the wolves regroup and prowl around the base of the stables, eyeing you hungrily.^"; PlayerTo(stalls); return true; } Go: if (location == garden && noun == n_obj) { deadflag = true; "You run right into the waiting mouths of the wolves. ^^The alpha is the first to strike. He hits your leg, but he is so weak, you would barely feel it, if you weren't so weak yourself. A second strike to the back of your other leg sends you sprawling. You struggle to rise, but the rest of the pack leaps on you, smothering you in a blanket of mange and teeth."; } if (location == stables && noun == ne_obj) { deadflag = true; "You run right into the waiting mouths of the wolves. ^^The alpha is the first to strike. He hits your leg, but he is so weak, you would barely feel it, if you weren't so weak yourself. A second strike to the back of your other leg sends you sprawling. You struggle to rise, but the rest of the pack leaps on you, smothering you in a blanket of mange and teeth."; } if (noun == s_obj && wolves notin garden) { give self ~concealed; move wolves to garden; StopDaemon(self); print "The chase is on. The wolves tear after you through the briars.^"; return false; } if (noun == sw_obj && wolves notin stables) { move wolves to stables; print "The wolves trample through the garden after you, snow flying up in their wake. You pant and your legs burn with exhaustion.^"; return false; } if (noun == w_obj && location == stables) { deadflag = true; "Your age, and the wolves, catch up with you. Stumbling, you scramble to retain your speed, but it is of no use. The alpha latches on to your heel, dragging you to the ground. The rest soon follow, smothering you in a blanket of mange and teeth."; } else return false; ], each_turn [; if (location == garden && self.in_garden == false) { deadflag = true; "^The alpha is the first to strike. He hits your leg, but he is so weak, you would barely feel it, if you weren't so weak yourself. A second strike to the back of your other leg sends you sprawling. You struggle to rise, but the rest of the pack leaps on you, smothering you in a blanket of mange and teeth."; } if (location == stables && self.in_stables == false) { deadflag = true; "^The alpha is the first to strike. He hits your leg, but he is so weak, you would barely feel it, if you weren't so weak yourself. A second strike to the back of your other leg sends you sprawling. You struggle to rise, but the rest of the pack leaps on you, smothering you in a blanket of mange and teeth."; } ], in_garden false, in_stables false, chasing 0, has pluralname animate concealed; Object lamb "lamb" with name 'lamb' 'ewe' 'sheep' 'baby' 'branch', initial "The lamb struggles against the branch.", description [; if (self.tied == true) "The lamb strains against the branch, but he is far too weak to escape on his own."; else "The lamb shakes with cold and terror, struggling against your grip."; ], before [; Take: if (wolves in clearing) { if (self.tied == false) return false; else move lamb to player; self.tied = false; "Darting quickly, you tear the lamb from the branch and clutch him to your chest. His quivering shakes your bones."; } else remove lamb; "You free the lamb from its trap. It runs off into the brush, still shaking."; Drop: if (self.tied == true) { if (wolves in location) { move lamb to player; self.tied = false; "Darting quickly, you tear the lamb from the branch and clutch him to your chest. His quivering shakes your bones."; } else remove lamb; "You free the lamb from its trap. It runs off into the brush, still shaking."; } if (lamb.tied == false) { deadflag = true; "You toss the lamb to the wolves, hoping to divert their attention. You don't. One immediately being gobbling up the lamb, but the others set their eyes, and their teeth, on you. ^^Your own bleats echo the lamb."; } else return false; ], tied true, has animate concealed; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !GATE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room gate "Gate" class Outside_Room, with initial [; if (self hasnt visited) QuoteFrom(nehemiah1_3); ], description [; if (self hasnt visited) "Lightning has torn through the gate, leaving only dark, broken rocks in its place. Black scorch marks twist their way through the rubble: stone crumbs are all that remain in some places. The snow is caked in soot: usually it would be lined with many footsteps, now only a few disturb the inky darkness. The snow covered path winds its way back north to the monastery and south towards Rovato."; else "Broken stone and snow are all that remain here. A north-south path with but a few footsteps can be picked out through the rubble leading from the monastery towards Rovato."; ], before [; Dig: if (noun == nothing) <>; Smell: if (noun == nothing) "Death and fire."; ], n_to path, s_to "The fallen snow is too thick. You would not make it far on foot.", out_to [; <>; ], has ; Object gate_object "gate" with name 'gate' 'door' 'rubble' 'stone' 'ruin' 'ruins' 'stones' 'rock' 'rocks', description "It is little more than scorched and broken rocks. What once protected Saint Cuthbert's couldn't protect itself. Funny how that works.", before [; Search: "Nothing but black, lightning-charred rock."; default: "It is only a heap of stones now."; ], found_in gate, has scenery; Object footprints "footprints" with name 'foot' 'print' 'prints' 'step' 'steps' 'footprints' 'footprint' 'footstep' 'footsteps' 'snow' 'soot' 'melted' 'hole' 'holes' 'track' 'tracks' 'scorch' 'mark' 'marks', description "There are two sets: one that goes both in and out, and another that only goes out. Mingled among them is a strange pattern in the snow. It looks as though someone was using two hot pokers as walking sticks, one in each hand. The melted holes cut through the snow, revealing scorch marks on the dead grass beneath.", before [; Dig,Push,Pull,Open: if (location == gate) <>; ], found_in gate path, has scenery pluralname; Object gate_bodies with short_name [; if (self.dug == false) { print "mounds"; return true; } else print "bodies"; return true; ], name 'body' 'bodies' 'villager' 'villagers' 'lumps' 'lump' 'mound' 'mounds' 'strange' 'corpse' 'corpses' 'dead' 'young' 'icy' 'woman' 'face', initial [; if (self.dug == false) "A series of strange mounds line the southern side of where the gate used to be."; else "A tangled mass of corpses lines the southern side of the former gate."; ], description [; if (self.dug == false) "They are misshapen: uneven. You cannot tell what they are beneath the snow."; else "Dozens of bodies line the wall: the villagers of Rovato."; ], before [; Eat: if (self.dug == false) "The snow is gritty and vile."; else QuoteFrom(leviticus26_29); sin_shadow.evil = true; "The flesh is hard. Your teeth grind upon it, eventually releasing a tiny lump of plague-ridden muscle. You chew. It tastes delicious nonetheless."; PrayFor: "It's your fault. A prayer is little consolation."; Search: <>; Take,Push,Open,Push,Pull: if (self.dug == true) "The bodies are frozen together in a heap of flesh and ice."; else <>; Smell: "Sickness. The cold has staved off the rot, but the smell of disease is not so easily defeated."; Dig: if (self.dug == false) { QuoteFrom(isaiah1_6); self.dug = true; "Shoveling through the snow with frostbitten hands, you eventually strike a rock. ^^No. Not a rock. You push back the rest of the snow to uncover the icy, stone-hard face of a young woman. She has only two colors: black and white. Plague colors."; } else "You think you know what is in the rest of the mounds."; ], dug false, found_in gate, has pluralname static; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !RIVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room river "River" class Outside_Room, with initial [; move at_the_river to all_hints; ], description "The sound is deafening as the river to the south crashes its way through jagged stones. White plumes of water explode off the rocks, soaking through your already damp frock.", before [; Listen: if (noun == nothing) "The river screams as it flies downstream. It stings your ears."; else "The rush of water, nothing else."; Swim: deadflag = true; "You attempt to swim across the river. At first, all is going well, until a large chunk of ice slams itself into your back. You flail, grabbing at anything that will hold you. ^^Nothing does."; ], n_to [; <>; ], s_to [; deadflag = true; "You attempt to pick your way across the rocks. At first, all is going well, until a large chunk of ice slams itself into your back. You flail, grabbing at anything that will hold you. ^^Nothing does."; ], has ; Object river_footprints "footprints" with name 'foot' 'print' 'prints' 'step' 'steps' 'footprints' 'footprint' 'footstep' 'footsteps' 'snow' 'track' 'tracks' 'blood' 'bloody' 'stain', initial "The tracks end here in a bloody stain upon the snow.", description "The tracks, orderly one-two steps before, are now a tangled mash leading into the river. The snow is dirty and soaked with blood.", before [; Examine: return false; Take: <>; default: "It is little more than blood and snow. There is nothing you can do."; ], found_in river, has static; Object water "river" with name 'water' 'river' 'creek' 'stream' 'torrent' 'raging', description [; if (lucca_dead.on_land == true || lucca_dead notin river) "White and blue. Its wrath is awe-inspiring. The river tears at the rocks, and its roar tears at your ears."; else "White and blue. Its wrath is awe-inspiring. The river tears at the rocks, and its roar tears at your ears. ^^A little downstream is a sack filled with straw. No, not a sack: something else."; ], before [; Enter: <>; ], found_in river, has scenery; Lucca lucca_dead with short_name [; if (self.examined == false) { print "thing"; rtrue;} else print "Lucca"; rtrue; ], name 'thing' 'sack' 'something' 'straw' 'lucca' 'body' 'corpse', initial [; if (self.on_land == true) "Lucca's body rests in the snow."; else "Lucca stares up at you, his eyes as cold as the water around them."; ], description [; if (self.on_land == true) "You touch the body briefly and feel his bones ground to meal inside. He is soft and bruised from the fury of the water. But the deep, sharp wound in his back looks more like a knife wound than anything done by nature. Oh, Lucca."; if (self.examined == false) "The thing flaps in the water: it looks to be burlap with a shock of straw sprouting from the top. Getting a little closer, you see what it actually is. ^^Lucca. His mouth is agape: frozen. Blood wells up from inside and mingles with the water as it flows by, adding a little color to the white and blue."; else "Lucca stares up at you, his eyes as cold as the water around them."; ], react_before [; Ask,Tell,Answer: if (noun == self) "Dead men tell no tales."; ], before [; Eat: QuoteFrom(leviticus26_29); sin_shadow.evil = true; "His flesh is soft from being thrown about in the river: like it had been tenderized with a mallet. You dig your teeth into the side of his stomach. The blood is cool, but it slakes your thirst like never before."; PrayFor: "Poor Lucca. Your prayer rides the wind up to Heaven."; Bury: "The ground is far too hard."; TalkTo: if (self.on_land == false) { print "You cannot hear with ", (the) self, " in the river.^"; return true; } else switch((self.dead_talking)++) { 0: QuoteFrom(lucca_dead_quote1); "The roar of the river is the only answer."; 1: QuoteFrom(lucca_dead_quote2); "The roar of the river is the only answer."; 2: QuoteFrom(lucca_dead_quote3); "The roar of the river is the only answer."; default: "The roar of the river is the only answer."; } Search: if (self.on_land == false) { ; "^You'll have to pull him to shore before you can search him."; } if (lucca_paper has moved) <>; else move lucca_paper to player; ; "^Digging through his frock, you find a rough piece of paper. It is wet, but holds together as you pull it out."; Smell: "Clean and cold."; Examine: if (self.examined == false && self.on_land == false) { give self proper; give self ~concealed; self.examined = true; "The thing flaps in the water: it looks to be burlap with a shock of straw sprouting from the top. Getting a little closer, you see how wrong you were. ^^Lucca. His mouth is agape: frozen. Blood wells up from inside and mingles with the water as it flows by, adding a little color to the white and blue."; } else return false; Take,Pull: if (self.on_land == false) { give self ~concealed; self.on_land = true; print "Careful not to slip, you drag ", (the) self, " up the bank.^"; return true; } else "There is nothing more you can do."; Push: remove self; "Kicking off with your foot, you send the corpse drifting down the river."; ], examined false, dead_talking 0, on_land false, has concealed; Object lucca_paper "Lucca's paper" with name 'piece' 'of' 'paper' 'lucca^s', description [; print "On the front, written in ink:"; style underline; print "^^I have tried praying, but my thoughts still torment me. No one listens! So I will write. They always say God sees everything, but maybe he just doesn't hear everything. ^^I don't know what to do. Matteo tells me something strange is going on, but he can't tell me what. No, he won't tell me what. He's afraid of endangering me. Or he doesn't care. I can't tell with him anymore. ^^He doesn't care about anything anymore. ^^He says not to trust anyone. I wonder if that applies to him as well. He has changed; he never kept secrets before. He says not to trust even the father. He says he has changed the most."; style roman; print "^^And on the back, written in blood:"; style underline; print "^^Matteo is dead. And he was right. Everyone has changed.^"; ], has legible proper; Object river_rocks "rocks" with name 'rock' 'rocks' 'stone' 'stones' 'jagged', description "Sharp and slippery.", before [; Enter: deadflag = true; "You attempt to pick your way across the rocks. At first, all is going well, until a large chunk of ice slams itself into your back. You flail, grabbing at anything that will hold you. ^^Nothing does."; ], found_in river, has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !PASS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Room pass "Mountain Pass" class Outside_Room, with initial [; StartDaemon(self); ], description [; switch(self.avalanche) { 0,1,2,3: "Still. The wind has all but stopped. Steep, white hills tower on both sides, blocking you in. The monastery looms in the north."; 4,5,6: "The wind has all but stopped. Steep, white hills tower on both sides, blocking you in. The monastery looms in the north."; default: "Despite the avalanche, very little has changed. When all there is is snow and it moves, it is hard to tell. The monastery lies to the north."; } ], before [; Listen: if (figure.found == false) { give figure ~concealed; figure.found = true; "The sound continues. It is difficult to place: with the echo, it could be anywhere. ^^Glancing around, you find the source, a dark shape high on the hill amongst some rocks. It is moving."; } else "The sound continues, getting louder."; Hide: if (dead_horse notin self) "There is nowhere to hide."; else self.hiding = true; "You crouch behind the dead horse and curl yourself into a ball."; ], daemon [; switch(++(self.avalanche)) { 2: "^The sound gets louder."; 3: "^The cracking sound is joined another: a more diffuse sound. A rumble."; 4: if (dead_horse notin self) { move moving_avalanche to pass; remove horse; "^The rumble turns to a roar. Waves of snow begin coasting down the hill in an avalanche. ^^The horse snaps out of its stupor, ears shooting up. Before you can move, she bolts off down the pass."; } else "^The rumble turns to a roar. Waves of snow begin coasting down the hill in an avalanche."; 5: "^Trees are snapped like twigs, joining the slide."; 6: if (medard.pass_prayed == false && cecilia.pass_prayed == false && self.hiding == false) { QuoteFrom(avalanche_quote); "^It is here."; } else "^It is here."; 7: if (medard.pass_prayed == true || cecilia.pass_prayed == true) { remove moving_avalanche; "^Just a few feet from your head, the wave of snow splits in two, passing to either side of you. ^^The rush lasts only a few more seconds before dwindling, and when it stops, you are shaken but unharmed."; } if (self.hiding == true) { remove moving_avalanche; "^The waves of snow pass over you, but luckily the horse's body shields you from the brunt of the impact. Her residual warmth is just enough to carry you through to the top of the snow once the avalanche has passed."; } else deadflag = true; "^Waves of snow consume you, crushing the air from your lungs. You would fight, but the cold is so intense you cannot move. ^^How can something so white look so black?"; } ], avalanche 0, hiding false, n_to [; if (self.avalanche < 7) "You run north a little ways, but it does little good. The avalanche still approaches."; else give briars ~concealed; move drogo_wolves1 to clearing; move wolves to clearing; move lamb to clearing; move cellar_key to constantin5; move constantin5 to constantin_room; move tool_snow to outside_calefactory; remove hidden_wolves; remove drogo4; remove constantin3; statusbar_right = "Terce"; time_shadow.current_time = 5; print "With the avalanche over and the horse gone, you have no choice but to make it back to the monastery on foot. ^^You don't know how long it takes. All you know is now the sky has clouded over, and drifts of snow make their way down from above.^"; PlayerTo(gate); return true; ], u_to [; "The sides are far too steep."; ], has ; Object hills "hills" with name 'hill' 'hills' 'mountain' 'mountains', before [; Examine: if (figure.found == false) { give figure ~concealed; figure.found = true; "You scan the hills, searching for the source of the noise. ^^You find it: a dark figure amongst some rocks high up in the pass. It is moving."; } else "The hills tower above you."; Listen: if (figure.found == false) { give figure ~concealed; figure.found = true; "The sound continues. It is difficult to place: with the echo, it could be anywhere. ^^Glancing around, you find the source, a dark shape high on the hill amongst some rocks. It is moving."; } else "The sound continues, getting louder."; default: "Not from here."; ], found_in pass, has scenery; Object figure "figure" with name 'figure' 'dark' 'shape' 'man' 'brother', initial [; if (pass.avalanche < 7) "The figure moves rapidly. Black against white."; else "The figure is gone."; ], description "You can't make anything out from here.", before [; Examine: if (pass.avalanche < 7) "The figure moves rapidly. Black against white."; else "The figure is gone."; default: "It is too far away."; ], found false, found_in pass, has concealed; Object dead_horse "dead horse" with name 'dead' 'horse', description "The horse lies still upon the ground, blood oozing through the wound you inflicted.", initial "The horse lies still upon the ground, blood oozing through the wound you inflicted.", before [; Smell: "Same as before, with a hint of terror sweat."; Attack: "There is no sense in beating a dead horse."; ], has female; Object moving_avalanche "avalanche" with name 'avalanche' 'snow' 'slide' 'snowslide', description "The avalanche goes larger and larger, snapping up trees and stones to join in its ride.", before [; Examine,Listen: return false; default: "Better not."; ], has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !NPCS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Cecilia !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Cecilia_class cecilia1 with short_name [; if (self.talking_angel == 0) { print "girl"; return true; } else print "Cecilia"; return true; ], name 'girl' 'cecilia' 'young' 'woman' 'lady', initial [; switch(time_shadow.current_time) { 0: "The girl sleeps upon the bed, turning fitfully every now and then."; 1: if (self.talking_angel >=2) "The girl sleeps peacefully upon the bed, a heavenly glow upon her."; else "The girl sobs gently, head in her hands."; } ], description [; switch(self.description_state) { 1: "The young girl lies comatose on the bed, her only movement the occasional fit of shivering."; 2: "The young girl lies comatose on the bed. She shivers, but less fitfully now with the warmth of the fire soothing her."; 3: "The filthy young girl now lies under a filthier blanket. Still, by her calmer expression, it appears she prefers it to the cold."; 4: "With the fire going and a blanket around her, the girl almost seems content."; 5: "With her hunger satiated and the cold driven from her bones, the girl finally seems content."; 6: "The girl watches you through tear-ringed eyes."; } ], each_turn [; if (self.bedding_given == true && locutory_fireplace.lit == true && self. food_given == true) self.description_state = 5; if (self.bedding_given == true) self.description_state = 3; if (locutory_fireplace.lit == true) self.description_state = 2; if (self.bedding_given == true && locutory_fireplace.lit == true && self. warm_enough == false) { self.warm_enough = true; self.description_state = 4; "^The warmth is finally enough for her to stir. ^^~Food,~ she says. ~Please.~ ^^With that, she passes back into slumber."; } else return false; ], before [; Close: if (your_bedding in player) <>; else "You have nothing to cover her with."; Smell: QuoteFrom(kiss_cecilia_quote); "Sweet. Delicious. ^^Tempting."; WakeOther: if (self.woken == false) "You nudge her gently, but her slumber is too deep."; else "There is no need."; Listen: if (time_shadow.current_time == 0) "Her breathing is shallow, but steady."; else "She cries. Not a wail, but a gentle, defeated sob."; Feed: if (cecilia_food notin player) "You have nothing to feed her."; else <>; Receive: if (noun == your_frock) "Perhaps something that wouldn't leave you naked."; if (noun == your_bedding) { move your_bedding to cecilia1; self.bedding_given = true; "You drape your bedding over the girl, and she seems to calm down a bit."; } else return false; SleepWith,Enter: if (self.woken == true) "The girl pushes you away."; if (self.slept_with == true) "You have had enough."; else QuoteFrom(sleepwith_cecilia_quote); sin_shadow.evil = true; self.slept_with = true; "With the girl comatose, you enter her. Before long, you have had your way and push her back on the bed, asleep."; ], life [; WakeOther: if (self.woken == false) "You nudge her gently, but her slumber is too deep."; else "There is no need."; Touch: if (self.woken == true) "She backs away from you."; else QuoteFrom(kiss_cecilia_quote); "You touch her gently. She is soft. So soft."; Kiss: if (self.woken == true) "She backs away from you."; else QuoteFrom(kiss_cecilia_quote); "You kiss her gently. She is soft. So soft. She tastes good."; Attack: if (self.woken == false) { self.description_state = 6; self.woken = true; self.smacked = true; StartDaemon(self); "~Wake up!~ you snarl, striking the girl across the face. She groans. You strike her again, and she begins to stir."; } else "She is already awake."; Give: if (noun == your_frock) "Perhaps something that wouldn't leave you naked."; if (noun == cecilia_food && self.woken == true) "She gobbles down the food."; if (noun == cecilia_food && self.woken == false) { if (locutory_fireplace.lit == true && self. bedding_given == true) { remove cecilia_food; self.description_state = 5; self.food_given = true; self.woken = true; StartDaemon(self); "~Here,~ you say, holding out the food. ~I have brought you something to eat.~ ^^Finally, the girl stirs awake and quickly grabs the food from your hands. ~Thank you,~ she says as she shoves the food into her mouth. Within moments, the few crumbs you had given her are gone, and she finally seems content."; } else "You try to prompt the girl awake with the food, but her cold is too great for her to stir."; } if (noun == your_bedding) { move your_bedding to cecilia1; self.bedding_given = true; "You drape your bedding over the girl, and she seems to calm down a bit."; } ], daemon [; switch (++(self.bell_ringing)) { 2: if (self.smacked == false) { move neck_lump to misc_shadow; statusbar_right = "Compline"; time_shadow.current_time = 1; give flagstone ~concealed; "^~Thank you for your kindness, father.~ She starts, extending her hand for the pax. ~My name is Cec--~ Just then, her words are cut off by the sound of a bell ringing in the distance. Her eyes widen and the blood drains from her cheeks. ^^~There's nothing to be afraid of,~ you say, taking her hand gently. ~It is only the bell of Compline.~ ^^~That is why I am afraid.~ Her chin drops to her chest."; } else move neck_lump to misc_shadow; statusbar_right = "Compline"; time_shadow.current_time = 1; give flagstone ~concealed; "^The girl looks up at you sadly, shaking her head. ~Oh, father,~ she starts. Just then, her words are cut off by the sound of a bell ringing in the distance. Her eyes widen and the blood drains from her cheeks. ^^~What are you afraid of?~ you snap. ~It is only the bell of Compline.~ ^^~That is why I am afraid.~ Her chin drops to her chest."; 3: move tower_dead_body to tower; move dead_body to belltower_bottom; move drogo2 to belltower_bottom; move constantin2 to belltower_bottom; move ignatius2 to belltower_bottom; move brothers_tower to belltower_bottom; move lucca2 to belltower_bottom; move hare to constantin_room; remove matteo1; remove drogo1; remove constantin1; remove constantin_tools; remove ignatius1; remove lucca1; self.description_state = 6; QuoteFrom(job27_9); "^The bell continues its toll. Four. Five. Six... In place of the seventh ring is a scream. A scream that rips in from the cloister and silences the wind. ^^The girl places her head in her hands with a slight sob. ~I am sorry, Father.~ Then, turning. ~And to you too.~"; 4: StopDaemon(self); } ], react_before [; Go: if (self.bell_ringing >= 1 && self.bell_ringing <= 2) "Not yet."; else return false; Enter: if (noun == locutory_door) { if (self.bell_ringing >= 1 && self.bell_ringing <= 2) "Not yet."; else return false; } if (noun == locutory_bed && self.woken == true) "The girl pushes you from the bed."; if (noun == locutory_bed && self.woken == false) <>; ], description_state 1, !1 = cold 2 = fire on 3 = bedding given 4 = bedding given fire on warm_enough false, bedding_given false, food_given false, woken false, smacked false, bell_ringing 0, slept_with false, has female transparent; Cecilia_class cecilia2 "Cecilia" with initial [; if (self in entrance_hall) "Cecilia watches from her doorway."; else "Cecilia paces back and forth."; ], description [; "Sleep has done nothing to tame her beauty."; ], react_before [; Go: if (noun == n_obj && location == entrance_hall) { move self to locutory; print "Cecilia turns for the locutory.^"; return false; } else return false; ], has ; Object cecilia_back "Cecilia's back" with pname 'cecilia^s' 'back' 'wing' 'wings' 'lump' 'lumps', description "Lumps protude from Cecilia's back.", before [; Examine: return false; default: "Don't bother."; ], found_in [; if (noun ofclass cecilia_class) return true; ], has concealed; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Drogo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Drogo drogo1 "Brother Drogo" with name 'brother' 'drogo' 'man', initial [; if (refectory hasnt visited) "Brother Drogo sits at one of the tables, scratching furiously at its hard surface."; else "Brother Drogo mumbles to himself, his eyes darting back and forth from nothing to nothing."; ], description "Brother Drogo sits in a filthy frock, black tendrils of greasy hair dangling in his eyes. Every now and then, he puffs loudly to blow the hair out of his face, but it always falls back.", visitor_told false, has proper male; Drogo drogo2 "Brother Drogo" with description "Drogo briskly rubs his hands together, as though to ward off frostbite. But his hands aren't cold. When he catches you looking at him, he grins.", initial [; if (brothers_tower notin belltower_bottom && self in belltower_bottom) "Drogo grins at you."; if (self.said_begins == false) { self.said_begins = true; "Drogo jumps up and down, rubbing his hands with glee. ~It begins,~ he squeals to you through a wide grin."; } else print ""; ], react_before [; Go: if (brothers_tower notin belltower_bottom && noun == ne_obj or u_obj or sw_obj) { print "^~Sweet dreams, father!~ Drogo calls out to you as he disappears into the black.^"; remove drogo2; return false; } else return false; ], said_begins false, has ; Drogo drogo3 "Drogo" with initial [; if (self in cloister) StartDaemon(self); if (self in church) "Drogo grins widely as he drags you up to the chancel."; if (self in chancel) "Drogo stands proudly and looks to you for approval, his grin tentative."; ], description "His hair is pasted to his forehead with sweat. His eyes are wild and bloodshot.", daemon [ ; switch (++(self.show_matteo)) { 1: move drogo_church_hint to all_hints; move drogo_dragging to misc_shadow; give windows concealed; give crucifix concealed; give church_font concealed; give lectern concealed; give saint_cuthbert concealed; move self to church; "You see Drogo strolling past to the south before he catches sight of you and waves. ^^~Father!~ Drogo squeals, skipping towards you. ~I was just about to come find you. You must come with me! It is so beautiful!~ He says, grabbing you by the arm and tugging you towards the church."; 2: PlayerTo(church); move self to chancel; "^~Come, father.~ His eyes glow with childlike enthusiasm, but his grip is of steel. ~We are almost there!~ ^^Something is different at the far end of the chancel. Is it? ^^Good Lord."; 3: PlayerTo(chancel); "^~Look, father!~ he says, dragging you before the cross. ~I made it all by myself.~ ^^Looking up, you see what Drogo was so excited about. Matteo dangles crucified from the cross, vicious holes in his hands and feet."; 4: remove drogo_dragging; give windows ~concealed; give crucifix ~concealed; give church_font ~concealed; give lectern ~concealed; give saint_cuthbert ~concealed; "^~Well, father. Isn't it beautiful?~ Drogo stands, gripping your wrist tightly and nodding proudly to himself."; 6: if (self.talking == false) { move hidden_wolves to garden; move machete to drogo4; move drogo4 to garden; remove self; "^Drogo strokes his chin thoughtfully. ~Hmmm. But it needs something.~ He looks confused for a moment, before flinging a hand in the air with a satisfied whistle. ~And I know exactly what!~ ^^Before you can move, he sprints out of the church."; } else StopDaemon(self); } ], before [; Smell: "He must have been working hard at something: he reeks of fresh sweat."; ], react_before [; Go: if (self in chancel && self.show_matteo <= 5 && noun == s_obj or d_obj) "Drogo's grip tightens, nearly crushing your wrist. ~Don't go anywhere, father. Not yet.~"; if (self in chancel && self.show_matteo > 5 && noun == s_obj or d_obj) move hidden_wolves to garden; move machete to drogo4; move drogo4 to garden; remove self; "^Drogo strokes his chin thoughtfully. ~Hmmm. But it needs something.~ He looks confused for a moment, before flinging a hand in the air with a satisfied whistle. ~And I know exactly what!~ ^^Before you can move, he sprints out of the church."; Listen: if (noun == nothing or self) "Drogo chitters to himself excitedly."; Yes: if (self.show_matteo < 6 && self.show_matteo > 3) { move hidden_wolves to garden; move machete to drogo4; move drogo4 to garden; remove self; StopDaemon(self); "~It is, isn't it?~ Drogo strokes his chin for a moment before flinging a hand up in the air. ~But it's missing something, and I know just where to find it.~ ^^Before you can move, he sprints out of the church."; } else return false; No: if (self.show_matteo < 6 && self.show_matteo > 3) { move hidden_wolves to garden; move machete to drogo4; move drogo4 to garden; remove self; StopDaemon(self); "For a moment, Drogo's face darkens and his eyes fill with hatred. He steps up to you, hands moving towards your throat, but just as quickly, he stops. ~Hmmm.~ He says, stroking his chin. ~Perhaps you are right. But don't worry, I will make it better. I know just what it needs.~ ^^Before you can move, he sprints out of the church."; } else return false; ], each_turn [; if (self notin cloister or chancel or church) StopDaemon(self); if (self.talking > 0) self.talking = self.talking - 1; if (self.talking == 0 && self.show_matteo > 5) { move hidden_wolves to garden; move machete to drogo4; move drogo4 to garden; remove self; "^Drogo strokes his chin thoughtfully. ~Hmmm. But it needs something.~ He looks confused for a moment, before flinging a hand in the air with a satisfied whistle. ~And I know exactly what!~ ^^Before you can move, he sprints out of the church."; } else return false; ], talking 0, show_matteo 0, has ; Drogo drogo_dragging "Drogo" with description "His hair is pasted to his forehead with sweat. His eyes are wild and bloodshot.", react_before [; Listen: if (noun == nothing or self) "Drogo chitters to himself excitedly."; ], before [; Smell: "He must have been working hard at something: he reeks of fresh sweat."; ], life [; Ask,Tell,Answer: "~Shhhh, father. There'll be plenty of time for question and answer soon enough.~"; ], has ; Drogo drogo4 "Drogo" with initial "Drogo slashes wildly at the briars with a dull machete.", description "The machete flies at the briars, tearing of bits and pieces as it goes. Drogo's arms are sliced and bruised from the work, but he does not notice. He doesn't seem to notice much besides the briars.", has container transparent; Object machete "machete" with name 'machete' 'blade', description "It is dull, but Drogo's fury makes its work easy.", before [; Take: "~No!~ he squeals, drawing back. ~It's mine! All mine!~"; ], has ; Object hidden_wolves "wolves" with name 'wolf' 'wolves' 'alpha' 'dog' 'dogs' 'pack' 'growl' 'growls' 'chorus' 'eye' 'eyes' 'shape' 'shapes', initial "A low chorus of growls rises from the briars, singing with the swing of Drogo's blade.", before [; Examine: QuoteFrom(ezekial22_27); <>; Listen: if (noun == self or nothing or briars) QuoteFrom(ezekial22_27); "A low growl. They hunger."; Smell: if (noun == self or nothing or briars) QuoteFrom(ezekial22_27); "Mange. An animal smell."; default: QuoteFrom(ezekial22_27); "A growl is the only response."; ], has static; Drogo drogo_wolves1 "Drogo" with before [; default: "Drogo is gone."; ], has scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Ignatius !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Ignatius ignatius1 "Brother Ignatius" with name 'man' 'brother' 'ignatius', initial "Brother Ignatius sits in one of the pews near the front, staring intently at the candles.", description "The scar through his left eye having left him half-blind, Ignatius makes up for it by staring twice as hard at the candles with his good eye. The eye refuses to blink.", has male; Ignatius ignatius2 "Brother Ignatius" with describe [; if (self in belltower_bottom) return true; if (self in cloister) "^Ignatius's dark robes flutter behind him as he enters the dormitory."; if (self in dormitory) "^Ignatius swirls into his room."; if (self in ignatius_room) "^Ignatius sits upon his bed, preparing to go to sleep."; else "ERROR"; ], description [; if (self in cloister) "Ignatius's dark robes flutter behind him as he enters the dormitory."; if (self in dormitory) "^Ignatius swirls into his room."; if (self in ignatius_room) "^Ignatius sits upon his bed, preparing to go to sleep."; if (brothers_tower.murder_conversation >= 2) "Ignatius meets Constantin's eyes with his one, the intensity more than making up for the lack."; else "Ignatius stands over Matteo, his head bowed in prayer. He makes the sign of the cross upon his chest. No? Is he simply scratching?"; ], life [; Ask,Tell,Order: "~I am busy right now, father.~ He replies abruptly."; ], daemon [; switch (++(self.after_murder)) { 2: move self to cloister; 3: move self to dormitory; 4: move self to ignatius_room; 5: StopDaemon(self); } ], after_murder 0, has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Constantin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Constantin constantin1 "Brother Constantin" with name 'constantin' 'constantine', initial "Brother Constantin sits on the bed, a young hare dangling from his hand. His knife moves swiftly.", description "Constantin sits on the bed, causing it to sag from his immense mass. Despite his size, he moves swiftly, his knife darting in and out between the hare's skin and muscle. A pool of blood forms at his bare feet.", react_before [; Take: if (noun == constantin_tools) "~Leave them, father,~ he growls without missing a slice."; ], has ; Constantin constantin2 "Brother Constantin" with describe [; if (self in belltower_bottom) return true; if (self in cloister && self.after_murder < 3) "^Constantin shoves Lucca roughly to the calefactory."; if (self in cloister && self.after_murder > 3) "^Constantin stalks off towards the dormitory."; if (self in dormitory) "^Constantin flies into his room."; if (self in constantin_room) "^Constantin goes about preparing himself for bed."; if (self in outside_calefactory) "^With a slight swear, Constantin hurls Lucca into the calefactory. You hear a heavy thud as Lucca crashes to the ground, but his continued mumblings tell that he is not too badly injured. ^^Grinning, Constantin pulls a shining lock from his belt and secures it to the door. ~That should hold him,~ he sneers. A grunt is all he gives you as he pushes by you to the dormitory."; ], description [; if (self in constantin_room) "Constantin stands in bare feet, yet he does not appear to be cold."; if (self in cloister) "^Constantin shoves Lucca roughly to the calefactory."; if (brothers_tower.murder_conversation >= 2) "Constantin stands face to face with Ignatius, his face flushed. "; else "Constantin stands in bare feet, yet he does not appear to be cold. A dead hare dangles from his hand, all traces of its fur removed."; ], daemon [; switch (++(self.after_murder)) { 2: move self to cloister; move lucca2 to self; 3: move self to outside_calefactory; move calefactory_lock to calefactory_door; give calefactory_door ~open; 4: move lucca_behind_door to outside_calefactory; move self to cloister; 5: move self to dormitory; 6: move self to constantin_room; time_shadow.lucca_jailed = true; } ], after_murder 0, has transparent container open; NPC figure_behind_door "scuffling" with name 'noise' 'scuffle' 'scuffling' 'sound', react_before [; Exit: if (player notin your_bed) <>; Go: if (noun == out_obj or w_obj) <>; Open: if (noun == your_door) <>; ], before [; Listen: "Foot against flagstone."; TalkTo: "There is no response, but the scuffling stops for a moment before resuming."; default: "Not from here."; ], life [; Ask,Tell: "There is no response, but the scuffling stops for a moment before resuming."; ], has scenery; Constantin constantin3 "Constantin" with initial [; if (self in entrance_hall) { StopDaemon(your_bedroom); StartDaemon(self); "Constantin stands impatiently, face flushed."; } if (self in cloister) "Constantin storms to the calefactory, kicking up snow as he does."; if (self in outside_calefactory && self.show_calefactory >= 5) "Constantin goes about repairing the door, hands moving swiftly."; if (self in outside_calefactory) self.show_calefactory = 3; StartDaemon(self); return true; ], description "He is finally beginning to show the effects of hunger and the plague. His eyes are bloodshot: when they aren't squinting from the sun. He used to look so peaceful.", daemon [; switch(++(self.show_calefactory)) { 1: move self to cloister; "^~It's about time. Come with me.~ He grumbles as he stomps off to the cloister."; 2: move self to outside_calefactory; StopDaemon(self); 4: remove calefactory_lock; move constantin_tools to outside_calefactory; move calefactory_hole to outside_calefactory; move drogo3 to cloister; "~See,~ he shouts, pointing aggressively to a gaping hole where the lock used to be. ~The bastard kicked it out from inside.~"; 5: "^Constantin starts mumbling curses under his breath as he pulls some tools from his belt and begins repairing the door."; 6: StopDaemon(self); } ], react_before [; Listen: if (noun == nothing or self) "Tap. Tap. Tap. Tap."; Open,Close,Lock: if (noun == calefactory_door) "~Don't touch that! I'm trying to work,~ he growls."; Go: if (noun == nw_obj) StopDaemon(self); Take: if (noun == constantin_tools) { if (self.take_attempted == false) { self.take_attempted = true; "Constantin strikes your hand, hard, with the hammer. ~Touch them again, and it will be your head,~ he growls without even glancing towards you."; } else deadflag = 1; "Before you can react, Constantin slams the hammer into the side of your skull. A crack. A few stars. A gibbered apology and hot breath in your mouth. ^^Then darkness."; } else return false; ], show_calefactory 0, take_attempted false, has ; Object tool_snow "snow" with name 'snow' 'snowflakes' 'snowflake' 'blanket', initial [; if (self.dug == false) "A fresh blanket of snow lies upon the ground."; ], description "Faint raises in the snow mark something underneath.", react_before [; Dig,Search: if (noun == nothing or self && self.dug == false) move constantin_tools to player; remove self; self.dug = true; "You dig a little ways into the snow until you find Constantin's abandoned tools. You slide them into your pocket: their chill hurts your hands."; ], dug false, has static; Object constantin_tools "tools" with name 'tool' 'tools' 'hammer' 'nails' 'nail', description [; if (location == constantin_room) "Constantin was a Godsend when he arrived five years ago. Before him, Saint Cuthbert's had to enlist the help of laypeople in Rovato whenever something needed to be built. Now, Constantin does it all cheerfully, except for the occasional grumble."; else "A hammer. Some nails. Constantin usually carries them everywhere."; ], before [; Examine,Smell,Listen: if (tool_snow.dug == false && location == outside_calefactory && time_shadow.current_time ~= 3) "You can see no tools here."; default: if (location == constantin_room) return false; if (constantin3 in location) "That's not a wise idea."; if (tool_snow.dug == false) "You can see no tools here."; else return false; ], has concealed pluralname; Object calefactory_hole "hole" with pname 'hole' 'gaping' 'lock' 'hint' 'of' 'red' 'sparkles' 'blood' 'wood', description [; switch(time_shadow.current_time) { 3: "The broken boards are smashed inwards and there are no splinters on this side. A slight hint of red sparkles on the wood."; default: "Constantin has done a little work to repair it, but it looks as though he was not able to finish. At least he unstuck it, though."; } ], before [; Search: "Looking through the hole, you can see little."; ], react_before [; Examine: if (noun == calefactory_door) <>; Open,Unlock,Enter: if (pass has visited) return false; if (noun == calefactory_door) "The door is jammed and broken now; it does not open."; Go: if (pass has visited) return false; if (noun == se_obj) "The door is jammed and broken now; it does not open."; ], has scenery; Constantin constantin5 "Constantin" with name 'ear' 'ears' 'constantin^s', describe [; if (cellar_key in self) "^Constantin lies on his side, vomit oozing from the side of his mouth. A set of keys dangles from the belt of his frock, jingling ever so slightly."; else "^Constantin lies on his side, vomit oozing from the side of his mouth."; ], description [; "A massive lump of sickness, Constantin lies with his eyes swollen shut. He breathes irregularily, the air forcing out bits of blood and vomit from his mouth."; ], react_before [; PrayThrough: if (noun == cuthbert) "All is quiet for a moment. Motes of light sparkle down from the ceiling drifting towards Constantin. They swirl. Faster. More. They envelope him. He flinches at their touch. They enter his wounds, his mouth, his eyes. He screams. They do not stop. ^^Finally, they have all entered him and he is no different than before. His scream still lingers. He gibbers in pain."; ], life [; HelpPerson: "There is nothing you can do for him."; ], before [; Kill: QuoteFrom(kill_constantin_quote); sin_shadow.evil = true; remove constantin5; move cellar_key to constantin_room; move constantin_dead to constantin_room; "Moving swiftly, you rip the pillow from beneath Constantin's head and slam it onto his face. He is so weak. A few kicks are all he gives before he shudders and goes still."; Attack: "Constantin grumbles and waves you away."; Receive: if (noun ~= your_candle) return false; if (self.waxed == false) { self.waxed = true; "Carefully, you drip a little bit of wax into Constantin's exposed ear. Soon, it wells out the top before forming a hard plug."; } else "His ears are plugged enough."; LetGo: if (noun == cellar_key && self.waxed == false) { deadflag = true; "You gently try to untangle the keys from his belt, but the moment you touch them, they jingle as if to sound an alarm. Constantin's swollen eyelids snap open, revealing two bloodshot orbs. ^^~Thief!~ he cries, bolting up. Despite his illness, he is still a strong man. He flings you against the wall, knocking you unconscious. Despite your illness, you are still a weak man. ^^You don't wake up."; } if (noun == cellar_key && self.waxed == true) move cellar_key to player; "You gently untangle the keys from his belt. He does not stir."; ], waxed false, has container transparent open; Constantin constantin_dead "Constantin" with name 'constantin' 'dead' 'brother' 'man', description "He is little more than a still mass of tumors and cloth.", describe [; if (cellar_key hasnt moved) "^Constantin's body lays on its side, keys hanging limply from his belt."; else "^Constantin's corpse sinks into his bed."; ], before [; Eat: QuoteFrom(leviticus26_29); sin_shadow.evil = true; "Constantin's flesh is soft and squishy. The plague has done much. You barely have to chew. It simply slides down your throat and into your belly."; Search: if (cellar_key notin self) "Nothing but tumors and vomit."; else move cellar_key to self; "You grab the keys, and they jingle softly in your hand."; Push,Pull,Take: "He is too heavy."; ], has static; Object cellar_key "keys" with name 'cellar' 'keys' 'belt' 'set' 'of' 'key', describe [; return true; ], description "They shine brightly and jingle when they move.", has pluralname; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Lucca !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Lucca lucca1 "Brother Lucca" with initial [; switch(location) { cloister: "Brother Lucca, face flushed and cheeks wet, storms out from the bell tower and off to the dormitory in the east, meeting your eyes for only a moment. ^^~Are you alright, Brother?~ you ask, receiving no response."; dormitory: "His frock fluttering behind him, Lucca rushes south into Matteo's room."; matteo_room: "Lucca scrabbles frantically at the ground, his blood staining the stones."; } ], description "His fingers bloody on the stone. His face is red and wet with tears.", before [; HelpPerson: "You scrabble at the stone with Lucca, but you cannot get a grip."; ], daemon [; switch (++(self.first_seen)) { 1: move flagstone to matteo_room; move lucca1 to dormitory; 2: move lucca1 to matteo_room; StopDaemon(self); } ], first_seen 0, has ; Lucca lucca2 "Brother Lucca" with description [; if (self in constantin2) return constantin2.describe(); if (brothers_tower.murder_conversation >= 2) "Lucca lies in a crumpled heap upon the ground, mumbling ~I'm sorry,~ over and over again."; else "Lucca rocks back and forth upon his haunches, mumbling ~I'm sorry, I'm sorry.~ over and over again."; ], life [; Ask,Tell,Order: "All he does is gibber, ~I'm sorry.~"; ], has concealed; Lucca lucca_behind_door "Lucca" with initial "You can hear Lucca gibber softly beyond the door.", description "You cannot see him.", murder_asked false, has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Matteo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Matteo matteo1 "Brother Matteo" with name 'matteo', initial "Brother Matteo leans against the rails, staring into the wind.", description "He looks tired and heavy. He doesn't so much as lean on the rails as use them as crutch. His frock billows about him in the icy wind; he no longer has the will to bundle it about himself.", before [; Push,Kill,Attack: QuoteFrom(kill_matteo_quote); sin_shadow.evil = true; remove matteo1; self.pushed = true; move tower_dead_body to tower; move dead_body to belltower_bottom; "He turns his back to you for a moment. It is long enough. You slam your hands into his back, and he tumbles over the rail. As he falls, he casts a smile at you. His last."; ! if (self hasnt general) { ! give self general; ! "He turns for a moment, just long enough. You raise your hands. ! Wait. What is happening to you? You lower them, and he turns ! around, smiling. ! ^^~You look troubled, father. Is something wrong?~"; ! } ! else ! QuoteFrom(push_matteo_quote); ! "No."; ], react_before [; Go: if (self.tower_talking > 2 && noun == d_obj) QuoteFrom(no_push_matteo_quote); return false; Yes: if (self hasnt general) return false; else "~Well, these are troubling times. There is nothing we can do.~ He smiles, gently. He's always smiling."; No: if (self hasnt general) return false; else "~That is go to hear,~ he says, turning back to face the wind."; ], pushed false, has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Starting Possessions !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object tinderbox "tinderbox" with name 'tinderbox' 'tinder' 'box' 'flint' 'steel', article [; if (sin_shadow.evil == false) { print "your"; rtrue; } else { print "a"; rtrue; } ], description "A small box containing some flint, steel, and tinder. You always keep it close should your candle be snuffed by the wind.", before [; LetGo,Drop,ThrowAt,PutOn,Insert: "You would not want to lose it. The darkness is stifling."; Smell,Touch: "Dry. Rare in this place."; Open,Receive: "There is no need."; ], has ; Object your_candle "candle" with pname '.x' 'candle' '.x' 'flame' '.x' 'fire' 'light' 'pig' 'fat' 'twine' 'wax' 'tallow' 'my' 'oil', article [; if (sin_shadow.evil == false) { print "your"; rtrue; } else { print "a"; rtrue; } ], description [; if (self.lit == true) "Pig fat and twine. Still, it holds its flame very well. Beads of oil drip from near the flame, running down the sides and coating them with slime."; else "Pig fat and twine. Still, it holds its flame very well when lit."; ], invent [; if (sin_shadow.evil == true) { if (self.lit == true) { print "a candle (lit)"; rtrue; } else print "a candle"; rtrue; } if (self.lit == true) { print "your candle (lit)"; rtrue; } else print "your candle"; rtrue; ], before [; LetGo,Drop,ThrowAt,PutOn,Insert: if (second == constantin5) return false; else "You would not want to lose it. Light is precious in these dark times."; Smell,Taste: if (self.lit == true) "The smell of rancid pig fat drifts from the flame."; else "Even when unlit, the candle reeks of dead pig."; Burn: if (location == cellar && self.lit == false) { give prybar ~concealed; self.lit = true; print "The fat sizzles for a moment as the flame comes to life but settles down soon after.^"; PlayerTo(cellar); return true; } if (self.lit == true) "It is already lit."; if (self.lit == false) { self.lit = true; "The fat sizzles for a moment as the flame comes to life but settles down soon after."; } else return false; Extinguish: if (self.lit == false) "It's already out."; else self.lit = false; "The flame puffs out in a cloud of rank, black smoke."; ], lit true, has ; Object your_frock "frock" with name 'frock' 'robe' 'clothes' 'clothing', article [; if (sin_shadow.evil == false) { print "your"; rtrue; } else { print "a"; rtrue; } ], description "A threadbare frock that does little to keep you warm. The coarse fabric scratches where it touches your body, which is less than it used to be: the frock is far too large for you now. It smells of sweat and tears.", before [; Disrobe: "You would freeze."; Smell,Taste: "Your sweat and tears gone stale. It does not bother you anymore."; ], has clothing; Object neck_lump "lump" with name 'lump' 'neck' 'bump' 'buboe' 'swelling' 'swollen' 'bubo' 'buboes', description [; switch(time_shadow.current_time) { 1: "It is almost invisible, but you can feel it: almost as if a small coin was buried in your skin."; 2: "Like a robin's egg protruding from your throat, the lump stings every time you swallow."; 3,4: "If you didn't know better, you would swear you had swallowed an apple and that it got lodged just before your collar."; 5: "The lump is so large, it is difficult to breath. Your head looks like it is sitting on a melon."; default: "Your neck is no more: your skull simply slopes until it becomes your shoulders."; } ], before [; Touch: switch(time_shadow.current_time) { 1: "It is soft and rubbery and swells a little at your touch."; 2: "It stings; your finger makes no dent."; 3,4: "The lump is hard and unforgiving; it burns at your touch."; 5: "The lump squishes then springs back with an angry force. The pain is unimaginable."; default: "The lump roars in pain and shakes with your quivering."; } default: "There is nothing you can do with it. It is a part of you."; ], has ; Object journal "journal" with article "your", pname 'book' 'paper' 'journal' 'diary', before [; default: "FLESH OUT JOURNAL. MAKE MENU. OR GET RID OF IT ENTIRELY"; ], has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !EVERYWHERE STUFF + SCENERY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object snow "snow" with pname 'snow' 'snowflakes' 'snowflake' 'blanket', article "some", description "The snow bites at your feet and clings to your face.", before [; Take: StartTimer(taken_snow); taken_snow.time_left = 3; move taken_snow to player; "You take a small handful of snow, and already, your hand is suffering."; Eat: "It stings your teeth and lines them with grit."; ], found_in [; if (location ofclass Outside_Room) return true; ], has scenery; Object taken_snow "handful of snow" with name 'handful' 'of' 'snow', description "It is dirtier than the snow you played with as a child. Everything is dirtier now.", time_out [; remove self; "The snow trickles out of your hand as a few drops of water."; ], before [; Drop: remove self; "You toss the snow: a sweaty little ball of cold."; Eat: "It stings your teeth and lines them with grit."; ], time_left, has ; Object sky "sky" with name 'sky' 'clouds' 'cloud' 'sun' 'moon' 'skies' 'heaven' 'firmament' 'heavens', description [; switch(time_shadow.current_time) { 0: "The sun has set, but the moon has not yet risen: the dark limbo of Vespers. Your candle gives a small circle of light, warding off the hungry shadows."; 1: "The moon lights up the clouds, but does not touch the Earth. She is afraid."; 3: "The sun shines but gives no warmth. Its light burns your eyes."; 4: "Clouds are beginning to creep in from the south."; 5: "The sky is shrouded in clouds, reflecting the Earth. White above: white below."; 6,7: "Darkness creeps across the sky. Soon, the snow will be the only white."; 8: "Darkness has returned. She has found her home. She will stay."; } ], before [; Examine: return false; default: "It is too far away."; ], found_in [; if (location ofclass Outside_Room) return true; ], has scenery; Object scenic_church "church" with name 'church' 'chapel' 'spires', description [; switch(time_shadow.current_time) { 0: "Her spires reach to the sky: the bridge between Heaven and Earth."; 1: "She climbs, but the Earth holds Her back."; 3: "She cowers from the sun. Hiding. Shrinking."; 5: "She revels in Her concealment. She dances under the clouds."; 6,7: "Her time has nearly arrived. She mocks God, pointing her jagged fingers to his eyes."; } ], before [; Examine: return false; default: "Not from here."; ], found_in cloister outside_calefactory tower belltower_bottom, has scenery; Object scenic_tower "tower" with name 'tower' 'bell' 'belltower', description [; if (matteo_papers.been_read == true && constantin_dead in constantin_room) "Rising out of a bed of fire, the tower splits the sky. Scorch marks twist their way around it. In the flickering light of the flame, you see Cecilia beckoning to you."; if (matteo_papers.been_read == true) "Rising out of a bed of fire, the tower splits the sky. Scorch marks twist their way around it. In the flickering light of the flame, you see two figures struggling."; if (location == clearing) "The tower mocks you."; else "The tower rises above all else."; ], before [; Examine: return false; default: "Not from here."; ], found_in cloister outside_calefactory tower belltower_bottom clearing garden, has scenery; Object vomit "vomit" with name 'vomit' 'spill' 'black' 'red' 'blackish' 'liquid' 'chunks' 'meat' 'dark', initial [; if (self.examined == false) "A dark blackish red spill marks the ground."; if (location == cloister) "The vomit leads from the calefactory to the dormitory."; if (location == outside_calefactory) "A large pool of vomit has melted a hole in the snow."; if (location == dormitory) "The vomit marks a trail into Constantin's cell."; if (location == constantin_room) "The floor is soaked with vomit, making it almost slippery to walk on."; ], before [; Take: "It slides between your fingers, coating them with sickness."; Smell: "Sharp. The blood is all but scentless under the odor of the vomit."; ], description [; if (cellar has visited) "The vomit is hidden by snow."; if (self.examined == false) { self.examined = true; "The liquid is a thick soup of black and red with small chunks of food mixed in. Blood and bile: plague vomit."; } else self.initial(); ], found_in [; if (time_shadow.current_time < 5) return false; if (location == outside_calefactory or cloister or dormitory or constantin_room) return true; ], examined false, has static; Object player_body "yourself" with pname 'hand' 'hands' 'feet' 'face' 'skin' 'spot' 'spots' 'body', before [; Examine: <>; default: "There is no need."; ], found_in [; return true; ], has static concealed scenery; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !EYES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object ignatius_eye "Ignatius's eye" with pname 'eye' 'eyes' 'ignatius^s', description [; switch(time_shadow.current_time){ default: "It does not blink, yet it shifts back and forth."; } ], after [; Examine: QuoteFrom(proverbs27_20); ], found_in ignatius1 ignatius2 cellar_figure, has concealed proper; Object cecilia_eye "Cecilia's eyes" with pname 'eye' 'eyes' 'cecilia^s', description [; switch(time_shadow.current_time){ 0: "They flutter. Like butterflies trapped on her face."; default: "Blue. Like icewater."; } ], after [; Examine: QuoteFrom(proverbs27_20); ], found_in cecilia1 cecilia2 cecilia_body, has concealed; Object constantin_eye "Constantin's eyes" with pname 'eye' 'eyes' 'Constantin^s', description [; switch(time_shadow.current_time){ 0: "They watch the hare, flicking back and forth with the knife."; 1: "They burn with rage."; 2,3,4: "White globes crossed by red rivers. They twitch and jitter."; default: "They are sunken in to the swellings of his face."; } ], after [; Examine: QuoteFrom(proverbs27_20); ], found_in constantin1 constantin2 constantin3 constantin5 constantin_tower constantin_dead, has concealed proper; Object drogo_eye "Drogo's eyes" with pname 'eye' 'eyes' 'Drogo^s', description [; switch(time_shadow.current_time){ 0: "They peer out between curtains of greasy hair, ever watchful."; 1: "They sparkle with glee."; 3: "They burn with passion. No, desperation."; default: "They flicker in and out: at once lucid, at the same time seeing things only they can."; } ], after [; Examine: QuoteFrom(proverbs27_20); ], found_in drogo1 drogo2 drogo3 drogo4, has concealed proper; Object lucca_eye "Lucca's eyes" with pname 'eye' 'eyes' 'lucca^s', description [; switch(time_shadow.current_time){ 0: "They burn a deep red beneath the tears."; default: "Pools of sorrow."; } ], after [; Examine: QuoteFrom(proverbs27_20); ], found_in lucca1 lucca2, has concealed proper; Object matteo_eye "Matteo's eyes" with pname 'eye' 'eyes' 'matteo^s', description [; switch(time_shadow.current_time){ default: "They sink into his skull. His eyelids can barely be bothered to remain open."; } ], after [; Examine: QuoteFrom(proverbs27_20); ], found_in matteo1, has concealed proper; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !SAINTS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Saint cuthbert "Saint Cuthbert" with pname 'cuthbert' 'dog' 'leg' 'staff' 'blister' 'saint' 'st', description "Saint Cuthbert leans proudly upon his staff even though he appears stricken with illness. A dog licks at his leg, soothing the blister upon it.", before [; PrayThrough: if (sin_shadow.evil == true) { QuoteFrom(evil_pray_quote); "Fire rips through your body, boiling your flesh. Bubbles spread across you: tumors. A cough shatters your composure, a shower of blood and vomit released in its wake. Screams spin in your ears. ^^You collapse, and the pain subsides."; } if (self.plague_prayed == true) "He has done all he can."; else self.plague_prayed = true; "He is weak; his vessel is shattered. Boils twist and grow upon your limbs, spreading out like a weed. They scream with fire, then subside. He cannot help you."; ], plague_prayed false, has ; Saint medard "Saint Medard" with pname 'medard' 'of' 'noyon' 'eagle' 'wings' 'saint' 'st', description "The snow flies against the glass, but refuses to stick. Medard stands tall, with an eagle's outstretched wings above him.", before [; PrayThrough: if (sin_shadow.evil == true) { QuoteFrom(evil_pray_quote); "A slight tingle crawls up your fingers and across your ears. No, a burn. The icy burn of frostbite. It spreads up your arms and legs, the pain coming through despite the numbness. Quickly, it makes way for a different burn. Red blisters creep along your skin. It cracks and peels: falls to the ground as snow. ^^You scream, and eventually the pain subsides."; } if (location == archway && time_shadow.current_time == 1 or 0) "The cold deepens for a moment. It sinks into your bones and turns them to ice. Then, your bones melt and warmth spreads through limbs. He protects you from the cold, but not the wind. Your candle cannot be protected."; if (location ~= pass) "You say a few short words to Saint Medard. ^^If he heard, he is not responding. Not right now."; else { if (self.pass_prayed == true) "He has done all he can."; else self.pass_prayed = true; "The words slip out of your mouth, and immediately, your fingers and ears go numb with frostbite. A stinging spreads across your shoulders, but it is a different kind of sting. Peeking into your frock, your skin is blistered and red as though burnt. ^^Eventually, it subsides and you feel no different than you did before."; } ], pass_prayed false, has ; Saint drausinus "Saint Drausinus" with pname 'drausinus' 'spears' 'spear' 'heathen' 'heathens' 'saint' 'st', description "An assassin approaches from the darkness, but a shroud of light reveals him to Saint Drausinus. He is safe.", before [; PrayThrough: if (sin_shadow.evil == true) { QuoteFrom(evil_pray_quote); "Black darker than bile creeps from the ground, twisting and wrapping itself around your legs. It pulls at you, tears at your clothes and flesh. A scar you obtained from a farming accident when you were eight rips open, blood oozing from within, soaking your frock and draining the warmth from your body. You shiver; the blackness climbs into your eyes. ^^Then you blink and all is as it was before."; } if (self.night_prayed == true) "You close your eyes and begin your prayer. There is no answer. ^^Once is all you get, you suppose."; if (location == your_bedroom && time_shadow.current_time == 1) { give your_door ~open; your_desk.against_door = true; self.night_prayed = true; "Wisps of blackness float in from the window and dance about your head. Slow. Fast. They whirl and dive, choking the light from the room. They spin into your throat, stealing the breath from your lungs. A harsh scraping sound spreads throughout the room. The desk skids across the floor, finally slamming into the door, securing it. ^^Then, they are gone."; } if (location == cellar && self.cellar_prayed == false) { self.cellar_prayed = true; "As the words slip from your mouth, the darkness around you deepens. It chokes away your breath and slithers into the shadows."; } if (location == cellar && self.cellar_prayed == true) "He has done all he can."; if (location ~= your_bedroom || time_shadow.current_time ~= 1) "There is no need. Not now, at least."; ], cellar_prayed false, night_prayed false, has ; Saint cecilia "Cecilia" with pname 'cecilia' 'angel' 'girl' 'lady' 'woman', before [; TalkTo: "You can't see her."; PrayThrough: deadflag =true; "As the words slip from your mouth, a shudder rips through your body. Invisible fists drive into your stomach; blood spills from your mouth. ^^Your mind screams. Your heart stops."; PrayTo: if (location == cellar && cellar_figure.incapacitated == false) { QuoteFrom(cecilia_cellar_quote); "She is with you."; } if (time_shadow.current_time == 1 && location == your_bedroom && self.night_prayed == false) { self.night_prayed == true; "The moment the words cross your lips, a soft glow spreads throughout the room. ^^~I am here, father. Thank you for your strength; it helps me. But be careful, there are many who intend you harm here. Sleep wisely, father. We will speak in the morning.~ ^^Her words drift off into the night, and you feel alone once more."; } if (location == new_church) "She laughs. ~No need to be so formal,~ she says, touching your face gently. ~Not that I don't appreciate the gesture.~"; if (location ~= pass or stables && wolves notin location) "You say a few short words to Cecilia. ^^She can do nothing for you, right now."; if (location == pass) { if (self.pass_prayed == true) "She has done all she can."; else self.pass_prayed = true; "The words slip out of your mouth, and immediately, a gentle glow flows from your forehead all around. It washes away the cold and pain, leaving you bathed in warmth. ^^Eventually, it subsides and you feel no different than you did before."; } if (wolves in stables) { if (lamb in player) { remove lamb; StartTimer(time_shadow, 5); remove wolves; wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Cecilia to hear you. The wolves circle, ready to pounce. You speak faster. Louder. Please. ^^The wolves stop their growling, and look quizzically up at you. You shoo them away off into the wilderness and all is calm. ^^The danger gone, you drop the lamb gently. He runs off, bleating merrily."; } else remove lamb; remove wolves; StartTimer(time_shadow, 5); wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Cecilia to hear you. The wolves circle, ready to pounce. You speak faster. Louder. Please. ^^The wolves stop their growling, and look quizzically up at you. You shoo them away off into the wilderness and all is calm."; } if (wolves in location) { if (lamb in player || location == clearing) { remove lamb; StopDaemon(wolves); remove wolves; StartTimer(time_shadow, 5); wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Cecilia to hear you. The wolves circle you, ready to pounce. You speak faster. Louder. Please. ^^The alpha's teeth close around your arm for a moment, clamping hard. But then, a warmth spread through your limbs and soothes away the cold. The wolf's bite turns into a gentle caress as he begins to licking the wound he just inflicted. Satisfied you are safe, you shoo away the wolves. ^^The danger gone, you release the lamb. He nuzzles up to you for a moment before running off into the brush, bleating cheerfully."; } else StopDaemon(wolves); remove wolves; StartTimer(time_shadow, 5); wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Cecilia to hear you. The wolves circle you, ready to pounce. You speak faster. Louder. Please. ^^The alpha's teeth close around your arm for a moment, clamping hard. But then, a warmth spread through your limbs and soothes away the cold. The wolf's bite turns into a gentle caress as he begins to licking the wound he just inflicted. Satisfied you are safe, you shoo away the wolves."; } if (location ~= stables ||(location == stables && horse notin stables)) "You say a few short words to Cecilia. ^^~There is nothing I can do for you, right now,~ she says; her voice is so soothing."; if (location == stables && self.stable_prayed == false && horse. released == true) { self.stable_prayed = true; "Your eyes close, and you begin your prayer. A warm wave washes in from your extremities, soothing away the cold. ^^The horse's wild eyes suddenly fade and grow dull. She docilely saunters over and nuzzles against you."; } if (location == stables && self.stable_prayed == false) { self.stable_prayed = true; "Your eyes close, and you begin your prayer. A warm wave washes in from your extremities, soothing away the cold. A playful whinny from the horse breaks your reverie."; } if (location == stables && self.stable_prayed == true) "She has done all she can."; default: "She isn't here: in body, at least."; ], stable_prayed false, pass_prayed false, night_prayed false, has ; Saint francis "Saint Francis" with pname 'francis' 'of' 'assisi' 'birds' 'wolves' 'saint' 'st', description "Saint Francis stands: birds on his shoulders and wolves at his feet. His face is calm.", before [; PrayThrough: if (sin_shadow.evil == true) { QuoteFrom(evil_pray_quote); "A howl sounds above the wind, filling your bone with chill. A murder of crows deafens you with their caws, almost completely drowning the chitter at your feet. Rats. They swarm your legs: biting, tearing. They quickly turn from brown to rust as your blood soaks their fur. You stumble, and they engulf you in a seething mass of disease of coarse hair. ^^You open your eyes, and they are gone."; } if (self.stable_prayed == true) "You close your eyes and begin your prayer. There is no answer. ^^Once is all you get, you suppose."; if (wolves in stables) { if (lamb in player) { remove lamb; StartTimer(time_shadow, 5); remove wolves; wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Saint Francis to hear you. The wolves circle, ready to pounce. You speak faster. Louder. Please. ^^The wolves stop their growling, and look quizzically up at you. You shoo them away off into the wilderness and all is calm. ^^The danger gone, you drop the lamb gently. He runs off, bleating merrily."; } else remove lamb; remove wolves; StartTimer(time_shadow, 5); wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Saint Francis to hear you. The wolves circle, ready to pounce. You speak faster. Louder. Please. ^^The wolves stop their growling, and look quizzically up at you. You shoo them away off into the wilderness and all is calm."; } if (wolves in location) { if (lamb in player || location == clearing) { remove lamb; StopDaemon(wolves); remove wolves; StartTimer(time_shadow, 5); wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Saint Francis to hear you. The wolves circle you, ready to pounce. You speak faster. Louder. Please. ^^The alpha's teeth close around your arm for a moment, clamping hard. But then, a warmth spread through your limbs and soothes away the cold. The wolf's bite turns into a gentle caress as he begins to licking the wound he just inflicted. Satisfied you are safe, you shoo away the wolves. ^^The danger gone, you release the lamb. He nuzzles up to you for a moment before running off into the brush, bleating cheerfully."; } else StopDaemon(wolves); remove wolves; StartTimer(time_shadow, 5); wolves.chasing = 0; "Tears in your eyes, you mumble desperately for Saint Francis to hear you. The wolves circle you, ready to pounce. You speak faster. Louder. Please. ^^The alpha's teeth close around your arm for a moment, clamping hard. But then, a warmth spread through your limbs and soothes away the cold. The wolf's bite turns into a gentle caress as he begins to licking the wound he just inflicted. Satisfied you are safe, you shoo away the wolves."; } if (location ~= stables ||(location == stables && horse notin stables)) "You say a few short words to Saint Francis. ^^If he heard, he is not responding. Not now, at least."; if (location == stables && self.stable_prayed == false && horse. released == true) { self.stable_prayed = true; "Your eyes close, and you begin your prayer. A warm wave washes in from your extremities, soothing away the cold. However, when it reaches your chest, it turns to icy blackness. It twists and turns in your gut: shrinking, expanding. Just when you feel as though you are about to burst, it subsides. ^^The horse's wild eyes suddenly fade and grow dull. She docilely saunters over and nuzzles against you."; } if (location == stables && self.stable_prayed == false) { self.stable_prayed = true; "Your eyes close, and you begin your prayer. A warm wave washes in from your extremities, soothing away the cold. However, when it reaches your chest, it turns to icy blackness. It twists and turns in your gut: shrinking, expanding. Just when you feel as though you are about to burst, it subsides."; } if (location == stables && self.stable_prayed == true) "He has done all he can."; ], stable_prayed false, has ; Saint god "God" with pname 'god' 'jesus' 'jehovah' 'lord' 'holy' 'spirit' 'heavenly' 'father' 'christ', react_before [; Pray: print "(to God)^"; <>; ], before [; Examine: "He is too far off to see."; PrayThrough: if (sin_shadow.evil == true) "His scream rips through your mind. He is anger. He is hate."; switch(time_shadow.current_time) { 0: if (location == church && sin_shadow.evil == false && self. prayed_church == false) { self.prayed_church = true; "You close your eyes and recite the Evensong. The words flow from your mouth by rote; they line your lips with ashes. You finish, and your heart is as heavy as it was before."; } else "A warmth spreads throughout your body. He walks with you."; 1: "Nothing. You cannot feel him."; 2: "Cold and dark, he refuses to listen."; 3,4: "Your head splits, his voice drips through you like oil."; default: "His scream rips through your mind. He is anger. He is hate."; } ], prayed_church false, has ; Saint devil "Devil" with pname 'devil' 'satan' 'lucifer' 'prince' 'of' 'darkness' 'evil', before [; Examine: "He is close, but you cannot see him."; PrayThrough: deadflag =true; "As the words slip from your mouth, a shudder rips through your body. Invisible fists drive into your stomach; blood spills from your mouth. ^^Your mind screams. Your heart stops."; PrayTo: if (self.prayed == false) { self.prayed = true; sin_shadow.evil = true; "You close your eyes, and prepare yourself. ~Please, Satan,~ you begin. The words are hard. They cut your throat as they leave. ~Please, Satan, deliver me from the plague, and you shall have my soul.~ The words sink through the Earth: slowly, like black tar. ^^A flock of dismembered hands reach up through the ground, stealing away the black and disease that ravages your body, both seen and unseen. They swirl and dance, before sinking back to the ground. One lingers. It crawls up your leg and across your chest. It dives in, and emerges clutching a tiny ball of light in its bony finger. The hand drops back to the Earth with its prize and slinks away. ^^It is done."; } else "He already has your soul; you can offer him no more."; ], prayed false, has ~proper; Saint mary "Mary" with pname 'mary' 'mother' 'virgin', before [; PrayThrough: if (sin_shadow.evil == true) "A mournful sob echoes through your brain."; switch(time_shadow.current_time) { 0: "She is warm. Her embrace fills you with joy."; 1: "She is silent."; default: "A sob is all you hear."; } ], has ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !MISCELLANEOUS QUOTES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !Esther 1:11 !To bring Vashti the queen before the king with the crown royal, to shew the people !and the princes her beauty: for she was fair to look on. !Job 40:10 !Deck thyself now with majesty and excellency; and array thyself with glory and !beauty. !Isaiah 3:24 !And it shall come to pass, that instead of sweet smell there shall be stink; and !instead of a girdle a rent; and instead of well set hair baldness; and instead of a !stomacher a girding of sackcloth; and burning instead of beauty. !2 Samuel 11:2 !And it came to pass in an eveningtide, that David arose from off his bed, and walked !upon the roof of the king's house: and from the roof he saw a woman washing herself; !and the woman was very beautiful to look upon. !Isaiah 64:11 !Our holy and our beautiful house, where our fathers praised thee, is burned up with !fire: and all our pleasant things are laid waste. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !ENTRY POINT ROUTINES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ DayOne k; @erase_window -1; print "^"; k = 0->33; if (k > 30) k = (k-30)/2; style bold; font off; spaces(k); print " Day One"; style roman; print "^^"; spaces(k); print "^^^^^^^"; font on; box "Be not forgetful to entertain" "strangers: for thereby some have" "entertained angels unawares." "" " -- Hebrews 13:2" ; @read_char 1 -> k; @erase_window -1; ]; [ DayTwo k; @erase_window -1; print "^"; k = 0->33; if (k > 30) k = (k-30)/2; style bold; font off; spaces(k); print " Day Two"; style roman; print "^^"; spaces(k); print "^^^^^^^"; font on; box "I am in the midst of lions; " "I lie among ravenous beasts: " "men whose teeth are spears and arrows, " "whose tongues are sharp swords. " "" " -- Psalms 57:4" ; @read_char 1 -> k; @erase_window -1; ]; [ DayThree k; @erase_window -1; print "^"; k = 0->33; if (k > 30) k = (k-30)/2; style bold; font off; spaces(k); print " Day Three"; style roman; print "^^"; spaces(k); print "^^^^^^^"; font on; box "And no marvel; for Satan himself" "is transformed into an angel of light." "" " II Corinthians 11:14" ; @read_char 1 -> k; @erase_window -1; ]; [ DrawStatusLine width j; ! get the width of the status bar, and go into the status bar font ! and so on width = 0->33; font off; @split_window 1; @buffer_mode 0; @set_window 1; style reverse; @set_cursor 1 1; spaces(width); ! go to column 2 and print the location name @set_cursor 1 2; PrintShortName(location); ! we want to print the other text ending at column (width-2), ! which means we have to print it to a temporary array and then ! work out its length @output_stream 3 statusbar_temp; print (string) statusbar_right; @output_stream -3; ! its length is in statusbar_temp-->0, so step back that many chars, ! plus 2 more, from the right side of the status bar: j = (width - (statusbar_temp-->0) - 2); @set_cursor 1 j; print (string) statusbar_right; ! and turn off all the statusbar printing fonts and stuff: style roman; @buffer_mode 1; @set_window 0; font on; ]; ![ DrawStatusLine; ! @split_window 1; @set_window 1; @set_cursor 1 1; style reverse; ! spaces (0->33); ! @set_cursor 1 2; PrintShortName(location); ! if (1 == 1) ! switch(time_shadow.current_time) { ! 0: ! @set_cursor 1 105; print "Vespers",; ! 1: ! @set_cursor 1 103; print "Compline",; ! 2: ! @set_cursor 1 107; print "Matins",; ! 3: ! @set_cursor 1 107; print "Lauds",; ! 4: ! @set_cursor 1 107; print "Prime",; ! 5: ! @set_cursor 1 107; print "Terce",; ! 6: ! @set_cursor 1 108; print "Sext",; ! 7: ! @set_cursor 1 108; print "None",; ! 8: ! @set_cursor 1 105; print "Vespers",; ! 9: ! @set_cursor 1 105; print "",; ! default: ! @set_cursor 1 105; print "ERROR",; ! } ! @set_cursor 1 1; style roman; @set_window 0; !]; [ DeathMessage ; if (deadflag == 4) ! box ! "And when the sun was going down, " ! "a deep sleep fell upon Abram; and, lo, " ! "an horror of great darkness fell upon ! him." ! "" ! " -- Genesis 15:12"; ! @read_char 1 -> k; print "It is over"; if (deadflag == 3) print "It is over"; if (deadflag == 5) print "It is over"; else return false; ]; [ ChooseObjects obj code; if (code < 2) { if (obj has scenery or animate or static) return 2; rfalse; } if (action_to_be == ##TalkTo && obj has animate) return 3; if (action_to_be == ##Eat && obj has edible) return 3; if (action_to_be == ##Enter && obj has supporter) return 3; if (action_to_be == ##Open && obj has openable) return 3; if (obj hasnt scenery) return 2; return 1; ]; [ Initialise; statusbar_right = "Vespers"; StartDaemon(plague_shadow); move constantin_tools to constantin_room; move dove to path; move hatch_lock to kitchen; move hay to stables; move holy_water to church_font; ! move journal to player; move your_frock to player; move your_candle to player; move tinderbox to player; give your_frock worn; move your_bedding to your_bed; move constantin1 to constantin_room; move drogo1 to refectory; move ignatius1 to church; move matteo1 to tower; ! move knife to cutlery_rack; move cecilia_food to cupboard; DayOne(); location = your_bedroom; lookmode = 2; style underline; print " ^^It has been five days, now. Five days since I made the choice. Five days since I closed the gate.^^ Really, there was no choice. Rovato was damned when the first spot appeared: when the first bloody cough ensued from the mouth of an urchin. To have allowed the sick sanctuary at Saint Cuthbert's would only have damned us as well.^^ But we were already damned.^^ The plague came. And now we suffer.^^ "; style roman; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !GRAMMAR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Include "Grammar"; [ ScoreSub ; if (deadflag == 0) "There is no score in this game."; ! if (deadflag == 4) ! box ! "And when the sun was going down, " ! "a deep sleep fell upon Abram; and, lo, " ! "an horror of great darkness fell upon him." ! "" ! " -- Genesis 15:12"; ! @read_char 1 -> k; ]; [ ReadSub; <>; ]; [ WhoisSub; "You don't know who that is."; ]; [ ExtinguishSub; "That's not lit."; ]; [ PrayToSub; if (noun == god) <>; if (noun ofclass Saint && noun ~= god) { sin_shadow.total_sin = sin_shadow.total_sin + 5; <>; } else "You say a few words of prayer, but they go unheard."; ]; [ HideSub; "There is nothing to hide from."; ]; [ PetSub; "That wouldn't do any good."; ]; [ FeedSub; if (hay notin player|| cecilia_food notin player || lamb notin player || hare notin player) "You have no food."; if (noun has male) "He's not hungry."; if (noun has female) "She's not hungry."; ]; [ TripSub; "There is no need."; ]; [ UnmaskSub; "There is no need."; ]; [ TalkToSub; if (location == locutory && cecilia1.woken == true) "She starts slowly."; else "No response."; ]; [ KillSub; <>; ]; [ SleepWithSub; if (noun == player) <>; else "You can't."; ]; [ MasturbateSub; if (sin_shadow.masturbated == true) "You are spent."; else QuoteFrom(masturbate_quote); sin_shadow.masturbated = true; sin_shadow.evil = true; "Slowly, you fondle yourself through your frock. Fast. Faster. Within a few moments, you are spent: your seed released."; ]; [ KneelSub; if (location ~= church or chancel) "This is not the place."; else "You kneel upon the floor, your knees cracking with age."; ]; [ InviteSub; "There is no need."; ]; [ PrayThroughSub; if (noun ofclass Saint) return false; else "You say a few words of prayer, but they go unheard."; ]; [ MakeSub; "You cannot make that."; ]; [ ShoutSub; "Your cries fall on deaf ears."; ]; [ BurySub; "There is no need."; ]; [ RepentSub; if (sin_shadow.evil == true) "The words burn your tongue. There are somethings even God doesn't forgive."; else "You say a few hollow words. They dry and crumble in your mouth."; ]; [ PrayForSub; "You say a few hollow words. They dry and crumble in your mouth."; ]; [ HelpPersonSub; if (noun hasnt animate) "You can't help it."; if (noun has female) "She doesn't need your help."; else "He doesn't need your help."; ]; [ ScratchSub; "You tear at your skin briskly for a few moments. You don't stop the itch, but the distraction is some small relief."; ]; [ AlternativesSub; alternatives_menu.select(); ]; [ WalkthruMiddleSub; "x me ^w ^open box ^take coin ^n ^e ^s ^talk to lucca ^talk to lucca ^talk to lucca ^lift stone ^n ^se ^talk to constantin ^talk to constantin ^talk to constantin ^talk to constantin ^n ^w ^ne ^u ^talk to matteo ^talk to matteo ^talk to matteo ^talk to matteo ^d ^sw ^n ^talk to ignatius ^talk to ignatius ^talk to ignatius ^talk to ignatius ^n ^read bible ^s ^s ^w ^talk to drogo ^talk to drogo ^talk to drogo ^talk to drogo ^talk to drogo ^x scratchings ^s ^open cupboard ^look in cupboard ^take food ^open hatch ^n ^e ^s ^open door ^take girl ^w ^put girl on bed ^light fire ^e ^e ^take blanket ^w ^w ^put blanket on girl ^give food to girl ^x girl ^talk to girl ^talk to girl ^e ^n ^ne ^talk to drogo ^talk to drogo ^talk to drogo ^z ^sw ^se ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^nw ^ne ^search matteo ^read note ^sw ^e ^se ^talk to constantin ^talk to constantin ^talk to constantin ^n ^n ^talk to ignatius ^talk to ignatius ^talk to ignatius ^talk to ignatius ^s ^w ^s ^w ^talk to girl ^talk to girl ^talk to girl ^talk to girl ^e ^e ^pray to cecilia ^push desk ^sleep ^listen ^hide ^ ^ ^w ^talk to cecilia ^talk to cecilia ^n ^se ^talk to constantin ^talk to constantin ^talk to constantin ^x hole ^nw ^n ^n ^x matteo ^talk to drogo ^talk to drogo ^talk to drogo ^talk to matteo ^talk to matteo ^talk to matteo ^s ^s ^s ^s ^w ^talk to cecilia ^talk to cecilia ^talk to cecilia ^e ^s ^s ^x dove ^e ^x stalls ^feed horse ^pray to cecilia ^open stall ^w ^s ^x footsteps ^x mounds ^dig mounds ^ride horse ^x tracks ^x river ^x sack ^pull lucca ^search lucca ^read paper ^talk to lucca ^talk to lucca ^talk to lucca ^ride horse ^listen ^x shape ^n ^x avalanche ^pray ^pray to cecilia ^n ^n ^e ^ne ^n ^take lamb ^s ^sw ^u ^throw lamb to wolves ^d ^w ^w ^in ^x beds ^x marks ^out ^ne ^nw ^x crosses ^dig crosses ^sw ^se ^e ^n ^n ^w ^talk to cecilia ^talk to cecilia ^talk to cecilia ^e ^n ^e ^se ^put wax in constantin's ears ^take keys ^take keys ^n ^w ^w ^w ^s ^unlock hatch with key ^d ^light candle ^take prybar ^x bodies ^put out candle ^hide behind stairs ^trip man ^out ^x man ^search man ^u ^n ^e ^e ^s ^pry flagstone with bar ^take papers ^read papers ^q ^n ^w ^ne ^u ^push constantin ^ ^ ^z ^z ^z ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia ^u ^quit "; ]; [ WalkthruGoodSub; "x me ^w ^open box ^n ^e ^s ^talk to lucca ^talk to lucca ^talk to lucca ^help lucca ^lift stone ^n ^se ^talk to constantin ^talk to constantin ^talk to constantin ^talk to constantin ^n ^w ^ne ^u ^talk to matteo ^talk to matteo ^talk to matteo ^talk to matteo ^d ^sw ^n ^talk to ignatius ^talk to ignatius ^talk to ignatius ^x windows ^x francis ^x medard ^x drausinus ^x cuthbert ^n ^read bible ^s ^s ^w ^talk to drogo ^talk to drogo ^talk to drogo ^talk to drogo ^x scratches ^s ^open cupboard ^look in cupboard ^take food ^open hatch ^n ^e ^s ^open door ^take girl ^w ^put girl on bed ^light fire ^e ^e ^get blanket ^w ^w ^give blanket to girl ^give food to girl ^x girl ^talk to girl ^talk to girl ^e ^n ^ne ^x matteo ^talk to drogo ^talk to drogo ^talk to drogo ^sw ^se ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^talk to lucca ^nw ^ne ^search matteo ^read note ^sw ^e ^se ^talk to constantin ^talk to constantin ^talk to constantin ^ask constantin about rabbit ^take rabbit ^n ^n ^talk to ignatius ^talk to ignatius ^talk to ignatius ^talk to ignatius ^s ^w ^s ^w ^talk to girl ^talk to girl ^talk to girl ^talk to girl ^e ^e ^push desk ^sleep ^listen ^hide ^ ^ ^w ^talk to cecilia ^talk to cecilia ^n ^se ^talk to constantin ^talk to constantin ^talk to constantin ^x hole ^nw ^n ^n ^talk to drogo ^talk to drogo ^talk to drogo ^x matteo ^s ^s ^s ^s ^w ^talk to cecilia ^talk to cecilia ^talk to cecilia ^e ^s ^s ^x dove ^e ^x stalls ^feed horse ^pray to saint francis ^open stall ^w ^s ^x footsteps ^x mounds ^dig mounds ^ride horse ^x tracks ^x river ^x sack ^pull lucca ^search lucca ^read paper ^ride ^ride horse ^listen ^x shape ^pray to saint medard ^z ^z ^z ^n ^n ^e ^ne ^n ^take lamb ^s ^sw ^u ^throw hare to wolves ^d ^w ^w ^in ^x beds ^x marks ^out ^n ^nw ^x crosses ^dig crosses ^se ^e ^n ^n ^w ^talk to cecilia ^talk to cecilia ^talk to cecilia ^e ^n ^x spill ^se ^x snow ^dig snow ^nw ^w ^s ^break lock ^d ^light candle ^take prybar ^x bodies ^put out candle ^hide behind stairs ^pray to drausinus ^out ^x figure ^search him ^u ^n ^e ^e ^s ^pry flagstone with bar ^take papers ^read them ^q ^s ^n ^w ^ne ^u ^push cecilia ^ ^ ^z ^z ^z ^z ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia ^repent ^u"; ]; [ WalkthruEvilSub; "x me ^w ^open box ^take coin ^n ^e ^s ^talk to lucca ^talk to lucca ^talk to lucca ^pull stone ^n ^se ^talk to constantin ^talk to constantin ^talk to constantin ^talk to constantin ^n ^w ^ne ^u ^talk to matteo ^talk to matteo ^talk to matteo ^talk to matteo ^push matteo ^d ^search matteo ^read note ^sw ^n ^talk to ignatius ^talk to ignatius ^talk to ignatius ^s ^w ^talk to drogo ^talk to drogo ^talk to drogo ^talk to drogo ^talk to drogo ^x scratches ^s ^open hatch ^n ^e ^s ^open door ^take girl ^w ^put girl on bed ^hit girl ^z ^talk to girl ^talk to girl ^e ^n ^ne ^talk to drogo ^talk to drogo ^talk to drogo ^z ^sw ^se ^talk to lucca ^nw ^e ^se ^talk to constantin ^talk to constantin ^talk to constantin ^n ^n ^talk to ignatius ^talk to ignatius ^talk to ignatius ^talk to ignatius ^s ^w ^s ^w ^talk to girl ^talk to girl ^talk to girl ^e ^e ^pray to cecilia ^push desk ^sleep ^listen ^hide ^ ^ ^w ^talk to cecilia ^talk to cecilia ^n ^se ^talk to constantin ^talk to constantin ^talk to constantin ^x hole ^nw ^talk to drogo ^z ^talk to drogo ^talk to drogo ^talk to drogo ^x matteo ^s ^s ^s ^s ^w ^talk to cecilia ^talk to cecilia ^talk to cecilia ^e ^s ^s ^x dove ^x footsteps ^e ^x stalls ^feed horse ^hit horse ^open stall ^w ^s ^x mounds ^dig mounds ^ride horse ^x tracks ^x river ^x sack ^pull lucca ^search lucca ^read paper ^ride horse ^listen ^x shape ^kill horse ^hide behind horse ^z ^z ^n ^n ^e ^ne ^n ^x lamb ^pray to cecilia ^s ^sw ^w ^w ^nw ^x crosses ^dig graves ^dig crosses ^se ^in ^x beds ^x marks ^out ^e ^n ^n ^w ^talk to cecilia ^talk to cecilia ^talk to cecilia ^e ^n ^e ^se ^kill constantin ^take keys ^n ^w ^w ^s ^unlock hatch with key ^d ^light candle ^take prybar ^x corpses ^hide in bodies ^z ^kick man ^out ^x figure ^search him ^u ^n ^e ^e ^s ^pry flagstone with bar ^take papers ^read them ^q ^s ^n ^w ^ne ^u ^ ^ ^z ^z ^z ^z ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia ^talk to cecilia"; ]; [ BrothersSub; "Brothers: ^^Drogo, Matteo, Constantin, Lucca, and Ignatius."; ]; [ SaintsSub; "Saints: ^^Medard, Francis, Cuthbert, and Drausinus."; ]; [ SellSub; <>; ]; [ QuotesOnSub; misc_shadow.quotes_on = true; "Box quotes are now on."; ]; [ QuotesOffSub; misc_shadow.quotes_on = false; "Box quotes are now off."; ]; Verb meta 'brothers' 'brother' * -> Brothers; Verb meta 'saint' 'saints' * -> Saints; Verb 'scratch' * -> Scratch * 'me' -> Scratch * 'myself' -> Scratch * 'skin' -> Scratch; Extend 'read' first * legible -> Read; Verb 'who' * 'is' topic -> Whois; Verb 'kick' * noun -> Attack; Verb 'ring' * noun -> Attack; Extend 'look' first * -> Look * 'up' scope = TopicScope 'in' noun -> Consult reverse; Extend 'consult' first * noun 'about' scope = TopicScope -> Consult; Extend 'ask' first * creature 'about' scope = TopicScope -> Ask; Extend 'tell' first * creature 'about' scope = TopicScope -> Tell; Extend 'answer' first * scope = TopicScope 'to' creature -> Answer; Extend 'put' * 'out' noun -> Extinguish; Verb 'extinguish' 'snuff' * noun -> Extinguish; Extend 'blow' first * 'out' noun -> Extinguish * noun -> Extinguish; Extend 'climb' * 'on' noun -> Climb; Extend 'jump' * 'on' noun -> Climb; Extend 'jump' * 'down' -> GetOff; Verb 'let' * noun 'go' -> Drop * noun 'out' -> Drop; Verb 'release' * noun -> Drop; Extend 'pray' * 'for' noun -> PrayFor * noun -> PrayTo * 'to' noun -> PrayTo * 'through' noun -> PrayThrough * 'to' 'god' 'through' noun -> PrayThrough; Verb 'hide' 'cower' 'crouch' 'shelter' * -> Hide * 'behind' noun -> Hide * 'under' noun -> Hide * 'in' noun -> Hide; Verb 'pet' 'groom' * animate -> Pet; Extend 'feed' first * animate -> Feed; Verb 'ride' * noun -> Enter; Verb 'beat' * noun -> Attack; Verb 'mount' * noun -> Enter; Extend 'throw' * noun 'to' noun -> Give; Verb 'free' * noun -> Drop; Verb 'untie' * noun -> Drop; Extend 'dig' first * -> Dig; Extend 'hit' * noun 'with' noun -> Attack; Extend 'attack' * noun 'with' noun -> Attack; Extend 'break' * noun 'with' noun -> Attack; Extend 'crack' * noun 'with' noun -> Attack; Extend 'destroy' * noun 'with' noun -> Attack; Extend 'smash' * noun 'with' noun -> Attack; Extend 'wreck' * noun 'with' noun -> Attack; Verb 'smear' * noun 'on' noun -> PutOn; Extend 'rub' * noun 'on' noun -> PutOn; Verb 'trip' * noun -> Trip; Verb 'unmask' 'decowl' 'undress' * noun -> Unmask; Verb 'talk' 't' * 'to' animate 'about' topic -> Ask * noun -> TalkTo * 'to' noun -> TalkTo; Extend only 'murder' 'kill' replace * animate -> Kill; Extend 'murder' * noun -> Attack; Extend 'kill' * noun -> Attack; Extend 'sleep' * 'with' animate -> SleepWith; Extend 'enter' * animate -> SleepWith; Verb 'have' * 'sex' 'with' animate -> SleepWith * 'coitus' 'with' animate -> SleepWith * 'intercourse' 'with' animate -> SleepWith; Verb 'rape' * animate -> SleepWith; Verb 'masturbate' * -> Masturbate; Verb 'kneel' * -> Kneel * 'on' 'ground' -> Kneel * 'on' 'floor' -> Kneel; Verb 'invite' * animate -> Invite; Verb 'start' * 'fire' -> Burn; Verb 'lift' * noun -> Take; Verb 'make' * noun -> Make; Extend 'look' * 'behind' noun -> LookUnder * 'out' noun -> Search; Verb 'yell' 'scream' 'cry' 'shriek' 'wail' * -> Shout; Extend 'shout' first * -> Shout; Verb 'bury' * noun -> Bury; Extend 'dig' * 'in' noun -> Search; Verb 'hammer' * noun -> Attack; Verb 'repent' 'confess' * 'sin' -> Repent * 'sins' -> Repent * -> Repent; Extend 'eat' first * noun -> Eat; Extend 'put' * noun 'out' -> Extinguish; Extend 'blow' * noun 'out' -> Extinguish; Verb 'unhide' * -> Exit; Verb 'alternatives' * -> Alternatives; Verb 'walkthru' 'walkthrough' * -> WalkthruMiddle * 'middle' -> WalkthruMiddle * 'good' -> WalkthruGood * 'evil' -> WalkthruEvil; Verb 'sell' * 'soul' 'to' 'the' 'devil' -> Sell * 'soul' 'to' 'devil' -> Sell * 'soul' 'to' 'satan' -> Sell * 'soul' -> Sell * 'soul' 'to' 'lucifer' -> Sell; Verb meta 'quotes' 'quote' * 'on' -> QuotesOn * 'off' -> QuotesOff;