! ----------------------------------------------------------------------------
! Advent 020823 A classic and one of the standard Inform 6 example games
!
!
! Adapted to Inform 5: 17.5.94 to 24.5.94
! Modernised to Inform 5.5 and library 5/12 or later: 20.12.95
! Modernised to Inform 6 and library 6/1 or later: 11.11.96
! A few bugs removed and companion text rewritten: 9.12.96
! Some very minor bugs indeed removed: 24.2.97
! And another two: 4.9.97
! Dutch translation: 23.8.02
! ----------------------------------------------------------------------------
! Constant TEST_VERSION;
! Constant DEBUG;
Constant Story "AVONTUUR";
Constant Headline
"^Het Interactieve Origineel^
Door Will Crowther (1973) en Don Woods (1977)^
In drie stappen gereconstrueerd door:^
Donald Ekman, David M. Baggett (1993) en Graham Nelson (1994)^
In het Nederlands vertaald door Yuri Robbers (2002)^
Oorspronkelijke titel: Adventure^
[In memoriam Stephen Bishop (1820?-1857): GN]^^";
Global caves_closed;
Global canyon_from;
Global treasures_found;
Global deaths;
Global dark_warning;
Global feefie_count;
! ----------------------------------------------------------------------------
! Rules for treasures, which will be scattered all over the game
! ----------------------------------------------------------------------------
Class Treasure
with depositpoints 10,
after
[; Take: if (location==Inside_Building)
score=score-self.depositpoints;
score=score+5;
if (noun hasnt treasure_found)
{ give noun treasure_found; treasures_found++;
score=score+2;
}
"Meegenomen!";
Insert: score=score-5;
! (in case put inside the wicker cage)
Drop: score=score-5;
if (location==Inside_Building)
{ score=score+self.depositpoints;
"Veilig weggeborgen.";
}
];
! ----------------------------------------------------------------------------
! The outside world
! ----------------------------------------------------------------------------
Class AboveGround
has light nodwarf;
AboveGround At_End_Of_Road "Aan het Eind van de Weg"
with description "Je staat aan het einde van een weg voor een klein
stenen gebouwtje. Om je heen is bos. Een beekje
stroomt uit het gebouw naar beneden door een geul.",
w_to At_Hill_In_Road, u_to At_Hill_In_Road, e_to Inside_Building,
d_to In_A_Valley, s_to In_A_Valley, n_to In_Forest_1,
in_to Inside_Building,
name "geul" "weg" "straat" "pad";
Object "bronhuis"
with name "bron" "huis" "steen" "gebouw" "klein" "bron" "gebouwtje" "bronhuis",
description "Het is een klein stenen gebouwtje. Het lijkt wel
een bronhuis",
found_in At_End_Of_Road At_Hill_In_Road Inside_Building
has scenery neuter;
Object Stream "stroom"
with name "stroom" "water" "beek" "rivier" "meer"
"klein" "vallend" "plonzend" "kabbelend" "stromend" "reservoir",
found_in At_End_Of_Road In_A_Valley At_Slit_In_Streambed
In_Pit In_Cavern_With_Waterfall
At_Reservoir
Inside_Building,
before
[; Drink:
"Je hebt een slokje beekwater genomen. Het
smaakt sterk naar minderalen, maar is niet vies. Het is
buitengewoon koud.";
Take: if (bottle notin player)
"Je hebt niets om het water in te doen.";
<<Fill bottle>>;
Insert: if (second == bottle) <<Fill bottle>>;
"Je hebt niets om het water in te doen.";
Receive: if (noun == ming_vase)
{ remove ming_vase; move shards to location;
score=score-5;
"De plotselinge temperatuurverandering was teveel
voor het delicate porselein: het is versplinterd.";
}
if (noun == bottle) <<Fill bottle>>;
remove noun; if (noun ofclass Treasure) score=score-5;
print_ret (The) noun, " spoelt mee met de stroom.";
],
has scenery male;
Object "weg"
with name "weg" "straat" "pad" "zand",
description "De weg is van zand, niet van gele baksteen.",
found_in At_End_Of_Road At_Hill_In_Road In_Forest_2
has scenery male;
Object "bos"
with name "bos" "boom" "bomen" "eik" "esdoorn" "groep" "den" "spar"
"struik" "berk" "es" "zaailingen" "struikjes" "bladeren"
"bes" "besjes" "bessenstruiken" "hardhout" "sparretjes",
description
"De bomen in dit bos zijn grote hardhouten eiken en
esdoorns, met af en toe een groep dennen of sparren.
Er is behoorlijk wat kreupelhout, grotendeels
bestaande uit zaailingen van de berk en de es, plus
wat verspreide struikjes van diverse soorten. Deze
tijd van het jaar is het zicht beperkt vanwege de vele
bladeren, maar wandelen is geen probleem, zolang je,
waar nodig, even om de sparretjes en bessenstruiken
heenloopt.",
found_in At_End_Of_Road At_Hill_In_Road In_A_Valley
In_Forest_1 In_Forest_2
has scenery multitude pluralname neuter;
AboveGround At_Hill_In_Road "Op een Heuvel op de Weg"
with description "Je bent een heuvel opgewandeld, nog steeds in het
bos. De weg leidt aan de andere kant weer naar
beneden. In de verte ontwaar je een gebouwtje.",
e_to At_End_Of_Road,
n_to At_End_Of_Road,
d_to At_End_Of_Road,
s_to In_Forest_1,
name "geul" "weg" "straat" "pad";
Object -> "heuvel"
with description "Gewoon een doorsnee heuvel.",
name "heuvel" "bult" "helling"
has scenery male;
Object -> "andere kant van de heuvel"
with article "de",
description "Waarom ga je niet gewoon zelf even kijken?",
name "kant" "andere" "van" "zijde"
has scenery male;
AboveGround Inside_Building "In het Gebouw"
with description "Je bent binnenin een gebouw: een bronhuis voor
een grote waterbron.",
cant_go "De beek stroomt naar buiten door een paar
rioolbuizen van dertig centimeter breed. De enige uitgang
is west.",
before
[; Enter: if (noun==Spring or SewerPipes)
"De beek stroomt naar buiten door een paar rioolbuizen
van dertig centimeter breed. Het zou verstandig zijn de
uitgang te gebruiken.";
Xyzzy: if (In_Debris_Room hasnt visited) rfalse;
PlayerTo(In_Debris_Room); rtrue;
Plugh: if (At_Y2 hasnt visited) rfalse;
PlayerTo(At_Y2); rtrue;
],
w_to At_End_Of_Road, out_to At_End_Of_Road,
in_to "De buizen zijn te nauw.";
Object -> Spring "bron"
with name "bron" "grote",
description "De beek stroomt naar buiten door een paar
rioolbuizen van dertig centimeter breed."
has scenery male;
Object -> SewerPipes "paar rioolbuizen van dertig centimeter breed"
with name "buizen" "pijpen" "dertig" "cm" "centimeter" "diameter"
"riool" "rioolbuizen",
description "Te nauw. De enige uitgang is in het westen."
has scenery male;
Object -> set_of_keys "sleutelbos"
with description "Gewoon een doodnormale sleutelbos.",
initial "Er ligt hier een sleutelbos op de grond.",
before
[; Count: "Een stuk of twaalf sleutels.";
],
name "sleutels" "sleutel" "sleutelbos" "stel" "bos" "set",
has male;
Object -> tasty_food "smakelijk voedsel"
with description "Dat ziet er lekker uit!", article "wat",
initial "Hier ligt wat smakelijk voedsel.",
name "voedsel" "rantsoen" "rantsoenen" "buik"
"lekker" "smakelijk" "lekker" "fijn",
after
[; Eat: "Heerlijk!"; ],
has edible neuter;
Object -> brass_lantern "koperen lantaarn"
with name "lamp" "koplamp" "hoofdlamp" "lantaarn" "licht" "blinkend"
"brons" "koper" "blinkende" "bronzen" "koperen",
when_off "Op de grond ligt een blinkend gepoetste koperen lantaarn.",
when_on "Je lamp is hier, helder brandend.",
power_remaining 330,
replace_batteries
[; if (fresh_batteries in player or location)
{ remove fresh_batteries; give fresh_batteries general;
move old_batteries to location;
self.power_remaining = 2500;
"Ik ben maar even zo vrij de batterijen te vervangen.";
}
],
daemon
[ t; if (self hasnt on) { StopDaemon(self); rtrue; }
t = --(self.power_remaining);
if (t==0) give self ~on ~light;
if (self in player || self in location)
{ if (t==0)
{
print "De batterijen van je lantaarn zijn leeg.";
if (fresh_batteries notin player && location hasnt light)
{ deadflag=3;
" Je kunt geen grotten onderzoeken zonder
lantaarn, dus laten we er maar mee ophouden
voor vandaag.";
}
else self.replace_batteries();
new_line; rtrue;
}
if (t==30)
{ print "Je lamp begint zwakker te branden.";
if (fresh_batteries has general)
" Je hebt ook geen nieuwe batterijen meer. Je
kunt je maar beter klaarmaken om naar huis te
gaan, nu het nog kan.";
if (fresh_batteries in VendingMachine
&& Dead_End_14 has visited)
" Je kunt je maar beter klaarmaken om naar huis
te gaan nu het nog kan, tenzij je nog nieuwe
batterijen kunt vinden. Als ik het me goed
herinner staat er een automaat in het
doolhof. Zorg dan wel dat je wat muntgeld bij je
hebt.";
if (fresh_batteries notin
VendingMachine or player or location)
" Ik zou maar gauw teruggaan voor die batterijen
als ik jou was.";
new_line; rtrue;
}
}
],
before
[; Examine: print "Een blinkend gepoetste koperen lamp";
if (self hasnt on)
". Hij brandt momenteel niet.";
if (self.power_remaining < 30)
", flauwtjes brandend.";
", helder brandend.";
Burn: <<SwitchOn self>>;
Rub: "Het opwrijven van de elektrische lamp opwrijven geeft
je niet bijzonder veel voldoening. In ieder geval gebeurt
er niets spannends.";
SwitchOn: if (self.power_remaining <= 0)
"Helaas lijkt het erop dat de batterijen leeg zijn.";
Receive:
if (noun == old_batteries)
"Die batterijen zijn leeg; daar heb je niets meer aan.";
if (noun == fresh_batteries)
{ self.replace_batteries(); rtrue; }
"Het enige wat je met enige kans op succes in de lamp
kunt stoppen zijn nieuwe batterijen.";
],
after
[; SwitchOn: give self light; StartDaemon(self);
SwitchOff: give self ~light;
],
has switchable male;
Object -> bottle "kleine fles"
with name "fles" "kruik" "klein" "kleine",
initial "Er ligt hier een kleine fles.",
before
[; LetGo:
if (noun in bottle)
"Dat heb je al in je bezit (in de fles).";
Receive:
if (noun == stream or Oil) <<Fill self>>;
else "De fles kan alleen vloeistoffen bevatten.";
Fill:
if (child(bottle) ~= nothing)
"De fles is al vol.";
if (stream in location || Spring in location)
{ move water_in_the_bottle to bottle;
"De fles is nu gevuld met water.";
}
if (Oil in location)
{ move oil_in_the_bottle to bottle;
"De fles is nu gevuld met olie.";
}
"Er is hier niets waarmee je de fles kunt vullen.";
Empty: if (child(bottle) == nothing) "De fles is al leeg!";
remove child(bottle);
"Je fles is nu leeg en de grond is nat.";
],
has container open male;
Object water_in_the_bottle "water"
with name "gebotteld" "water" "h2o", article "wat",
before
[; Drink: remove water_in_the_bottle; <<Drink Stream>>;
],
description "Ziet eruit als doodgewoon water, als je het mij
vraagt.",
has neuter;
Object oil_in_the_bottle "olie"
with name "oil" "gebotteld" "smeermiddel" "vet", article "wat",
before
[; Drink: <<Drink Oil>>;
],
description "Ziet eruit als doodnormale olie, volgens mij.",
has neuter;
AboveGround In_Forest_1 "In het Bos"
with description "Je bent in een redelijk open bos, met een vallei aan
een kant.",
e_to In_A_Valley,
d_to In_A_Valley,
n_to In_Forest_1,
w_to In_Forest_1,
s_to In_Forest_1,
initial [; if (random(2)==1) PlayerTo(In_Forest_2,1); ];
AboveGround In_Forest_2 "In het Bos"
with description "Je bent in een redelijk open bos, vlakbij een
vallei en een weg.",
n_to At_End_Of_Road,
e_to In_A_Valley,
w_to In_A_Valley,
d_to In_A_Valley,
s_to In_Forest_1;
AboveGround In_A_Valley "In een Vallei"
with description
"Je bent in een vallei in het bos, en naast je stroomt
een beekje klaterend door z'n rotsachtige bedding.",
n_to At_End_Of_Road,
e_to In_Forest_1,
w_to In_Forest_1,
u_to In_Forest_1,
s_to At_Slit_In_Streambed,
d_to At_Slit_In_Streambed, name "vallei";
Object -> "bedding"
with name "bed" "bedding" "rots" "klein" "rotsachtig" "rotsachtige"
"kaal" "droog"
has scenery neuter;
AboveGround At_Slit_In_Streambed "Bij een Gleuf in de Bedding"
with description "Bij je voeten dondert al het water van de beek
naar beneden, een vijf centimeter brede gleuf in. Verder
stroomafwaarts bestaat de bedding slechts uit kale rotsen.",
n_to In_A_Valley,
e_to In_Forest_1,
w_to In_Forest_1,
s_to Outside_Grate,
d_to "Je past niet door een vijf centimeter brede gleuf!",
in_to "Je past niet door een vijf centimeter brede gleuf!";
Object -> "vijf centimeter brede gleuf"
with name "gleuf" "opening" "vijf" "cm" "centimeter" "5",
description
"Gewoon een vijf centimeter brede gleuf waar de beek
doorheen stroomt.",
before
[; Enter: "Je past niet door een vijf centimeter brede gleuf!";
],
has scenery;
AboveGround Outside_Grate "Buiten het Rooster"
with description
"Je bevindt je in een 6 meter diepe kuil bedekt met
niets anders dan kiezels en zand. In het zand zie je een
stevig stalen rooster, gevat in beton. Een droge
rivierbedding leidt de kuil in.",
e_to In_Forest_1,
w_to In_Forest_1,
s_to In_Forest_1,
n_to At_Slit_In_Streambed,
d_to
[; if (Grate hasnt locked && Grate hasnt open)
{ print "(eerst het rooster openend)^"; give Grate open; }
return Grate;
];
Object -> "6 meter diepe kuil"
with description "Je staat erin.",
name "kuil" "depressie" "zand" "kiezels" "zes" "m" "meter"
"kaal" "6",
has scenery male;
Object -> Grate "stalen rooster"
with name "rooster" "slot" "doorgang" "gril" "traliewerk" "hekwerk"
"hek" "tralie" "tralies" "metaal" "sterk" "stevig" "staal",
description "Het ziet eruit zoals een rooster gevat in beton er
meestal uitziet.",
with_key set_of_keys,
door_dir
[; if (location==Below_The_Grate) return u_to; return d_to;
],
door_to
[; if (location==Below_The_Grate) return Outside_Grate;
return Below_The_Grate;
],
describe
[; if (self has open) "^Het rooster staat open.";
if (self hasnt locked) "^Het rooster zit dicht, maar is niet
op slot.";
rtrue;
],
found_in Below_The_Grate Outside_Grate
has static door openable lockable locked neuter;
Object Below_The_Grate "Onder het Rooster"
with description
"Je bevindt je in een kamertje onder een rooster van
zo'n 90 bij 90 centimeter dat naar de oppervlakte leidt.
Via een lage gang vol keien kun je naar het westen
kruipen, dieper de aarde in.",
w_to In_Cobble_Crawl,
u_to Grate
has light;
Object "keien"
with description "Het zijn gewoon normale keien.",
name "kei" "keien" "rots" "rotsen" "stenen" "steen" "kiezel" "kiezels",
found_in In_Cobble_Crawl In_Debris_Room Below_The_Grate
has scenery multitude pluralname male;
Object In_Cobble_Crawl "In de Kruipgang met Keien"
with description
"Je kruipt over de keien door een lage gang. Er is een
flauw licht aan het oostelijke uiteinde van de gang.",
e_to Below_The_Grate,
w_to In_Debris_Room
has light;
Object -> wicker_cage "tenen kooitje"
with description "Het is een klein tenen kooitje.",
initial "Iemand heeft hier een klein tenen kooitje achtergelaten.",
name "kooi" "kooitje" "klein" "kleine" "tenen" "rieten" "rotan",
after
[; Open: if (little_bird notin self) rfalse;
print "(het kleine vogeltje vrijlatend)^";
<<Release little_bird>>;
],
has container open openable transparent neuter;
Object In_Debris_Room "In de Puinkamer"
with description
"Je bent in een kamer gevuld met allerlei puin dat vanaf
de oppervlakte hierheen gespoeld is. Een lage maar brede
gang vol keien raakt hier verstopt met modder en puin,
maar een moeilijk begaanbaar ravijn leidt omhoog en naar
het westen.^^
Een boodschap op de muur zegt: ~Magisch woord XYZZY~.",
e_to In_Cobble_Crawl,
u_to In_Awkward_Sloping_E_W_Canyon,
w_to In_Awkward_Sloping_E_W_Canyon,
before
[; Xyzzy: PlayerTo(Inside_Building); rtrue;
],
has nodwarf;
Object -> "puin"
with description "Yuck.",
name "puin" "rommel" "modder"
has scenery neuter;
Object -> "boodschap"
with description "De boodschap zegt ~Magisch woord XYZZY~.",
name "boodschap" "tekst"
has scenery;
Object -> black_rod "zwarte staf met een roestige ster aan een uiteinde"
with description "Het is een negentig centimeter lange staf met een
roestige ster aan een uiteinde.",
initial "Er ligt een zwarte staf van een centimeter of negentig
lang met een roestige ster aan een uiteinde niet ver bij
je voeten vandaan.",
name "staf" "ster" "zwart" "roestige" "ster" "negentig"
"centimeter" "90" "cm" "ijzer" "ijzeren" "roestig",
before
[; Wave:
if (location==West_Side_Of_Fissure or On_East_Bank_Of_Fissure)
{ if (caves_closed) "Vreemd. Er gebeurt niets.";
if (CrystalBridge notin nothing)
{ remove CrystalBridge; give CrystalBridge absent;
West_Side_Of_Fissure.e_to = 0;
On_East_Bank_Of_Fissure.w_to = 0;
"De kristallen brug is verdwenen!";
}
else
{ move CrystalBridge to location; give CrystalBridge ~absent;
West_Side_Of_Fissure.e_to = CrystalBridge;
On_East_Bank_Of_Fissure.w_to = CrystalBridge;
"Een kristallen brug overspant de breuk nu.";
}
}
"Er gebeurt niets.";
];
Object In_Awkward_Sloping_E_W_Canyon "Hellend Oost/West Ravijn"
with description
"Je klautert door een moeilijk begaanbaar Oost/West
lopend ravijn.",
d_to In_Debris_Room,
e_to In_Debris_Room,
u_to In_Bird_Chamber,
w_to In_Bird_Chamber
has nodwarf;
! ----------------------------------------------------------------------------
! The little bird in its natural habitat
! ----------------------------------------------------------------------------
Object In_Bird_Chamber "Oranje Rivier Kamer"
with description
"Je bevindt je in een schitterende kamer van negen
meter hoog. De muren zijn bevroren rivieren van oranje
steen. Via een gevaarlijk ravijn in het oosten en een
goed uitziende doorgang in het westen kun je deze kamer
weer verlaten.",
e_to In_Awkward_Sloping_E_W_Canyon,
w_to At_Top_Of_Small_Pit
has nodwarf;
Object -> little_bird "klein vogeltje"
with name "vrolijk" "vrolijke" "bedroefd" "bedroefde" "klein"
"kleine" "vogel" "vogeltje",
initial "Een vrolijk klein vogeltje zit hier te zingen.",
before
[; Examine:
if (self in wicker_cage)
"Het kleine vogeltje ziet er bedroefd uit in het kooitje.";
"Het vogeltje zit hier vrolijk te zingen.";
Insert: if (second==wicker_cage) <<Catch self>>;
else
"Stop dat arme vogeltje toch niet in ", (the) second, "!";
Drop, Remove:
if (self in wicker_cage)
{ print "(Het vogeltje vliegt het kooitje uit zodra je
het open doet.)^^";
<<Release self>>;
}
Take, Catch:
if (self in wicker_cage)
"Je hebt het kleine vogeltje al. Als je hem uit het
kooitje haalt, zal hij waarschijnlijk van je
wegvliegen.";
if (wicker_cage notin player)
"Je kunt het vogeltje wel vangen, maar niet met je meedragen.";
if (black_rod in player)
"Het vogeltje was niet bang toen je binnenkwam, maar als
je nadert wordt hij bang, en je kunt hem niet
vangen.";
move self to wicker_cage; give wicker_cage ~open;
"Je vangt het vogeltje in de tenen kooi.";
Release:
if (self notin wicker_cage) "Het vogeltje zit helemaal
niet in de kooi!";
give wicker_cage open;
move self to location;
if (Snake in location)
{ remove Snake;
"Het kleine vogeltje valt de groene slang aan, en in
een verbazingwekkende strijd op leven en dood maakt de
slang dat hij wegkomt.";
}
if (Dragon in location)
{ remove self;
"Het kleine vogeltje valt de groene draak aan, en in
een verbazingwekkende strijd op leven en dood verkoolt
het in de vurige adem van de draak. De as dwarrelt
langzaam weg op de tocht.";
}
"Het kleine vogeltje vliegt de vrijheid tegemoet.";
],
life
[; Give: "Hij heeft geen honger (hij smacht slechts naar de
fjorden). Bovendien, ik verwacht eerlijk gezegd dat
hij veel liever vogelzaad zou hebben.";
Order, Ask, Answer: "Tjiep! Sjirp!";
Attack:
if (self in wicker_cage)
"Och, laat dat arme kleine vogeltje toch gewoon met rust.";
remove self;
"Het kleine vogeltje is nu dood. Het lijkje verdwijnt.";
],
has animate neuter;
Object At_Top_Of_Small_Pit "Bovenaan een Kleine Schacht"
with description
"Aan je voeten zie je een kleine schacht flarden witte
mist uitademen. Een westwaartse gang eindigt hier, en
slechts een kleine scheur leidt nog verder in die
richting.^^
Ruwe stenen traptreden leiden naar beneden, de schacht
in.",
e_to In_Bird_Chamber,
w_to "De scheur is veel te nauw voor jou om je er doorheen te
wurmen.",
d_to
[; if (large_gold_nugget in player)
{ deadflag=1;
"Je ligt op de bodem van de schacht met een gebroken nek.";
}
return In_Hall_Of_Mists;
],
before
[; Enter: if (noun==PitCrack)
"De scheur is veel te nauw voor jou om je er doorheen te
wurmen.";
],
has nodwarf;
Object -> "kleine schacht"
with description "De schacht ademt flarden witte mist.",
name "schacht" "klein" "kleine"
has scenery male;
Object -> PitCrack "scheur"
with description
"De scheur is heel nauw -- veel te nauw voor jou om er
doorheen te kunnen kruipen.",
name "scheur" "klein" "kleine"
has scenery male;
Object "mist"
with description
"Mist is een witte damp, meestal water, die van tijd
tot tijd waargenomen kan worden in grotten. In principe
kun je zoiets overal tegenkomen, maar vaak is het een
teken dat er een diepe schacht naar beneden leidt, naar
water.",
name "mist" "damp" "flard" "flarden" "wit" "witte",
found_in At_Top_Of_Small_Pit In_Hall_Of_Mists
On_East_Bank_Of_Fissure At_Window_On_Pit_1
At_West_End_Of_Hall_Of_Mists In_Misty_Cavern
In_Mirror_Canyon At_Reservoir At_Window_On_Pit_2
On_Sw_Side_Of_Chasm
has scenery male;
! ----------------------------------------------------------------------------
! The caves open up: The Hall of Mists
! ----------------------------------------------------------------------------
Object In_Hall_Of_Mists "In de Zaal van Mist"
with initial
[; if (self has general) rfalse;
score=score+25; give self general;
],
description
"Je staat aan @'e@'en uiteinde van een enorme zaal
die zich verder dan je kunt zien naar het westen
uitstrekt. Aan beide kanten zie je openingen opzij.
Vlakbij leidt een stenen trap naar beneden. De zaal is
gevuld met flarden witte mist, die langzaam heen en weer
drijven, bijna zoals levende wezens dat zouden doen. Een
koude wind blaast omhoog vanuit het trapgat. Er is een
doorgang bovenin het gewelf achter je.^^ Ruwe stenen
traptreden leiden omhoog naar het gewelf.",
s_to In_Nugget_Of_Gold_Room,
w_to On_East_Bank_Of_Fissure,
d_to In_Hall_Of_Mt_King,
n_to In_Hall_Of_Mt_King,
u_to
[; if (large_gold_nugget in player) "Je kunt niet naar het
gewelf toeklimmen.";
return At_Top_Of_Small_Pit;
];
Object -> "brede stenen trap"
with description "De trap leid naar beneden.",
name "trap" "trede" "treden" "tredes" "traptrede" "traptreden"
"traptredes" "breed" "brede" "steen" "stenen"
has scenery male;
Object -> "ruwe stenen traptreden"
with description "De ruwe stenen traptreden leiden omhoog naar het gewelf.",
name "trap" "trede" "treden" "tredes" "traptrede" "traptreden"
"traptredes" "ruw" "ruwe" "steen" "stenen"
has scenery multitude pluralname;
Object -> "gewelf"
with name "gewelf",
before
[; Examine: if (large_gold_nugget in player)
"Ik betwijfel of je wel omhoog kunt klimmen met wat
je bij je hebt.";
"Het lijkt erop dat je er wel naar toe moet kunnen klimmen.";
Climb: MovePlayer(u_obj); rtrue;
],
has scenery neuter;
Object In_Nugget_Of_Gold_Room "Lage Kamer"
with description
"Dit is een lage kamer met een ruw in de muur
gebeitelde boodschap:^^
~Je krijgt het toch de trap niet op~.",
n_to In_Hall_Of_Mists;
Object -> "boodschap"
with description "De boodschap zegt: ~Je krijgt het toch de trap
niet op~.",
name "boodschap" "bericht" "ruw" "gebeiteld"
has scenery male;
Treasure -> large_gold_nugget "grote goudklomp"
with description "Het is een enorme schitterende goudklomp!",
initial "Er ligt hier een enorme goudklomp te schitteren!",
name "goud" "klomp" "goudklomp" "groot" "grote" "enorm"
"enorme" "zwaar" "zware";
Class FissureRoom
with before
[;
Jump: if (CrystalBridge hasnt absent)
"Met alle respect, maar zou je niet liever de brug
nemen dan eroverheen te springen?";
deadflag=1;
"Je hebt het niet gehaald.";
],
d_to "De kloof is te angstaanjagend!";
FissureRoom On_East_Bank_Of_Fissure "Aan de Oostkant van de Kloof"
with description
"Je staat aan de oostkant van een kloof die dwars door
de zaal heensnijdt. De mist is hier behoorlijk dicht, en
de kloof is te breed om eroverheen te springen.",
e_to In_Hall_Of_Mists, w_to "De kloof is te breed.";
FissureRoom West_Side_Of_Fissure "Westzijde van de Kloof"
with description
"Je staat aan de westelijke zijde van de kloof in de
zaal van mist.",
w_to At_West_End_Of_Hall_Of_Mists,
e_to "De kloof is te breed.",
n_to At_West_End_Of_Hall_Of_Mists,
before
[; Go: if (location==West_Side_Of_Fissure && noun==n_obj)
print "Je bent door een zeer lage gang gekropen,
parallel aan en ten noorden van de zaal
van mist.^";
];
Treasure -> "diamanten"
with article "een aantal",
description "Ze zien eruit alsof ze van de beste kwaliteit zijn!",
initial "Er ligt hier een aantal diamanten!",
name "diamant" "diamanten" "aantal" "beste" "van" "best" "kwaliteit"
has multitude pluralname male;
Object CrystalBridge "kristallen brug"
with initial "Een kristallen brug overbrugt nu de kloof.",
description "Hij overbrugt de kloof, zodat je eroverheen kunt.",
door_dir
[; if (location==West_Side_Of_Fissure) return e_to; return w_to;
],
door_to
[; if (location==West_Side_Of_Fissure) return On_East_Bank_Of_Fissure;
return West_Side_Of_Fissure;
],
name "kristal" "kristallen" "brug" "overbrugging" "kristalbrug",
found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure
has static door open absent male;
Object "kloof"
with name "breed" "brede" "kloof",
description "Die kloof ziet er veel te breed uit om eroverheen
te springen.",
found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure
has scenery male;
Object At_West_End_Of_Hall_Of_Mists "Aan het Westelijke Uiteinde van de
Zaal van Mist"
with description
"Je bent aan het westelijke uiteinde van de zaal van
mist aangeland. A lage, brede kruipgang gaat verder naar
het westen, en een andere leidt naar het
noorden. Zuidwaarts zie je een kleine doorgang, zo'n
@'e@'en meter tachtig boven de grond.",
s_to Alike_Maze_1,
u_to Alike_Maze_1,
e_to West_Side_Of_Fissure,
w_to At_East_End_Of_Long_Hall,
n_to West_Side_Of_Fissure,
before
[; Go: if (noun==n_obj)
print "Je bent door een zeer lage gang gekropen,
parallel aan en ten noorden van de zaal
van mist.^";
];
! ----------------------------------------------------------------------------
! Long Hall to the west of the Hall of Mists
! ----------------------------------------------------------------------------
Object At_East_End_Of_Long_Hall "Aan de Oostkant van een Lange Zaal"
with description
"Je bent aan de oostkant van een enorm lange zaal, zo
te zien zonder zijkamers. Naar het oosten helt een lage,
brede kruipgang omhoog, en naar het noorden helt een rond,
zestig centimeter breed, gat naar beneden.",
e_to At_West_End_Of_Hall_Of_Mists,
u_to At_West_End_Of_Hall_Of_Mists,
w_to At_West_End_Of_Long_Hall,
n_to Crossover,
d_to Crossover;
Object At_West_End_Of_Long_Hall "Aan de Westkant van een Lange Zaal"
with description
"Je bevindt je aan het westelijke einde van een zeer
lange zaal zonder bijzondere kenmerken. De zaal mondt uit
in een smalle noord/zuid-gang.",
e_to At_East_End_Of_Long_Hall,
s_to Different_Maze_1,
n_to Crossover;
Object Crossover "N/Z en O/W Kruispunt"
with description
"Je bevindt je op een kruispunt van een hoge
noord/zuid- en een lage oost/west-doorgang.",
w_to At_East_End_Of_Long_Hall,
n_to Dead_End_7,
e_to In_West_Side_Chamber,
s_to At_West_End_Of_Long_Hall;
Object -> "kruispunt"
with description "Je weet op dit punt netzoveel als ik.",
name "kruispunt" "kruising" "kruis"
has scenery neuter;
! ----------------------------------------------------------------------------
! Many Dead Ends will be needed for the maze below, so define a class:
! ----------------------------------------------------------------------------
Class DeadEndRoom
with short_name "Doodlopend punt",
description "Je bent op een doodlopend punt beland.",
cant_go "Je zult terug moeten in de richting waar je vandaan kwam.";
DeadEndRoom Dead_End_7
with s_to Crossover,
out_to Crossover;
! ----------------------------------------------------------------------------
! The Hall of the Mountain King and side chambers
! ----------------------------------------------------------------------------
Object In_Hall_Of_Mt_King "Zaal van de Bergkoning"
with description
"Je staat in de zaal van de bergkoning, en in alle
richtingen leiden gangen.",
cant_go "Hmm... misschien toch niet in alle richtingen.",
u_to In_Hall_Of_Mists,
e_to In_Hall_Of_Mists,
n_to Low_N_S_Passage,
s_to In_South_Side_Chamber,
w_to In_West_Side_Chamber,
sw_to In_Secret_E_W_Canyon,
before
[; Go: if (Snake in self
&& (noun == n_obj or s_obj or w_obj
|| (noun == sw_obj && random(100) <= 35)))
"Je kunt niet langs de slang komen.";
];
Object -> Snake "slang"
with description "Met hem zou ik me vooral niet inlaten, als ik jou was.",
initial "Een enorme groene slang blokkeert je weg!",
name "slang" "cobra" "python" "enorm" "enorme" "fel" "groen"
"agressief" "giftig" "giftige" "groot" "grote"
"moordenaar" "felle" "groene" "agressieve",
life
[; Order, Ask, Answer: "Siss!";
ThrowAt: if (noun==axe) <<Attack self>>;
<<Give noun self>>;
Give: if (noun==little_bird)
{ remove little_bird;
"De slang heeft je arme vogeltje verorberd.";
}
"Er is hier niets dat hij lust (behalve jijzelf misschien).";
Attack: "De slang aanvallen lukt niet, en is erg
gevaarlijk.";
],
before
[; Take: deadflag=1; "In plaats daarvan pakt hij jou. Glrp!";
],
has animate female;
Object Low_N_S_Passage "Lage N/Z-doorgang"
with description
"Je staat in een lage noord/zuid-gang, vlakbij een gat
in de grond. Het gat leidt neerwaarts naar een
oost/west-doorgang.",
s_to In_Hall_Of_Mt_King,
d_to In_Dirty_Passage,
n_to At_Y2;
Treasure -> "staven zilver"
with description "Ze zijn waarschijnlijk een fortuin waard!",
initial "Er liggen hier enige staven zilver!",
article "enige",
name "zilver" "zilveren" "staaf" "staven" "zilverstaaf"
"zilverstaven" "fortuin",
has multitude pluralname male;
Object In_South_Side_Chamber "In de Kamer aan de Zuidkant"
with description
"Je bent in de kamer aan de zuidkant.",
n_to In_Hall_Of_Mt_King;
Treasure -> "kostbare juwelen"
with description "De een is nog fraaier dan de ander!",
initial "Er liggen hier enkele kostbare juwelen!",
article "enkele",
name "juweel" "juwelen" "fraai" "fraaie" "kostbaar" "kostbare",
has multitude pluralname male;
Object In_West_Side_Chamber "In de Kamer aan de Westkant"
with description
"Je bevindt je in de kamer aan de westkant van de zaal
van de bergkoning. Een gang leidt hiervandaan verder naar
het westen en omhoog.",
w_to Crossover,
u_to Crossover,
e_to In_Hall_Of_Mt_King;
Treasure -> rare_coins "zeldzame munten"
with description "De droom van elke numismatist!",
initial "Er ligt hier een grote hoeveelheid munten!", article "veel",
name "munt" "munten" "zeldzaam" "zeldzame",
has multitude pluralname male;
! ----------------------------------------------------------------------------
! The Y2 Rock Room and environs, slightly below
! ----------------------------------------------------------------------------
Object At_Y2 "Bij ~Y2~"
with description
"Je bevindt je in een grote kamer, met een opening
naar het zuiden, een opening naar het westen, en een
soort muur van rotspuin in het oosten. Er staat in
enorme letters ~Y2~ op een rots middenin de kamer.",
after
[; Look: if (random(100)<=25) print "^Een holle stem zegt: ~Plugh.~^";
],
before
[;
Plugh: PlayerTo(Inside_Building); rtrue;
Plover: if (In_Plover_Room hasnt visited) rfalse;
if (egg_sized_emerald in player)
{ move egg_sized_emerald to In_Plover_Room;
score = score - 5;
}
PlayerTo(In_Plover_Room); rtrue;
],
s_to Low_N_S_Passage,
e_to Jumble_Of_Rock,
w_to At_Window_On_Pit_1;
Object -> "~Y2~ rots"
with description "Er staat in enorme letters ~Y2~ op de rots geschilderd.",
name "rots" "y2" "letters"
has scenery supporter male;
Object Jumble_Of_Rock "Warboel van Rotsblokken"
with description "Je staat in een puinhoop van rotsblokken, met
overal scheuren.",
d_to At_Y2,
u_to In_Hall_Of_Mists;
Object At_Window_On_Pit_1 "Bij een Venster dat Uitziet op een Schacht"
with description
"Je staat bij een laag venster dat uitzicht biedt op
een gigantische schacht. De vloer is juist zichtbaar, zo'n
vijftien meter dieper. Flarden witte mist bedekken de
bodem van de schacht, en worden naar rechts toe
dikker. Sporen in het stof bij het venster getuigen van
het feit dat hier onlangs nog iemand geweest is. Recht
tegenover je aan de andere kant van de schacht is een
soortgelijk venster dat uitzicht biedt op een verlichte
kamer. Je ontwaart daar een schimmig figuur dat naar je
terugstaart.",
before
[; WaveHands: "De schimmige figuur zwaait terug!";
],
cant_go "De enige mogelijkheid is terug naar het oosten, naar Y2.",
e_to At_Y2;
Class PitScenery
with found_in At_Window_On_Pit_1 At_Window_On_Pit_2,
has scenery;
PitScenery "venster"
with description
"Ziet eruit als een gewoon venster.",
name "venster" "raam" "ruit" "laag",
has openable neuter;
PitScenery "gigantische schacht"
with description
"Deze schacht is zo diep dat je de bodem maar netaan kunt
zien, en de bovenkant is veel te ver weg.",
name "schacht" "diep" "diepe" "groot" "grote" "breed" "brede"
"hoog" "hoge" "gigantisch" "gigantische",
has male;
PitScenery "sporen in het stof"
with description "Je bent hier duidelijk niet alleen.",
name "spoor" "sporen" "stof"
has multitude pluralname neuter;
PitScenery "schimmige figuur"
with description
"Het lijkt wel of die schimmige figuur je aandacht
probeert te trekken.",
name "figuur" "schim" "schimmig" "schimmige" "schaduw"
"persoon" "individu" "mysterieus",
has male;
Object In_Dirty_Passage "Vieze Gang"
with description
"Je bent in een vieze, half ingestorte gang. Naar het
oosten is een kruipruimte. Naar het westen loopt een grote
gang. Boven je zit een gat naar een andere gang.",
e_to On_Brink_Of_Pit,
u_to Low_N_S_Passage,
w_to In_Dusty_Rock_Room;
Object On_Brink_Of_Pit "Rand van de Schacht"
with description
"Je zit op de rand van een smalle, schone schacht waar
je vrij gemakkelijk in kunt klimmen. Een kruipruimte leidt
naar het westen.",
w_to In_Dirty_Passage,
d_to In_Pit,
in_to In_Pit;
Object -> "kleine schacht"
with description "Het ziet ernaar uit dat je daar met enige moeite
wel in af kunt dalen.",
name "put" "schacht" "klein" "schoon" "beklimbaar" "beklimbare",
before
[; Climb, Enter: MovePlayer(d_obj); rtrue; ],
has scenery male;
Object In_Pit "In een Schacht"
with description
"Je staat op de bodem van een kleine schacht met een
stroompje, dat binnenkomt en verdwijnt door kleine
sleuven.",
u_to On_Brink_Of_Pit,
d_to "Je past niet door de kleine sleuven!"
has nodwarf;
Object -> "kleine sleuven"
with description "De sleuven vormen een complex patroon in de rots.",
name "sleuf" "sleuven" "klein" "kleine" "complex" "patroon",
has scenery multitude pluralname male;
Object In_Dusty_Rock_Room "In de Stoffige Rotskamer"
with description
"Je bent in een grote kamer vol stoffige rotsen. Er
zit een groot gat in de vloer. Overal zijn scheuren en
barsten, en een doorgang leidt oostwaarts.",
e_to In_Dirty_Passage,
d_to At_Complex_Junction;
Object -> "stoffige rotsen"
with description "Dat zijn gewoon rotsen. (Stoffige, wel te verstaan.)",
name "rots" "rotsen" "kei" "keien" "steen" "stenen"
"stoffig" "stoffige" "vies" "vieze",
before
[; Push, Pull, LookUnder:
"Daar moet je je eerst een weg doorheen banen met dynamiet.";
],
has scenery multitude pluralname male;
! ----------------------------------------------------------------------------
! A maze of twisty little passages, all alike...
! ----------------------------------------------------------------------------
Class MazeRoom
with short_name "Doolhof",
description
"Je bent in een doolhof van kronkelende kleine
paadjes, allemaal hetzelfde.",
out_to "Makkelijker gezegd dan gedaan.";
DeadEndRoom Dead_End_5
with
u_to Alike_Maze_10,
out_to Alike_Maze_10;
Object At_Brink_Of_Pit "Op het Randje van een Schacht"
with description
"Je staat op het randje van een negen meter diepe
schacht met een massieve oranje zuil langs @'e@'en
muur. Je kunt hier naar beneden klimmen, maar dan zul je
niet meer terug omhoog kunnen komen. Het doolhof gaat
verder op dit niveau.",
d_to In_Bird_Chamber,
w_to Alike_Maze_10,
s_to Dead_End_6,
n_to Alike_Maze_12,
e_to Alike_Maze_13;
Object -> "massieve oranje zuil"
with description "Ziet eruit alsof je er wel langs omlaag kunt klimmen.",
name "zuil" "massief" "oranje" "groot" "enorm" "massieve"
"grote" "enorme",
before [; Climb: MovePlayer(d_obj); rtrue; ],
has scenery male;
Object -> "schacht"
with description "Je zult naar beneden moeten klimmen om nog meer te
kunnen zien...",
name "schacht" "put" "negen" "9" "meter" "m" "9m",
before [; Climb: MovePlayer(d_obj); rtrue; ],
has scenery male;
DeadEndRoom Dead_End_6
with e_to At_Brink_Of_Pit,
out_to At_Brink_Of_Pit;
! ----------------------------------------------------------------------------
! A line of three vital junctions, east to west
! ----------------------------------------------------------------------------
Object At_Complex_Junction "Een Ingewikkeld Knooppunt"
with description
"Je hebt een ingewikkeld knooppunt bereikt. Een lage
handen-en-voeten doorgang vanuit het noorden komt samen
met een hogere kruipgang vanuit het oosten om een
beloopbare gang naar het westen te vormen. Er is ook nog
een grote kamer hierboven. De lucht is hier vochtig.",
u_to In_Dusty_Rock_Room,
w_to In_Bedquilt,
n_to In_Shell_Room,
e_to In_Anteroom;
Object In_Bedquilt "Bedquilt"
with description
"Je bent in Bedquilt, een lange oost/west-gang met
overal gaten. Om hier op goed geluk verder op onderzoek uit te
gaan, kun je noord, zuid, omhoog of omlaag kiezen.",
e_to At_Complex_Junction,
w_to In_Swiss_Cheese_Room,
s_to In_Slab_Room,
u_to In_Dusty_Rock_Room,
n_to At_Junction_Of_Three,
d_to In_Anteroom,
before
[ destiny;
Go: if (noun==s_obj or d_obj && random(100)<=80) destiny=1;
if (noun==u_obj && random(100)<=80) destiny=1;
if (noun==u_obj && random(100)<=50)
destiny=In_Secret_N_S_Canyon_1;
if (noun==n_obj && random(100)<=60) destiny=1;
if (noun==n_obj && random(100)<=75)
destiny=In_Large_Low_Room;
if (destiny==1)
"Je bent door allerlei tunnels en gaten gekropen, en
uiteindelijk weer in de hoofdgang terechtgekomen.";
if (destiny==0) rfalse;
PlayerTo(destiny); rtrue;
];
Object In_Swiss_Cheese_Room "In de Zwitserse Kaaskamer"
with description
"Je bent in een ruimte waarvan de muren je sterk aan
Zwitserse gatenkaas doen denken. Direct zichtbare
uitgangen heb je in het westen, oosten, noordoosten, en
noordwesten. Een deel van de kamer wordt in beslag genomen
door een groot blok keihard gesteente.",
w_to At_East_End_Of_Twopit_Room,
s_to In_Tall_E_W_Canyon,
ne_to In_Bedquilt,
nw_to In_Oriental_Room,
e_to In_Soft_Room,
before
[; Go: if ((noun==s_obj && random(100) <= 80)
|| (noun==nw_obj && random(100) <= 50))
"Je bent door allerlei tunnels en gaten gekropen, en
uiteindelijk weer in de hoofdgang terechtgekomen.";
];
Object -> "blok keihard gesteente"
with description "Het is niets meer of minder dan een groot steenblok.",
name "blok" "keihard" "gesteente" "groot",
before [; LookUnder, Push, Pull, Take:
"Je maakt een grapje natuurlijk."; ],
has scenery neuter;
! ----------------------------------------------------------------------------
! The Twopit Room area
! ----------------------------------------------------------------------------
! Possible heights for the plant:
! ----------------------------------------------------------------------------
Constant TINY_P = 0;
Constant TALL_P = 1;
Constant HUGE_P = 2;
Object At_West_End_Of_Twopit_Room "Westeinde van de Tweeschachtenkamer"
with description
"Je bevindt je aan het westeinde van de
tweeschachtenkamer. Er zit een groot gat in de muur boven
de schacht aan deze kant van de kamer.",
e_to At_East_End_Of_Twopit_Room,
w_to In_Slab_Room,
d_to In_West_Pit,
u_to "Het gat zit te hoog voor je om erbij te kunnen.",
before
[; Enter: if (noun==HoleAbovePit_1)
"Het gat zit te hoog voor je om erbij te kunnen.";
];
Object PlantStickingUp "bonenstaak"
with found_in At_West_End_Of_Twopit_Room At_East_End_Of_Twopit_Room,
name "plant" "bonenstaak" "staak"
"boon" "reus" "reuze" "klein" "kleine" "murmelend"
"drie" "meter" "zestig" "3.60" "3.60m" "hoog" "hoge"
"groot" "grote" "bulderend" "enorm" "enorme",
describe
[; if (Plant.height == TALL_P)
"De top van een drie meter zestig lange bonenstaak
steekt omhoog uit de westelijke schacht.";
"Er groeit een enorme bonenstaak uit de westelijke
schacht omhoog, tot aan het gat.";
],
before
[; Examine: RunRoutines(self,describe); rtrue;
Climb: if (Plant.height==HUGE_P) <<Climb Plant>>;
],
has absent static male;
Object HoleAbovePit_1 "gat boven de schacht"
with description
"Het gat zit in de muur boven de schacht aan deze kant
van de kamer.",
name "gat" "groot" "grote" "boven" "schacht",
found_in In_West_Pit At_West_End_Of_Twopit_Room
has scenery neuter;
Object In_West_Pit "In de Westelijke Schacht"
with description
"je staat op de bodem van de westelijke schacht in de
tweeschachtenkamer. Er zit een groot gat in de muur, zo'n
zeven-en-een-halve meter boven je.",
before
[; Climb:
if (noun==Plant) rfalse;
if (Plant.height == TINY_P)
"er is hier niets om in te klimmen. Gebruik ~omhoog~ of
~naar buiten~ om de schacht te verlaten.";
],
u_to At_West_End_Of_Twopit_Room
has nodwarf;
Object -> Plant "plant"
with height TINY_P,
name "plant" "bonenstaak" "staak"
"boon" "reus" "reuze" "klein" "kleine" "murmelend"
"drie" "meter" "zestig" "3.60" "3.60m" "hoog" "hoge"
"groot" "grote" "bulderend" "enorm" "enorme",
describe
[; switch(self.height)
{ TINY_P:
"Er staat een klein plantje in de schacht dat
mompelt ~Water, water, ...~";
TALL_P:
"Er strekt zich een drie meter zestig lange
bonenstaak omhoog uit de schacht die dondert
~Water!! Water!!~";
HUGE_P:
"Er staat hier een gigantische bonenstaak, die zich
uitstrekt tot aan het gat in de muur.";
}
],
before
[;
Climb: switch(self.height)
{ TINY_P: "Het is maar een klein plantje!";
TALL_P:
print "Je bent de plant ingeklommen, zo de
schacht uit.^";
PlayerTo(At_West_End_Of_Twopit_Room); rtrue;
HUGE_P:
print "Je klautert de plant in en klimt snel
door het gat.^";
PlayerTo(In_Narrow_Corridor); rtrue;
}
Take: "De plant heeft uitzonderlijk diepe wortels en laat
zich niet zomaar lostrekken.";
Water: if (bottle notin player)
"Je hebt niets om de plant water mee te geven.";
switch(child(bottle))
{ nothing: "De fles is leeg.";
oil_in_the_bottle:
remove oil_in_the_bottle;
"De plant schudt verontwaardigd de olie van z'n
bladeren en vraagt: ~Water?~";
}
remove water_in_the_bottle;
switch((self.height)++)
{ TINY_P:
print "De plant doormaakt in slechts enkele
seconden een enorme groeispurt.^^";
give PlantStickingUp ~absent;
TALL_P:
print "De plant groeit explosief, de ruimte in
de schacht vrijwel geheel opvullend.^^";
HUGE_P:
print "Je hebt de plant teveel water gegeven!
Hij schrompelt ineen. Hij is, hij is...^^";
give PlantStickingUp absent; remove PlantStickingUp;
self.height = TINY_P;
}
<<Examine self>>;
Oil: <<Water self>>;
Examine: self.describe(); rtrue;
];
Object At_East_End_Of_Twopit_Room "Oosteinde van de Tweeschachtenkamer"
with description
"Je bevindt je aan het oostelijke einde van de
tweeschachtenkamer. De vloer is hier bezaaid met dunne
rotsplaten, waardoor het gemakkelijk wordt de schacht af
te dalen. Er is een pad dat om de twee schachten heenloopt
en de uitgangen aan de oost- en westkant van de kamer
verbindt. Er zijn overal gaten, maar het enige gat dat
groot genoeg is om er doorheen te passen zit in de muur
direct boven de westelijke schacht waar je er niet bij
kunt.",
e_to In_Swiss_Cheese_Room,
w_to At_West_End_Of_Twopit_Room,
d_to In_East_Pit;
Object -> "dunne rotsplaten"
with
description "Ze vormen haast een natuurlijke trap de schacht in.",
name "platen" "plaat" "rotsen" "trap" "treden" "dun" "rots"
"rotsen" "rotsplaat" "rotsplaten",
before
[; LookUnder, Push, Pull, Take:
"Je maakt een grapje natuurlijk. Je zou ze op moeten blazen.";
],
has scenery multitude pluralname male;
Object In_East_Pit "In de Oostelijke Schacht"
with description
"Je staat op de bodem van de oostelijke schacht in de
tweeschachtenkamer. Er licht een plasje olie in een hoek
van de schacht.",
u_to At_East_End_Of_Twopit_Room
has nodwarf;
Object -> Oil "plasje olie"
with name "plas" "plasje" "poel" "poeltje" "olie" "klein",
description "Ziet eruit als gewone olie.",
before
[; Drink: "Absoluut niet.";
Take: if (bottle notin player)
"Je hebt niets om de olie in te vervoeren.";
<<Fill bottle>>;
Insert: if (second == bottle) <<Fill bottle>>;
"Je hebt niets om de olie in te vervoeren.";
],
has scenery neuter;
Object "gat boven de schacht"
with description
"Het gat zit in de muur boven je.",
name "gat" "groot" "grote" "boven" "schacht",
found_in In_East_Pit At_East_End_Of_Twopit_Room
has scenery neuter;
Object In_Slab_Room "Plaatkamer"
with description
"Je bevindt je in een grote maar vrij lage ronde kamer
waarvan de vloer bestaat uit een immense plaat die ooit
van het plafond is komen vallen (vandaar de naam
plaatkamer). In het oosten en westen waren ooit grote
gangen, maar die zijn nu geheel opgevuld met
rotsblokken. Kleine, lage gangen leiden naar het noorden
en zuiden, en die in het zuiden buigt al snel naar het
westen om de rotsblokken heen.",
s_to At_West_End_Of_Twopit_Room,
u_to In_Secret_N_S_Canyon_0,
n_to In_Bedquilt;
Object -> "plaat"
with description "Die plaat vormt hier nu de vloer.",
name "plaat" "immens" "rotsplaat" "immense",
before [; LookUnder, Push, Pull, Take:
"Je maakt zeker een grapje."; ],
has scenery male;
Object -> "rotsblokken"
with description "het zijn doodgewone rotsblokken.",
name "blok" "blokken" "rots" "rotsen" "stenen" "steen"
"rotsblok" "rotsblokken",
has scenery multitude pluralname neuter;
! ----------------------------------------------------------------------------
! A small network of Canyons, mainly Secret
! ----------------------------------------------------------------------------
Object In_Secret_N_S_Canyon_0 "Geheim N/Z Ravijn"
with description
"Je bent in een geheim noord/zuid-ravijn, boven een
grote kamer.",
d_to In_Slab_Room,
s_to In_Secret_Canyon,
n_to In_Mirror_Canyon,
before
[; Go: if (noun==s_obj) canyon_from=self;
];
Object In_Secret_N_S_Canyon_1 "Geheim N/Z Ravijn"
with description
"Je bevindt je in een geheim noord/zuid-ravijn, boven
een redelijk grote doorgang.",
n_to At_Junction_Of_Three,
d_to In_Bedquilt,
s_to Atop_Stalactite;
Object At_Junction_Of_Three
"Kruispunt van drie geheime ravijnen."
with description
"Je bevindt je in een geheim ravijn bij een kruispint
van drie ravijnen, die respectievelijk naar het noorden,
zuiden en zuidoosten leiden. Het noordelijke ravijn is
ongeveer even groot als de andere twee samen.",
se_to In_Bedquilt,
s_to In_Secret_N_S_Canyon_1,
n_to At_Window_On_Pit_2;
Object In_Large_Low_Room "Grote Lage Kamer"
with description
"Je kruipt een grote, lage kamer in. Je kunt hier in
drie richtingen vandaan kruipen: noord, zuidoost en
zuidwest.",
sw_to In_Sloping_Corridor,
se_to In_Oriental_Room,
n_to Dead_End_Crawl;
Object Dead_End_Crawl "Doodlopende Kruipgang"
with description
"Dit is een doodlopende gang. Of moet ik zeggen een
doodkruipende gang?",
s_to In_Large_Low_Room,
out_to In_Large_Low_Room;
Object In_Secret_E_W_Canyon "Geheim O/W Ravijn Boven een Nauw Ravijn"
with description
"je bevindt je in een geheim ravijn dat hier van het
oosten naar het westen loopt. Hij kruist over een heel
nauw ravijn heen, zo'n vier-en-een-halve meter lager. Als
je hier naar beneden gaat, is de kans groot dat je niet
meer terug omhoog kunt.",
e_to In_Hall_Of_Mt_King,
w_to In_Secret_Canyon,
before
[; Go: if (noun==w_obj) canyon_from=self;
],
d_to In_N_S_Canyon;
Object In_N_S_Canyon "N/Z Ravijn"
with description
"Je bevindt je op een breed punt in een overigens
smal noord/zuid-ravijn.",
s_to Canyon_Dead_End,
n_to In_Tall_E_W_Canyon;
Object Canyon_Dead_End "Doodlopend Ravijn"
with description
"Het ravijn wordt hier te nauw om verder zuidwaarts te gaan.",
n_to In_N_S_Canyon;
Object In_Tall_E_W_Canyon "In een Hoog O/W Ravijn"
with description
"Je bevindt je in een hoog oost/west-ravijn. Een lage,
nauwe kruipruimte gaat bijna een meter naar het noorden en
lijkt zich dan te verbreden.",
e_to In_N_S_Canyon,
w_to Dead_End_8,
n_to In_Swiss_Cheese_Room;
Object Atop_Stalactite "Bovenop een Stalactiet"
with description
"Een grote stalactiet hangt hier van het plafond naar
beneden, bijna tot op de vloer. Je kunt erlangs naar
beneden klimmen, en het laatste stukje springen, maar je
zou zeker niet meer bij de stalactiet kunnen om er weer
langs naar boven te klimmen.",
n_to In_Secret_N_S_Canyon_1,
d_to
[; if (random(100) <= 40) return Alike_Maze_6;
if (random(100) <= 50) return Alike_Maze_9;
return Alike_Maze_4;
],
before
[; Jump, Climb: <<Go d_obj>>;
];
Object -> "stalactiet"
with description
"Je kunt er waarschijnlijk wel langs naar beneden
klimmen, maar terug omhoog kun je wel vergeten.",
name "stalactiet" "stalagmiet" "stalagtiet" "groot" "grote",
before
[; LookUnder, Push, Take: "Doe toch niet zo raar.";
],
has scenery male;
! ----------------------------------------------------------------------------
! Here be dragons
! ----------------------------------------------------------------------------
Object In_Secret_Canyon "Geheim Ravijn"
with description
"Je bevindt je in een geheim ravijn met uitgangen in
het noorden en oosten.",
e_to
[; if (canyon_from == In_Secret_E_W_Canyon) return canyon_from;
if (Dragon in location)
"De draak ziet er nogal gemeen uit. Je kunt beter niet
proberen langs haar te glippen.";
return In_Secret_E_W_Canyon;
],
n_to
[; if (canyon_from == In_Secret_N_S_Canyon_0) return canyon_from;
if (Dragon in location)
"De draak ziet er nogal gemeen uit. Je kunt beter niet
proberen langs haar te glippen.";
return In_Secret_N_S_Canyon_0;
],
out_to
[; return canyon_from;
],
before
[; if (action==##Yes && Dragon has general)
{ remove Dragon; move DragonCorpse to location;
give Dragon ~general;
"Gefeliciteerd! Je hebt zojuist met je blote handen een
draak verslagen! (ongelofelijk, is het niet?)";
}
if (action==##No && Dragon has general)
{ give Dragon ~general;
"Ik dacht al van niet.";
}
give Dragon ~general;
];
Object -> Dragon "draak"
with description "Daar zou ik me maar verre van houden, als ik jou was.",
name "draak" "monster" "beest" "hagedis"
"groot" "groen" "fel" "schubbig" "enorm" "agressief"
"grote" "groene" "felle" "schubbige" "enorme" "agressieve",
initial "Een enorme, agressieve, groene draak blokkeert de weg!",
life
[; Attack: give Dragon general; "Met wat? Je blote handen?";
Give: "De draak is onvermurwbaar.";
ThrowAt: if (noun~=axe)
"Met je blote handen zou het waarschijnlijk
nog beter gaan dan daarmee!";
move axe to location;
"De bijl stuitert zonder ook maar enige schade te
doen van de schubben van het beest weg.";
],
has animate female;
Treasure -> "Perzisch tapijt"
with name "tapijt" "perzisch" "kleed" "mooi" "mooiste" "draak",
depositpoints 14,
before
[; Take: if (Dragon in location)
"Je zult er eerst voor moeten zorgen dat die draak weggaat!";
],
describe
[; if (Dragon in location)
"De draak ligt languit op het Perzische tapijt!";
"Het Perzische tapijt ligt hier netjes op de vloer.";
],
has neuter;
Object DragonCorpse "lijk van de draak"
with initial
"Het lijk van een enorme groene draak ligt hier, een
beetje aan de kant",
name "draak" "kijk" "dood" "groen" "draak" "lichaam",
before
[; Attack: "Je hebt al genoeg schade gedaan!";
],
has static female;
! ----------------------------------------------------------------------------
! And more of the Alike Maze
! ----------------------------------------------------------------------------
DeadEndRoom Dead_End_8
with description "Het ravijn eindigt in een enorme massa rotsblokken
-- doodlopend stuk.",
s_to In_Tall_E_W_Canyon,
out_to In_Tall_E_W_Canyon;
DeadEndRoom Dead_End_9
with w_to Alike_Maze_11,
out_to Alike_Maze_11;
DeadEndRoom Dead_End_10
with
s_to Alike_Maze_3,
out_to Alike_Maze_3;
MazeRoom Alike_Maze_12
with
s_to At_Brink_Of_Pit,
e_to Alike_Maze_13,
w_to Dead_End_11;
MazeRoom Alike_Maze_13
with
n_to At_Brink_Of_Pit,
w_to Alike_Maze_12,
nw_to Dead_End_13;
DeadEndRoom Dead_End_11
with
e_to Alike_Maze_12,
out_to Alike_Maze_12;
DeadEndRoom Dead_End_12
with
u_to Alike_Maze_8,
out_to Alike_Maze_8;
MazeRoom Alike_Maze_14
with
u_to Alike_Maze_4,
d_to Alike_Maze_4;
DeadEndRoom Dead_End_13
with se_to Alike_Maze_13,
out_to Alike_Maze_13,
description "Dit is het doodlopende stuk waar de piraat woont.",
initial
[;
StopDaemon(Pirate);
if (treasure_chest in self && treasure_chest hasnt moved)
"Je hebt de schatkist van de piraat gevonden!";
],
has nodwarf;
Treasure -> treasure_chest "schatkist"
with depositpoints 12,
description "Dit is de schatkist van de piraat, gevuld met
onvoorstelbare rijkdommen!",
initial "De schatkist van de piraat staat hier!",
name "kist" "koffer" "schat" "rijkdommen" "piraat" "rijkdom"
"schatkist";
! ----------------------------------------------------------------------------
! Above the beanstalk: the Giant Room and the Waterfall
! ----------------------------------------------------------------------------
Object In_Narrow_Corridor "In een Nauwe Gang"
with description
"Je bevindt je in een lange, nauwe gang die zich tot
buiten je gezichtsveld uitstrekt naar het westen. Aan de
oostkant is een gat waardoorheen je een overvloed aan
bladeren ontwaart.",
d_to In_West_Pit,
w_to In_Giant_Room,
e_to In_West_Pit,
before
[; Jump: deadflag=1; "Je valt en breekt je nek!";
];
Object -> "bladeren"
with description
"Zo te zien zitten de bladeren vast aan de bonenstaak
waar je ingeklommen bent om hier te komen.", article "een hoop",
name "blad" "bladeren" "plant" "boom" "staak" "bonenstaak"
"overvloed" "blaadjes",
before
[; Count: "69.105."; ! (I thank Rene Schnoor for counting them)
],
has scenery;
Object At_Steep_Incline "Steile Helling boven Grote Kamer"
with description
"Je bevindt je op de top van een steile helling boven
een grote kamer. Je kunt hier naar beneden klimmen, maar
je zou niet meer in staat zijn terug hierheen omhoog te
klimmen. Een gang leidt terug naar het noorden.",
n_to In_Cavern_With_Waterfall,
d_to In_Large_Low_Room;
Object In_Giant_Room "Reuzekamer"
with description
"Je bevindt je in de reuzekamer. Het plafond hier is
te hoog om door je lamp beschenen te worden. Spelonken
leiden oost, noord en zuid. Op de westmuur staat een
inscriptie gekrabbeld: ~Fee fie foe foo~ [sic].",
s_to In_Narrow_Corridor,
e_to At_Recent_Cave_In,
n_to In_Immense_N_S_Passage;
Object -> "gekrabbelde inscriptie"
with description "Er staat: ~Fee fie foe foo [sic].~",
name "inscriptie" "boodschap" "krabbels" "gekrabbeld"
"gekrabbelde" "bericht",
has scenery male;
Treasure -> golden_eggs "nest met gouden eieren"
with depositpoints 14,
description "Het nest is gevuld met prachtige gouden eieren!",
initial "Er ligt hier een nest, vol gouden eieren!",
name "eieren" "ei" "nest" "gouden" "goud" "prachtig" "prachtige",
has multitude pluralname neuter;
Object At_Recent_Cave_In "Recente Instorting"
with description
"deze gang is geblokkeerd door een recente instorting.",
s_to In_Giant_Room;
Object In_Immense_N_S_Passage "Immense N/Z Passage"
with description "Je staat aan een uiteinde van een immense
noord/zuid-passage.",
s_to In_Giant_Room,
n_to
[; if (RustyDoor has locked) <<Open RustyDoor>>;
if (RustyDoor hasnt open)
{ give RustyDoor open; print "(eerst de deur open wrikkend)^"; }
return RustyDoor;
];
Object -> RustyDoor "roestige deur"
with description "Het is gewoon een grote ijzeren deur.",
name "deur" "scharnier" "scharnieren" "massief" "roestig"
"roestige" "ijzer" "ijzeren",
when_closed "De doorgang naar het noorden wordt geblokkeerd
door een massieve, roestige, ijzeren deur.",
when_open "De doorgang naar het noorden voert langs een
massieve, roestige, ijzeren deur.",
door_to In_Cavern_With_Waterfall,
door_dir n_to,
before
[; Open: if (RustyDoor has locked)
"De scharnieren zijn vreselijk verroest en de deur
wil niet open.";
Close: if (RustyDoor has open)
"Met alle moeite die het gekost heeft om die deur
open te krijgen, lijkt het me beter hem niet meer
dicht te doen.";
"Geen probleem -- hij is al dicht.";
Oil: if (bottle in player && oil_in_the_bottle in bottle)
{ remove oil_in_the_bottle;
give RustyDoor ~locked openable;
"De olie heeft de scharnieren weer een klein
beetje soepeler gaat, zodat de deur nu bewogen
kan worden, alhoewel het je nog steeds wel
moeite zal kosten.";
}
else
"Je hebt niets om mee te oli@:en.";
Water: if (bottle in player && water_in_the_bottle in bottle)
{ remove water_in_the_bottle; give RustyDoor locked ~open;
"De scharnieren zijn nu flink doorgeroest en
laten zich met geen mogelijkheid meer
bewegen.";
}
else
"Je hebt niets om mee te bewateren.";
],
after
[; Open: "Steunend en kreunend zwaait de deur langzaam open,
een regen van roestdeeltjes verspreidend.";
],
has static door locked;
Object In_Cavern_With_Waterfall "In een Spelonk met een Waterval"
with description
"Je wandelt een schitterende spelonk binnen met een
ruisende stroom, die zich als een spetterende waterval
naar beneden stort een razende draaikolk in, die door een
gat de grond in verdwijnt. Gangen leiden naar het zuiden
en westen.",
s_to In_Immense_N_S_Passage,
w_to At_Steep_Incline;
Object -> "waterval"
with description "Daar zou ik me liever niet in een regenton vanaf
laten vallen!",
name "waterval" "draaikolk" "spetterend" "spetterende"
"kolkend" "kolkende" "draaiend" "draaiende" "razend"
"razende",
has scenery male;
Treasure -> trident "drietand ingelegd met juwelen"
with description "De drietand is overdekt met fabelachtig mooie juwelen!",
initial "Er ligt hier een met juwelen ingelegde drietand!",
name "drietand" "juwelen" "ingelegd" "ingelegde" "fabelachtig"
"fabelachtige" "mooi" "mooie",
depositpoints 14
has male;
! ----------------------------------------------------------------------------
! The caves around Bedquilt
! ----------------------------------------------------------------------------
Object In_Soft_Room "In de Zachte Kamer"
with description
"Je bent in de zachte kamer. De wanden zijn bedekt met
zware gordijnen, en op de vloer ligt een dik, hoogpolig
tapijt. Het plafond is helemaal begroeid met zacht mos.",
w_to In_Swiss_Cheese_Room;
Object -> "tapijt"
with description "Het tapijt is gemaakt van een soort pluche.",
name "tapijt" "kleed" "pluche" "zwaar" "dik" "zacht"
"hoogpolig" "zware" "dikke" "zachte" "hoogpolige",
has scenery neuter;
Object -> "gordijnen"
with description "Zo te horen absorberen ze ieder geluid.",
name "gordijn" "gordijnen" "zwaar" "zware" "dik" "dikke",
before
[; Take: "Ga nou niet meteen de hele kamer overhoop halen!";
LookUnder, Search:
"Je vindt niets spannends achter de gordijnen.";
],
has scenery multitude pluralname neuter;
Object -> "mos"
with description "Ziet eruit als typisch, alledaags mos.",
name "mos" "typisch" "alledaags" "zacht",
before
[; Take: "Het verpulvert helemaal in je handen.";
],
has scenery edible neuter;
Object -> velvet_pillow "fluwelen kussentje"
with description "Het is slechts een klein fluwelen kussentje.",
initial "Een klein fluwelen kussentje ligt op de vloer.",
name "kussen" "kussentje" "fluweel" "fluwelen" "klein",
has neuter;
Object In_Oriental_Room "Orientaalse Kamer"
with description
"Dit is de Orientaalse kamer. Antieke oosterse
grotschilderingen bedekken de muren. Een zacht glooiende
gang leidt omhoog naar het noorden, een andere gang leidt
naar het zuidoosten, en een kruipgang waar je nog net op
handen en knie#:en doorheen kunt kruipen leidt naar het
westen.",
w_to In_Large_Low_Room,
se_to In_Swiss_Cheese_Room,
u_to In_Misty_Cavern,
n_to In_Misty_Cavern;
Object -> "antieke oosterse schilderingen"
with description "Zo te zien zijn het afbeeldingen van mensen en dieren.",
name "schilderijen" "schilderingen" "tekeningen" "kunst"
"grottekeningen" "grot" "antiek" "oosters" "orientaals"
"antieke" "oosterse" "orientaalse" "afbeelding"
"afbeeldingen" "mensen" "dieren",
has scenery multitude pluralname neuter;
Treasure -> ming_vase "ming vaas"
with description "Dat is een kwetsbare, kostbare, ming vaas!",
name "vaas" "ming" "kwetsbaar" "kwetsbare" "kostbaar" "kostbare",
depositpoints 14,
after
[; Drop: if (velvet_pillow in location)
{ print "(zachtjes op het fluwelen kussen terecht komend)^";
rfalse;
}
remove ming_vase; move shards to location;
"De ming vaas valt op de grond en barst met een zacht
knappend geluid in scherven.";
],
before
[; Attack: remove ming_vase; move shards to location;
"Je hebt de vaas opgepakt en heel zachtjes en subtiel
op de grond kapot gesmeten.";
Receive: "De vaas is te fragiel om iets te kunnen bevatten.";
];
Object shards "wat waardeloze scherven porselein"
with initial "De vloer is bezaaid met waardeloze scherven porselein.",
description "Ze lijken de overblijfselen te zijn van wat eens
een prachtige vaas geweest moet zijn. Ik vermoed dat een
of andere kluns hem uit z'n handen heeft laten vallen.",
name "porselein" "scherven" "overblijfselen" "vaas"
"waardeloos" "waardeloze" "scherf" "aardewerk",
has multitude pluralname male;
Object In_Misty_Cavern "Mistige Spelonk"
with description
"Je volgt een breed pad rond de buitenste rand van een
grote spelonk. Ver onder je, door een dichte witte mist
heen, bereikt je een kabbelend geluid. De mist rijst door
een breuk in het plafond verder omhoog. Paden leiden naar
het zuiden en westen.",
s_to In_Oriental_Room,
w_to In_Alcove;
Object -> "breuk"
with description "Je kunt niet echt dichtbij genoeg komen voor een
nauwkeurig onderzoek.",
name "breuk" "plafond"
has scenery male;
! ----------------------------------------------------------------------------
! Plovers and pyramids
! ----------------------------------------------------------------------------
Object In_Alcove "Alcoof"
with description
"Je staat in een alkoof. Een klein paadje naar het
noordwesten lijkt al snel breder te worden. Een
bijzonder krappe tunnel leidt oostwaarts. Het ziet eruit of
je je er met veel moeite misschien net doorheen zou kunnen
persen. Aan de andere kant zie je een luguber licht.",
nw_to In_Misty_Cavern,
e_to
[ j; j=children(player);
if (j==0 || (j==1 && egg_sized_emerald in player))
return In_Plover_Room;
"Iets dat je bij je hebt past niet door de tunnel met je
mee. Je kunt het beste je inventaris eens goed bekijken, en
iets achterlaten.";
];
Object In_Plover_Room "Kievitskamer"
with description
"Je bevindt je in een klein vertrek waarin een luguber
groen licht schijnt. Een bijzonder nauwe tunnel leidt naar
het westen. Een donkere gang naar het noordoosten.",
ne_to In_Dark_Room,
w_to
[ j; j=children(player);
if (j==0 || (j==1 && egg_sized_emerald in player))
return In_Alcove;
"Iets dat je bij je hebt past niet door de tunnel met je
mee. Je kunt het beste je inventaris eens goed bekijken, en
iets achterlaten.";
],
before
[; Plover: if (egg_sized_emerald in player)
{ move egg_sized_emerald to In_Plover_Room;
score = score - 5;
}
PlayerTo(At_Y2); rtrue;
Go: if (noun==out_obj) <<Go w_obj>>;
],
has light;
Treasure -> egg_sized_emerald "smaragd zo groot als een kievitsei"
with depositpoints 14, article "een",
description "Trouwens, kievitseieren zijn behoorlijk groot.",
initial "Er ligt hier een smaragd zo groot als een kievitsei!",
name "smaragd" "groot" "grote" "ei" "kievit" "kievitsei";
Object In_Dark_Room "De donkere kamer"
with description
"Je bevindt je in de donkere kamer. Een gang die naar
het zuiden leidt is de enige uitgang.",
s_to In_Plover_Room
has nodwarf;
Object -> "stenen tablet"
with initial
"Op een massieve stenen tablet dat in de muur is ingelegd
lees je: ~Gefeliciteerd! Je hebt licht gebracht in de
donkere kamer!~",
name "tablet" "massief" "stenen" "steen"
has static neuter;
Treasure -> "platina piramide"
with initial "Je ziet hier een platina piramide, met zijden van 20
centimeter!",
depositpoints 14,
description "De platina piramide heeft zijden van 20 centimeter
elk!",
name "platina" "piramide" "pyramide";
! ----------------------------------------------------------------------------
! North of the complex junction: a long up-down corridor
! ----------------------------------------------------------------------------
Object In_Arched_Hall "Gewelfde Zaal"
with description
"Je bent in een gewelfde zaal. Een gang van koraal
leidde ooit naar het oosten, maar is nu geblokkeerd door
puin. Het ruikt hier naar de zee.",
d_to In_Shell_Room;
Object In_Shell_Room "Schelpenkamer"
with description
"Je bevindt je in een grote kamer die in het stenen
sediment is uitgehakt. De vloer en muren zijn bezaaid met
stukjes schelp die in de steen liggen ingebed. Een zacht
glooiende gang leidt omlaag en een wat stijlere leidt
omhoog. Een lage gang waar je op handen en knie@:en net
doorheen zou kunnen kruipen bereikt deze kamer vanuit het
zuiden.",
u_to In_Arched_Hall,
d_to In_Ragged_Corridor,
s_to
[; if (giant_bivalve in player)
{ if (giant_bivalve has open)
"Je kunt die anderhalve meter grote oester niet door
dat kleine gangetje krijgen!";
else
"Je kunt die anderhalve meter grote mossel niet door
dat kleine gangetje krijgen!";
}
return At_Complex_Junction;
];
Object -> giant_bivalve "reuzemossel"
with name "reus" "reuze" "reusachtig" "reusachtige""mossel" "oester"
"tweekleppige" "bivalv" "bivalve" "reuzemossel"
"reuzeoester" "reuze-mossel" "reuze-oester",
describe
[; if (self has general)
"Je ziet hier een enorme oester met z'n schelp stevig dicht.";
"Je ziet hier een enorme mossel met z'n schelp stevig dicht.";
],
before
[; Examine: if (location==At_Ne_End or At_Sw_End)
"Interessant. Het lijkt wel alsof er iets geschreven
staat op de onderkant van de oester:^^
~Er is iets vreemds met deze plek, waardoor een van
de vervloekingen die ik altijd al gekend heb nu een
ander effect heeft.~";
"Een reusachtige.";
Open:
"Je bent niet sterk genoeg om de mossel met je blote
handen open te breken.";
Unlock:
if (second~=trident)
print_ret (The) second,
" is niet sterk genoeg om de mossel open te breken.";
if (self has general)
"De oester gaat krakend en knarsend open, maar er
zit niets anders dan oester in. Hij klapt meteen
weer dicht.";
give self general; move pearl to In_A_Cul_De_Sac;
"Er valt een glinsterende parel uit de mossel en rolt
weg. Goeie genade, ik denk dat dit eigenlijk toch een
oester is. (Ik ben nooit echt goed geweest in het
determineren van tweekleppigen>) Wat het ook is, het
heeft zichzelf nu weer dichtgeklapt.";
Attack:
"De schelp is erg sterk en ondoordringbaar ondanks je aanval.";
],
has male;
Treasure pearl "glinsterende parel"
with description "Hij is ongelofelijk groot!",
initial "Langs de kant ligt glinsterende parel!",
name "parel" "glinsterend" "ongelofelijk" "ongelooflijk"
"groot" "grote",
depositpoints 14,
has male;
Object In_Ragged_Corridor "Onregelmatige Galerij"
with description
"Je loopt door een lange, hellende galerij met
scherpe, onregelmatige muren.",
u_to In_Shell_Room,
d_to In_A_Cul_De_Sac;
Object In_A_Cul_De_Sac "Doodlopende Gang"
with description
"Je bent een doodlopende gang van bijna twee en een
halve meter breed ingewandeld.",
u_to In_Ragged_Corridor,
out_to In_Ragged_Corridor;
! ----------------------------------------------------------------------------
! Witt's End: Cave under construction
! ----------------------------------------------------------------------------
Object In_Anteroom "In een Voorkamer"
with description
"Je staat in een voorkamer die uitkomt op een grote
gang naar het oosten. Kleine gangetjes leiden naar het
westen en omhoog. De sporen van recent graafwerk zijn
overduidelijk aanwezig.",
u_to At_Complex_Junction,
w_to In_Bedquilt,
e_to At_Witts_End;
Object -> "sign"
with initial
"Een bordje in de lucht zegt ~Werk in uitvoering
voorbij dit punt. Verdergaan op eigen risico. [Raadd
Bouwbedrijf]~",
name "bord" "raadd" "aannemer" "bedrijf" "bouwbedrijf" "bouw" "bordje",
before [; Take: "Het hangt te ver boven je hoofd."; ],
has static;
Object -> "recente nummers van het ~Speleologisch Dagblad~"
with name "recent" "nummer" "nummers" "tijdschrift" "speleologisch"
"dagblad" "krant" "dagbladen" "kranten",
initial
"Er ligt een aantal recente nummers van het ~Speleologisch
Dagblad~ op de grond.",
description "Ik ben bang dat de tijdschriften in het Dwergs
geschreven zijn.",
article "een paar",
after
[; Take: if (location==At_Witts_End) score--;
Drop: if (location==At_Witts_End)
{ score++;
"Je bent echt ten einde raad.";
}
],
has multitude pluralname male;
Object At_Witts_End "Ten Einde Raadd"
with description
"Je bent ten einde Raadd. In *alle* richtingen leiden
gangen.",
w_to "Je bent door allerlei kieren en gaten gekropen, en bent
uiteindelijk op een recente instorting gestuit. Je bent nu
terug in de hoofdgang.",
before
[; Go: if (noun~=w_obj && random(100)<=95)
"Je bent door allerlei kieren en gaten gekropen en
uiteindelijk weer in de hoofdgang beland.";
PlayerTo(In_Anteroom); rtrue;
];
! ----------------------------------------------------------------------------
! North of the secret canyons, on the other side of the pit
! ----------------------------------------------------------------------------
Object In_Mirror_Canyon "In het Spiegelravijn"
with description
"Je bevindt je in een noord/zuid lopend ravijn van
zo'n 7,5 meter breed ravijn. De vloer is bedekt met een
witte mist die ergens in het noorden komt
binnensijpelen. De wanden rijzen meer dan dertig meter
omhoog. Van een punt te hoog boven je om het te kunnen
zien hangt een enorme tweezijdige spiegel naar beneden,
parallel aan en halverwege tussen de wanden van het
ravijn.^^
In beide wanden kun je een klein raam onderscheiden, zo'n
15 meter boven je.",
s_to In_Secret_N_S_Canyon_0,
n_to At_Reservoir;
Object -> "hangende spiegel"
with description
"De spiegel is duidelijk bedoeld om door dwergen
gebruikt te worden, want die zijn, zoals je weet,
buitengewoon ijdel.",
name "spiegel" "enorm" "enorme" "hangend" "hangende"
"dwergen" "tweezijdig" "twee" "zijdig" "tweezijdige",
initial "De spiegel is duidelijk bedoeld om door dwergen
gebruikt te worden, want die zijn, zoals je weet,
buitengewoon ijdel.",
before [; Attack, Remove: "Je kunt er hiervandaan niet bij."; ],
has static male;
Object At_Window_On_Pit_2 "Bij een Venster dat Uitziet op een Schacht"
with description
"Je staat bij een laag venster dat uitzicht biedt op
een gigantische schacht. De vloer is juist zichtbaar, zo'n
vijftien meter dieper. Flarden witte mist bedekken de
bodem van de schacht, en worden naar links toe
dikker. Sporen in het stof bij het venster getuigen van
het feit dat hier onlangs nog iemand geweest is. Recht
tegenover je aan de andere kant van de schacht is een
soortgelijk venster dat uitzicht biedt op een verlichte
kamer. Je ontwaart daar een schimmig figuur dat naar je
terugstaart.",
cant_go "De enige mogelijkheid is terug naar het westen, naar
de kruising.",
w_to At_Junction_Of_Three,
before
[; Jump: deadflag=1; "Je springt en breekt je nek!";
WaveHands: "De schimmige figuur zwaait terug!";
];
Object At_Reservoir "Bij het reservoir"
with description
"Je staat aan de rand van een enorm ondergronds
reservoir. Een ondoorzichtige wolk witte mist vult de
kamer, en stijgt snel omhoog. Het meer wordt gevoed door
een beek, die vanuit een gat in de muur zo'n drie meter
boven je hoofd met donderend geraas in het water stort,
ergens in de mist. De enige gang hiervandaan is degene
terug naar het zuiden.",
s_to In_Mirror_Canyon,
out_to In_Mirror_Canyon,
before
[; Swim: "Het water is ijskoud, en je zou snel bevriezen.";
];
! ----------------------------------------------------------------------------
! The Chasm and the Troll Bridge
! ----------------------------------------------------------------------------
Object In_Sloping_Corridor "Hellende Gang"
with description
"Je bevindt je in een lange bochtige gang. Je
kunt naar geen van beide kanten ver kijken vanwege de
hellingshoek.",
d_to In_Large_Low_Room,
u_to On_Sw_Side_Of_Chasm,
cant_go "De gang helt sterk naar boven en beneden.";
Object On_Sw_Side_Of_Chasm "Aan de ZW-kant van de Afgrond"
with description
"Je staat aan @'e@'en kant van een grote, diepe
afgrond. Een zware witte mist die van beneden op komt
stijgen ontneemt je elk zicht op de overkant. Een
zuidwestelijk pad leidt van de afgrond vandaan een
bochtige galerij in.",
ne_to CrossRicketyBridge,
sw_to In_Sloping_Corridor,
d_to In_Sloping_Corridor,
cant_go "Het pad slingert naar het zuidwesten.",
before
[; Jump: if (RicketyBridge in self)
"Met alle respect, ik zou willen voorstellen de
brug te nemen in plaats van te springen.";
deadflag=1; "Je hebt het niet gehaald.";
];
[ CrossRicketyBridge;
if (Troll has general || Troll in nothing)
{
give Troll ~general;
if (Bear.following_you)
{ remove Bear; remove self; give Wreckage ~absent;
remove RicketyBridge; give RicketyBridge absent; StopDaemon(Bear);
deadflag=1;
"Juist als je de andere kant bereikt, buigt de brug door onder
het gewicht van de beer, die jou nog steeds volgde. Je
krabbelt wanhopig aan de rotswand voor steun, maar als de
brug instort, struikel je achteruit en stort je in het
ravijn.";
}
return RicketyBridge;
}
if (Troll in location)
"De trol weigert je te laten oversteken.";
move Troll to location;
"De trol stapt onder de brug vandaan en blokkeert je weg.";
];
Object -> RicketyBridge "krakkemikkige brug"
with description "Ziet eruit als een gewone brug, maar wel een
heel krakkemikkige.",
describe
[; print "Een krakkemikkige brug strekt zich uit over de
afgrond, waar hij verdwijnt in de mist.^^
Een bordje op de brug zegt:
~Stop! Betaal de trol!~^";
if (Troll notin location)
"De trol is nergens te zien.";
rtrue;
],
name "brug" "krakkemikkig" "krakkemikkige" "onstabiel"
"gammel" "gammele" "bruggetje" "onstabiele" "instabiele"
"wankel" "wankele" "touw" "touwbrug",
door_dir
[; if (location==On_Sw_Side_Of_Chasm) return ne_to; return sw_to;
],
door_to
[; if (location==On_Sw_Side_Of_Chasm) return On_Ne_Side_Of_Chasm;
return On_Sw_Side_Of_Chasm;
],
found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm
has static door open male;
Object -> -> Troll "stoere trol"
with description
"Trollen zijn nauw verwant aan rotsblokken en hebben
een huid zo sterk als die van een rhinoceros.",
initial "Een stoere trol staat bij de brug en eist dat je hem
een schat toewerpt voordat je over mag steken.",
name "trol" "stoer" "stoere",
life
[; Attack: "De trol lacht zich rot om je zielige poging hem te
verwonden.";
ThrowAt, Give:
if (noun ofclass Treasure)
{ remove noun;
move Troll to RicketyBridge;
give Troll general; score=score-5;
"De trol vangt je schat en snelt weg, buiten zicht.";
}
if (noun==tasty_food)
"Vraatzucht is niet @'e@'en van de ondeugden van de
trol. Gierigheid, daarentegen, wel.";
"De trol vangt ", (the) noun,
" handig op, kijkt er onderzoekend naar, en gooit ",
(HijofHet) noun, " terug, terwijl hij zegt:
~Goed vakmanschap, maar niet waardevol genoeg.~";
Order: "Je hoopt op een gelukje?";
Answer, Ask: "Trollen hebben geen ontzettend goede
communicatieve vaardigheden.";
],
has animate;
Object Wreckage "brokstukken van de brug"
with initial "Je kunt de brokstukken van de trollenbrug (en een dode
beer) zien liggen op de bodem van de afgrond.",
name "brokstukken" "brokstuk" "brug" "dood" "dode" "beer",
before
[; "De brokstukken liggen te diep.";
],
found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm
has static absent multitude pluralname neuter;
Object On_Ne_Side_Of_Chasm "Aan de NO-kant van de Afgrond"
with description
"Je bent aan de overkant van de afgrond. Een
noordoostelijk pad leidt weg van deze kant van de
afgrond.",
sw_to CrossRicketyBridge,
ne_to In_Corridor,
before
[; Jump: if (RicketyBridge in self)
"Met alle respect, ik zou willen voorstellen de
brug te nemen in plaats van te springen.";
deadflag=1; "Je hebt het niet gehaald.";
],
has nodwarf;
Object In_Corridor "In een Galerij"
with description
"Je loopt door een lange oost/west-galerij. In de
verte hoor je een zacht rommelend geluid.",
w_to On_Ne_Side_Of_Chasm,
e_to At_Fork_In_Path
has nodwarf;
! ----------------------------------------------------------------------------
! The Volcano
! ----------------------------------------------------------------------------
Object At_Fork_In_Path "Bij een Vertakking in de Weg"
with description
"Het pad vertakking hier. De linker tak leidt naar het
noordoosten. Het doffe gerommel lijkt die kant op luider
te worden. De rechter tak leidt naar het zuidoosten, ene
zacht glooiende helling af. De hoofdtak komt uithet
westen.",
w_to In_Corridor,
ne_to At_Junction_With_Warm_Walls,
se_to In_Limestone_Passage,
d_to In_Limestone_Passage
has nodwarf;
Object At_Junction_With_Warm_Walls "Bij een Driesprong met Warme Muren"
with description
"De muren zijn hier behoorlijk warm. Vanuit het
noorden hoor je een een regelmatig gedreun, zo luid dat de
hele grot lijkt te schudden op z'n grondvesten. Een ander
pad leidt naar het zuiden, en een lage kruipgang naar het
oosten.",
s_to At_Fork_In_Path,
n_to At_Breath_Taking_View,
e_to In_Chamber_Of_Boulders
has nodwarf;
Object At_Breath_Taking_View "Een Adembenemend Uitzicht"
with description
"Je bevindt je op een rand met een adembenemend
uitzicht. Ver beneden je zie je een actieve vulkaan,
waaruit dikke klodders gesmolten lava opwellen, om
vervolgens weer de diepten in te storten. De gloeiende
rots vult de spelonk tot in de verste uithoeken met een
bloedrode gloed en verleent alles een spookachtige,
macabere uitstraling. De lucht is vol flakkerende vonken
van as en een zwaar aroma van zwavel. De muren zijn heet
als je ze aanraakt, en het gebulder van de vulkaan
verdrinkt alle andere geluiden. Ingebed in het getande
gewelf ver boven je ontwaar je talloze gedraaide
formaties, samengesteld uit puur wit albast, die het
nevelige licht verstrooien tot sinistere
spookverschijningen op de muren. Aan @'e@'en kant is een
diepe kloof, gevuld met een bizarre chaos van gefolterde
rotsen, die wel door de duivel zelf gecre@:eerd lijken.
Een immense rivier van vuur stroomt vanuit de diepten
van de vulkaan met donderend geraas neer, brandt zich
een weg door de kloof en stort in een bodemloze put
ergens ver weg aan je linkerhand. Rechts van je spuit
een enorme geiser van vernietigende stoom continu de
lucht in vanuit een schraal eilandje middenin het
onheilspellend bubbelende zwavelmeer. De wand helemaal
rechts staat in vuur en vlam met een gloed van zichzelf,
hetgeen nog een extra duivelse pracht verleent aan de
van zichzelf al helse aanblik. Een duistere,
onheilspellende doorgang leidt naar het zuiden.",
s_to At_Junction_With_Warm_Walls,
out_to At_Junction_With_Warm_Walls,
d_to "Doe niet zo mal!",
before [; Jump: <<Go d_obj>>; ],
has light;
Object -> "actieve vulkaan"
with description
"Dikke klodders gesmolten lava wellen op uit de vulkaan, om
vervolgens weer de diepten in te storten. De gloeiende
rots vult de spelonk tot in de verste uithoeken met een
bloedrode gloed en verleent alles een spookachtige,
macabere uitstraling.",
name "vulkaan" "rots" "actief" "bloed" "rood" "bloedrood"
"rode" "bloedrode" "actieve" "gloed" "spookachtig"
"spookachtige" "macaber" "macabere"
has scenery male;
Object -> "vonken van as"
with description "De vonken zijn te ver bij je vandaan om ze goed te
kunnen bekijken.",
name "vonk" "vonken" "as" "lucht" "flakkerend" "flakkerende"
"flakkerend" "flakkerende",
has scenery multitude pluralname male;
Object -> "getande gewelf"
with description
"Ingebed in het getande gewelf ver boven je ontwaar
je talloze gedraaide formaties, samengesteld uit puur
wit albast, die het nevelige licht verstrooien tot
sinistere spookverschijningen op de muren",
name "gewelf" "dak" "plafond" "formaties" "licht"
"verschijning" "verschijningen" "spookverschijning"
"spookverschijningen" "getand" "getande" "gedraaid"
"gedraaide" "nevelig" "nevelige" "sinister"
has scenery neuter;
Object -> "diepe kloof"
with description
"De kloof is gevuld met een bizarre chaos van
gefolterde rotsen, die wel door de duivel zelf
gecre@:eerd lijken.",
name "kloof" "chaos" "rots" "rotsen" "diep" "diepe" "bizarre"
"gefolterd" "gefolterde" "bizar",
has scenery male;
Object -> "rivier van vuur"
with description
"De rivier van vuur stroomt vanuit de diepten van de
vulkaan met donderend geraas neer, brandt zich een weg
door de kloof en stort in een bodemloze put ergens ver
weg aan je linkerhand.",
name "rivier" "vuur" "diepte" "diepten" "put" "vurig"
"bodemloos" "bodemloze"
has scenery;
Object -> "immense geiser"
with description
"De geiser van vernietigende stoom spuit continu de
lucht in vanuit een schraal eilandje middenin het
onheilspellend bubbelende zwavelmeer.",
name "geiser" "stoom" "eiland" "eilandje" "meer"
"immense" "immens" "vernietigend" "vernietigende"
"schraal" "zwavelmeer" "bubbelende" "zwavel" "meer"
"onheilspellend" "onheilspellende" "bubbelend"
has scenery;
Object In_Chamber_Of_Boulders "In het Vertrek van de Keien"
with description
"Je bent een klein vetrek gevuld met grote keien
binnengekropen. De muren zijn ontzettend warm, waardoor
de lucht in de kamer om te smoren zo heet is. De enige
uitgang uit deze verstikkende kamer is een kruipgang naar
het westen, waardoorheen je een diep gerommel hoort.",
w_to At_Junction_With_Warm_Walls,
out_to At_Junction_With_Warm_Walls
has nodwarf;
Object -> "keien"
with description "Het zijn doodgewone grote keien. Ze zijn warm.",
name "kei" "keien" "rots" "stenen" "groot" "grote",
before
[; Push, Pull, LookUnder: "Je zou ze op moeten blazen.";
],
has scenery multitude pluralname male;
Treasure -> "zeldzame specerijen"
with name "specerijen" "specerij" "kruid" "kruiden" "zeldzaam"
"zeldzame" "exotisch" "exotische",
depositpoints 14, article "een selectie",
before
[; Smell, Examine: "Ze ruiken wonderbaarlijk exotisch!";
],
has multitude pluralname male;
Object In_Limestone_Passage "In een Kalkstenen Galerij"
with description
"Je wandelt door een zachtjes glooiende
noord-zuid-galerij met wanden van vreemd gevormde
kalksteenformaties.",
n_to At_Fork_In_Path,
u_to At_Fork_In_Path,
s_to In_Front_Of_Barren_Room,
d_to In_Front_Of_Barren_Room
has nodwarf;
Object -> "kalksteenformaties"
with description
"Zo nu en dan trekt een bijzonder vreemde formatie je
aandacht.",
name "formaties" "vorm" "vormen" "formatie" "kalksteen" "kalk"
"steen" "formaties" "kalksteenformatie"
"kalksteenformaties" "gevormd" "gevormde" "vreemd"
"vreemdgevormde" "vreemde" "vreemdgevormd"
has scenery multitude pluralname male;
! ----------------------------------------------------------------------------
! If you go down to the woods today...
! ----------------------------------------------------------------------------
Object In_Front_Of_Barren_Room "Voor een Kale Kamer"
with description
"Je staat bij de ingang van een grote, kale kamer. Een
bordje dat boven de ingang hangt, zegt: ~Pas op! Beer in
de kamer!~",
w_to In_Limestone_Passage,
u_to In_Limestone_Passage,
e_to In_Barren_Room,
in_to In_Barren_Room
has nodwarf;
Object -> "waarschuwingsbordje"
with description "Het bordje zegt: ~Pas op! Beer in de kamer!~",
name "bord" "bordje" "kamer" "leeg" "kaal" "kale" "lege"
"waarschuwing" "waarschuwingsbord" "waarschuwingsbordje"
has scenery neuter;
Object In_Barren_Room "In een Kale Kamer"
with description
"Je bent in een kale kamer aangeland. Het midden van
de kamer is volstrekt leeg, op wat stof na. Sporen in het
stof leiden naar het verre eind van de kamer. De enige
uitgang is de weg waarlangs je binnengekomen bent.",
w_to In_Front_Of_Barren_Room,
out_to In_Front_Of_Barren_Room
has nodwarf;
Object -> "stof"
with description "Het ziet er precies zo uit als gewoon stof.",
name "stof" "sporen" "spoor"
has scenery;
Object -> Bear "grote holenbeer"
with
following_you false,
angry true,
describe
[; if (self.following_you)
"Je wordt gevolgd door een grote, tamme beer.";
if (self.angry)
"Een woeste holenbeer staat je aan te staren vanuit de
andere kant van de kamer!";
if (location==In_Barren_Room)
"Een zachtaardige holenbeer zit rustig in een hoekje.";
"Niet ver bij je vandaan wandelt een tevreden uitziende
holenbeer rond.";
],
name "beer" "groot" "grote" "tam" "tamme" "woest" "woeste"
"hol" "holen" "holenbeer",
life
[; Attack: if (axe in player) <<ThrowAt axe Bear>>;
if (self.angry == false)
"De beer is verward; hij wil alleen maar vriendjes
zijn.";
"Met wat? Je blote handen? Tegen *zijn* berenhanden??";
ThrowAt:
if (noun~=axe) <<Give noun Bear>>;
if (self.angry == false)
"De beer is verward; hij wil alleen maar vriendjes
zijn.";
move axe to location; give axe general;
"De bijl mist en landt vlakbij de beer waar je er niet
bij kunt.";
Give:
if (noun == tasty_food)
{ give axe ~general; remove tasty_food;
self.angry = false;
"De beer schrokt je voedsel gulzig op, waarna hij
behoorlijk kalmeert, en zelfs tamelijk vriendelijk
wordt.";
}
if (self.angry == false)
"De beer lijkt niet erg ge@:interesseerd in je
aanbod.";
"Oh-oh -- je aanbod maakt de beer alleen maar bozer!";
Order, Ask, Answer: "Dit is een beer met een erg klein brein.";
],
before
[; Examine:
print "De beer is uitzonderlijk groot, ";
if (self.angry == false) "maar ziet er vriendelijk uit.";
"en ziet er vervaarlijk uit!";
Take, Catch: if (self.angry) "Je maakt zeker een grapje!";
if (golden_chain has locked)
"De beer zit nog aan de muur geketend.";
self.following_you = true; StartDaemon(Bear);
"Ok, de beer volgt je nu, waar je ook gaat.";
Drop, Release: if (self.following_you == false) "Wat?";
self.following_you = false; StopDaemon(Bear);
if (Troll in location)
{ remove Troll;
"De beer waggelt log naar de trol toe, die een
verbaasde gil slaat, en wegrent. De beer geeft de
achtervolging al gauw op en wandelt weer terug.";
}
"De beer wandelt bij je vandaan.";
],
daemon
[; if (location==thedark) rfalse;
if (self in location)
{ if (location==At_Breath_Taking_View)
"^The beer brult van vreugde.";
rfalse;
}
move self to location;
"^The beer waggelt log achter je aan.";
],
has animate male;
Treasure -> golden_chain "gouden ketting"
with depositpoints 14,
describe
[; if (self has locked) "De beer wordt vastgehouden door een
massief gouden ketting.";
"Er ligt een massief gouden ketting opgerold op de vloer!";
],
description "De ketting bestaat uit dikke schakels van massief goud!",
name "ketting" "schakel" "schakels" "keten" "ketenen" "massief"
"goud" "gouden" "dik" "ketens" "massieve",
with_key set_of_keys,
before
[; Take: if (self has locked)
{ if (Bear.angry) "Hij zit vastgeketend aan de woeste beer!";
"Hij zit vastgeketend aan de vriendelijke beer.";
}
Unlock:
if (Bear.angry)
"Er is geen enkele mogelijkheid om langs de beer
te komen zodat je de ketting los kunt maken, en
dat is waarschijnlijk ook maar beter zo.";
Lock: if (self hasnt locked) "Het mechamisme wil niet meer
op slot.";
],
after
[; Unlock: "Je haalt het slot van de ketting, en laat de
tamme beer vrij.";
],
has lockable locked male;
! ----------------------------------------------------------------------------
! The Different Maze
! ----------------------------------------------------------------------------
Class DiffMazeRoom
with short_name "Doolhof";
DiffMazeRoom Different_Maze_1
with description
"Je bent in een doolhof van kronkelende kleine
paadjes, allemaal verschillend.",
s_to Different_Maze_3,
sw_to Different_Maze_4,
ne_to Different_Maze_5,
se_to Different_Maze_6,
u_to Different_Maze_7,
nw_to Different_Maze_8,
e_to Different_Maze_9,
w_to Different_Maze_10,
n_to Different_Maze_11,
d_to At_West_End_Of_Long_Hall;
DiffMazeRoom Different_Maze_2
with description
"Je bent in een klein doolhof van kronkelende paadjes,
allemaal verschillend.",
sw_to Different_Maze_3,
n_to Different_Maze_4,
e_to Different_Maze_5,
nw_to Different_Maze_6,
se_to Different_Maze_7,
ne_to Different_Maze_8,
w_to Different_Maze_9,
d_to Different_Maze_10,
u_to Different_Maze_11,
s_to Dead_End_14;
DiffMazeRoom Different_Maze_3
with description
"Je bent in een doolhof van kronkelende kleine
paadjes, allemaal verschillend.",
w_to Different_Maze_1,
se_to Different_Maze_4,
nw_to Different_Maze_5,
sw_to Different_Maze_6,
ne_to Different_Maze_7,
u_to Different_Maze_8,
d_to Different_Maze_9,
n_to Different_Maze_10,
s_to Different_Maze_11,
e_to Different_Maze_2;
DiffMazeRoom Different_Maze_4
with description
"Je bent in een klein doolhof van kronkelige paadjes,
allemaal verschillend.",
nw_to Different_Maze_1,
u_to Different_Maze_3,
n_to Different_Maze_5,
s_to Different_Maze_6,
w_to Different_Maze_7,
sw_to Different_Maze_8,
ne_to Different_Maze_9,
e_to Different_Maze_10,
d_to Different_Maze_11,
se_to Different_Maze_2;
DiffMazeRoom Different_Maze_5
with description
"Je bent in een kronkelend doolhof van kleine paadjes,
allemaal verschillend.",
u_to Different_Maze_1,
d_to Different_Maze_3,
w_to Different_Maze_4,
ne_to Different_Maze_6,
sw_to Different_Maze_7,
e_to Different_Maze_8,
n_to Different_Maze_9,
nw_to Different_Maze_10,
se_to Different_Maze_11,
s_to Different_Maze_2;
DiffMazeRoom Different_Maze_6
with description
"Je bent in een kronkelend klein doolhof van paadjes, allemaal
verschillend.",
ne_to Different_Maze_1,
n_to Different_Maze_3,
nw_to Different_Maze_4,
se_to Different_Maze_5,
e_to Different_Maze_7,
d_to Different_Maze_8,
s_to Different_Maze_9,
u_to Different_Maze_10,
w_to Different_Maze_11,
sw_to Different_Maze_2;
DiffMazeRoom Different_Maze_7
with description
"Je bent in een kronkelig klein doolhof van paadjes,
allemaal verschillend.",
n_to Different_Maze_1,
se_to Different_Maze_3,
d_to Different_Maze_4,
s_to Different_Maze_5,
e_to Different_Maze_6,
w_to Different_Maze_8,
sw_to Different_Maze_9,
ne_to Different_Maze_10,
nw_to Different_Maze_11,
u_to Different_Maze_2;
DiffMazeRoom Different_Maze_8
with description
"Je bent in een kronkelig doolhof van kleine paadjes, allemaal
verschillend.",
e_to Different_Maze_1,
w_to Different_Maze_3,
u_to Different_Maze_4,
sw_to Different_Maze_5,
d_to Different_Maze_6,
s_to Different_Maze_7,
nw_to Different_Maze_9,
se_to Different_Maze_10,
ne_to Different_Maze_11,
n_to Different_Maze_2;
DiffMazeRoom Different_Maze_9
with description
"Je bent in een klein kronkelig doolhof van paadjes,
allemaal verschillend.",
se_to Different_Maze_1,
ne_to Different_Maze_3,
s_to Different_Maze_4,
d_to Different_Maze_5,
u_to Different_Maze_6,
nw_to Different_Maze_7,
n_to Different_Maze_8,
sw_to Different_Maze_10,
e_to Different_Maze_11,
w_to Different_Maze_2;
DiffMazeRoom Different_Maze_10
with description
"Je bent in een doolhof van kleine kronkelende paadjes,
allemaal verschillend.",
d_to Different_Maze_1,
e_to Different_Maze_3,
ne_to Different_Maze_4,
u_to Different_Maze_5,
w_to Different_Maze_6,
n_to Different_Maze_7,
s_to Different_Maze_8,
se_to Different_Maze_9,
sw_to Different_Maze_11,
nw_to Different_Maze_2;
DiffMazeRoom Different_Maze_11
with description
"Je bent in een doolhof van kleine kronkelige paadjes,
allemaal verschillend.",
sw_to Different_Maze_1,
nw_to Different_Maze_3,
e_to Different_Maze_4,
w_to Different_Maze_5,
n_to Different_Maze_6,
d_to Different_Maze_7,
se_to Different_Maze_8,
u_to Different_Maze_9,
s_to Different_Maze_10,
ne_to Different_Maze_2;
DeadEndRoom Dead_End_14
with short_name
"Doodlopend Pad, Vlakbij een Automaat",
description
"Je hebt een doodlopend pad bereikt. Er staat hier een
imposante automaat.",
n_to Different_Maze_2,
out_to Different_Maze_2
has nodwarf;
Object -> "boodschap in het stof"
with description
"De boodschap zegt: ~Dit is niet het doolhof waar de
piraat zijn schatkist achterlaat.!",
name "boodschap" "krabbel" "krabbels" "geschrijf" "geschrift"
"bericht" "bloemrijk" "gekrabbeld" "geschreven"
"handschrift",
initial "Hmmm... er is hier een boodschap in het stof
geschreven in een bloemrijk handschrift.",
has scenery male;
Object -> VendingMachine "automaat"
with description
"De instructies op de automaat zeggen: ~Stop munten in de
gleuf om nieuwe batterijen te krijgen.~",
name "machine" "gleuf" "automaat" "imposant" "imposante"
"batterij" "batterijen" "munt" "munten",
before
[; Receive:
if (noun==rare_coins)
{ move fresh_batteries to location;
remove rare_coins;
"Kort nadat je de munten in de gleuf hebt gestopt, maakt de
automaat een krakend geluid, en een stel nieuwe
batterijen valt aan je voeten.";
}
"De automaat lijkt ontworpen om munten te accepteren.";
Attack:
"De automaat is behoorlijk stevig en overleeft je aanval
zonder zelfs maar een krasje op te lopen.";
LookUnder:
"Je vindt niets onder de automaat.";
Search:
"Je kunt niet in de automaat komen.";
Take: "De automaat is veel te zwaar om hem te kunnen bewegen.";
],
has scenery male;
Object fresh_batteries "nieuwe batterijen" VendingMachine
with description "Ze zien eruit als doodgewone batterijen. (Een
grafstem zegt: ~Ze doen het nog!~)",
initial "Er liggen hier nieuwe batterijen.",
name "batterijen" "batterij" "nieuw" "nieuwe",
before [; Count: "Een aantal."; ];
Object old_batteries "opgebruikte batterijen"
with description "Ze zien eruit als doodgewone batterijen.",
initial "Een paar opgebruikte batterijen liggen hier
achtergelaten op de grond.",
name "batterijen" "batterij" "gebruikt" "op" "opgebruikt",
before [; Count: "Een aantal."; ];
Object dwarf "dreigende kleine dwerg"
with name "dwerg" "dreigend" "dreigende" "gemeen" "gemene" "klein"
"kleine" "gevaarlijk" "gevaarlijke",
description "Het is waarschijnlijk geen goed idee om te dicht
bij te komen. Laten we het er maar op houden dat de kleine
man behoorlijk agressief is.",
initial "Een dreigende kleine dwerg zit verstopt in de schaduwen.",
number 5,
daemon
[; if (location==thedark) return;
if (self.number==0) { StopDaemon(self); return; }
if (parent(dwarf)==0)
{ if (location has nodwarf || location has light) return;
if (random(100)<=self.number)
{ if (Bear in location || Troll in location) return;
new_line;
if (Dragon in location)
{ self.number--;
"Er verschijnt een dwerg, maar met een enkele
nonchalante ademstoot vernietigt de draak hem!";
}
move dwarf to location;
"Er komt een dreigende kleine dwerg tevoorschijn uit
de schaduwen!";
}
return;
}
if (parent(dwarf)~=location)
{ if (location==thedark) return;
if (location has nodwarf || location has light) return;
if (random(100)<=96 && parent(dwarf)~=In_Mirror_Canyon)
{ move dwarf to location;
print "^De dwerg sluipt achter je aan...^";
}
else { remove dwarf; return; }
}
if (random(100)<=75)
{ new_line;
if (self hasnt general)
{ move axe to location; give self general; remove self;
"De dwerg gooit een gemene kleine bijl naar je,
mist, vloekt, en rent weg.";
}
if (location==In_Mirror_Canyon)
"De dwerg bewondert zichzelf in de spiegel.";
print "De dwerg gooit een gemeen klein mes naar je, ";
if (random(1000)<=95) { deadflag=1; "en raakt!"; }
"maar mist!";
}
if (random(3)==1)
{ remove dwarf; "^De dwerg wordt het zat, en glipt weg."; }
],
before
[; Kick: "Je schopt de dwerg door de kamer. Hij vloekt, staat
vervolgens weer op, en stoft zichzelf af. Nu is hij
bozer dan ooit!";
],
life
[; ThrowAt:
if (noun==axe)
{ if (random(3)~=1)
{ remove self; move axe to location;
self.number--;
"Je hebt een kleine dwerg gedood! Het lichaam
verdwijnt in wolk vettige zwarte rook.";
}
move axe to location;
"Mis! De dwerg duikt weg uit, en de bijl suist langs
hem heen.";
}
<<Give noun second>>;
Give:
if (noun==tasty_food) "Jij dwaas! Dwergen eten alleen steenkool!
Nu heb je hem pas *echt* kwaad gemaakt!";
"De dwerg is in het geheel niet ge@:interesseerd in je
aanbod. (De reden is, misschien, dat als hij je doodt hij
toch alles wat je hebt kan inpikken.)";
Attack: "Niet met je blote handen. Oh nee.";
],
has animate male;
Object axe "dwergenbijl"
with name "bijl" "klein" "kleine" "dwerg" "dwergen" "dwergenbijl",
initial "Er ligt hier een kleine bijl.",
description "Het is gewoon een kleine bijl.",
before
[; if (axe hasnt general) rfalse;
Examine: "Hij ligt naast de beer.";
Take: "Vergeet het maar. Hij ligt vlak naast de woeste
beer, er kan je wel wat overkomen!";
],
has male;
! ----------------------------------------------------------------------------
! Two brushes with piracy
! ----------------------------------------------------------------------------
Object pirate
with
has_stolen_something false,
has_been_spotted false,
daemon
[ obj booty_nearby;
if (random(100) > 2
|| location==thedark or In_Secret_Canyon
|| location has light
|| location has nodwarf) return;
if (dwarf in location)
"^Er verschijnt een piraat met een woeste baard, maar
zodra hij ook maar een glimp van de dwerg opvangt, rent
hij weer weg.";
objectloop (obj ofclass Treasure && obj in player or location)
booty_nearby = true;
if (booty_nearby == false)
{ if (self.has_been_spotted) return;
self.has_been_spotted = true;
if (self.has_stolen_something) StopDaemon(self);
"^Er klinken vaag ritselende geluiden uit de duisternis
achter je. Als je je ernaar omdraait, zie je een piraat
met een woeste baard. Hij draagt een grote kist.^^
~Alle landrotten in een kraaiennest!~ roept hij, ~Ik ben
gezien! Ik kan beter met volle zeilen weg hier naar't
doolhof en me kist verbergen!~^^
En daarmee verdwijnt hij het duister in.";
}
if (self.has_stolen_something) return;
self.has_stolen_something = true;
if (self.has_been_spotted) StopDaemon(self);
objectloop (obj ofclass Treasure && obj in player or location)
{ if (obj in player) score = score - 5;
move obj to Dead_End_13;
}
"^Vanuit de schaduwen achter je sprint een piraat met een
woeste baard tevoorschijn! ~Har, har,~ grinnikt hij, ~Ik
zal al deze buit maar meenemen en verstoppen in me kist
diep in het doolhof!~ Hij kaapt je schat weg en verdwijnt
het duister in.";
];
! ----------------------------------------------------------------------------
! The cave is closing now...
! ----------------------------------------------------------------------------
Object cave_closer
with daemon
[; if (treasures_found < MAX_TREASURES) return;
StopDaemon(self);
caves_closed=1;
score=score + 25;
remove CrystalBridge;
give Grate locked ~open; remove set_of_keys;
"^Een grafstem galmt door de grot en zegt: ~De grot sluit
over enkele ogenblikken. Alle avonturiers dienen
ogenblikkelijk te vertrekken door het hoofdkantoortje.~";
];
Object endgame_timer
with time_left 0,
time_out
[; score=score + 10;
while (child(player)~=0) remove child(player);
move bottle to At_Ne_End;
if (child(bottle)~=0) remove child(bottle);
move giant_bivalve to At_Ne_End;
move brass_lantern to At_Ne_End;
move black_rod to At_Ne_End;
move little_bird to At_Sw_End;
move velvet_pillow to At_Sw_End;
print "^De grafstem intoneert: ~De grot is nu gesloten.~
Als de echo wegsterft is er een verblindende lichtflits
(en een klein wolkje oranje rook). . .^^
Als je je ogen weer scherpgesteld krijgt, kijk je
rond...^";
PlayerTo(At_Ne_End);
];
! ----------------------------------------------------------------------------
! The End Game
! ----------------------------------------------------------------------------
Object At_Ne_End "NO-deel van het Magazijn"
with description "Je bevindt je in het noordoostelijke deel van een
enorme kamer, nog groter dan de reuzekamer. Het lijkt wel
een soort magazijn voor het ~Avontuur~ programma. Enorme
toortsen ver boven je hoofd baden de kamer in een rokerig
geel licht. Verspreid om je heen zie je een stapel flessen
(allemaal leeg), een kwekerij vol jonge bonenstaakjes die
zachtjes mompelen, een oesterbed, een bundel zwarte staven
met roestige sterren aan een uiteinde, en een collectie
koperen lantaarns. Aan @'e@'en kant ligt een enorme horde
dwergen te slapen op de vloer, luid snurkend. Een bordje
er vlakbij zegt: ~De dwergen niet storen!~",
sw_to At_Sw_End
has light;
Object -> "gigantische spiegel"
with description "Het lijkt een gewone, alhoewel enorm grote, spiegel.",
name "spiegel" "gigantisch" "gigantische" "groot" "grote" "hangend"
"hangende" "ijdel" "ijdelheid" "dwerg" "dwergen" "dwergenspiegel",
initial "Een gigantische spiegel hangt aan een van de muren, en
strekt zich uit helemaal tot het andere uiteinde van de
kamer, waar je allerhande andere objecten vaag in de verte
kunt ontwaren.",
found_in At_Ne_End At_Sw_End,
before
[;
Attack:
print "Je raakt de spiegel met een galmende klap, waarop
hij in duizenden kleine scherfjes uit elkaar knalt.^^";
SleepingDwarves.wake_up(); rtrue;
],
has static male;
Object -> "collectie materialen voor het spel ~Avontuur~"
with description
"Je hebt alles wat hier ligt al gezien, zij het dan in
een wat andere context.",
name "spullen" "troep" "materiaal" "materialen" "toortsen" "objecten"
"adventure" "magazijn" "enorm" "divers" "diverse" "avontuur"
"adventure-spel",
before
[; Take: "Je realiseert je dat door alle buit hier weg te
halen, je het spel voor toekomstige spelers verpest,
dus laat je alle ~Avontuur~ materialen gewoon liggen.";
],
has scenery male;
Object -> SleepingDwarves "slapende dwergen"
with description "Ik zou de dwergen niet lastig vallen, als ik jou was.",
name "dwerg" "dwergen" "slapend" "slapende" "snurkend"
"snurkende" "slapend" "slapende",
article "honderden boze",
before
[;
Take: "Wat, allemaal?";
],
life
[; WakeOther:
print "Je port de dichtsbijzijnde dwerg, die knorrig
wakker wordt, @'e@'en blik op je werpt, vloekt,
en z'n bijl grijpt.^^";
self.wake_up(); rtrue;
Attack: self.wake_up(); rtrue;
],
wake_up
[; deadflag=1;
"Het resulterende rumoer heeft alle dwergen wakker
gemaakt. Er zijn nu hordes dreigende kleine dwergen bij
je in de ruimte! De meesten gooien messen naar
je. Allemaal raken ze je!";
],
has animate scenery multitude pluralname;
Object At_Sw_End "ZW-deel van het Magazijn"
with description
"Je bevindt je in het zuidwestelijke deel van het
magazijn. Aan @'e@'en kant is een kuil vol agressieve
groene slangen. Aan de andere kant een rij kleine tenen
kooitjes, met in elk daarvan een klein pruilend
vogeltje. In een hoek zie je een bundel zwarte staven met
roestige sterren aan een uiteinde. Een enorm aantal
fluwelen kussens ligt verspreid over de vloer. Een gigantische
spiegel strekt zich uit richting het noordoosten. Aan je
voeten zie je een groot stalen rooster, waarnaast een
bordje hangt dat zegt: ~SCHATKAMER. Sleutels in het
hoofdkantoor.~",
d_to RepositoryGrate,
ne_to At_Ne_End
has light;
Object -> RepositoryGrate "stalen rooster"
with name "gewoon" "staal" "stalen" "rooster" "hek",
description
"Ziet eruit als een gewoon stalen rooster.",
when_open "Het rooster is open.",
when_closed "Het rooster is dicht.",
door_dir d_to, door_to Outside_Grate, with_key 0
has static door locked openable;
Object -> "collectie materialen voor het spel ~Avontuur~"
with description
"Je hebt alles wat hier ligt al gezien, zij het dan in
een wat andere context.",
name "spullen" "troep" "materiaal" "materialen" "kuil" "objecten"
"adventure" "magazijn" "enorm" "divers" "diverse" "avontuur"
"adventure-spel" "slangen" "agressief" "groen" "slang",
before
[; Take: "Je realiseert je dat door alle buit hier weg te
halen, je het spel voor toekomstige spelers verpest,
dus laat je alle ~Avontuur~ materialen gewoon liggen.";
],
has scenery male;
Object -> black_mark_rod "zwarte staf met een roestplek aan een uiteinde."
with description "Het is een negentig centimeter lange staf met een
roestplek aan een uiteinde.",
initial "Er ligt hier een negentig centimeter lange staf met
een roestplek aan een uiteinde.",
name "staf" "zwart" "roestig" "plek" "negentig" "centimeter"
"90" "cm" "90cm" "dynamiet" "opblazen",
before [; Wave: "Er gebeurt niets."; ];
! ----------------------------------------------------------------------------
! Some entry points
! ----------------------------------------------------------------------------
[ PrintRank;
print ", hetgeen je de rang oplevert van ";
if (score >= 348) "Grootmeester der Avonturiers!";
if (score >= 330) "Meester, eerste klas.";
if (score >= 300) "Meester, tweede klas.";
if (score >= 200) "Junior Meester.";
if (score >= 130) "Doorgewinterde Avonturier.";
if (score >= 100) "Ervaren Avonturier.";
if (score >= 35) "Avonturier.";
if (score >= 10) "Beginner.";
"Amateur.";
];
[ DarkToDark;
if (dark_warning == false)
{ dark_warning = true;
"Het is nu stikdonker.
Als je doorgaat is de kans groot dat je in een gat valt.";
}
if (random(4) == 1)
{ deadflag = 1;
"Je bent in een gat gevallen en hebt ieder bot in je lichaam gebroken.";
}
rfalse;
];
! ----------------------------------------------------------------------------
! Menu-driven help (not really a part of the game itself)
! ----------------------------------------------------------------------------
[ HelpMenu;
if (menu_item==0) { item_width=8; item_name="Over Avontuur";
if (deadflag==2) return 4; else return 3;
}
if (menu_item==1) { item_width=6; item_name="Instructies"; }
if (menu_item==2) { item_width=4; item_name="Geschiedenis"; }
if (menu_item==3) { item_width=6; item_name="Authenticiteit"; }
if (menu_item==4) { item_width=7; item_name="Wist je dat..."; }
];
[ HelpInfo;
if (menu_item==1)
{
print "Ik ken plaatsen, acties en dingen. Je kunt me leiden door
commando's te gebruiken die uit volledige zinnen bestaan. Om
te bewegen kun je commando's proberen als ~ga naar binnen,~
~oost,~ ~west,~ ~noord,~ ~zuid,~ ~omhoog,~ ~omlaag,~ ~ga het
gebouw in,~ ~klim in de paal,~ etc.^^";
print "Ik ken een aantal speciale objecten, zoals bijvoorbeeld
een zwarte staf verborgen in de grot. Deze objecten kunnen
gemanipuleerd worden middels enkele acties die ik
ken. Doorgaans zul je een werkwoord in combinatie met een
zelfstandig naamwoord (tezamen met bijvoeglijke naamwoorden
voor zover gewenst), maar soms begrijp ik uit de context wel
welk object je bedoelt. Zo begrijp ik soms ook welk werkwoord
je bedoelt aan de hand van het lijdend voorwerp dat je
gebruikt: als je bijvoorbeeld ~inventaris~ zegt, dan begrijp
ik dat je ~neem inventaris~ bedoelt, en geef ik je een lijst
van alles wat je bij je hebt. Sommige objecten hebben
overigens bijwerkingen: zo is het vogeltje bijvoorbeeld bang
voor de staf.^^";
print "Veel commando's hebben afkortingen. Je kunt bijvoorbeeld ~i~
typen in plaats van ~inventaris,~ ~x object~ in plaats van
~onderzoek object,~ ~n~ in plaats van ~noord,~ etc.^^";
print "Gewoonlijk moet je, als je problemen hebt met bewegen, gewoon
een paar andere woorden proberen. Heb je daarentegen geen
succes met het manipuleren van voorwerpen, dan is het meestal
zo dat je iets probeert te doen dat jouw (of mijn!)
capaciteiten te boven gaat. Je kunt dan beter iets heel
anders proberen.^^";
print "Merk op dat de gangen in de grotten nogal veel draaien.
Daardoor is het niet altijd zo dat als je een ruimte naar het
noorden verlaten hebt, je de volgende ruimte vanuit het
zuiden betreedt.^^";
print "Als je je avontuur voortijdig wilt be@:eindigen, type dan
~einde~. Om je avontuur tijdelijk te onderbreken, zodat je
later weer verder kunt, kun je ~opslaan~ typen, en om een
opgeslagen spel weer te vervolgen, type je ~inladen~. Om te
zien hoe goed je ervoor staat, type je ~score~. Om het
volledige aantal punten voor een schat te krijgen, moet je
hem veilig achterlaten in het gebouw, maar een deel van de
punten krijg je al voor het vinden van de schat. Je verliest
punten als je doodgaat of het spel voortijdig be@:eindigt. Van
deze twee is doodgaan ernstiger in termen van punten dan
ophouden. Je krijgt ook punten gebaseerd op hoeveel van de
grot je daadwerkelijk hebt weten te onderzoeken; in het
bijzonder krijg je een flinke bonus voor het @:uberhaupt
binnengaan van de grot (om de beginners van de rest van de
meute te kunnen onderscheiden), en er zijn andere methodes om
te bepalen of je je door enkele andere meer pijnlijke stukken
hebt weten te slaan.^^";
print "Als je denkt dat je alle schatten gevonden hebt, blijf dan
toch nog een tijdje verder verkennen. Als er niets
interessants gebeurt, heb je ze nog niet allemaal
gevonden. Als er *wel* iets interessants gebeurt, betekent
dat dat je een bonus krijgt en een kans om nog meer punten te
verzamelen in het stuk voor de meesteravonturiers.^^";
"Veel succes!";
}
if (menu_item==2)
{
print "Vermoedelijk was de eerste avonturier ooit een mulatto slaaf
genaamd Stephen Bishop, geboren zo rond 1820: `tenger,
gracieus en zeer knap'; een `snelle, dappere, enthousiaste'
gids voor de Mammoetgrot (Mammoth Cave) in de Kentucky
Karst. Het verhaal van de Grot is een merkwaardige miniversie
van de Amerikaanse geschiedenis. Z'n ontdekking is onderwerp
van een legende uit de jaren 1790; men zegt dat een jager,
John Houchin, een gewonde beer achtervolgde naar een diepe
kuil nabij de Groene Rivier (Green River) en ";
print "bij toeval de ingang ontdekte. De ingang zat vol
vleermuizen, en er werd ten tijde van de Oorlog van 1812
intensief guano geoogst, dat opgelost werd in vaten nitraat
om zo salpeter te maken voor de productie van buskruit. Na de
oorlog daalden de prijzen, maar de Grot werd een
ondergeschikte attractie toen vlakbij een uitgedroogde
Indiaanse mummie werd gevonden, rechtop gezeten in een stenen
sarcofaag, omringd door talismannen. In 1815 werd Veulenhoef,
zoals ze genoemd werd vanwege @'e@'en van de amuletten,
meegenomen door een circus, en trok ze door heel Amerika
volle zalen (een tour die wel doet denken aan het lied `De
Legende van Andrew McCrew' van Don McLean). Zijzelf eindigde in
het Smithsonian museum, maar de Grot werd vanaf de jaren 1820
@'e@'en van de wonderen van de wereld genoemd, grotendeels
dankzij haar posthume inspanningen.^^";
print "Gedurende de eerste helft van de negentiende eeuw waren de
Europese grotten grote toeristische attracties, maar vrijwel
niemand bezocht de Mammoet, `wereldwonder' of niet. Ook was
het toen nog geen bijzonder uitgestrekt stelsel (de naam was
een overblijfsel van de arbeiders die pochten over hun
mammoetoogsten guano). In 1838 kocht de eigenaar van Stephen
Bishop de grot op. Stephen, zoals hij (gebruikelijk voor
slaven) altijd werd genoemd, was hoe je het ook wendde of
keerde een bijzonder man: hij had zichzelf Latijn en Grieks
geleerd en werd beroemd als de `opperste heerser' van zijn
onderaardse rijk. Hij ";
print "verkende en benoemde veel van het gangenstelsel in zijn vrije
tijd, waardoor de kaart van de bekende delen in een jaar tijd
tweemaal zo groot werd. De kenmerkende stijl van de namen van
delen van de Grot - half thuisgebakken Amerikaans,
half klassiek - begin met Stephen: de Rivier de Styx, de
Sneeuwbalkamer, Kleine Vleermuis Galerij, het
Reuzengewelf. Stephen vond vreemde blinde vissen, slangen,
stille krekels, de overblijfselen van holenberen (woeste,
speelse dieren van anderhalve meter lang en @'e@'en meter
twintig hoog die aan het eind van de vorige ijstijd
uitstierven), eeuwenoude Indiaanse gipsbeelden en almaar meer
grot. Zijn kaart uit 1842, geheel uit z'n hoofd getekend,
werd veertig jaar later nog steeds gebruikt.^^";
print "Als een toeristenattractie (en, daar Stephen's eigenaar een
filantroop was, kortstondig een sanatorium voor tuberculose
vanwege een hopeloze medische theorie) werd de Grot big
business: decennia lang werden de eigendomsrechten van
nabijgelegen grotten woest geclaimd en eindeloos
bevochten. De naburige keten, dwars door Houchin's Vallei
(Houchin's Valley) in de Vuursteen Bergrug (Flint Ridge) opende
de Grote Onyx Grot (Great Onyx Cave) in 1912. In de jaren
1920 waren de Kentucky grottenoorlogen ";
print "in volle gang. Rivaliserende eigenaars misleidden toeristen
met nep politieagenten, huurden stromannen in om elkaars
rondleidingen te verpesten, brandden kaartverkoophuisjes
plat, en verspreidden lasterpraat en valse
advertenties. Grotonderzoek werd zo gevaarlijk en heimelijk,
dat in 1941 de Amerikaanse regering ingreep, en grote delen
van het gebied tot Nationaal Park verklaarde, en in effecto
grotonderzoek verboden. De Goudkoorts van de toeristen was,
toch al, tanende.^^";
print "In de overtuiging dat de Mammoet en Flint Ridge grotten
allemaal op elkaar aansloten tot een enorm grottenstelsel
probeerden onderzoekers jarenlang geheime ingangen,
uiteindelijk zelfs met offici@:ele steun. In de jaren 1960
eindigden alle doorgangen vanuit Flint Ridge tot ieders
frustraties in verstoppingen van keien. Een natuurkundige met
het `postuur van een rietstengel', Patricia Crowther, boekte
de doorbraak in 1972 toen ze door de Nauwe Plek wist te
geraken, en een modderige gang aantrof: het was een verborgen
gang de Mammoetgrot in.^^";
print "Vanwege de bepalingen in het testament van zijn eigenaar, werd
Stephen Bishop in 1856 een vrij man. Op dat moment telde de
grot 226 galerijen, 47 gewelven, 23 schachten en 8
watervallen. Hij stierf een jaar later, nog voordat hij zijn
vrouw en zoon kon vrijkopen. In de jaren 1970 werd Crowther's
modderige doorgang op zijn kaart aangetroffen.^^";
print "De Mammoetgrot is enorm, en zijn totale grootte is nog steeds
onderwerp van speculatie (schattingen varieren van 500 tot
800 kilometer). Hoewel dit spel vaak ~Colossal Cave~ genoemd
is, is het eigenlijk een simulatie van de Bedquilt Grot
regio. Hier is Will Crowther's verhaal over hoe het allemaal
zo gekomen is:^^";
print "~Ik was indertijd betrokken geweest bij een computerloos
rollenspel genaamd ~Dungeons and Dragons~, en ik ben ook
een actief grotonderzoeker geweest - met name de
Mammoetgrot in Kentucky. Plotseling raakte ik in
echtscheiding, en dat liet me op vele manieren niet
onberoerd. Bovenal miste ik mijn kinderen. Ook was ik gestopt
met het grottenonderzoek, omdat het te gevaarlijk was
geworden, dus besloot ik dat ik wat op de computer zou
klooien en een programma schrijven dat mijn grotonderzoek
opnieuw zou cre@:eren in een soort fantasie, en meteen ook
een spel kon zijn voor de kinderen, misschien zelfs met wat
elementen uit mijn ervaring met het spelen van Dungeons and
Dragons.^^";
print "Mijn idee was dat dit een computerspel zou worden dat niet
intimiderend zou zijn voor niet-computer mensen, en dat was
@'e@'en van de redenen dat ik het spel zo maakte, dat de
speler het spel met het invoeren van natuurlijke taal
bestuurt, in plaats van met meer gestandaardiseerde
commando's. Mijn kinderen vonden het erg leuk.~ [Geciteerd in
~Genesis II: Creation and Recreation with Computers~, Dale
Peterson (1983).]^^";
print "Crowther's oorspronkelijke FORTRAN programma had iets van vijf
schatten, maar geen formeel scoresysteem. De uitdaging was
vooral om te onderzoeken, ondanks tegenstand was van
bijvoorbeeld een slang. Zoals de echte Bedquilt regio heeft
Crowther's spel een kaart van zo'n vier diepteniveaus en is
rijk in geologische details. Een goed voorbeeld is de oranje
zuil die afdaalt naar de Oranje Riviersteenkamer (waar de
vogel woont): de echte zuil is van oranje travertijn, een
prachtig mineraal dat in natte kalksteen gevonden wordt.^^";
print "Het taalgebruik van het spel is beladen met verwijzingen naar
grotonderzoek, zoals `gewelven' en `schachten'. Een `platte
steen kamer', bijvoorbeeld, is een heel oude grot waarvan het
plafond is begonnen af te brokkelen in scherpe schilfers die
in een vreemdsoortige berg op de grond verspreid liggen. Het
gebruik dat het programma van het woord `kamer' maakt voor
de meest uiteenlopende soorten grotten en ruimtes doet in
het dagelijks taalgebruik wellicht wat onzorgvuldig aan, ";
print "maar is wijdverbreid in het wereldje van grotonderzoekers en
gaat zeker zover terug als Stephen Bishop: het gebruik van
het woord `kamer' in de betekenis `ruimte' of `locatie' is
wellicht zelfs zijn erfenis.^^";
print "Het spel zette de beslissende stap naar het oplossen van
puzzels toen Don Woods, een student aan de Universiteit van
Stanford, de fouten uit het spel haalde, en het
uitbreidde. Hij verdrievoudigde het aantal schatten, en
voegde alle niet-geologische zones toe: alles vanaf de
Trollenbrug en verder, benevens de meeste voorkamertjes op
het Bedquilt niveau. Elk van de vele imitaties en
uitbreidingen van het originele Adventure zijn in essentie
gebaseerd op de 350-punten editie van Woods. (veel
opgeblazen, gecorrumpeerde of uitgebreide - het hangt er
vanaf hoe je het bekijkt - versies circuleren op het
internet, en de meest handige manier om ze te identificeren
is middels de hoogst bereikbare score. Er bestaan vele
versies met maximumscores van rond de 400 en 500, en een
enkele van 1000. Woods zelf brengt ook nog steeds regelmatig
nieuwe versies van zijn spel uit; de meeste anderen missen
zijn talent.)^^";
print "Alhoewel het spel zich weg van de pure simulatie heeft
ontwikkeld, is een groot deel ervan toch nog steeds
realistisch. Grotonderzoekers keren daadwerkelijk terug
wanneer hun carbidlampen flakkeren; er zijn inderdaad
mysterieuze merktekens en initialen te vinden op de muren
van de grot, sommige achtergelaten door arbeiders, anderen
door Bishop, en weer anderen door onderzoekers uit de jaren
1920. Er is natuurlijk geen actieve vulkaan in centraal
Kentucky, en evenmin zijn daar draken en dwergen. Maar
zelfs deze verfraai@:ingen zijn, in zekere zin, afgeleid ";
print "van tradities: zoals veel van de eerste rollenspellen heeft
`Adventure' veel te danken aan J. R. R. Tolkien's `The
Hobbit' en de doorgang door de bergen en Moria uit `The
Lord of the Rings' (volgens sommigen de meest dramatische
en atmospherische passage). Tolkien zelf, de meest
succesvolle mythe-maker van de twintigste eeuw, werkte naar
voorbeelden van IJslandse, Finse en Welshe sagen.^^";
print "In 1977 circuleerden overal tapes met `Adventure',
onder anderen dankzij de Digital gebruikersgroep DECUS: het
spel verslond lunchpauzes en weekends waar het ook maar
kwam... maar dat is een ander verhaal. (Tracy Kidder's
fantastische boek `De ziel van een nieuwe machine', de visie
van een journalist op een mainframe ontwikkelgroep, brengt
het goed onder woorden.)^^";
"dit is een kopie uit de derde of vierde hand: van Will Crowther's
origineel naar Donald Woods' 350-punten editie en via Donald
Ekman's PC-versie naar David M. Baggett's uitstekende TADS
versie (1993), naar deze mooie Inform-implementatie van Graham
Nelson, die ik weer in het Nederlands vertaald heb.^^";
}
if (menu_item==3)
{
print "Deze versie is behoorlijk trouw aan het origineel. De puzzels,
voorwerpen en plaatsen van Woods' oorspronkelijke 350-punten
versie zijn exact hetzelfde hier.^^";
print "Ik heb hier en daar een paar behulpzame mededelingen toegevoegd
zoals ~Dit is een doodlopende gang.~, en een aantal ~initiele
positie~ mededelingen van objecten, zoals het (nogal suffe)^
^ Hier ligt wat smakelijk voedsel.^^
van broncodebestanden die zeker oud zijn, doch niettemin van
bedenkelijk allooi. Ze lijken echter uitstekend bij de
verdere tekststijl te passen.^^";
print "Het scoresysteem is hetzelfde als het origineel, behalve dat
je niet langer 4 punten verliest als je het spel voortijdig
be@:eindigt (je krijgt de score namelijk toch niet te zien
wanneer je een Inform-spel be@:eindigt, dus dit maakt geen
enkel verschil) en, iets controversi@:eler, ik vergeef alvast
vijf punten voor het meedragen van een schat, zoals enkele
versies uit het begin van de jaren 1980 deden. De enige
significante verandering is dat men de magische woorden niet
kan gebruiken totdat hun bestemmingen bezocht zijn.^^";
print "De dwergen zijn wat eenvoudiger in hun bewegingen, maar aan de
andere kant heb ik weer enkele boodschappen toegevoegd
waardoor ze een betere interactie met de rest van het spel
hebben. De waarschijnlijkheden zijn hetzelfde als in het
oorspronkelijke spel.^^";
print "In het originele spel kan men de naam van een kamer typen om
deze te bezoeken: omwille van de bondigheid van de broncode
heb ik deze mogelijkheid achterwege gelaten, maar niet zonder
enige spijt.^^";
print "De tekst zelf is vrijwel overal intact gehandhaafd, maar ik
heb enkele spellings- en grammaticale fouten verbeterd (en
enkele totaal misleidende en welhaast magische opmerkingen
veranderd). De instructies zijn op enkele punten gewijzigd
(de redenen hiervoor lijken me duidelijk) maar zijn in
principe zoals ze geschreven waren.^^";
"Een goede bron voor details is de broncode van David Bagget,
welke op het internet beschikbaar is.";
}
print "Wist je dat...^^";
print "De vijf dwergen een kans van 96% hebben om je te volgen,
behalve naar het licht, de schachten in of wanneer ze zichzelf
bewonderen: en die gemene rotmesjes hebben een trefkans van
9.5%.^^";
print "De beer (die van de vulkaan houdt) is te zwaar voor de brug...
en je kunt terug gaan naar de plaats des onheils nadat je weer
tot leven gewekt bent.^^";
print "Je kunt langs de slang glippen het geheime Oost/West ravijn
in, althans in 35% van de gevallen. En in het donker rondlopen
is helemaal niet zo griezelig: je hebt slechts 25% kans in een
schacht te pletter te vallen.^^";
print "De vaas vindt het niet leuk om te worden ondergedompeld.^^";
print "Schaduwachtige figuren kunnen naar elkaar zwaaien.^^";
print "Water over de scharnieren van de deur gieten zorgt ervoor dat
ze weer vastroesten.^^";
print "Wanneer de grot sluit gaat het rooster op slot, en worden de
sleutels weggegooid. De schepsels rennen weg en de kristallen
brug verdwijnt...^^";
print "...en een compleet zinloze hint staat geschreven op de schelp
van de oester in het eindspel. (Om deze hint iets eerlijker te
maken, heb ik @'e@'en woord veranderd, en enkele suggesties
elders in het spel geplaatst.)^^";
"Dat laatste stomme punt kun je krijgen door... maar nee. Dan
zou ik teveel verklappen.";
];
[ HelpSub;
if (deadflag~=2)
DoMenu("Er is informatie beschikbaar over de volgende onderwerpen:^
^ Instructies voor het spelen
^ Een historische inleiding
^ Hoe authentiek is deze versie?^",
HelpMenu, HelpInfo);
else
DoMenu("Er is informatie beschikbaar over de volgende onderwerpen:^
^ Instructies voor het spelen
^ Een historische inleiding
^ Hoe authentiek is deze versie?
^ Wist je dat...^",
HelpMenu, HelpInfo);
];
[ Amusing; HelpSub(); ];
! ----------------------------------------------------------------------------
! New verbs (to add to the library stock)
! ----------------------------------------------------------------------------
if (feefie_count~=i) { feefie_count=0; "Doe het wel goed, kluns!"; }
if (feefie_count++ == 3)
{ feefie_count=0;
if (golden_eggs in In_Giant_Room) "Er gebeurt niets.";
if ((golden_eggs in player) || (golden_eggs in location))
print "Het nest gouden eieren is verdwenen!^";
else print "Gedaan!";
if (golden_eggs in player) score=score-5;
if (golden_eggs in Inside_Building)
score=score-golden_eggs.depositpoints;
move golden_eggs to In_Giant_Room;
if (location==In_Giant_Room)
"^^Plotseling verschijnt er vanuit het niets een nest vol
gouden eieren!";
}
else "Ok.";
];
[ CountSub;
if (noun has multitude) "Dat zijn er behoorlijk veel.";
"Ik zie @'e@'en (1) ", (name) noun, ".";
];
[ UseSub; "Je zult iets explicieter moeten zijn dan je nu bent."; ];
[ BlastWithSub;
if (second~=black_mark_rod) "Om iets op te blazen heb je dynamiet
nodig.";
"Heb je weer van die rare brownies gegeten?";
];
[ OldMagicSub; "Goede poging, maar dat is een oud, versleten toverwoord."; ];
[ KickSub; <<Attack noun>>; ]; ! For kicking dwarves
[ BlastSub;
if (location~=At_Sw_End or At_Ne_End) "Frustrerend, is het niet?";
if (location==At_Sw_End && parent(black_mark_rod)==At_Ne_End)
{ score=score+35;
deadflag=2;
"Er volgt een luide explosie en een zes meter groot gat verschijnt
in de muur aan de overkant, de dwergen begravend onder het
puin. Je loopt door het gat heen en komt terecht in het
hoofdkantoor, waar een juichende groep elfen de zegevierende
avonturier wegdragen, de zonsondergang tegemoet.";
}
if (location==At_Ne_End && parent(black_mark_rod)==At_Sw_End)
{ score=score+20;
deadflag=1;
"Er volgt een luide explosie, en een zes meter groot gat verschijnt
in de muur aan de overkant, de slangen begravend onder het
puin. Een rivier van gesmolten lava stroomt naar binnen door
het ontstane gat, en vernietigt alles op z'n pad, inclusief
jou!";
}
deadflag=1;
"Er volgt een luide explosie, en plotseling ben je uitgesmeerd over
alle wanden van de ruimte.";
];
[ AfterLife o;
if (deadflag==3) { deadflag=1; rfalse; }
print "^^";
if (caves_closed)
"Het ziet ernaar uit dat je dood bent. Nu ja, met het oog op het
feit dat het toch bijna sluitingstijd is, denk ik dat we er voor
vandaag maar een eind aan moeten maken.";
switch(deaths)
{ 0: print "Oh jee, het lijkt erop dat je jezelf de dood in hebt
gejaagd. Ik zou je misschien kunnen helpen, maar ik heb dat
eerlijk gezegd nooit eerder gedaan. Wil je dat ik probeer je
te re@:incarneren?^^";
1: print "Jij onhandige kluns! Je hebt het alweer voor elkaar! Ik
weet niet hoe lang ik dit vol kan houden. Wil je dat ik je
nog een keer probeer te re@:incarneren?^^";
2: print "Nu heb je het echt voor elkaar! Al m'n oranje rook is op!
Je verwacht toch zeker geen fatsoenlijke re@:incarnatie
zonder oranje rook, wel?^^";
}
print "> ";
if (YesOrNo() == false)
{ switch(deaths)
{ 0: "Uitstekend.";
1: "Waarschijnlijk een verstandige keuze.";
2: "Ik dacht het niet!";
}
}
switch(deaths)
{ 0: print "Goed dan. Maar het is niet mijn schuld als er iets
fout g......^^^^
--- POEF!! ---^^
Je wordt overspoeld door een dichte wolk oranje rook.
Hoestend en proestend kom je uit de rok tevoorschijn en
je ziet dat je....^";
1: print "Ok, waar heb ik mijn oranje rook ook al weer
gelaten?.... >POEF!<
^^Alles verdwijnt in een dichte wolk van oranje rook.^";
2: "Ok, als je dan zo slim bent, doe het dan maar lekker zelf!
Ik ga er vandoor!";
}
deaths++; score=score-10;
if (location~=thedark)
{ while (child(player) ~= nothing)
{ o=child(player);
move o to location;
if (o ofclass Treasure) score=score-5;
}
}
else
{ while (child(player) ~= nothing)
{ o=child(player);
move o to real_location;
if (o ofclass Treasure) score=score-5;
}
}
move brass_lantern to At_End_Of_Road; give brass_lantern ~on ~light;
remove dwarf;
deadflag=0;
PlayerTo(Inside_Building);
];
! ----------------------------------------------------------------------------
! How to cheat in the test version: no dwarves or pirates, and magic words
! working from the beginning
! ----------------------------------------------------------------------------
#IFDEF TEST_VERSION;
[ XdetermSub; StopDaemon(dwarf); StopDaemon(pirate);
give In_Debris_Room visited; give At_Y2 visited; give In_Plover_Room visited;
];
#ENDIF;
! ----------------------------------------------------------------------------
! Grammar: the usual grammar and some extensions
! ----------------------------------------------------------------------------