!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!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 : wn<parse->1 : 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 <CHARACTER> 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 <TOPIC>.
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:
<<Open self>>;
],
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:
! <<Open self>>;
! ],
! 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)
! <<Open entrance_door>>;
! 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;
! <Open self>; 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)
<<TalkTo self>>;
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)
<<PrayTo cecilia>>;
],
before [;
PrayTo:
"You can talk directly to her.";
PrayThrough:
<<PrayThrough cecilia>>;
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)
<<Look>>;
Smell:
if (noun == self)
<<Smell>>;
Listen:
if (noun == self)
<<Listen>>;
],
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 <name>~";
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 cecilia_tower>>;
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 constantin_tower>>;
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.^";
<Look>;
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.^^";
<<Drop emmanuele_shell>>;
}
}
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.^";
<<Look>>;
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.^";
<Look>;
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)
<<Drop emmanuele_shell>>;
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 god>>;
PrayThrough:
if (noun == god)
<<Repent>>;
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)
<<Drop 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:
<<Go d_obj>>;
],
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;
<<Sleep>>;
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 [;
<<Go w_obj>>;
],
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:
<<Examine self>>;
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;
<Push your_desk>;
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) {
<Push your_desk>;
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 [;
<<Go s_obj>>;
],
;
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)
<<Open entrance_door>>;
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:
<<Take self>>;
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)
<<Insert cecilia_body locutory_bed>>;
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 [;
<<Go s_obj>>;
],
in_to [;
<<Go n_obj>>;
],
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 [;
<<Go e_obj>>;
],
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)
<<Burn self>>;
],
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:
<<Examine self>>;
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 [;
<<Go e_obj>>;
],
in_to [;
<<Go s_obj>>;
],
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 [;
<<Go n_obj>>;
],
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:
<<Lock hatch_lock>>;
Close:
if (location == cellar)
<<Go u_obj>>;
Open:
if (hatch_lock has locked)
"It's locked.";
Attack:
"The wood is far too strong.";
Unlock:
<<Unlock hatch_lock>>;
],
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.^";
<<Look>>;
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.^";
<<Look>>;
}
if (noun ~= u_obj)
return false;
if (noun == u_obj && cellar_figure.incapacitated == true) {
self.hiding = 0;
return false;
}
if (noun == out_obj)
<<Exit>>;
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 [;
<<Go u_obj>>;
],
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)
<<Attack self>>;
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:
<<Unmask cellar_figure>>;
],
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 [;
<<Go u_obj>>;
],
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:
<<Take snow>>;
],
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 [;
<<Go d_obj>>;
],
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 [;
<<Go s_obj>>;
],
in_to [;
<<Go n_obj>>;
],
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:
<<Examine holy_water>>;
Drink:
<<Drink holy_water>>;
Eat:
<<Eat holy_water>>;
Smell:
<<Smell holy_water>>;
Taste:
<<Taste holy_water>>;
Touch:
<<Touch holy_water>>;
Take:
<<Take holy_water>>;
],
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:
<<Drink self>>;
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:
<<Drink self>>;
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:
<<Drink self>>;
],
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 [;
<<Go s_obj>>;
],
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 [;
<<Go w_obj>>;
],
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 [;
<<Go nw_obj>>;
],
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)
<<Dig flagstone>>;
],
n_to dormitory,
out_to [;
<<Go n_obj>>;
],
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 [;
<<Go s_obj>>;
],
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 [;
<<Go sw_obj>>;
],
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 [;
<<Go ne_obj>>;
],
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 [;
<<Go nw_obj>>;
],
in_to [;
<<Go se_obj>>;
],
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 [;
<<Go nw_obj>>;
],
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 [;
<<Go n_obj>>;
],
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)
<<Smell stalls>>;
],
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)
<<Climb ladder>>;
],
d_to [;
if (player in stalls)
<<Climb ladder>>;
],
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)
<<Climb ladder>>;
],
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:
<<Examine self>>;
Open:
"The gates are smashed and stuck. The horses jammed them in their
frenzy.";
Enter:
"The gates are stuck.";
Climb,GetOff:
<<Climb ladder>>;
],
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:
<<Climb ladder>>;
],
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)
<<Examine stalls>>;
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:
<<Open horse_stall>>;
],
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:
<<Sleep>>;
],
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)
<<Go n_obj>>;
else
<<Go s_obj>>;
],
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 [;
<<Go s_obj>>;
],
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)
<<Dig gate_bodies>>;
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 [;
<<Go s_obj>>;
],
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)
<<Dig>>;
],
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:
<<Dig self>>;
Take,Push,Open,Push,Pull:
if (self.dug == true)
"The bodies are frozen together in a heap of flesh and ice.";
else
<<Dig self>>;
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 [;
<<Enter horse>>;
],
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:
<<Take snow>>;
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:
<<Go s_obj>>;
],
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) {
<Examine self>;
"^You'll have to pull him to shore before you can search him.";
}
if (lucca_paper has moved)
<<Examine self>>;
else
move lucca_paper to player;
<Examine self>;
"^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)
<<Give your_bedding cecilia1>>;
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
<<Give cecilia_food cecilia1>>;
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)
<<SleepWith self>>;
],
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);
<<Examine briars>>;
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)
<<Push your_desk>>;
Go:
if (noun == out_obj or w_obj)
<<Push your_desk>>;
Open:
if (noun == your_door)
<<Push your_desk>>;
],
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)
<<Examine self>>;
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:
<<Examine player>>;
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)^";
<<PrayThrough self>>;
],
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;
<<Examine noun>>;
];
[ WhoisSub;
"You don't know who that is.";
];
[ ExtinguishSub;
"That's not lit.";
];
[ PrayToSub;
if (noun == god)
<<PrayThrough noun>>;
if (noun ofclass Saint && noun ~= god) {
sin_shadow.total_sin = sin_shadow.total_sin + 5;
<<PrayThrough noun>>;
}
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;
<<Attack noun>>;
];
[ SleepWithSub;
if (noun == player)
<<Masturbate>>;
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;
<<PrayTo devil>>;
];
[ 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;