!% +language_name=Swedish !% -s~S ! !% -sSD ! Dessa är de flaggor som bör användas tillsammans med konstanten TEST_VERSION ! Denna källkod är avsedd att kompileras med Inform 6.31, bibliotek 6/11, Swedish Inform v1.5. ! ------------------------------------------------------------------------------ ! Äventyr - Ett klassiskt spel och ett typexempel på spel i Inform 6 ! ! Översatt från engelska Advent.inf, Serial 060321, release 9 ! ------------------------------------------------------------------------------ Include "SweAlpha"; ! Constant TEST_VERSION; Constant Story "ÄVENTYR"; Constant Headline "^Det Interaktiva Originalet^ Av Will Crowther (1976) och Don Woods (1977)^ Rekonstruerat i tre steg av:^ Donald Ekman, David M. Baggett (1993) och Graham Nelson (1994)^ Release 9 av den engelska versionen översatt till svenska av Fredrik Ramsberg (2007)^ [In memoriam Stephen Bishop (1820?-1857): GN]^^"; Serial "071029"; Release 1; ! Äventyrs IFID -- see http://babel.ifarchive.org/ Array UUID_ARRAY string "UUID://78B5816F-2F79-CE0B-633D-6D95EC06154E//"; #Ifdef UUID_ARRAY; #Endif; Constant MANUAL_PRONOUNS; Constant AMUSING_PROVIDED; Constant MAX_CARRIED = 7; Constant MAX_SCORE = 350; Constant MAX_TREASURES = 15; #Ifdef TEST_VERSION; !!! ! Sist i koden byts random ut mot en version som kan ge förutsägbara resultat Replace random; !!! #Endif; !!! Include "Parser"; Include "VerbLib"; Include "SweRout"; Attribute nodwarf; ! Dvärgar kan inte gå till detta rum Attribute treasure_found; ! Skatt-objekt har hittats Attribute multitude; ! Används endast av RÄKNA Global caves_closed; ! Har värdet true när grottan stängs Global canyon_from; ! Ravin att återvända till Global treasures_found; ! Antal hittade skatter Global deaths; ! Antal dödsfall/återuppväckningar Global dark_warning; ! Har värdet true efter varning om mörka hål Global feefie_count; ! fee/fie/foe/foo sekvens ! ------------------------------------------------------------------------------ ! Regler för skatter som ska spridas över hela spelet ! ------------------------------------------------------------------------------ Class Treasure with 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; } SetGender(self); ! Se till att objektet har ett genus if(self has pluralname) "Tagna!"; if(self has neuter) "Taget!"; "Tagen!"; Insert: score = score - 5; ! (in case put inside the wicker cage) Drop: score = score - 5; if (location == Inside_Building) { score = score + self.depositpoints; SetGender(self); ! Se till att objektet har ett genus print "Deponera"; if(self has pluralname) print "de"; else if(self has neuter) print "t"; else print "d"; " i säkert förvar."; } ], depositpoints 10; ! ------------------------------------------------------------------------------ ! Utomhusvärlden ! ------------------------------------------------------------------------------ Class Room; Class Aboveground class Room has light nodwarf; Class Scenic has scenery; Aboveground At_End_Of_Road "Vid slutet av en väg" with teleport_to 'kulle' 'kullen' At_Hill_In_Road 'byggnad' 'byggnaden' 'hus' 'huset' 'brunnshus' 'tegelbyggnad' Inside_Building 'nedströms' 'nerströms' 'kanjon' 'kanjonen' 'bäck' 'bäcken' 'dal' 'dalen' 'dalgång' 'dalgången' In_A_Valley 'skog' 'skogen' In_Forest_1 'galler' 'gallret' 'stålgaller' 'stålgallret' 'grop' 'gropen' Outside_Grate, description "Du står vid slutet av en väg framför en liten tegelbyggnad. Runt dig är en skog. En bäck rinner ut ur byggnaden och fortsätter ner i en dalgång.", 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; Scenic "brunnshus" with name 'brunnshus' 'brunnshuset' 'hus' 'huset' 'tegelbyggnad' 'tegelbyggnaden' 'byggnad' 'byggnaden' 'liten' 'litet' 'lilla', short_name_def "brunnshuset", description "Det är en liten tegelbyggnad. Det verkar vara ett brunnshus.", found_in At_End_Of_Road At_Hill_In_Road Inside_Building, before [; Enter: if (location == At_Hill_In_Road && Inside_Building hasnt visited) "Det är för långt bort."; <>; ], has neuter; Scenic Stream "bäck" with name 'bäck' 'bäcken' 'vatten' 'vattnet' 'å//' 'ån' 'flod' 'floden' 'sjö' 'sjön' 'liten' 'litet' 'lilla' 'plaskande' 'strömmande' 'reservoar' 'reservoaren' 'fors' 'forsen', short_name_def "bäcken", 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: "Du drack från bäcken. Vattnet smakar starkt av mineraler, men är inte alls oangenämt. Det är extremt kallt."; Take: if (bottle notin player) "Du har inget att bära vattnet i."; <>; Insert: if (second == bottle) <>; "Du har inget att bära vattnet i."; Receive: if (noun == ming_vase) { remove ming_vase; move shards to location; score = score - 5; "Den plötsliga temperaturväxlingen spräckte elegant vasen."; } if (noun == bottle) <>; remove noun; if (noun ofclass Treasure) score = score - 5; "Bäcken sköljer bort ", (the) noun, "."; ]; Scenic "väg" with name 'väg' 'vägen' 'gata' 'gatan' 'stig' 'stigen' 'grus' 'gruset' 'grusväg' 'grusvägen', description "Det är en grusväg, ingen paradgata direkt.", short_name_def "vägen", found_in At_End_Of_Road At_Hill_In_Road In_Forest_2; Scenic "skog" ! Tvingades dela upp name-arrayen i två delar för att den blev för stor. ! Lade till en parse_name som tar hänsyn till båda arrayerna with name 'skog' 'skogen' 'träd' 'träden' 'trädet' 'ek' 'eken' 'ekar' 'ekarna' 'asp' 'aspen' 'aspar' 'asparna' 'dunge' 'dungen' 'dungar' 'dungarna' 'tall' 'tallen' 'tallar' 'tallarna' 'små' 'lilla' 'gran' 'granen' 'granar' 'granarna', name2 'björk' 'björken' 'björkar' 'björkarna' 'ask' 'asken' 'askar' 'askarna' 'skott' 'skotten' 'skottet' 'buske' 'busken' 'buskar' 'buskarna' 'löv' 'löven' 'bärbuske' 'bärbusken' 'bärbuskar' 'bärbuskarna' 'smågran' 'smågranen' 'smågranar' 'smågranarna', parse_name [ wd num; wd = NextWord(); while (WordInProperty(wd, self, name) || WordInProperty(wd, self, name2)) { num++; wd = NextWord(); } return num; ], short_name_def "skogen", description "Skogen består mest av stora ekar och aspar, med en och annan dunge med tall eller gran. Det finns en hel del undervegetation, mestadels skott av björk och asp samt olika typer av buskar. Vid den här tiden på året är sikten ganska begränsad av alla löv, men det är lätt att förflytta sig om man bara rundar smågranarna och bärbuskarna.", found_in At_End_Of_Road At_Hill_In_Road In_A_Valley In_Forest_1 In_Forest_2, has multitude; ! ------------------------------------------------------------------------------ Aboveground At_Hill_In_Road "På en kulle på vägen" with teleport_to 'väg' 'vägen' 'kulle' 'kullen' 'framåt' 'fortsätt' At_End_Of_Road 'skog' 'skogen' In_Forest_1, description "Du har gått uppför en kulle i skogen. Vägen leder tillbaka nerför sluttningen på andra sidan kullen. Längre bort står en byggnad.", e_to At_End_Of_Road, n_to At_End_Of_Road, d_to At_End_Of_Road, s_to In_Forest_1; Scenic -> "kulle" with name 'kulle' 'kullen' 'höjd' 'höjden' 'krön' 'krönet' 'sluttning' 'sluttningen', short_name_def "kullen", description "Det är bara en vanlig kulle."; Scenic -> "andra sidan kullen" with name 'andra' 'sidan' 'av' 'kullen', short_name_def "andra sidan kullen", articles "den", description "Varför inte gå och se efter själv?", has def_article; ! ------------------------------------------------------------------------------ Aboveground Inside_Building "Inuti byggnad" with teleport_to 'utsidan' At_End_Of_Road, description "Du är i en byggnad, ett brunnshus för en stor källa.", cant_go "Vattnet rinner ut genom ett par avloppsrör, ca 30 centimeter i diameter. Den enda utgången är åt väst.", before [; Enter: if (noun == Spring or SewerPipes) "Vattnet rinner ut genom ett par avloppsrör, ca 30 centimeter i diameter. Det vore klokt att använda dörröppningen i den västra väggen."; 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 "Rören är för små."; Scenic -> Spring "källa" with name 'källa' 'källan' 'stor' 'stora', short_name_def "källan", description "Vattnet rinner ut genom ett par avloppsrör, ca 30 centimeter i diameter."; Scenic -> SewerPipes "avloppsrör" with name 'par' 'avloppsrör' 'avloppsrören' 'avloppsröret' 'rör' 'rören' 'röret', short_name_def "avloppsrören", articles 0 0 "ett par", description "För små. Den enda utgången är åt väst.", has neuter pluralname; Object -> set_of_keys "nyckelknippa" with name 'nycklar' 'nycklarna' 'nyckel' 'nyckeln' 'nyckelknippa' 'nyckelknippan' 'knippa' 'knippan', short_name_def "nyckelknippan", description "Det är bara en helt vanlig nyckelknippa.", initial "Det ligger en nyckelknippa på marken här.", before [; Count: "Ett dussin nycklar eller så."; ]; Object -> tasty_food "god mat" with name 'mat' 'maten' 'portion' 'portionen' 'läcker' 'läckra' 'god' 'goda' 'jättegod' 'jättegoda', short_name_def "goda maten", articles "Den" "den" 0, description "Ser verkligen gott ut!", initial "Det finns god mat här.", after [; Eat: "Jättegott!"; ], has edible; Object -> brass_lantern "mässingslampa" with name 'lampa' 'lampan' 'lykta' 'lyktan' 'pannlampa' 'pannlampan' 'mässingslykta' 'mässingslyktan' 'mässingslampa' 'mässingslampan' 'mässinglykta' 'mässinglyktan' 'mässinglampa' 'mässinglampan' 'ljus' 'ljuset' 'blank' 'blanka' 'blänkande' 'glänsande', short_name_def "mässingslampan", when_off "Det finns en blank mässingslampa här.", when_on [; print "Din lampa är här, och den ger ett "; if (self.power_remaining < 30) print "svagt"; else print "starkt"; " ljus ifrån sig."; ], 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 "Din lampas batterier tar slut."; if (fresh_batteries notin player && location hasnt light) { deadflag = 3; " Du kan inte utforska grottor utan lampa. Därmed verkar ditt äventyr vara över."; } else self.replace_batteries(); new_line; rtrue; } if (t == 30) { print "Skenet från din lampa börjar bli svagare."; if (fresh_batteries.have_been_used) " Du har dessutom slut på reservbatterier. Det är nog dags att tänka på refrängen."; if (fresh_batteries in VendingMachine && Dead_End_14 has visited) " Det är nog dags att tänka på refrängen, om du nu inte kan hitta nya batterier någonstans. Jag har för mig att det finns en varuautomat i labyrinten. Ta med lite mynt."; if (fresh_batteries notin VendingMachine or player or location) " Det är nog bäst att du hämtar de där batterierna."; new_line; rtrue; } } ], before [; Examine: print "Det är en blänkade mässingslampa"; if (self hasnt on) ". Den är för tillfället avstängd."; if (self.power_remaining < 30) " som ger ifrån sig ett svagt sken."; " som ger ifrån sig ett starkt sken."; Burn: <>; Rub: "Att gnida den elektriska lampan ger inte så mycket. Inget speciellt händer i alla fall."; SwitchOn: if (self.power_remaining <= 0) "Tyvärr verkar batterierna vara helt slut."; Receive: if (noun == old_batteries) "De där batterierna är slut - de skulle inte göra någon som helst nytta."; if (noun == fresh_batteries) { self.replace_batteries(); rtrue; } "Det enda du kan sätta in i lampan är ett par nya batterier."; ], after [; SwitchOn: give self light; StartDaemon(self); SwitchOff: give self ~light; ], replace_batteries [; if (fresh_batteries in player or location) { remove fresh_batteries; fresh_batteries.have_been_used = true; move old_batteries to location; self.power_remaining = 2500; "Jag tar mig friheten att byta ut batterierna."; } ], power_remaining 330, has switchable; Object -> bottle "liten flaska" with name 'flaska' 'flaskan' 'burk' 'burken' 'liten' 'lilla', short_name_def "lilla flaskan", initial "Det ligger en tom flaska här.", before [; LetGo: if (noun in bottle) "Du har redan ", (DenEllerHonom) noun, " (i flaskan)."; Receive: if (noun == stream or Oil) <>; else "Flaskan är bara gjord för att innehålla vätskor."; Fill: if (child(bottle) ~= nothing) "Flaskan är redan full."; if (stream in location || Spring in location) { move water_in_the_bottle to bottle; "Flaskan är nu full av vatten."; } if (Oil in location) { move oil_in_the_bottle to bottle; "Flaskan är nu full av olja."; } "Det finns inget att fylla flaskan med här."; Empty: if (child(bottle) == nothing) "Flaskan är redan tom!"; remove child(bottle); "Din flaska är nu tom och marken är nu blöt."; ], has def_article container open; Object water_in_the_bottle "vatten i flaskan" with name 'vatten' 'vattnet' 'på' 'i//' 'flaska' 'flaskan' 'flaskvatten' 'flaskvattnet' 'h2o', short_name_def "vattnet i flaskan", description "Jag tycker det ser ut som vanligt vatten.", before [; Drink: remove water_in_the_bottle; <>; ], has proper neuter; Object oil_in_the_bottle "olja i flaskan" with name 'olja' 'oljan' 'på' 'i//' 'flaska' 'flaskan' 'flaskolja' 'flaskoljan' 'smörjmedel' 'smörjmedlet' 'fett' 'fettet', short_name_def "oljan i flaskan", description "Jag tycker det ser ut som vanlig olja.", before [; Drink: <>; ], has proper; ! ------------------------------------------------------------------------------ Aboveground In_Forest_1 "I skogen" with teleport_to 'dal' 'dalen' 'dalgång' 'dalgången' In_A_Valley, description "Du är i en gles skog, med en djup dalgång på ena sidan.", 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 "I skogen" with teleport_to 'kulle' 'kullen' 'väg' 'vägen' At_End_Of_Road 'dal' 'dalen' 'dalgång' 'dalgången' In_A_Valley, description "Du är i en gles skog, nära både en dalgång och en väg.", 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 "I en dalgång" with teleport_to 'uppströms' 'byggnad' 'byggnaden' 'hus' 'huset' 'brunnshus' 'tegelbyggnad' At_End_Of_Road 'skog' 'skogen' In_Forest_1 'nedströms' 'nerströms' At_Slit_In_Streambed 'grop' 'gropen' 'galler' 'gallret' 'stålgaller' 'stålgallret' Outside_Grate, description "Du är i en dalgång i skogen, bredvid en bäck som forsar fram över en stenig botten.", 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; Scenic -> "botten" with name 'stenig' 'steniga' 'botten' 'bottnen' 'bäckens' 'bäckfåra' 'bäckfåran' 'fåra' 'fåran' 'bäckbotten' 'stenbotten' 'stenbottnen' 'kal' 'torr' 'torra' 'torkad' 'torkade' 'uttorkad' 'uttorkade' 'klippa' 'klippan', short_name_def "bottnen"; ! ------------------------------------------------------------------------------ Aboveground At_Slit_In_Streambed "Vid en spricka i botten" with teleport_to 'byggnad' 'byggnaden' 'hus' 'huset' 'brunnshus' 'tegelbyggnad' At_End_Of_Road 'uppströms' In_A_Valley 'skog' 'skogen' In_Forest_1 'nedströms' 'nerströms' 'torr' 'torra' 'klippa' 'klippan' 'bäckfåra' 'bäckfåran' 'galler' 'gallret' 'stålgaller' 'stålgallret' 'grop' 'gropen' Outside_Grate, description "Vid dina fötter forsar allt vatten ner genom en fem centimeter bred spricka i klippan under. Nedströms består bäckfåran bara av torr klippa.", n_to In_A_Valley, e_to In_Forest_1, w_to In_Forest_1, s_to Outside_Grate, d_to "Du kommer inte igenom en fem centimeter bred spricka!", in_to "Du kommer inte igenom en fem centimeter bred spricka!"; Scenic -> "spricka" with name 'spricka' 'sprickan' 'fem' 'cm' 'centimeter' 'halvdecimeter' 'bred', short_name_def "sprickan", description "Det är bara en spricka i klippan, och ner genom den rinner bäcken.", before [; Enter: "Du kommer inte igenom en fem centimeter bred spricka!"; ]; ! ------------------------------------------------------------------------------ Aboveground Outside_Grate "Utanför gallret" with teleport_to 'byggnad' 'byggnaden' 'hus' 'huset' 'brunnshus' 'tegelbyggnad' At_End_Of_Road 'uppströms' At_Slit_In_Streambed 'skog' 'skogen' In_Forest_1, description "Du står i en fem meter djup grop med bara jord till golv. I jorden sitter ett starkt stålgaller infattat i betong. En uttorkad bäckfåra leder ner i gropen.", 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 "(öppnar först gallret)^"; give Grate open; } return Grate; ]; Scenic -> "fem meter djup grop" with name 'grop' 'gropen' 'jord' 'jorden' 'jordig' 'fem' 'm//' 'meter' 'djup' 'djupa' 'grop' 'gropen', short_name_def "fem meter djupa gropen", description "Du står i den.", has def_article; Object -> Grate "stålgaller" with name 'stål' 'stålet' 'av' 'galler' 'gallret' 'stålgaller' 'stålgallret' 'lås' 'låset' 'metall' 'metallen' 'metallgaller' 'metallgallret' 'stark' 'starkt' 'starka' 'lucka' 'luckan' 'stållucka' 'stålluckan', short_name_def "stålgallret", description "Det ser bara ut som ett vanligt galler infattat i betong.", 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) "^Gallret är öppet."; if (self hasnt locked) "^Gallret är olåst men stängt."; rtrue; ], found_in Below_The_Grate Outside_Grate, has neuter static door openable lockable locked; ! ------------------------------------------------------------------------------ ! Facilis descensus Averno... ! ------------------------------------------------------------------------------ Room Below_The_Grate "Under gallret" with teleport_to 'småsten' 'småstensgången' 'låg' 'låga' 'gång' 'gången' 'tunnel' 'tunneln' 'kryp' In_Cobble_Crawl 'litet' 'lilla' 'hål' 'hålet' At_Top_Of_Small_Pit 'skräp' 'skräpet' 'skräprum' 'skräprummet' In_Debris_Room, description "Du är i en liten kammare under ett meterbrett stålgaller upp mot ytan. Västerut kan du krypa in i en låg gång med småsten till golv.", w_to In_Cobble_Crawl, in_to In_Cobble_Crawl, u_to Grate, has light; Scenic "småsten" with name 'småsten' 'småstenen' 'småstenar' 'småstenarna' 'sten' 'stenen' 'stenar' 'stenarna' 'de' 'små' 'lilla', short_name_def "småstenen", description "Det är bara vanlig småsten.", found_in In_Cobble_Crawl In_Debris_Room Below_The_Grate, has multitude pluralname proper; ! ------------------------------------------------------------------------------ Room In_Cobble_Crawl "I småstensgången" with teleport_to 'ytan' 'yta' 'ingenstans' 'ingång' 'ingången' Below_The_Grate 'litet' 'lilla' 'hål' 'hålet' At_Top_Of_Small_Pit 'skräp' 'skräpet' 'skräprum' 'skräprummet' In_Debris_Room, description "Du kryper över småsten i en låg gång. Det kommer in ett svagt ljus i gångens östra ände.", e_to Below_The_Grate, out_to Below_The_Grate, w_to In_Debris_Room, in_to In_Debris_Room, has light; Object -> wicker_cage "flätad bur" with name 'bur' 'buren' 'liten' 'lilla' 'flätad' 'flätade' 'av' 'vidja' 'vidjan' 'vidjor' 'vidjorna', short_name_def "flätade buren", description "Det är en liten bur, flätad av vidjor.", initial "En liten flätad bur ligger slängd i närheten.", after [; Open: if (little_bird notin self) rfalse; print "(släpper ut ", (the) little_bird, ")^"; <>; ], has def_article container open openable transparent; ! ------------------------------------------------------------------------------ Room In_Debris_Room "I skräprummet" with teleport_to 'ytan' 'yta' 'ingång' 'ingången' Below_The_Grate 'småsten' 'småstensgången' 'låg' 'låga' 'gång' 'gången' 'tunnel' 'tunneln' 'kryp' In_Cobble_Crawl 'trång' 'trånga' 'ravin' 'ravinen' In_Awkward_Sloping_E_W_Canyon 'litet' 'lilla' 'hål' 'hålet' At_Top_Of_Small_Pit, description "Du är i ett skräprum fyllt med grejer som sköljts in från ytan. En låg bred gång med småsten blir här helt igensatt av gyttja och skräp, men en trång ravin leder uppåt och västerut. ^^ På väggen står antecknat: ~Magiskt ord XYZZY.~", e_to In_Cobble_Crawl, u_to In_Awkward_Sloping_E_W_Canyon, in_to In_Awkward_Sloping_E_W_Canyon, w_to In_Awkward_Sloping_E_W_Canyon, before [; Xyzzy: PlayerTo(Inside_Building); rtrue; ], has nodwarf; Scenic -> "skräp" with name 'skräp' 'skräpet' 'grej' 'grejen' 'grejer' 'grejor' 'pryl' 'prylen' 'prylar' 'dy' 'dyn' 'gyttja' 'gyttjan', short_name_def "skräpet", description "Usch.", has neuter proper; Scenic -> "anteckning" with name 'anteckning' 'anteckningen', short_name_def "anteckningen", description "Anteckningen lyder: ~Magiskt ord XYZZY~."; Object -> black_rod "svart stav med en rostig stjärna i änden" with name 'svart' 'svarta' 'stav' 'staven' 'med' 'en' 'den' 'rostig' 'rostiga' 'stjärna' 'stjärnan' 'järnstjärna' 'järnstjärnan' 'i//' 'änden' 'meterlång' 'meterlånga', short_name_def "svarta staven med en rostig stjärna i änden", description "Det är en meterlång svart stav med en rostig stjärna i ena änden.", initial "En meterlång svart stav med en rostig stjärna i ena änden ligger i närheten.", before [; Wave: if (location == West_Side_Of_Fissure or On_East_Bank_Of_Fissure) { if (caves_closed) "Märkligt. Inget händer."; if (CrystalBridge notin nothing) { remove CrystalBridge; give CrystalBridge absent; West_Side_Of_Fissure.e_to = nothing; On_East_Bank_Of_Fissure.w_to = nothing; "Kristallbron har försvunnit!"; } else { move CrystalBridge to location; give CrystalBridge ~absent; West_Side_Of_Fissure.e_to = CrystalBridge; On_East_Bank_Of_Fissure.w_to = CrystalBridge; "En kristallbro spänner nu över gapet."; } } "Inget händer."; ], has def_article; ! ------------------------------------------------------------------------------ Room In_Awkward_Sloping_E_W_Canyon "Sluttande Ö/V-ravin" with teleport_to 'ytan' 'yta' 'ingång' 'ingången' Below_The_Grate 'skräp' 'skräpet' 'skräprum' 'skräprummet' In_Debris_Room 'litet' 'lilla' 'hål' 'hålet' At_Top_Of_Small_Pit, description "Du är i en trång sluttande öst/väst-ravin.", d_to In_Debris_Room, e_to In_Debris_Room, u_to In_Bird_Chamber, w_to In_Bird_Chamber, has nodwarf; ! ------------------------------------------------------------------------------ ! Den lilla fågeln i sitt naturliga habitat ! ------------------------------------------------------------------------------ Room In_Bird_Chamber "Oranga flodkammaren" with teleport_to 'ytan' 'yta' 'ingång' 'ingången' Below_The_Grate 'skräp' 'skräpet' 'skräprum' 'skräprummet' In_Debris_Room 'trång' 'trånga' 'ravin' 'ravinen' In_Awkward_Sloping_E_W_Canyon 'litet' 'lilla' 'hål' 'hålet' 'bra' 'gång' 'gången' At_Top_Of_Small_Pit, description "Du är i en fantastisk kammare, tio meter hög. Väggarna är frusna floder av orange sten. En trång ravin och en bra gång leder ut från östra och västra sidorna av kammaren.", e_to In_Awkward_Sloping_E_W_Canyon, w_to At_Top_Of_Small_Pit, has nodwarf; Object -> little_bird "liten fågel" with name 'munter' 'muntra' 'glad' 'glada' 'sorgsen' 'sorgsna' 'ledsen' 'ledsna' 'lilla' 'liten' 'fågel' 'fågeln', short_name_def "lilla fågeln", initial "En munter liten fågel sitter och sjunger här.", before [; Examine: if (self in wicker_cage) "Den lilla fågeln ser olycklig ut i buren."; "Den muntra lilla fågeln sitter här och sjunger."; Insert: if (second == wicker_cage) <>; else "Sätt inte fågeln i ", (the) second, "!"; Drop, Remove: if (self in wicker_cage) { print "(Fågeln slipper ut från buren.)^^"; <>; } Take, Catch: if (self in wicker_cage) "Du har redan den lilla fågeln. Om du tar ut den ur buren kommer den troligen flyga iväg från dig."; if (wicker_cage notin player) "Du kan fånga fågeln, men du kan inte bära den med dig."; if (black_rod in player) "Fågeln var orädd när du kom in, men när du närmar dig blir den störd och du kan inte fånga den."; move self to wicker_cage; give wicker_cage ~open; "Du fångar fågeln i den flätade buren."; Release: if (self notin wicker_cage) "Fågeln sitter inte i någon bur."; give wicker_cage open; move self to location; if (Snake in location) { remove Snake; "Den lilla fågeln attackerar den gröna ormen, och förvånansvärt snabbt tvingar den bort ormen."; } if (Dragon in location) { remove self; "Den lilla fågeln attackerar den gröna draken, och förvånansvärt snabbt bränns den till en kolbit. Askan blåser bort."; } "Den lilla fågeln flaxar ut i friheten."; ], life [; Give: "Den är inte hungrig. (Den bara längtar efter fjordarna). Dessutom misstänker jag att den skulle föredra fågelfrö."; Order, Ask, Answer: "Kvitter! Kviddevitt!"; Attack: if (self in wicker_cage) "Nej, lämna den stackars olyckliga fågeln i fred."; remove self; "Den lilla fågeln är nu död. Dess kropp försvinner."; ], has def_article animate; ! ------------------------------------------------------------------------------ Room At_Top_Of_Small_Pit "Ovanför ett litet hål" with teleport_to 'ytan' 'yta' 'ingång' 'ingången' Below_The_Grate 'skräp' 'skräpet' 'skräprum' 'skräprummet' In_Debris_Room 'gång' 'gången' In_Bird_Chamber, description "Vid dina fötter finns ett litet hål som andas ut spår av vit dimma. En västlig gång slutar här föruom en liten spricka som fortsätter. ^^ Grova trappsteg av sten leder ner i hålet.", e_to In_Bird_Chamber, w_to "Sprickan är alltför liten för att du ska kunna komma igenom den.", d_to [; if (large_gold_nugget in player) { deadflag = 1; "Du är på hålets botten med en bruten nacke."; } return In_Hall_Of_Mists; ], before [; Enter: if (noun == PitCrack) "Sprickan är alltför liten för att du ska kunna komma igenom den."; ], has nodwarf; Scenic -> "litet hål" with name 'litet' 'lilla' 'hål' 'hålet', short_name_def "lilla hålet", description "Hålet andas ut spår av vit dimma.", has def_article neuter; Scenic -> PitCrack "spricka" with name 'spricka' 'sprickan' 'liten' 'lilla' 'trång' 'trånga', short_name_def "sprickan", description "Sprickan är väldigt liten -- alldeles för liten för att du ska kunna komma igenom den."; Scenic "dimma" with name 'dimma' 'dimman' 'ånga' 'ångan' 'vit' 'vita' 'slöja' 'slöjan' 'slöjor' 'slöjorna' 'dimslöja' 'dimslöjan' 'dimslöjor' 'dimslöjorna', short_name_def "dimman", description "Dimma är en vit ånga, vanligen av vatten, som man ser ibland i grottor. Den kan dyka upp var som helst men är ofta ett tecken på ett djupt hål som leder ner till vatten.", 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; ! ------------------------------------------------------------------------------ ! Grottorna öppnar sig: Dimmornas Sal ! ------------------------------------------------------------------------------ Room In_Hall_Of_Mists "I Dimmornas Sal" with teleport_to 'vänster' In_Nugget_Of_Gold_Room 'framåt' 'fortsätt' 'sal' 'salen' On_East_Bank_Of_Fissure 'trappa' 'trappan' 'stentrappa' 'bergakungens' 'sal' In_Hall_Of_Mt_King 'y2' At_Y2, description "Du är i ena änden av en enorm sal som sträcker sig framåt så långt ögat når åt väst. Det finns öppningar åt båda hållen. En bred stentrappa leder neråt. Salen är fylld av vita dimslöjor som svajar fram och tillbaka nästan som om de vore levande. En kall vind blåser uppför trappan. Det finns en gång vid toppen av ett schakt bakom dig. ^^ Grova trappsteg av sten leder upp genom schaktet.", initial [; if (self has visited) rfalse; score = score + 25; ], 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) "Du kan inte klättra upp på kupolen."; return At_Top_Of_Small_Pit; ]; Scenic -> "bred stentrappa" with name 'bred' 'breda' 'trappa' 'trappan' 'stentrappa' 'stentrappan', short_name_def "breda stentrappan", description "Trappan leder neråt." has def_article; Scenic -> "grova trappsteg av sten" with name 'grov' 'grovt' 'grova' 'steg' 'steget' 'stegen' 'trappsteg' 'trappsteget' 'trappstegen' 'av' 'sten' 'stentrappa' 'stentrappan' 'stentrappsteg' 'stentrappsteget' 'stentrappstegen', short_name_def "grova trappstegen av sten", articles "De" "de" 0, description "De grova trappstegen leder upp genom schaktet.", has def_article pluralname multitude; Scenic -> "schakt" with name 'schakt' 'schaktet', short_name_def "schaktet", before [; Examine: if (large_gold_nugget in player) "Jag är inte säker på att du kan komma upp med det du har med dig."; "Det ser ut som att du kanske kan klättra upp genom det."; Climb: MovePlayer(u_obj); rtrue; ], has neuter; ! ------------------------------------------------------------------------------ Room In_Nugget_Of_Gold_Room "Lågt rum" with teleport_to 'sal' 'salen' 'dimmornas' In_Hall_Of_Mists, description "Det här är ett lågt rum med ett meddelande slarvigt skrivet på väggen: ^^ ~Du kommer inte få upp den för trappan~.", n_to In_Hall_Of_Mists, out_to In_Hall_Of_Mists; Scenic -> "meddelande" with name 'meddelande' 'meddelandet' 'slarvigt' 'slarviga' 'skrivet' 'skrivna', short_name_def "meddelandet", description "Meddelandet lyder ~Du kommer inte få upp den för trappan~.", has neuter; Treasure -> large_gold_nugget "stor guldklimp" with name 'guld' 'guldet' 'klimp' 'klimpen' 'guldklimp' 'guldklimpen' 'stor' 'stora' 'tung' 'tunga', short_name_def "stora guldklimpen", description "Det är en stor glimmande guldklimp!", initial "Det ligger en stor glimmande guldklimp här!" has def_article; ! ------------------------------------------------------------------------------ Class FissureRoom class Room with before [; Jump: if (CrystalBridge hasnt absent) "Jag vill nog ändå föreslå att du går över bron istället för att hoppa."; deadflag = 1; "Du klarade det inte."; ], d_to "Klyftan är alltför skrämmande!"; FissureRoom On_East_Bank_Of_Fissure "På östra sidan av klyftan" with teleport_to 'sal' 'salen' 'dimmornas' In_Hall_Of_Mists, description "Du är på östra sidan av en klyfta som går tvärs över hela salen. Dimman är väldigt tjock här, och klyftan är för bred att hoppa över.", e_to In_Hall_Of_Mists, w_to "Klyftan är för bred."; FissureRoom West_Side_Of_Fissure "Västra sidan av klyftan" with description "Du är på västra sidan av klyftan i Dimmornas Sal.", w_to At_West_End_Of_Hall_Of_Mists, e_to "Klyftan är för bred.", n_to At_West_End_Of_Hall_Of_Mists, before [; Go: if (location == West_Side_Of_Fissure && noun == n_obj) print "Du har ålat genom en mycket låg, bred gång, parallell med och norr om Dimmornas Sal.^"; ]; Treasure -> "diamanter" with name 'diamant' 'diamanten' 'diamanter' 'diamanterna' 'flera' 'av' 'hög' 'högsta' 'kvalitet', short_name_def "diamanterna", articles 0 0 "några", description "De ser ut att vara av högsta kvalitet!", initial "Det finns diamanter här!", has pluralname multitude; Object CrystalBridge "kristallbro" with name 'kristallbro' 'kristallbron' 'bro' 'bron' 'av' 'kristall', short_name_def "kristallbron", description "Den sträcker sig över klyftan, och ger dig därmed en väg över.", initial "En kristallbro sträcker sig nu över klyftan.", 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; ], found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure, has static door open absent; Scenic "klyfta" with name 'bred' 'breda' 'klyfta' 'klyftan', short_name_def "klyftan", description "Klyftan ser alldeles för bred ut för att man ska kunna hoppa över den.", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure; ! ------------------------------------------------------------------------------ Room At_West_End_Of_Hall_Of_Mists "I västra änden av Dimmornas Sal" with teleport_to 'liten' 'lilla' Alike_Maze_1 'låg' 'bred' 'kryp' At_East_End_Of_Long_Hall, description "Du är i västra änden av Dimmornas Sal. En låg, bred gång med kryphöjd fortsätter västerut och en annan går norrut. Söderut finns en liten gång knappt två meter över golvet.", 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 "Du har krupit genom en mycket låg, bred gång parallell med och norr om Dimmornas Sal.^"; ]; ! ------------------------------------------------------------------------------ ! Långa Salen väster om Dimmornas Sal ! ------------------------------------------------------------------------------ Room At_East_End_Of_Long_Hall "I östra änden av Långa Salen" with teleport_to 'kryp' 'låg' 'låga' 'bred' 'breda' 'gång' 'gången' At_West_End_Of_Hall_Of_Mists 'runt' 'runda' 'halvmetersbrett' 'hål' 'hålet' Crossover, description "Du är i östra änden av en mycket lång sal som tycks sakna sidokammare. Österut ligger en låg bred gång som sluttar uppåt. Norrut ligger ett runt halvmeterbrett hål som sluttar neråt.", 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; ! ------------------------------------------------------------------------------ Room At_West_End_Of_Long_Hall "I västra änden av Långa Salen" with description "Du är i västra änden av en mycket lång, formlös sal. Salen möter här en trång nord-sydlig gång.", e_to At_East_End_Of_Long_Hall, s_to Different_Maze_1, n_to Crossover; ! ------------------------------------------------------------------------------ Room Crossover "N/S- och Ö/V-korsning" with description "Du är i en korsning mellan en hög nord-sydlig gång och en låg öst-västlig gång.", 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; Scenic -> "korsning" with name 'korsning' 'korsningen', short_name_def "korsningen", description "Du vet lika mycket som jag just nu."; ! ------------------------------------------------------------------------------ ! Många återvändsgränder kommer behövas för labyrinten nedan, så ! definiera en klass: ! ------------------------------------------------------------------------------ Class DeadendRoom with short_name "Återvändsgränd", description "Du har nått en återvändsgränd.", cant_go "Du måste gå tillbaka samma väg som du kom."; DeadendRoom Dead_End_7 with s_to Crossover, out_to Crossover; ! ------------------------------------------------------------------------------ ! Bergakungens Sal och sidokammare ! ------------------------------------------------------------------------------ Room In_Hall_Of_Mt_King "Bergakungens Sal" with teleport_to 'sal' 'salen' 'dimmornas' 'trappa' 'trappan' In_Hall_Of_Mists 'hemlig' 'hemliga' In_Secret_E_W_Canyon, description "Du är i Bergakungens Sal, med gångar åt alla håll.", cant_go "Okej, kanske inte riktigt alla håll.", 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))) "Du kan inte komma förbi ormen."; ]; Object -> Snake "orm" with name 'orm' 'ormen' 'kobra' 'stor' 'stora' 'jättestor' 'jättestora' 'farlig' 'farliga' 'livsfarlig' 'livsfarliga' 'dödlig' 'dödliga' 'grön' 'gröna' 'vildsint' 'vildsinta' 'vild' 'vilda' 'giftig' 'giftiga', short_name_def "ormen", description "Jag skulle inte bråka med den om jag var du.", initial "En gigantisk, grön, vildsint orm blockerar vägen!", life [; Order, Ask, Answer: "Väääääs!"; ThrowAt: if (noun == axe) <>; <>; Give: if (noun == little_bird) { remove little_bird; "Ormen har nu slukat din fågel."; } "Det finns inget här som den vill äta (förutom dig då, kanske)."; Attack: "Att attackera ormen är både verkningslöst och mycket farligt."; Take: deadflag = 1; "Den tar dig istället. Smask!"; ], has animate; ! ------------------------------------------------------------------------------ Room Low_N_S_Passage "Låg N/S-gång" with teleport_to 'bergakungens' 'sal' 'salen' In_Hall_Of_Mt_King 'y2' At_Y2 'hål' 'hålet' In_Dirty_Passage, description "Du är i en låg N/S-gång vid ett hål i golvet. Hålet leder ner till en Ö/V-gång.", s_to In_Hall_Of_Mt_King, out_to In_Hall_Of_Mt_King, d_to In_Dirty_Passage, n_to At_Y2; Treasure -> "silvertackor" with name 'silvertacka' 'silvertackan' 'silvertackor' 'silvertackorna' 'tacka' 'tackan' 'tackor' 'tackorna' 'silver' 'silvret', short_name_def "silvertackorna", articles 0 0 "några", description "De är nog värda en förmögenhet!", initial "Det ligger silvertackor här!", has pluralname; ! ------------------------------------------------------------------------------ Room In_South_Side_Chamber "I södra sidokammaren" with teleport_to 'bergakungens' 'sal' 'salen' In_Hall_Of_Mt_King, description "Du är i den södra sidokammaren.", n_to In_Hall_Of_Mt_King, out_to In_Hall_Of_Mt_King; Treasure -> "dyrbara smycken" with name 'dyrbar' 'dyrbara' 'smycke' 'smycket' 'smycken' 'smyckena' 'exquisite', short_name_def "dyrbara smyckena", articles "De" "de" "några", description "De är helt utsökta!", initial "Det ligger dyrbara smycken här!", has pluralname def_article; ! ------------------------------------------------------------------------------ Room In_West_Side_Chamber "I västra sidokammaren" with teleport_to 'bergakungens' 'sal' 'salen' In_Hall_Of_Mt_King, description "Du är i sidokammaren väster om Bergakungens Sal. En gång fortsätter västerut och uppåt här.", w_to Crossover, u_to Crossover, e_to In_Hall_Of_Mt_King, out_to In_Hall_Of_Mt_King; Treasure -> rare_coins "sällsynta mynt" with name 'sällsynt' 'sällsynta' 'mynt' 'myntet' 'mynten', short_name_def "sällsynta mynten", articles "De" "de" "många", description "De är en numismatikers dröm!", initial "Det ligger många mynt här!", has multitude pluralname def_article; ! ------------------------------------------------------------------------------ ! Y2-klipprummet och omgivningar, lite längre ner ! ------------------------------------------------------------------------------ Room At_Y2 "Vid ~Y2~" with teleport_to 'vägg' 'väggen' 'rasade' 'stenar' 'stenarna' Jumble_Of_Rock, description "Du är i ett stort rum, med en gång söderut, en gång västerut, och en vägg av rasade stenar österut. Det står ett stort ~Y2~ på en klippa i rummets mitt.", after [; Look: if (random(100) <= 25) print "^En ihålig röst säger, ~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; Scenic -> "~Y2~-klippa" with name 'y2-klippa' 'y2-klippan' '-klippa' '-klippan' 'y2' 'klippa' 'klippan', short_name_def "~Y2~-klippan", description "Det står ett stort ~Y2~ målat på klippan.", has supporter; ! ------------------------------------------------------------------------------ Room Jumble_Of_Rock "Bland en massa stenblock" with teleport_to 'y2' At_Y2, description "Du är bland en massa stenblock, med sprickor överallt.", d_to At_Y2, u_to In_Hall_Of_Mists; ! ------------------------------------------------------------------------------ Room At_Window_On_Pit_1 "Vid ett fönster mot ett hål" with teleport_to 'y2' At_Y2, description "Du är vid ett lågt fönster med utsikt över ett enormt hål som sträcker sig uppåt utom synhåll. Ett golv är vagt skönjbart mer än femton meter ner. Spår av vit dimma täcker hålets golv, och dimman blir tjockare till höger. Märken i dammet runt fönstret kan tyda på att någon har varit här nyligen. Tvärs över hålet från dig och sju-åtta meter bort finns ett liknande fönster in till ett upplyst rum. Där ser du en mystisk figur som stirrar tillbaka på dig.", before [; WaveHands: "Den mystiska figuren vinkar tillbaka till dig!"; ], cant_go "Den enda utgången är österut, tillbaka till Y2.", e_to At_Y2; Class PitScenic with found_in At_Window_On_Pit_1 At_Window_On_Pit_2, has scenery; PitScenic "fönster" with name 'fönster' 'fönstret' 'lågt' 'låga', short_name_def "fönstret", description "Det ser ut som ett vanligt fönster.", has openable neuter; PitScenic "enormt hål" with name 'hål' 'hålet' 'djupt' 'djupa' 'stort' 'stora' 'enormt' 'enorma', short_name_def "enorma hålet", description "Det är så djupt att du bara nätt och jämt kan se golvet där nere, och hålets översta del är inte synligt alls.", has neuter def_article; PitScenic "märken i dammet" with name 'märken' 'märkena' 'i//' 'damm' 'dammet', short_name_def "märkena i dammet", description "Du är tydligen inte ensam här.", has multitude pluralname; PitScenic "mystisk figur" with name 'mystisk' 'mystiska' 'figur' 'figuren' 'person' 'personen' 'skum' 'skumma', short_name_def "mystiska figuren", description "Den mystiska figuren verkar försöka fånga din uppmärksamhet.", has def_article; ! ------------------------------------------------------------------------------ Room In_Dirty_Passage "Smutsig gång" with teleport_to 'låg' 'låga' On_Brink_Of_Pit 'hål' 'hålet' Low_N_S_Passage 'stor' 'stora' In_Dusty_Rock_Room 'lapptäcket' In_Bedquilt, description "Du är i en smutsig, trasig gång. Österut finns en låg gång. Västerut finns en stor gång. Ovanför dig finns ett hål till en annan gång.", e_to On_Brink_Of_Pit, u_to Low_N_S_Passage, w_to In_Dusty_Rock_Room; ! ------------------------------------------------------------------------------ Room On_Brink_Of_Pit "Kanten av ett hål" with teleport_to 'låg' 'låga' 'gång' 'gången' In_Dirty_Passage 'litet' 'lilla' 'rent' 'rena' 'hål' 'hålet' In_Pit, description "Du är vid kanten av ett litet rent hål, som man skulle kunna klättra ner i. En låg gång leder västerut.", w_to In_Dirty_Passage, d_to In_Pit, in_to In_Pit; Scenic -> "litet hål" with name 'hål' 'hålet' 'litet' 'lilla' 'rent' 'rena', short_name_def "lilla hålet", description "Det ser ut som att du nog skulle kunna klättra ner i det.", before [; Climb, Enter: MovePlayer(d_obj); rtrue; ], has def_article neuter; ! ------------------------------------------------------------------------------ Room In_Pit "I ett hål" with description "Du är på botten av ett litet hål med en bäck som kommer in i hålet och går ut ur hålet genom smala springor.", u_to On_Brink_Of_Pit, d_to "Du kommer inte igenom de smala springorna!", has nodwarf; Scenic -> "smala springor" with name 'springa' 'springan' 'springor' 'springorna' 'smal' 'smala' 'små' 'liten' 'lilla', short_name_def "smala springorna", description "Springorna bildar ett komplext mönster i klippan.", has multitude pluralname def_article; ! ------------------------------------------------------------------------------ Room In_Dusty_Rock_Room "I dammigt stenrum" with teleport_to 'gång' 'gången' In_Dirty_Passage 'stort' 'stora' 'hål' 'hålet' 'golv' 'golvet' At_Complex_Junction 'lapptäcket' In_Bedquilt, description "Du är i ett stort rum fullt av dammiga stenar. Det är ett stort hål i golvet. Det finns sprickor överallt, och en gång som leder österut.", e_to In_Dirty_Passage, d_to At_Complex_Junction; Scenic -> "dammiga stenar" with name 'sten' 'stenen' 'stenar' 'stenarna' 'klippa' 'klippan' 'klippor' 'klipporna' 'dammig' 'dammiga' 'smutsig' 'smutsiga', short_name_def "dammiga stenarna", description "Det är bara stenar. (Dammiga sådana, alltså.)", before [; LookUnder, Push, Pull: "Du skulle behöva spränga dig igenom."; ], has multitude pluralname def_article; ! ------------------------------------------------------------------------------ ! En labyrint av slingrande trånga gångar, alla likadana... ! ------------------------------------------------------------------------------ Class MazeRoom with short_name "Labyrint", description "Du är i en labyrint av slingrande trånga gångar, alla likadana.", out_to "Lättare sagt än gjort."; MazeRoom Alike_Maze_1 with u_to At_West_End_Of_Hall_Of_Mists, n_to Alike_Maze_1, e_to Alike_Maze_2, s_to Alike_Maze_4, w_to Alike_Maze_11; MazeRoom Alike_Maze_2 with w_to Alike_Maze_1, s_to Alike_Maze_3, e_to Alike_Maze_4; MazeRoom Alike_Maze_3 with e_to Alike_Maze_2, d_to Dead_End_3, s_to Alike_Maze_6, n_to Dead_End_13; MazeRoom Alike_Maze_4 with w_to Alike_Maze_1, n_to Alike_Maze_2, e_to Dead_End_1, s_to Dead_End_2, u_to Alike_Maze_14, d_to Alike_Maze_14; MazeRoom Alike_Maze_5 with e_to Alike_Maze_6, w_to Alike_Maze_7; MazeRoom Alike_Maze_6 with e_to Alike_Maze_3, w_to Alike_Maze_5, d_to Alike_Maze_7, s_to Alike_Maze_8; DeadendRoom Dead_End_1 with w_to Alike_Maze_4, out_to Alike_Maze_4; DeadendRoom Dead_End_2 with w_to Alike_Maze_4, out_to Alike_Maze_4; DeadendRoom Dead_End_3 with u_to Alike_Maze_3, out_to Alike_Maze_3; MazeRoom Alike_Maze_7 with w_to Alike_Maze_5, u_to Alike_Maze_6, e_to Alike_Maze_8, s_to Alike_Maze_9; MazeRoom Alike_Maze_8 with w_to Alike_Maze_6, e_to Alike_Maze_7, s_to Alike_Maze_8, u_to Alike_Maze_9, n_to Alike_Maze_10, d_to Dead_End_12; MazeRoom Alike_Maze_9 with w_to Alike_Maze_7, n_to Alike_Maze_8, s_to Dead_End_4; DeadendRoom Dead_End_4 with w_to Alike_Maze_9, out_to Alike_Maze_9; MazeRoom Alike_Maze_10 with w_to Alike_Maze_8, n_to Alike_Maze_10, d_to Dead_End_5, e_to At_Brink_Of_Pit; DeadendRoom Dead_End_5 with u_to Alike_Maze_10, out_to Alike_Maze_10; ! ------------------------------------------------------------------------------ Room At_Brink_Of_Pit "Vid kanten av ett hål" with description "Du är vid kanten av ett tio meter djupt hål med en massiv, orange pelare som sträcker sig nerför en av väggarna. Du skulle kunna klättra ner här men du skulle inte kunna ta dig upp igen. Labyrinten fortsätter på den här nivån.", 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; Scenic -> "massiv orange pelare" with name 'pelare' 'pelaren' 'massiv' 'massiva' 'orange' 'oranga' 'orangea' 'stor' 'stora' 'enorm' 'enorma' 'gigantisk' 'gigantiska', short_name_def "massiva oranga pelaren", description "Det ser ut som att du skulle kunna klättra nerför den.", before [; Climb: MovePlayer(d_obj); rtrue; ], has def_article; Scenic -> "hål" with name 'hål' 'hålet' 'tio' 'meter' 'djupt' 'djupa' '10' '10m', short_name_def "hålet", description "Du måste klättra mer för att få reda på mer...", before [; Climb: MovePlayer(d_obj); rtrue; ], has neuter; DeadendRoom Dead_End_6 with e_to At_Brink_Of_Pit, out_to At_Brink_Of_Pit; ! ------------------------------------------------------------------------------ ! En rad med tre viktiga korsningar, från öst till väst ! ------------------------------------------------------------------------------ Room At_Complex_Junction "I en komplicerad korsning" with teleport_to 'rum' 'rummet' In_Dusty_Rock_Room 'lapptäcket' In_Bedquilt 'skalrum' 'skalrummet' In_Shell_Room, description "Du är i en komplicerad korsning. En låg krypgång norrifrån går ihop med en högre krypgång österifrån för att bilda en promenadgång som leder västerut. Det finns även ett stort rum ovanför. Luften är fuktig här.", u_to In_Dusty_Rock_Room, w_to In_Bedquilt, n_to In_Shell_Room, e_to In_Anteroom; ! ------------------------------------------------------------------------------ Room In_Bedquilt "Lapptäcket" with teleport_to 'plattrum' 'plattrummet' In_Slab_Room, description "Du är i Lapptäcket, en lång öst-västlig gång med hål överallt. För att utforska någon slumpvis vald gång, välj norr, söder, upp eller ner.", 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) "Du har krupit runt i några små hål och åter hamnat i huvudgången."; if (destiny == 0) rfalse; PlayerTo(destiny); rtrue; ]; ! ------------------------------------------------------------------------------ Room In_Swiss_Cheese_Room "I Schweizerostrummet" with teleport_to 'ravin' 'ravinen' In_Tall_E_W_Canyon 'orientaliska' In_Oriental_Room, description "Du är i ett rum vars väggar mest liknar en Schweizerost. Det finns uppenbara utgångar åt väst, öst, nordost och nordväst. En del av rummet upptas av ett stort block av urberget.", 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)) "Du har krupit runt i några små hål och åter hamnat i huvudgången."; ]; Scenic -> "urbergsblock" with name 'stort' 'stora' 'block' 'blocket' 'av' 'urberg' 'urberget' 'stenblock' 'stenblocket' 'urbergsblock' 'urbergsblocket' 'enormt' 'enorma', short_name_def "urbergsblocket", description "Det är bara ett enormt block.", before [; LookUnder, Push, Pull, Take: "Du måste skoja."; ], has neuter; ! ------------------------------------------------------------------------------ ! Arean runt Tvåhålsrummet ! ------------------------------------------------------------------------------ ! Möjliga höjder för växten: ! ------------------------------------------------------------------------------ Constant TINY_P = 0; Constant TALL_P = 1; Constant HUGE_P = 2; Room At_West_End_Of_Twopit_Room "I Tvågroprummets västra ände" with teleport_to 'platta' 'plattan' 'plattrum' 'plattrummet' In_Slab_Room 'grop' 'gropen' In_West_Pit, description "Du är i Tvågroprummets västra ände. Det finns ett stort hål i väggen ovanför gropen i den här änden av rummet.", e_to At_East_End_Of_Twopit_Room, w_to In_Slab_Room, d_to In_West_Pit, u_to "Det sitter för långt upp för att du ska kunna nå det.", before [; Enter: if (noun == HoleAbovePit_1) "Det sitter för långt upp för att du ska kunna nå det."; ]; Object PlantStickingUp "bönstjälk" with name 'växt' 'växten' 'bönstjälk' 'bönstjälken' 'stjälk' 'stjälken' 'gigantisk' 'gigantiska' 'liten' 'lilla' 'stor' 'stora' 'fyra' 'meter' 'hög' 'höga' '4//' '4m' 'fyrameters' 'fyrmeters' 'klen' 'klena' 'mumlande' 'mullrande', short_name_def "bönstjälken", describe [; if (Plant.height == TALL_P) "Översta delen av en fyra meter hög bönstjälk sticker upp ur den västra gropen."; "En enorm bönstjälk växer upp ur den västra gropen och upp till hålet i väggen."; ], before [; Examine: RunRoutines(self, describe); rtrue; Climb: if (Plant.height == HUGE_P) <>; ], found_in At_West_End_Of_Twopit_Room At_East_End_Of_Twopit_Room, has absent static; Scenic HoleAbovePit_1 "hål ovanför gropen" with name 'hål' 'hålet' 'stort' 'stora' 'ovanför' 'grop' 'gropen', short_name_def "hålet ovanför gropen", description "Hålet sitter i väggen ovanför gropen i den här änden av rummet.", found_in In_West_Pit At_West_End_Of_Twopit_Room, has neuter; ! ------------------------------------------------------------------------------ Room In_West_Pit "I västra gropen" with description "Du är på botten av den västra gropen i Tvågroprummet. Det finns ett stort hål i väggen sju-åtta meter ovanför dig.", before [; Climb: if (noun == Plant) rfalse; if (Plant.height == TINY_P) "Det finns inget att klättra på här. Använd ~upp~ eller ~ut~ för att lämna gropen."; ], u_to At_West_End_Of_Twopit_Room, out_to At_West_End_Of_Twopit_Room, has nodwarf; Object -> Plant "växt" with name 'växt' 'växten' 'bönstjälk' 'bönstjälken' 'stjälk' 'stjälken' 'gigantisk' 'gigantiska' 'liten' 'lilla' 'stor' 'stora' 'fyra' 'meter' 'hög' 'höga' '4//' '4m' 'fyrameters' 'fyrmeters' 'klen' 'klena' 'mumlande' 'mullrande', short_name_def "växten", describe [; switch (self.height) { TINY_P: "Det står en klen liten växt i gropen, och den mumlar ~Vatten, vatten, ...~"; TALL_P: "En fyra meter hög bönstjälk sträcker sig upp ur hålet, och den mullrar ~Vatten!! Vatten!!~"; HUGE_P: "En gigantisk bönstjälk sträcker sig hela vägen upp till hålet."; } ], before [; Climb: switch (self.height) { TINY_P: "Det är bara en liten växt!"; TALL_P: print "Du har klättrat uppför växten och ut ur hålet.^"; PlayerTo(At_West_End_Of_Twopit_Room); rtrue; HUGE_P: print "Du klättrar uppför växten och skyndar dig in genom hålet högst där uppe.^"; PlayerTo(In_Narrow_Corridor); rtrue; } Take: "Växten har otroligt djupa rötter och kan inte dras loss."; Water: if (bottle notin player) "Du har inget att vattna växten med."; switch (child(bottle)) { nothing: "Flaskan är tom."; oil_in_the_bottle: remove oil_in_the_bottle; "Växten skakar indignerat av oljan från sina blad och frågar: ~Vatten?~"; } remove water_in_the_bottle; switch ((self.height)++) { TINY_P: print "Växten får plötsligt en vannsinnig tillväxt under några sekunder.^^"; give PlantStickingUp ~absent; TALL_P: print "Växten växer explosivt, och fyller nu nästan helt botten av gropen.^^"; HUGE_P: print "Du har övervattnat växten! Den skrumpnar bort. Den, den...^^"; give PlantStickingUp absent; remove PlantStickingUp; self.height = TINY_P; } <>; Oil: <>; Examine: self.describe(); rtrue; ], height TINY_P; ! ------------------------------------------------------------------------------ Room At_East_End_Of_Twopit_Room "I Tvågroprummets östra ände" with teleport_to 'grop' 'gropen' In_East_Pit, description "Du är i Tvågroprummets östra ände. Golvet här utgörs av en massa tunna stenplattor som gör det lätt att klättra ner i groparna. En gång leder förbi groparna och förbinder gångarna från öster och väster. Det finns hål lite överallt, men det enda stora hålet sitter på väggen rakt ovanför den västra gropen där du inte kan nå det.", e_to In_Swiss_Cheese_Room, w_to At_West_End_Of_Twopit_Room, d_to In_East_Pit; Scenic -> "tunna stenplattor" with name 'tunn' 'tunna' 'stenplatta' 'stenplattan' 'stenplattor' 'stenplattorna' 'sten' 'stenen' 'stenar' 'stenarna' 'platta' 'plattan' 'plattor' 'plattorna', short_name_def "tunna stenplattorna", articles "De" "de" "en massa", description "De bildar nästan en naturlig trappa ner i gropen.", before [; LookUnder, Push, Pull, Take: "Du måste skoja. Du skulle behöva spränga bort dem."; ], has multitude def_article pluralname; ! ------------------------------------------------------------------------------ Room In_East_Pit "I östra gropen" with description "Du är på botten av den östra gropen i Tvågroprummet. I ett hörn finns en liten oljepöl.", u_to At_East_End_Of_Twopit_Room, out_to At_East_End_Of_Twopit_Room, has nodwarf; Scenic -> Oil "oljepöl" with name 'liten' 'lilla' 'olja' 'oljan' 'pöl' 'pölen' 'oljepöl' 'oljepölen', short_name_def "oljepölen", description "Det ser ut som vanlig olja.", before [; Drink: "Absolut inte."; Take: if (bottle notin player) "Du har inget att ha oljan i."; <>; Insert: if (second == bottle) <>; "Du har inget att bära oljan i."; ]; Scenic "hålet ovanför gropen" with name 'hål' 'hålet' 'stort' 'stora' 'ovanför' 'över' 'grop' 'gropen', description "Hålet sitter i väggen ovanför dig.", found_in In_East_Pit At_East_End_Of_Twopit_Room has proper; ! ------------------------------------------------------------------------------ Room In_Slab_Room "Plattrummet" with description "Du är i en stor, låg, rund kammare vars golv är en enorm platta som fallit från taket (plattrummet). Österut och västerut har det tidigare funnits stora gångar, men de är nu fyllda av stenblock. Låga, små gångar leder norrut och söderut, och den södra böjer kvickt av västerut, runt stenblocken.", s_to At_West_End_Of_Twopit_Room, u_to In_Secret_N_S_Canyon_0, n_to In_Bedquilt; Scenic -> "stenplatta" with name 'platta' 'stenplatta' 'enorm' 'stor' 'plattan' 'stenplattan' 'enorma' 'stora', short_name_def "stenplattan", description "Den är nu golvet här.", before [; LookUnder, Push, Pull, Take: "Du måste skoja."; ]; Scenic -> "stenblock" with name 'sten' 'stenen' 'stenar' 'stenarna' 'block' 'blocket' 'blocken' 'stenblock' 'stenblocket' 'stenblocken', short_name_def "stenblocken", description "De är bara vanlig stenblock.", has multitude pluralname; ! ------------------------------------------------------------------------------ ! Ett litet nätverk av raviner, huvudsakligen Hemliga ! ------------------------------------------------------------------------------ Room In_Secret_N_S_Canyon_0 "Hemlig N/S-ravin" with teleport_to 'plattrum' 'plattrummet' In_Slab_Room 'reservoar' 'reservoaren' At_Reservoir, description "Du är i en hemlig N/S-ravin ovanför ett stort rum.", d_to In_Slab_Room, s_to In_Secret_Canyon, n_to In_Mirror_Canyon, before [; Go: if (noun == s_obj) canyon_from = self; ]; Room In_Secret_N_S_Canyon_1 "Hemlig N/S-ravin" with teleport_to 'ganska' 'stor' 'stora' 'gång' 'gången' 'lapptäcket' In_Bedquilt, description "Du är i en hemlig N/S-ravin ovanför en ganska stor gång.", n_to At_Junction_Of_Three, d_to In_Bedquilt, s_to Atop_Stalactite; Room At_Junction_Of_Three "Korsningen mellan tre hemliga raviner" with description "Du är i en hemlig ravin i korsningen mellan tre hemliga raviner, vilka går mot nord, syd och sydost. Den norra är lika hög som de två andra tillsammans.", se_to In_Bedquilt, s_to In_Secret_N_S_Canyon_1, n_to At_Window_On_Pit_2; Room In_Large_Low_Room "Stort lågt rum" with teleport_to 'lapptäcket' In_Bedquilt 'orientaliska' In_Oriental_Room, description "Du är i ett stort lågt rum. Krypgångar leder norrut, sydost och sydväst.", sw_to In_Sloping_Corridor, se_to In_Oriental_Room, n_to Dead_End_Crawl; Room Dead_End_Crawl "Återvändskrypgång" with teleport_to 'kryp' In_Large_Low_Room, description "Det här är en återvändskrypgång.", s_to In_Large_Low_Room, out_to In_Large_Low_Room; Room In_Secret_E_W_Canyon "Hemlig Ö/V-ravin ovanför trång ravin" with description "Du är i en hemlig ravin som här löper Ö/V. Den korsar en mycket trång ravin fem meter ner. Om du går ner kan du få svårt att ta sig upp igen.", 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; Room In_N_S_Canyon "N/S-ravin" with description "Du är på en bred plats i en väldigt trång N/S-ravin.", s_to Canyon_Dead_End, n_to In_Tall_E_W_Canyon; Room Canyon_Dead_End "Återvändsravin" with description "Ravinen blir här alltför trång för att man ska kunna fortsätta söderut.", n_to In_N_S_Canyon; Room In_Tall_E_W_Canyon "I hög Ö/V-ravin" with teleport_to 'kryp' 'låg' 'låga' 'trång' 'trånga' 'krypgång' 'krypgången' In_Swiss_Cheese_Room, description "Du är i en hög Ö/V-ravin. En låg, trång krypgång går en meter norrut och verkar sedan öppnas upp.", e_to In_N_S_Canyon, w_to Dead_End_8, n_to In_Swiss_Cheese_Room; ! ------------------------------------------------------------------------------ Room Atop_Stalactite "Ovanför en stalaktit" with description "En stor stalaktit sträcker sig från taket och nästan ända ner till golvet under. Du skulle kunna klättra nerför den och hoppa den sista biten till golvet, men då skulle du inte kunna nå den för att klättra upp igen.", 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: <>; ]; Scenic -> "stalaktit" with name 'stalaktit' 'stalaktiten' 'stalagtit' 'stalagtiten' 'stor' 'stora' 'bred' 'breda' 'tjock' 'tjocka', short_name_def "stalaktiten", description "Du skulle troligen kunna klättra nerför den, men du kan glömma att komma upp igen.", before [; LookUnder, Push, Take: "Skärp dig."; ]; ! ------------------------------------------------------------------------------ ! Här var det drakar ! ------------------------------------------------------------------------------ Room In_Secret_Canyon "Hemlig ravin" with description "Du är i en hemlig ravin som har utgångar mot norr och öster.", e_to [; if (canyon_from == In_Secret_E_W_Canyon) return canyon_from; if (Dragon in location) "Draken ser rätt farlig ut. Det är nog säkrast att inte försöka ta sig förbi."; return In_Secret_E_W_Canyon; ], n_to [; if (canyon_from == In_Secret_N_S_Canyon_0) return canyon_from; if (Dragon in location) "Draken ser rätt farlig ut. Det är nog säkrast att inte försöka ta sig förbi."; return In_Secret_N_S_Canyon_0; ], out_to [; return canyon_from; ], before [; if (action == ##Yes && Dragon.is_being_attacked) { remove Dragon; move DragonCorpse to location; Dragon.is_being_attacked = false; "Grattis! Du har just förgjort en drake med med dina bara händer! (Otroligt, eller hur?)"; } if (action == ##No && Dragon.is_being_attacked) { Dragon.is_being_attacked = false; "Skulle inte tro det."; } Dragon.is_being_attacked = false; ]; Object -> Dragon "drake" with name 'drake' 'draken' 'monster' 'monstret' 'best' 'besten' 'ödla' 'ödlan' 'enorm' 'enorma' 'gigantisk' 'gigantiska' 'grön' 'gröna' 'vildsint' 'vildsinta' 'fjällig' 'fjälliga' 'farlig' 'farliga', short_name_def "draken", description "Jag skulle inte bråka med den om jag var du.", initial "En enorm, grön, vildsint drake blockerar vägen!", life [; Attack: self.is_being_attacked = true; "Med vad? Dina bara händer?"; Give: "Draken är obeveklig."; ThrowAt: if (noun ~= axe) "Till och med dina bara händer skulle nog vara bättre än ",(DenEllerHonom) noun,"!"; move axe to location; "Yxan studsar på drakens tjocka fjäll."; ], is_being_attacked false, has animate uter; Treasure -> "persisk matta" with name 'matta' 'mattan' 'persisk' 'persiska' 'fin' 'fina' 'drakens', short_name_def "persiska mattan", describe [; if (Dragon in location) "Draken ligger utsträckt på den persiska mattan!"; "Den persiska mattan ligger utrullad på golvet här."; ], before [; Take: if (Dragon in location) "Du måste få draken att flytta på sig först!"; ], depositpoints 14, has def_article; Object DragonCorpse "drakens kropp" with name 'drakens' 'kropp' 'kroppen' 'av' 'en' 'lik' 'liket' 'as' 'aset' 'död' 'döda' 'drake' 'draken', initial "Kroppen av en enorm, grön, död drake ligger vid ena sidan.", before [; Attack: "Du har redan gjort tillräckligt med skada!"; ], has static proper; ! ------------------------------------------------------------------------------ ! Och mer av likadana-labyrinten ! ------------------------------------------------------------------------------ DeadendRoom Dead_End_8 with description "Ravinen leder in i en massa klippblock -- återvändsgränd.", s_to In_Tall_E_W_Canyon, out_to In_Tall_E_W_Canyon; MazeRoom Alike_Maze_11 with n_to Alike_Maze_1, w_to Alike_Maze_11, s_to Alike_Maze_11, e_to Dead_End_9, ne_to Dead_End_10; 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 class Room with se_to Alike_Maze_13, out_to Alike_Maze_13, description "Det här är piratens återvändsgränd.", initial [; StopDaemon(Pirate); if (treasure_chest in self && treasure_chest hasnt moved) "Du har hittat piratens skattkista!"; ], has nodwarf; Treasure -> treasure_chest "skattkista" with name 'kista' 'kistan' 'låda' 'lådan' 'skatt' 'skatten' 'skattkista' 'skattkistan' 'rikedomar' 'rikedomarna' 'piratens' 'piratskatt' 'piratskatten', short_name_def "skattkistan", description "Det är piratens skattkista, fylld med rikedomar av alla de slag!", initial "Piratens skattkista är här!", depositpoints 12; ! ------------------------------------------------------------------------------ ! Ovanför bönstjälken: det gigantiska rummet och vattenfallet ! ------------------------------------------------------------------------------ Room In_Narrow_Corridor "I en smal korridor" with teleport_to 'gigantiskt' 'gigantiska' In_Giant_Room, description "Du är i en lång, smal korridor som sträcker sig utom synhåll västerut. I den östra änden finns ett hål genom vilket du kan se en mängd löv.", d_to In_West_Pit, w_to In_Giant_Room, e_to In_West_Pit, before [; Jump: deadflag = 1; "Du ramlar och bryter nacken!"; ]; Scenic -> "löv" with name 'löv' 'lövet' 'löven' 'växt' 'växten' 'träd' 'trädet' 'stjälk' 'stjälken' 'bönstjälk' 'bönstjälken' 'mängd' 'mängden', short_name_def "löven", articles 0 0 "en mängd", description "Löven verkar vara fästa vid bönstjälken som du klättrade på för att komma hit.", before [; Count: "69,105."; ! (Jag tackar Rene Schnoor som räknade dem) ], has pluralname; ! ------------------------------------------------------------------------------ Room At_Steep_Incline "Brant sluttning ovanför ett stort rum" with teleport_to 'magnifik' 'magnifika' 'grotta' 'grottan' 'vattenfall' 'gång' 'gången' In_Cavern_With_Waterfall, description "Du är högst uppe på en brant sluttning ovanför ett stort rum. Du skulle kunna klättra ner här, men du skulle inte kunna klättra upp igen. En gång leder tillbaka norrut.", n_to In_Cavern_With_Waterfall, d_to In_Large_Low_Room; ! ------------------------------------------------------------------------------ Room In_Giant_Room "Det gigantiska rummet" with description "Du är i det gigantiska rummet. Taket är för högt upp för att kunna ses i ljuset av din lampa. Stora gångar leder österut, norrut och söderut. På västra väggen står den handskrivna inskriptionen ~Fee fie foe foo~ [sic].", s_to In_Narrow_Corridor, e_to At_Recent_Cave_In, n_to In_Immense_N_S_Passage; Scenic -> "handskriven inskription" with name 'inskription' 'inskriptionen' 'text' 'skriven' 'skrivna' 'handskriven' 'handskrivna', short_name_def "handskrivna inskriptionen", description "Det står ~Fee fie foe foo [sic]~.", has def_article; Treasure -> golden_eggs "bo med gyllene ägg" with name 'ägg' 'ägget' 'äggen' 'bo' 'boet' 'med' 'gyllene' 'vackert' 'vackra' 'guldägg' 'guldäggen', short_name_def "boet med gyllene ägg", description "Boet är fyllt med vackra, gyllene ägg!", initial "Det finns ett stort bo här, fullt av gyllene ägg!", depositpoints 14, has multitude neuter; ! ------------------------------------------------------------------------------ Room At_Recent_Cave_In "Nyligen inträffat ras" with teleport_to 'gigantiska' In_Giant_Room, description "Gången blockeras här av ett nyligen inträffat ras.", s_to In_Giant_Room, out_to In_Giant_Room; ! ------------------------------------------------------------------------------ Room In_Immense_N_S_Passage "Jättelik N/S-gång" with teleport_to 'gigantiska' 'gång' 'gången' In_Giant_Room, description "Du är i ena änden av en jättelik nord/syd-gång.", s_to In_Giant_Room, n_to [; if (RustyDoor has locked) <>; if (RustyDoor hasnt open) { give RustyDoor open; print "(bänder först upp dörren)^"; } return RustyDoor; ]; Object -> RustyDoor "rostig dörr" with name 'dörr' 'dörren' 'gångjärn' 'gångjärnet' 'gångjärnen' 'massiv' 'massiva' 'rostig' 'rostiga' 'järndörr' 'järndörren', short_name_def "rostiga dörren", description "Det är bara en stor järndörr.", when_closed "Vägen norrut blockeras av en massiv, rostig järndörr.", when_open "Vägen norrut går genom en massiv, rostig järndörr.", door_to In_Cavern_With_Waterfall, door_dir n_to, before [; Open: if (self has locked) "Gångjärnen är ordentligt rostiga nu och rör sig inte en millimeter."; Close: if (self has open) "Med tanke på hur mycket jobb det var att öppna dörren, skulle jag föreslå att du inte stänger den igen."; "Inga problem -- den är redan stängd."; Oil: if (bottle in player && oil_in_the_bottle in bottle) { remove oil_in_the_bottle; give self ~locked openable; "Oljan har smort upp gångjärnen så att dörren nu kan röra sig, även om den fortfarande är ganska trög."; } else "Du har inget att olja in den med."; Water: if (bottle in player && water_in_the_bottle in bottle) { remove water_in_the_bottle; give self locked ~open; "Gångjärnen är ordentligt rostiga nu och rör sig inte en millimeter."; } else "Du har inget att vattna den med."; ], after [; Open: "Dörren öppnar sig medan kaskader av rostflagor skakar loss."; ], has static door locked def_article; ! ------------------------------------------------------------------------------ Room In_Cavern_With_Waterfall "I en grotta med ett vattenfall" with teleport_to 'gigantiska' In_Giant_Room, description "Du är i en magnifik grotta med en fors, som far ut i ett glittrande vattenfall och ner i en dånande virvel i en damm som försvinner genom ett hål i golvet. Gångar går ut mot söder och väster.", s_to In_Immense_N_S_Passage, out_to In_Immense_N_S_Passage, w_to At_Steep_Incline; Scenic -> "vattenfall" with name 'vattenfall' 'vattenfallet' 'dånande' 'virvel' 'virveln' 'glittrande' 'virvlande', short_name_def "vattenfallet", description "Skulle inte vilja åka ner där i en tunna!", has neuter; Treasure -> trident "juvelbeströdd treudd" with name 'treudd' 'treudden' 'juvelbeströdd' 'juvelbeströdda' 'juvelprydd' 'juvelprydda' 'sagolik' 'sagolika' 'juvel' 'juveler', short_name_def "juvelbeströdda treudden", description "Treudden är täckt av sagolika juveler!", initial "Det ligger en juvelprydd treudd här!", depositpoints 14, has def_article; ! ------------------------------------------------------------------------------ ! Grottorna runt Lapptäcket ! ------------------------------------------------------------------------------ Room In_Soft_Room "I mjuka rummet" with description "Du är i mjuka rummet. Väggarna är täckta med tunga draperier, golvet med en tjock luggmatta. Mossa täcker taket.", w_to In_Swiss_Cheese_Room, out_to In_Swiss_Cheese_Room; Scenic -> "matta" with name 'matta' 'mattan' 'luggmatta' 'luggmattan' 'tung' 'tunga' 'tjock' 'tjocka', short_name_def "mattan", description "Mattan är riktigt flott."; Scenic -> "draperier" with name 'draperi' 'draperiet' 'draperier' 'draperierna' 'tung' 'tunga' 'tjock' 'tjocka', short_name_def "draperierna", description "De verkar absorbera ljud väldigt väl.", before [; Take: "Gå inte runt och förstör hela stället!"; LookUnder, Search: "Du hittar inget intressant bakom draperierna."; ], has pluralname; Scenic -> "mossa" with name 'mossa' 'mossan' 'typisk' 'typiska' 'standardmossa' 'standardmossan', short_name_def "mossan", description "Det ser ut som typisk standardmossa.", before [; Take: "Den faller sönder i dina händer."; ], has edible proper; Object -> velvet_pillow "sammetskudde" with name 'kudde' 'kudden' 'sammet' 'sammeten' 'sammetskudde' 'sammetskudden' 'liten' 'lilla', short_name_def "sammetskudden", description "Det är bara en liten sammetskudde.", initial "En liten sammetskudde ligger på golvet."; ! ------------------------------------------------------------------------------ Room In_Oriental_Room "Orientaliska rummet" with teleport_to 'krypgång' 'krypgången' 'kryp' In_Large_Low_Room 'dimmig' 'dimmiga' 'grotta' 'grottan' In_Misty_Cavern, description "Det här är det orientaliska rummet. Uråldriga orientaliska grottmålningar täcker väggarna. En lätt sluttande gång går uppåt norrut, en annan gång går sydost, och en krypgång leder västerut.", w_to In_Large_Low_Room, se_to In_Swiss_Cheese_Room, u_to In_Misty_Cavern, n_to In_Misty_Cavern; Scenic -> "uråldriga orientaliska målningar" with name 'målning' 'målningen' 'målningar' 'målningarna' 'teckning' 'teckningen' 'teckningar' 'teckningarna' 'konst' 'konsten' 'grottmålning' 'grottmålningen' 'grottmålningar' 'grottmålningarna' 'uråldrig' 'uråldriga' 'antik' 'antika' 'orientalisk' 'orientaliska', short_name_def "uråldriga orientaliska målningarna", description "De verkar föreställa människor och djur.", has multitude pluralname def_article; Treasure -> ming_vase "Mingvas" with name 'vas' 'vasen' 'mingvas' 'mingvasen' 'ömtålig' 'ömtåliga' 'dyrbar' 'dyrbara' 'elegant' 'eleganta', short_name_def "Mingvasen", description "Det är en elegant, dyrbar Mingvas!", after [; Drop: if (velvet_pillow in location) { print "(landar elegant på sammetskudden)^"; rfalse; } remove ming_vase; move shards to location; "Mingvasen landar med en elegant krasch."; ], before [; Attack: remove ming_vase; move shards to location; "Du har tagit vasen och elegant kastat den till marken."; Receive: "Vasen är alltför ömtålig för att användas som behållare."; ], depositpoints 14; Object shards "värdelösa krukskärvor" with name 'värdelös' 'värdelösa' 'skärva' 'skärvan' 'skärvor' 'skärvorna' 'krukskärva' 'krukskärvan' 'krukskärvor' 'krukskärvorna' 'rester' 'resterna' 'av' 'en' 'vas' 'vasen', short_name_def "värdelösa krukskärvorna", description "Det ser ut att vara resterna av vad som en gång var en vacker vas. Antagligen var det någon klant som tappade den.", initial "Golvet är fullt av värdelösa krukskärvor.", has multitude pluralname def_article; ! ------------------------------------------------------------------------------ Room In_Misty_Cavern "Dimmig grotta" with teleport_to 'orientaliska' In_Oriental_Room, description "Du följer en bred stig runt den yttre kanten av en stor grotta. Långt nedanför dig, genom en tung vit dimma, hörs märkliga plaskande läten. Dimman stiger upp genom en spricka i taket. Stigen leder ut från grottan åt söder och väster.", s_to In_Oriental_Room, w_to In_Alcove; Scenic -> "spricka" with name 'spricka' 'sprickan' 'i//' 'tak' 'taket', short_name_def "sprickan", description "Du kan inte komma nära nog för att se så mycket detaljer."; ! ------------------------------------------------------------------------------ ! Spovar och pyramider ! ------------------------------------------------------------------------------ Room In_Alcove "Alkov" with teleport_to 'dimmig' 'dimmiga' 'grotta' 'grottan' In_Misty_Cavern, description "Du är i en alkov. A liten stig åt nordväst verkar bli bredare efter en kort bit. En extremt trång tunnel leder österut. Det ser ut att vara en mycket trång passage. Ett kusligt ljus syns i andra änden.", 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; "Något som du bär är för stort för att komma igenom tunneln med dig. Du bör nog lista dina tillhörigheter och släppa något."; ]; ! ------------------------------------------------------------------------------ Room In_Plover_Room "Spovrummet" with teleport_to 'mörk' 'mörkt' 'mörka' 'mörker' 'mörkret' 'korridor' 'korridoren' In_Dark_Room, description "Du är i en liten kammare upplyst av ett kusligt grönt ljus. En extremt smal tunnel leder västerut. En mörk korridor leder nordöst.", ne_to In_Dark_Room, w_to [ j; j = children(player); if (j == 0 || (j == 1 && egg_sized_emerald in player)) return In_Alcove; "Något som du bär är för stort för att komma igenom tunneln med dig. Du bör nog lista dina tillhörigheter och släppa något."; ], 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) <>; ], has light; Treasure -> egg_sized_emerald "smaragd stor som ett spovägg" with name 'smaragd' 'smaragden' 'stor' 'stora' 'som' 'ett' 'spovägg' 'spovägget' 'ägg' 'ägget' 'en' 'spovs', short_name_def "stora smaragden", description "Spovar lägger, för övrigt, väldigt stora ägg.", initial "Det ligger en smaragd här, stor som ett spovägg!", depositpoints 14, has def_article; ! ------------------------------------------------------------------------------ Room In_Dark_Room "Det mörka rummet" with description "Du är i Mörkrummet. Enda utgången är en korridor som leder söderut.", s_to In_Plover_Room, out_to In_Plover_Room, has nodwarf; Object -> "stentavla" with name 'tavla' 'tavlan' 'massiv' 'massiva' 'stentavla' 'stentavlan', short_name_def "stentavlan", initial "En massiv stentavla insatt i väggen bär texten: ~Grattis till att ha bringat ljus till Mörkrummet!~", has static; Treasure -> "platinapyramid" with name 'platinapyramid' 'platinapyramiden' 'pyramid' 'pyramiden' 'platina' 'platinan' 'pyramidisk' 'pyramidiska', short_name_def "platinapyramiden", description "Platinapyramidens sidor är 20 centimeter långa!", initial "Det ligger en platinapyramid här, med 20 centimeter långa sidor!", depositpoints 14; ! ------------------------------------------------------------------------------ ! Norr om den komplicerade korsningen: En lång upp/ner-korridor ! ------------------------------------------------------------------------------ Room In_Arched_Hall "Sal med valvtak" with teleport_to 'skalrum' 'skalrummet' In_Shell_Room, description "Du är i en sal med valvtak. En korallgång har tidigare gått uppåt och österut härifrån, men den blockeras nu av skräp. Luften här luktar havsvatten.", d_to In_Shell_Room; ! ------------------------------------------------------------------------------ Room In_Shell_Room "Skalrummet" with teleport_to 'sal' 'salen' 'valvtak' 'valvtaket' 'valvsal' 'valvsalen' In_Arched_Hall, description "Du är i ett stort rum utmejslat ur bergrunden. På golvet och väggarna sitter massor av skalbitar fast i stenen. En grund gång fortsätter neråt, och en något brantare leder upp. En låg krypgång kommer in söderifrån.", u_to In_Arched_Hall, d_to In_Ragged_Corridor, s_to [; if (giant_bivalve in player) { if (giant_bivalve has open) "Du kan inte få in det här en och en halvmeters ostronet genom den där lilla gången."; else "Du kan inte få in den här en och en halvmeters musslan genom den där lilla gången."; } return At_Complex_Junction; ]; Object -> giant_bivalve "jättemussla" with name 'jättemussla' 'jättemusslan' 'mussla' 'musslan' 'ostron' 'ostronet' 'jätteostron' 'jätteostronet' 'gigantisk' 'gigantiskt' 'gigantiska' 'tvåskalig' 'tvåskaligt' 'tvåskaliga' 'blötdjur' 'blötdjuret', short_name [; if (self.has_been_opened) { print "jätteostron"; if(indef_mode==false) print "et"; } else { print "jättemussla"; if(indef_mode==false) print "n"; } rtrue; ], describe [; if (self.has_been_opened) "Det finns ett gigantiskt ostron här, med skalet hårt stängt."; "Det finns en gigantisk mussla här, med skalet hårt stängt."; ], before [; Examine: if (location == At_Ne_End or At_Sw_End) "Intressant. Något verkar stå skrivet på ostronets undersida: ^^ ~Det är något mystiskt med det här stället, som har gjort att en av de förbannelser jag alltid känt till nu har en ny effekt.~"; "Ett gigantiskt tvåskaligt blötdjur av något slag."; Open: "Du är inte stark nog för att öppna musslan med dina bara händer."; Unlock: if (second ~= trident) { SetGender(second); print (The) second, " är inte stark"; if(second has pluralname) print "a"; else if(second has neuter) print "t"; " nog för att öppna musslan."; } if (self.has_been_opened) "Ostronet öppnas med ett gnissel, och inuti syns inget annat än ostron. Det stängs genast igen."; self.has_been_opened = true; move pearl to In_A_Cul_De_Sac; SetGender(self, neuter); "En glimrande pärla faller ut ur musslan och rullar iväg. Jösses, det här måste faktiskt vara ett ostron. (Jag har aldrig varit något vidare på att identifiera tvåskaliga blötdjur.) Vad det än är, så har det nu åter stängts."; Attack: "Skalet är mycket starkt och är ogenomträngligt för attacker."; ], has_been_opened false, has uter; Treasure pearl "glimrande pärla" with name 'pärla' 'pärlan' 'glimrande' 'skimrande' 'glimmande' 'otrolig' 'otroliga' 'otroligt' 'stor' 'stora', short_name_def "glimrande pärlan", description "Den är otroligt stor!", initial "Vid ena sidan ligger en glimrande pärla!", depositpoints 14, has def_article; ! ------------------------------------------------------------------------------ Room In_Ragged_Corridor "Ojämn korridor" with teleport_to 'skalrum' 'skalrummet' In_Shell_Room, description "Du är i en lång sluttande korridor med ojämna, vassa väggar.", u_to In_Shell_Room, d_to In_A_Cul_De_Sac; Room In_A_Cul_De_Sac "I slutet av en gång" with teleport_to 'skalrum' 'skalrummet' In_Shell_Room, description "Du är i slutet av en två och en halv meter bred gång.", u_to In_Ragged_Corridor, out_to In_Ragged_Corridor; ! ------------------------------------------------------------------------------ ! Witt's End / Slut på uppslag : Grottbyggnation pågår ! ------------------------------------------------------------------------------ Room In_Anteroom "I entrén" with description "Du är i en entré med ett märkligt, böljande golv. Golvet ser ut som början på ett gigantisk, uppslagen bok som fortsätter in i en stor gång österut. Små gångar går västerut och uppåt. Det syns tydliga spår av att någon nyligen har grävt här.", u_to At_Complex_Junction, w_to In_Bedquilt, e_to At_Witts_End; Object -> "skylt" with name 'skylt' 'skylten' 'karlsson' 'karlssons' 'karlsson^s' 'byggab' 'bygg' 'ab' 'grottbyggnation' 'varningsskylt' 'varningsskylten' 'om' 'med' 'av' 'från', short_name_def "skylten", initial "På en skylt som hänger fritt i luften står det: ~Grottbyggnation pågår bortom denna punkt. Fortsätt på egen risk. Målsmän ansvarar för sina barn. [Karlssons Bygg AB]~", before [; Take: "Den hänger långt ovanför ditt huvud."; ], has static; Object -> "ganska nya nummer av ~Speleolognytt~" with name 'ganska' 'nya' 'nytt' 'nummer' 'numret' 'numren' 'av' 'speleolognytt' 'tidning' 'tidningen' 'tidningar' 'tidningarna' 'magasin' 'magasinet' 'magasinen', short_name_def "ganska nya numren av ~Speleolognytt~", description "Jag är rädd att tidningarna är skrivna på dvärgiska.", initial "Det ligger några ganska nya nummer av tidningen ~Speleolognytt~ här.", after [; Take: if (location == At_Witts_End) score--; Drop: if (location == At_Witts_End) { score++; "Ja, nu är det visst helt slut på uppslag."; } ], has multitude pluralname def_article; Scenic "uppslag" with name 'uppslag' 'uppslaget' 'bokuppslag' 'bokuppslaget' 'uppslagen' 'uppslagna' 'bok' 'boken' 'böljande' 'golv' 'golvet', short_name_def "uppslaget", description "Golvet påminner om en uppslagen bok till formen. Du ser dock ingen text.", found_in In_Anteroom At_Witts_end, has neuter; ! ------------------------------------------------------------------------------ Room At_Witts_End "Slut på uppslag" with description "Du är i ett stort rum där golvet är format som en uppslagen bok. Uppslaget började i rummet väster om detta, men det är ändå svårt att avgöra vilken gång som leder dit. Gångar leder åt *alla* håll.", w_to "Du har krupit runt i några små hål men stoppades av en passage där taket nyligen rasat in. Du är nu tillbaka i huvudgången.", before [; Go: if (noun ~= w_obj && random(100) <= 95) "Du har krupit runt i några små hål och kommit tillbaka till huvudgången."; PlayerTo(In_Anteroom); rtrue; ]; ! ------------------------------------------------------------------------------ ! Norr om de hemliga ravinerna, på andra sidan hålet ! ------------------------------------------------------------------------------ Room In_Mirror_Canyon "I spegelravinen" with teleport_to 'reservoar' 'reservoaren' At_Reservoir, description "Du är i en nord/syd-ravin, cirka sju meter bred. Golvet är täckt av en vit dimma som glider in norrifrån. Väggarna sträcker sig uppåt, minst 30 meter höga. Upphängd i något som sitter långt, långt upp, och som du inte kan se, svävar en enorm tvåsidig spegel, parallellt med och mitt emellan ravinens väggar. ^^ Ett litet fönster sitter i vardera väggen, cirka femton meter från golvet.", s_to In_Secret_N_S_Canyon_0, n_to At_Reservoir; Object -> "upphängd spegel" with name 'spegel' 'spegeln' 'massiv' 'massiva' 'enorm' 'enorma' 'hängande' 'upphängd' 'upphängda' 'svävande' 'som' 'svävar' 'dvärgarnas' 'tvåsidig' 'tvåsidiga', short_name_def "upphängda spegeln", description "Spegeln har säkert hängts här för dvärgarnas skull. Som du vet är de extremt fåfänga.", initial "Spegeln har säkert hängts här för dvärgarnas skull. Som du vet är de extremt fåfänga.", before [; Attack, Remove: "Du kan inte nå den härifrån."; ], has static def_article; ! ------------------------------------------------------------------------------ Room At_Window_On_Pit_2 "Vid ett fönster mot ett hål" with description "Du är vid ett lågt fönster med utsikt över ett enormt hål som sträcker sig uppåt utom synhåll. Ett golv är vagt skönjbart mer än femton meter ner. Spår av vit dimma täcker hålets golv, och dimman blir tjockare till vänster. Märken i dammet runt fönstret kan tyda på att någon har varit här nyligen. Tvärs över hålet från dig och sju-åtta meter bort finns ett liknande fönster in till ett upplyst rum. Där ser du en mystisk figur som stirrar tillbaka på dig.", w_to At_Junction_Of_Three, cant_go "Den enda utgången är västerut, tillbaka till korsningen.", before [; Jump: deadflag = 1; "Du hoppar och bryter nacken!"; WaveHands: "Den mystiska figuren vinkar tillbaka till dig!"; ]; ! ------------------------------------------------------------------------------ Room At_Reservoir "Vid Reservoar" with description "Du är vid kanten av en stor underjordisk reservoar. Ett ogenomskinligt moln av vit dimma fyller rummet och stiger snabbt uppåt. Sjön fylls på av en fors som kommer ut ur ett hål i väggen några meter över ditt huvud och landar ljudligt i vattnet någonstans i dimman. Den enda utgången leder tillbaka söderut.", s_to In_Mirror_Canyon, out_to In_Mirror_Canyon, before [; Swim: "Vattnet är iskallt, och du skulle snart frysa ihjäl."; ]; ! ------------------------------------------------------------------------------ ! Gapet och trollbron ! ------------------------------------------------------------------------------ Room In_Sloping_Corridor "Sluttande korridor" with description "Du är i en lång slingrande korridor som sluttar utom synhåll åt båda hållen.", d_to In_Large_Low_Room, u_to On_Sw_Side_Of_Chasm, cant_go "Korridoren sluttar brant upp och ner."; Room On_Sw_Side_Of_Chasm "På sydvästsidan av ett gap" with description "Du är på ena sidan av ett brett, djupt gap. En tung vit dimma som stiger upp nerifrån gör att man inte kan se något alls av den andra sidan. En gång åt sydväst leder bort från gapet, in i en slingrande korridor.", ne_to CrossRicketyBridge, sw_to In_Sloping_Corridor, d_to In_Sloping_Corridor, cant_go "Gången slingrar iväg åt sydväst.", before [; Jump: if (RicketyBridge in self) "Med all respekt vill jag ändå föreslå att du går över bron istället för att hoppa."; deadflag = 1; "Du klarade det inte."; ]; [ CrossRicketyBridge; if (Troll.has_caught_treasure || Troll in nothing) { Troll.has_caught_treasure = false; if (Bear.is_following_you) { remove Bear; remove self; give Wreckage ~absent; remove RicketyBridge; give RicketyBridge absent; StopDaemon(Bear); deadflag = 1; "Just som du når den andra sidan knakar det till, och bron bågnar av belastningen när björnen, som fortfarande följde efter dig, går upp på bron. Du griper desperat efter något att hålla tag i, men när bron kollapsar tappar du fotfästet och faller ner i gapet."; } return RicketyBridge; } if (Troll in location) "Trollet vägrar släppa förbi dig."; move Troll to location; "Trollet kommer ut ur skuggorna under bron, kliver fram och blockerar din väg."; ]; Object -> RicketyBridge "ranglig bro" with name 'bro' 'bron' 'ranglig' 'rangliga' 'instabil' 'instabila' 'ostadig' 'ostadiga' 'ostabil' 'ostabila' 'vinglig' 'vingliga' 'rank' 'ranka' 'rep' 'repet' 'repen' 'repbro' 'repbron' 'träbro' 'träbron', short_name_def "rangliga bron", description "Det ser ut som en vanlig, om än ostadig, bro.", describe [; print "En ranglig träbro går ut över gapet och försvinner in i dimman. ^^ På bron sitter en skylt med texten ~Stopp! Betala trollet!~^"; if (Troll notin location) "Trollet syns inte till någonstans."; rtrue; ], 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 def_article; Object -> -> Troll "burdust troll" with name 'troll' 'trollet' 'burdus' 'burdust' 'burdusa', short_name_def "burdusa trollet", description "Troll är nära släkt med stenar och har lika hård hud som noshörningar.", initial "Ett burdust troll står vid bron och insisterar på att du kastar en skatt till honom innan du får passera.", life [; Attack: "Trollet skrattar till åt ditt patetiska försök att skada honom."; ThrowAt, Give: if (noun ofclass Treasure) { remove noun; move self to RicketyBridge; self.has_caught_treasure = true; score = score - 5; "Trollet fångar din skatt och springer iväg utom synhåll."; } if (noun == tasty_food) "Frosseri är inte en av trollets laster. Det är däremot girighet."; print "Trollet fångar smidigt ", (the) noun, ", undersöker ",(DenEllerHonom) noun," noggrannt, och kastar tillbaka ",(DenEllerHonom) noun,": ~Gott hantverk, men ",(DenEllerHan) noun," är inte värdefull"; if(noun has pluralname) print "a"; else if(noun has neuter) print "t"; " nog.~"; Order: "Fet chans."; Answer, Ask: "Troll är inget vidare på att konversera."; ], has_caught_treasure false, has animate neuter def_article; Object Wreckage "brovrak" with name 'vrak' 'vraket' 'bro' 'bron' 'brovrak' 'brovraket' 'av' 'trollbron' 'död' 'döda' 'björn' 'björnen', short_name_def "vraket av trollbron", initial "Om man tittar ner i gapet syns vraket av trollbron (och en död björn) nere på botten.", before [; "Vraket är för långt ner."; ], found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm, has static absent neuter; ! ------------------------------------------------------------------------------ Room On_Ne_Side_Of_Chasm "På nordöstra sidan av ett gap" with teleport_to 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View 'kalt' 'kala' In_Front_Of_Barren_Room, description "Du är på bortre sidan av gapet. En gång mot nordost leder bort från gapet på den här sidan.", sw_to CrossRicketyBridge, ne_to In_Corridor, before [; Jump: if (RicketyBridge in self) "Med all respekt vill jag ändå föreslå att du går över bron istället för att hoppa."; deadflag = 1; "Du klarade det inte."; ], has nodwarf; Room In_Corridor "I en korridor" with teleport_to 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View, description "Du är i en lång öst/väst-korridor. Ett svagt dånande ljud hörs långt borta.", w_to On_Ne_Side_Of_Chasm, e_to At_Fork_In_Path, has nodwarf; ! ------------------------------------------------------------------------------ ! Vulkanen ! ------------------------------------------------------------------------------ Room At_Fork_In_Path "Vid förgrening i vägen" with teleport_to 'vänster' At_Junction_With_Warm_Walls 'höger' In_Limestone_Passage 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View, description "Vägen förgrenas här. Den vänstra grenen leder nordost. Ett dämpat dån verkar tillta i styrka åt det hållet. Den högra grenen leder sydost nerför en lätt sluttning. Huvudkorridoren kommer in västerifrån.", w_to In_Corridor, ne_to At_Junction_With_Warm_Walls, se_to In_Limestone_Passage, d_to In_Limestone_Passage, has nodwarf; ! ------------------------------------------------------------------------------ Room At_Junction_With_Warm_Walls "Vid en korsning med varma väggar" with teleport_to 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View 'kryp' 'krypgång' 'kammare' 'kammaren' 'stenbumlingkammare' In_Chamber_Of_Boulders, description "Väggarna är väldigt varma här. Norrifrån hörs ett intensivt muller, så högt att hela grottan tycks skaka. En annan gång leder söderut, och en låg krypgång går österut.", s_to At_Fork_In_Path, n_to At_Breath_Taking_View, e_to In_Chamber_Of_Boulders, has nodwarf; ! ------------------------------------------------------------------------------ Room At_Breath_Taking_View "Vid andlöst vacker vy" with teleport_to 'förgrening' At_Fork_In_Path 'mörk' 'mörka' 'illavarslande' 'gång' 'gången' At_Junction_With_Warm_Walls, description "Du står på kanten till en andlöst vacker vy. Långt nedanför dig ligger en aktiv vulkan, ur vilken stora klumpar av flytande lava sprutar ut, för att sedan åter falla tillbaka ner i djupet. Den glödande stenen fyller varje vrå av klipprummet med en blodröd glans, som ger allt ett kusligt, makabert utseende. Luften är fylld av pulserande gnistor av aska och en tung doft av svavel. Väggarna är brännheta, och mullret från vulkanen dränker alla andra ljud. I det sargade taket långt ovanför dig sitter myriader av förvrängda formationer av ren vit alabaster, som sprider det skumma ljuset och bildar hotfulla vålnader på väggarna. Vid ena sidan är en djup svacka, fylld med ett bisarrt kaos av illa tilltygade klippblock som ser ut att ha skapats av djävulen själv. En intensiv flod av eld strömmar ut från vulkanens djup, bränner sin väg genom svackan, och störtar sedan ner i ett bottenlöst hål långt bort till vänster om dig. Till höger om dig sprutar en massiv gejser av överhettad ånga oavbrutet upp från en kal ö, i en svavelsjö som bubblar olycksbådande. Väggen längst till höger flammar av en egen sorts glöd, vilket ger ännu mer infernalisk prakt till den redan helvetiska vyn. En mörk, illavarslande gång leder söderut.", s_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls, d_to "Larva dig inte!", before [; Jump: <>; ], has light; Scenic -> "aktiv vulkan" with name 'vulkan' 'vulkanen' 'glödande' 'aktiv' 'aktiva' 'djup' 'djupet' 'blodröd' 'blodröda' 'glans' 'glansen' 'från' 'röd' 'röda' 'kuslig' 'kusligt' 'kusliga' 'makaber' 'makabert' 'makabra' 'utseende' 'utseendet', short_name_def "aktiva vulkanen", description "Stora klumpar av flytande lava sprutar ut ur vulkanen, för att sedan åter falla tillbaka ner i djupet. Den glödande stenen fyller varje vrå av klipprummet med en blodröd glans, som ger allt ett kusligt, makabert utseende.", has def_article; Scenic -> "gnistor av aska" with name 'gnista' 'gnistan' 'gnistor' 'gnistorna' 'av' 'aska' 'askan' 'luft' 'luften' 'pulserande', short_name_def "gnistorna av aska", articles 0 0 "massor av", description "Gnistorna är för långt bort för att du ska kunna ta dig en närmare titt på dem.", has multitude pluralname; Scenic -> "sargat tak" with name 'sargat' 'sargade' 'tak' 'taket' 'myriad' 'myriader' 'myriaderna' 'av' 'förvrängd' 'förvrängda' 'formation' 'formationer' 'ren' 'rena' 'vit' 'vita' 'alabaster' 'skumt' 'skumma' 'ljus' 'ljuset' 'hotfull' 'hotfulla' 'vålnad' 'vålnader' 'på' 'väggen' 'väggarna', short_name_def "sargade taket", description "I det sargade taket långt ovanför dig sitter myriader av förvrängda formationer av ren vit alabaster, som sprider det skumma ljuset och bildar hotfulla vålnader på väggarna.", has def_article neuter; Scenic -> "djup svacka" with name 'djup' 'djupa' 'svacka' 'svackan' 'bisarr' 'bisarrt' 'bisarra' 'kaos' 'kaoset' 'av' 'illa' 'tilltygat' 'tilltygade' 'klippblock' 'klippblocket' 'klippblocken' 'sten' 'stenen' 'stenar' 'stenarna', short_name_def "djupa svackan", description "Svackan är fylld med ett bisarrt kaos av illa tilltygade klippblock som ser ut att ha skapats av djävulen själv.", has def_article; Scenic -> "flod av eld" with name 'flod' 'floden' 'av' 'eld' 'elden' 'bottenlöst' 'bottenlösa' 'hål' 'hålet', short_name_def "floden av eld", description "Floden av eld strömmar ut från vulkanens djup, bränner sin väg genom svackan, och störtar sedan ner i ett bottenlöst hål långt bort till vänster om dig.", has def_article; Scenic -> "massiv gejser" with name 'massiv' 'massiva' 'gejser' 'gejsern' 'av' 'överhettad' 'överhettade' 'ånga' 'ångan' 'kal' 'kala' 'ö//' 'ön' 'svavelsjö' 'svavelsjön' 'sjö' 'sjön' 'som' 'bubblar' 'bubblande', short_name_def "massiva gejsern", description "Gejsern av överhettad ånga sprutar oavbrutet upp från en kal ö, mitt i en svavelsjö som bubblar olycksbådande.", has def_article; ! ------------------------------------------------------------------------------ Room In_Chamber_Of_Boulders "I stenbumlingkammaren" with teleport_to 'kryp' 'krypgång' 'krypgången' At_Junction_With_Warm_Walls 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View, description "Du är i en liten kammare fylld med stora stenbumlingar. Väggarna är väldigt varma, vilket gör att luften i rummet är nästintill förlamande het. Enda utgången är en krypgång västerut. Det hörs ett lågt muller därifrån.", w_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls, has nodwarf; Scenic -> "stenbumlingar" with name 'stenbumling' 'stenbumlingen' 'stenbumlingar' 'stenbumlingarna' 'bumling' 'bumlingen' 'bumlingar' 'bumlingarna' 'sten' 'stenen' 'stenar' 'stenarna' 'klippa' 'klippan' 'klippor' 'klipporna' 'klippblock' 'klippblocket' 'klippblocken', short_name_def "stenbumlingarna", description "Det är bara vanliga stenbumlingar. De är varma.", before [; LookUnder, Push, Pull: "Du skulle behöva spränga bort dem."; ], has multitude pluralname; Treasure -> "ovanliga kryddor" with name 'exotisk' 'exotiska' 'ovanlig' 'ovanliga' 'krydda' 'kryddan' 'kryddor' 'kryddorna', short_name_def "ovanliga kryddorna", articles "De" "de" "en samling", before [; Smell, Examine: "De luktar underbart exotiskt!"; ], depositpoints 14, has multitude pluralname; ! ------------------------------------------------------------------------------ Room In_Limestone_Passage "I kalkstensgång" with teleport_to 'kalt' 'kala' In_Front_Of_Barren_Room 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View, description "Du går längs en lätt sluttande nord/syd-gång med märkliga kalkstensformationer längs väggarna.", 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; Scenic -> "kalkstensformationer" with name 'formation' 'formationen' 'formationer' 'formationerna' 'form' 'formen' 'former' 'formerna' 'kalksten' 'kalkstenen' 'kalkstenar' 'kalkstenarna' 'kalkstensformation' 'kalkstensformationen' 'kalkstensformationer' 'kalkstensformationerna' 'med' 'riktigt' 'udda', short_name_def "kalkstensformationerna", description "Ibland ser du kalkstenar med riktigt udda former som får dig att stanna upp.", has multitude pluralname; ! ------------------------------------------------------------------------------ ! Om du går ner till skogen idag... ! ------------------------------------------------------------------------------ Room In_Front_Of_Barren_Room "Vid ingången till ett kalt rum" with teleport_to 'kalt' 'kala' In_Barren_Room 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View, description "Du står vid ingången till ett stort, kalt rum. På en skylt ovanför ingången står det: ~Varning! Björn i rummet!~", w_to In_Limestone_Passage, u_to In_Limestone_Passage, e_to In_Barren_Room, in_to In_Barren_Room, has nodwarf; Scenic -> "varningsskylt" with name 'skylt' 'skylten' 'varningsskylt' 'varningsskylten' 'kalt' 'kala' 'rum' 'rummet' 'varning' 'varningen' 'ovanför' 'ingång' 'ingången', short_name_def "varningsskylten", description "På skylten står det: ~Varning! Björn i rummet!~"; ! ------------------------------------------------------------------------------ Room In_Barren_Room "I ett kalt rum" with teleport_to 'förgrening' At_Fork_In_Path 'andlöst' 'vacker' 'vackra' 'vy' 'vyn' At_Breath_Taking_View, description "Du är i ett kalt rum. Rummets mitt är helt tomt förutom lite damm. Avtryck i dammet leder bort mot den bortre änden av rummet. Den enda utgången är den väg du kom in.", w_to In_Front_Of_Barren_Room, out_to In_Front_Of_Barren_Room, has nodwarf; Scenic -> "damm" with name 'damm' 'dammet' 'avtryck' 'avtrycket' 'avtrycken', short_name_def "dammet", articles 0 0 "lite", description "Det ser bara ut som vanligt damm.", has neuter; Object -> Bear "stor grottbjörn" with name 'björn' 'björnen' 'grottbjörn' 'grottbjörnen' 'stor' 'stora' 'tam' 'tama' 'vildsint' 'vildsinta' 'lugn' 'lugna' 'vänlig' 'vänliga' 'vänskaplig' 'vänskapliga', short_name_def "stora grottbjörnen", describe [; if (self.is_following_you) "En mycket stor, tam björn följer efter dig."; if (self.is_friendly == false) "En vildsint grottbjörn stirrar på dig från andra sidan rummet!"; if (location == In_Barren_Room) "En lugn grottbjörn sitter snällt i ett hörn."; "En björn med nöjd uppsyn vandrar omkring i närheten."; ], life [; Attack: if (axe in player) <>; if (self.is_friendly) "Björnen blir förvirrad; han vill bara vara din vän."; "Med vad? Dina bara händer? Mot hans *björnhänder*??"; ThrowAt: if (noun ~= axe) <>; if (self.is_friendly) "Björnen blir förvirrad; han vill bara vara din vän."; move axe to location; axe.is_near_bear = true; "Yxan missar och landar nära björnen, där du inte kan få tag på den."; Give: if (noun == tasty_food) { axe.is_near_bear = false; remove tasty_food; self.is_friendly = true; "Björnen kastar girigt i sig maten. När han är klar verkar han mycket lugnare och till och med ganska vänskaplig."; } if (self.is_friendly) "Björnen verkar inte särskilt intresserad av ditt erbjudande."; "Hoppsan -- ditt erbjudande gör bara björnen argare!"; Order, Ask, Answer: "Det här är en björn med mycket liten hjärna."; ], before [; Examine: print "Björnen är otroligt stor, "; if (self.is_friendly) "men verkar vänligt inställd."; "och verkar väldigt vildsint!"; Take, Catch: if (self.is_friendly == false) "Du måste skoja!"; if (golden_chain has locked) "Björnen sitter fortfarande fastkedjad i väggen."; self.is_following_you = true; StartDaemon(self); "Okej, björnen följer nu efter dig."; Drop, Release: if (self.is_following_you == false) "Va?"; self.is_following_you = false; StopDaemon(self); if (Troll in location) { remove Troll; "Björnen lufsar fram mot trollet, som ger till ett skrik och springer iväg. Björnen ger snart upp jakten och kommer tillbaka."; } "Björnen lunkar iväg från dig."; ], daemon [; if (location == thedark) rfalse; if (self in location) { if (location == At_Breath_Taking_View) "^Björnen ryter av glädje."; rfalse; } move self to location; "^Björnen lufsar efter dig."; ], is_following_you false, is_friendly false, has animate def_article; Treasure -> golden_chain "guldkedja" with name 'kedja' 'kedjan' 'guldkedja' 'guldkedjan' 'länk' 'länken' 'länkar' 'länkarna' 'solid' 'solitt' 'solida' 'guld' 'guldet' 'gyllene' 'tjock' 'tjocka' 'rent' 'rena' 'renaste' 'av', short_name_def "guldkedjan", description "Kedjan har tjocka länkar av rent guld!", describe [; if (self has locked) "Björnen hålls fast av en kedja av rent guld."; "En kedja av rent guld ligger ihoprullad på marken!"; ], with_key set_of_keys, before [; Take: if (self has locked) { if (Bear.is_friendly) "Den är fastlåst i den vänskapliga björnen."; "Den är fastlåst i den vildsinta björnen!"; } Unlock: if (Bear.is_friendly == false) "Du kan omöjligt komma förbi björnen och komma åt att låsa upp kedjan, och det är nog lika bra det."; Lock: if (self hasnt locked) "Mekanismen går inte i lås igen."; ], after [; Unlock: "Du låser upp kedjan och släpper lös den tama björnen."; ], depositpoints 14, has lockable locked; ! ------------------------------------------------------------------------------ ! Den olika labyrinten ! ------------------------------------------------------------------------------ Class DiffmazeRoom with short_name "Labyrint"; DiffmazeRoom Different_Maze_1 with description "Du är i en labyrint av slingrande trånga gångar, alla olika.", 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 "Du är i en trång labyrint av slingrande gångar, alla olika.", 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 "Du är i en labyrint av slingriga trånga gångar, alla olika.", 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 "Du är i en trång labyrint av slingrande gångar, alla olika.", 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 "Du är i en slingrig labyrint av trånga gångar, alla olika.", 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 "Du är i en slingrig trång labyrint av gångar, alla olika.", 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 "Du är i en slingrande trång labyrint av gångar, alla olika.", 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 "Du är i en slingrande labyrint av trånga gångar, alla olika.", 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 "Du är i en trång slingrande labyrint av gångar, alla olika.", 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 "Du är i en labyrint av trånga slingriga gångar, alla olika.", 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 "Du är i en labyrint av trånga slingrande gångar, alla olika.", 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 class Room with short_name "Återvändsgränd, nära varuautomat", description "Du har nått en återvändsgränd. Det står en stor varuautomat här. ^^ Hmmm... Någon har skrivit ett meddelande i dammet, med sirlig handstil.", n_to Different_Maze_2, out_to Different_Maze_2, has nodwarf; Scenic -> "meddelande i dammet" with name 'meddelande' 'meddelandet' 'i//' 'damm' 'dammet' 'skrift' 'skriften' 'sirlig' 'sirliga' 'handstil' 'handstilen', short_name_def "meddelandet i dammet", description "Meddelandet lyder: ~Det här är inte den labyrint där piraten lämnar sin skattkista.~", has neuter; Scenic -> VendingMachine "varuautomat" with name 'varuautomat' 'varuautomaten' 'automat' 'automaten' 'maskin' 'maskinen' 'springa' 'springan' 'myntspringa' 'myntspringan' 'stor' 'stora' 'batteri' 'batteriet' 'batterier' 'batterierna', short_name_def "varuautomaten", description "Instruktionerna på varuautomaten lyder: ~Lägg i mynt för att få färska batterier.~", before [; Receive: if (noun == rare_coins) { move fresh_batteries to location; remove rare_coins; "Strax efter att du lagt i mynten i myntspringan, kommer ett gnisslande läte från varuautomaten, och en uppsättning färska batterier faller ner vid dina fötter."; } "Automaten verkar vara gjord för att ta emot mynt."; Attack: "Automaten är väldigt gedigen och överlever din attack utan att få så mycket som en skråma."; LookUnder: "Du hittar inget under automaten"; Search: "Du kan inte komma in i automaten."; Take: "Varuautomaten är alldeles för tung för att du ska kunna flytta den."; ]; Object fresh_batteries "färska batterier" VendingMachine with name 'batteri' 'batteriet' 'batterier' 'batterierna' 'färsk' 'färskt' 'färska' 'fräsch' 'fräscht' 'fräscha' 'laddat' 'laddade' 'fulladdat' 'fulladdade' 'nytt' 'nya', short_name_def "färska batterierna", description "De ser ut som vanliga batterier. (En blodisande stämma säger ~Gott om kräm!~)", initial "Det ligger färska batterier här.", before [; Count: "Ett par."; ], have_been_used false, has def_article pluralname; Object old_batteries "urladdade batterier" with name 'batteri' 'batteriet' 'batterier' 'batterierna' 'urladdat' 'urladdade' 'tomt' 'tomma' 'slutkört' 'slutkörda' 'dött' 'döda' 'stendött' 'stendöda', short_name_def "urladdade batterierna", description "De ser ut som vanliga batterier.", initial "Några urladdade batterier ligger slängda i närheten.", before [; Count: "Ett par."; ]; ! ------------------------------------------------------------------------------ ! Dvärgar! ! ------------------------------------------------------------------------------ Object dwarf "hotfull liten dvärg" with name 'dvärg' 'dvärgen' 'hotfull' 'hotfulla' 'hotfulle' 'otäck' 'otäcke' 'otäcka' 'liten' 'lille' 'lilla' 'elak' 'elake' 'elaka', short_name_def "hotfulla lilla dvärgen", description "Det är nog ingen bra idé att komma alltför nära. Lillkillen är rätt aggressiv, om man säger så.", initial "En hotfull liten dvärg gömmer sig i skuggorna.", number 5, daemon [; if (location == thedark) return; if (self.number == 0) { StopDaemon(self); return; } if (parent(self) == nothing) { 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--; "En dvärg dyker upp, men draken ger av en eldkvast som fullständigt förbränner honom."; } move self to location; "En hotfull liten dvärg kommer ut ur skuggorna!"; } return; } if (parent(self) ~= location) { if (location == thedark) return; if (location has nodwarf || location has light) return; if (random(100) <= 96 && parent(self) ~= In_Mirror_Canyon) { move self to location; print "^Dvärgen smyger efter dig...^"; } else { remove self; return; } } if (random(100) <= 75) { new_line; if (self.has_thrown_axe == false) { move axe to location; self.has_thrown_axe = true; remove self; "Dvärgen kastar en otäck liten yxa mot dig, missar, svär, och springer iväg."; } if (location == In_Mirror_Canyon) "Dvärgen beundrar sig själv i spegeln."; print "Dvärgen kastar en otäck liten kniv mot dig, "; if (random(1000) <= 95) { deadflag = 1; "och träffar!"; } "men missar!"; } if (random(3) == 1) { remove self; "^Dvärgen tröttnar, och glider iväg."; } ], before [; Kick: "Du kickar dvärgen tvärs över rummet. Han svär, ställer sig upp och borstar av sig. Nu är han argare än nånsin!"; ], life [; ThrowAt: if (noun == axe) { if (random(3) ~= 1) { remove self; move axe to location; self.number--; "Du dödade en liten dvärg! Kroppen försvinner i ett moln av oljig svart rök."; } move axe to location; "Miss! Den lilla dvärgen duckar undan yxan."; } <>; Give: if (noun == tasty_food) "Tokstolle, dvärgar äter bara kol! Nu har du gjort honom *riktigt* arg!"; "Dvärgen är inte det minsta intresserad av ditt erbjudande. (Anledningen är, kanske, att om han dödar dig får han ändå allt du har.)"; Attack: "Inte med dina bara händer. Inte en chans."; ], has_thrown_axe false, has animate def_article male; Object axe "dvärgyxa" with name 'yxa' 'yxan' 'liten' 'lilla' 'dvärgyxa' 'dvärgyxan' 'dvärgayxa' 'dvärgayxan' 'dvärgisk' 'dvärgiska', short_name_def "dvärgyxan", description "Det är bara en liten yxa.", initial "Det ligger en liten yxa här.", before [; if (~~self.is_near_bear) rfalse; Examine: "Den ligger bredvid björnen."; Take: "Inte en chans. Den ligger bredvid den vildsinta björnen, på knappt en ramlängds avstånd från döden."; ], is_near_bear false; ! ------------------------------------------------------------------------------ ! Två möten med pirater ! ------------------------------------------------------------------------------ Object pirate with 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) "^En skäggig pirat dyker upp, får syn på dvärgen och springer iväg."; 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); "^Du hör svaga prasslande ljud från mörkret bakom dig. När du vänder dig om får du syn på en skäggig pirat. Han bär en stor kista. ^^ ~Krevader och kanoner!~ skriker han, ~Han har sett mig! Bäst jag drar till labyrinten och gömmer kista min!~ ^^ Med dessa ord försvinner han in i skumrasket."; } 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; } "^Ut från skuggorna bakom dig hoppar en skäggig pirat! ~He, he~, skrockar han, ~Jag tar bara allt det här bytet och gömmer undan det i kista min långt in i labyrinten!~ Han sliter åt sig din skatt och försvinner in i skumrasket."; ], has_stolen_something false, has_been_spotted false; ! ---------------------------------------------------------------------------- ! Grottsystemet stänger nu... ! ---------------------------------------------------------------------------- Object cave_closer with daemon [; if (treasures_found < MAX_TREASURES) return; StopDaemon(self); caves_closed = true; score = score + 25; remove CrystalBridge; give Grate locked ~open; remove set_of_keys; StopDaemon(dwarf); StopDaemon(pirate); remove Troll; remove Bear; remove Dragon; StartTimer(endgame_timer, 25); "En blodisande stämma ekar fram mellan grottväggarna: ~Grottsystemet stänger snart. Alla äventyrare måste genast bege sig till utgången vid huvudkontoret.~"; ]; Object endgame_timer with time_left 0, time_out [; score = score + 10; while (child(player)) remove child(player); move bottle to At_Ne_End; if (child(bottle)) 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 "^Den blodisande stämman förkunnar: ~Grottsystemet är nu stängt.~ När ekona har dött ut, kommer en stark ljusblixt som förblindar dig (och en liten puff av orange rök). . . ^^ När dina ögon hämtat sig så att du kan fokusera igen, ser du dig omkring...^"; PlayerTo(At_Ne_End); ]; ! ------------------------------------------------------------------------------ ! Slutspelet ! ------------------------------------------------------------------------------ Room At_Ne_End "Nordöstra änden av lagret" with description "Du är i nordöstra änden av ett makalöst stort rum, till och med större än det gigantiska rummet. Det verkar vara ett lager för programmet ~Äventyr~. Stora facklor högt uppe ovanför dig indränker rummet i ett rökigt gult ljus. Utspritt runt dig ser du en hög med flaskor (alla tomma), en odling av unga bönstjälkar som mumlar tyst, en ostronbank, ett knippe svarta stavar med rostiga stjärnor i ena änden, samt en samling mässingslampor. Vid ena sidan ligger en massa dvärgar på golvet och snarkar högljutt. På en skylt intill står att läsa: ~Stör inte dvärgarna!~", sw_to At_Sw_End, has light; Object -> "enorm spegel" with name 'spegel' 'spegeln' 'enorm' 'enorma' 'gigantisk' 'gigantiska' 'stor' 'stora' 'jättestor' 'jättestora' 'upphängd' 'upphängda' 'hängande', short_name_def "enorma spegeln", description "Det ser ut som en vanlig, om än enorm, spegel.", initial "En gigantisk spegel hänger på ena väggen, och sträcker sig till andra änden av rummet, där allsköns objekt skymtar långt bort.", before [; Attack: print "Du ger spegeln ett kraftigt slag, varvid den faller sönder i en myraid små bitar.^^"; SleepingDwarves.wake_up(); rtrue; ], found_in At_Ne_End At_Sw_End, has static def_article; Scenic -> "samling äventyrsspelsmateriel" ! Tvingades dela upp name-arrayen i tre delar för att den blev för stor. ! Lade till en parse_name som tar hänsyn till alla tre arrayerna with name 'hög' 'högen' 'med' 'flaska' 'flaskan' 'flaskor' 'flaskorna' 'bönstjälk' 'bönstjälken' 'bönstjälkar' 'bönstjälkarna' 'ung' 'unga' 'mumlande' 'tyst' 'tysta' 'ostronbank' 'ostronbanken' 'ostron' 'ostronet' 'ostronen' 'svart' 'svarta' 'stav' 'staven' 'stavar' 'stavarna', name2 'med' 'en' 'den' 'rostig' 'rostiga' 'stjärna' 'stjärnan' 'stjärnor' 'stjärnorna' 'i//' 'ena' 'änden' 'samling' 'samlingen' 'av' 'mässingslampa' 'mässingslampan' 'mässingslampor' 'mässingslamporna' 'grejer' 'grejerna' 'grejor' 'grejorna' 'skräp' 'skräpet' 'prylar' 'prylarna' 'materiel' 'materielet' 'material' 'materialet', name3 'fackla' 'facklan' 'facklor' 'facklorna' 'objekt' 'objektet' 'objekten' 'äventyrsspelsmateriel' 'äventyrsspelsmaterielen' 'äventyrsspelsmaterial' 'äventyrsspelsmaterialet' 'lager' 'lagret' 'makalöst' 'stort' 'stora' 'allsköns' 'knippe' 'knippet', parse_name [ wd num; wd = NextWord(); while (WordInProperty(wd, self, name) || WordInProperty(wd, self, name2) || WordInProperty(wd, self, name3)) { num++; wd = NextWord(); } return num; ], short_name_def "samlingen av äventyrsspelsmateriel", description "Du har redan sett allt härinne, fast i andra sammanhang.", before [; Take: "När du inser att om du skulle ta prylarna här skulle du förstöra spelet för framtida spelare, väljer du att lämna ~Äventyr~-materielen där den är."; ]; Scenic -> SleepingDwarves "sovande dvärgar" with name 'dvärg' 'dvärgen' 'dvärgar' 'dvärgarna' 'sovande' 'snarkande' 'slumrande' 'vilande' 'otäck' 'otäcke' 'otäcka' 'arg' 'arge' 'arga', short_name_def "sovande dvärgarna", articles "De" "de" "hundratals arga", description "Jag skulle inte störa dvärgarna om jag var du.", before [; Take: "Vad då, allihop?"; ], life [; WakeOther: print "Du ruskar om den närmaste dvärgen, som vaknar sur, tar en titt på dig, svär, och griper efter sin yxa.^^"; self.wake_up(); rtrue; Attack: self.wake_up(); rtrue; ], wake_up [; deadflag = 1; "Det resulterande tumultet har väckt dvärgarna. Det finns nu dussintals hotfulla små dvärgar i rummet med dig! De flesta av dem kastar knivar mot dig. Allihop får tag på dig!"; ], has animate multitude; ! ------------------------------------------------------------------------------ Room At_Sw_End "Sydvästra änden av lagret" with description "Du är i sydvästra änden av lagret. Vid ena sidan finns en grop full med vildsinta gröna ormar. Vid andra sidan står en rad med små flätade korgar, med en liten snyftande fågel i varje. I ett hörn ligger ett knippe svarta stavar med rostiga märken i ena änden. Ett stort antal sammetskuddar ligger utspridda på golvet. En enorm spegel fortsätter mot nordost. Vid dina fötter är ett stort stålgaller, med en skylt bredvid där det står: ~SKATTKAMMARE. Nycklar på huvudkontoret.~", d_to RepositoryGrate, ne_to At_Ne_End, has light; Object -> RepositoryGrate "stålgaller" with name 'vanligt' 'vanliga' 'stålgaller' 'stålgallret' 'galler' 'gallret', short_name_def "stålgallret", description "Det ser bara ut som ett vanligt stålgaller.", when_open "Gallret är öppet.", when_closed "Gallret är stängt.", door_dir d_to, door_to Outside_Grate, with_key nothing, has static door locked openable neuter; Scenic -> "samling äventyrsspelsmateriel" ! Tvingades dela upp name-arrayen i tre delar för att den blev för stor. ! Lade till en parse_name som tar hänsyn till alla tre arrayerna with name 'grop' 'gropen' 'vildsint' 'vildsinta' 'grön' 'gröna' 'orm' 'ormen' 'ormar' 'ormarna' 'flätad' 'flätade' 'korg' 'korgar' 'med' 'en' 'liten' 'små' 'snyftande' 'fågel' 'fågeln' 'fåglar' 'fåglarna' 'i//' 'varje', name2 'samling' 'samlingen' 'av' 'kudde' 'kudden' 'kuddar' 'kuddarna' 'sammetskudde' 'sammetskudden' 'sammetskuddar' 'sammetskuddarna', name3 'grejer' 'grejerna' 'grejor' 'grejorna' 'skräp' 'skräpet' 'prylar' 'prylarna' 'materiel' 'materielet' 'material' 'materialet' 'äventyrsspelsmateriel' 'äventyrsspelsmaterielen' 'äventyrsspelsmaterial' 'äventyrsspelsmaterialet' 'lager' 'lagret' 'makalöst' 'stort' 'stora' 'allsköns', parse_name [ wd num; wd = NextWord(); while (WordInProperty(wd, self, name) || WordInProperty(wd, self, name2) || WordInProperty(wd, self, name3)) { num++; wd = NextWord(); } return num; ], short_name_def "samlingen av äventyrsspelsmateriel", description "Du har redan sett allt härinne, fast i andra sammanhang.", before [; Take: "När du inser att om du skulle ta prylarna här skulle du förstöra spelet för framtida spelare, väljer du att lämna ~Äventyr~-materielen där den är."; ]; Object -> black_mark_rod "svart stav med ett rostigt märke i ena änden" with name 'svart' 'svarta' 'stav' 'staven' 'med' 'det' 'ett' 'rostig' 'rostigt' 'rostiga' 'märke' 'märket' 'i//' 'meterlång' 'meterlånga' 'explosiv' 'explosiva' 'dynamit' 'dynamiten' 'smällare' 'smällaren' 'ena' 'änden', short_name_def "svarta staven med ett rostigt märke i ena änden", description "Det är en meterlång svart stav med ett rostigt märke i ena änden.", initial "En meterlång svart stav med ett rostigt märke i ena änden ligger i närheten.", before [; Wave: "Inget händer."; ], has def_article; ! ------------------------------------------------------------------------------ ! Några rutiner som anropas av biblioteket ! ------------------------------------------------------------------------------ [ Initialise; location = At_End_Of_Road; score = 36; StartDaemon(dwarf); StartDaemon(pirate); StartDaemon(cave_closer); "^^^^^Välkommen till Äventyr!^ (Skriv HJÄLP, eller bara H, för instruktioner och information.)^^"; ]; [ PrintRank; print ", vilket ger dig titeln "; if (score >= 348) "Stormästare!"; if (score >= 330) "Mästare av första graden."; if (score >= 300) "Mästare av andra graden."; if (score >= 200) "Juniormästare."; if (score >= 130) "Erkänt duktig äventyrare."; if (score >= 100) "Erfaren äventyrare."; if (score >= 35) "Äventyrare."; if (score >= 10) "Nybörjare."; "Amatör."; ]; [ DarkToDark; if (dark_warning == false) { dark_warning = true; "Det är nu kolsvart. Om du fortsätter kommer du troligen falla ner i ett hål."; } if (random(4) == 1) { deadflag = 1; "Du föll ner i ett hål och bröt varenda ben i kroppen!"; } rfalse; ]; [ UnknownVerb word; if (WordInProperty(word, location, teleport_to)) { verb_wordnum = 0; return 'gå till'; } rfalse; ]; ! ------------------------------------------------------------------------------ ! Återupplivning ! ------------------------------------------------------------------------------ [ AfterLife o; if (deadflag == 3) { deadflag = 1; rfalse; } print "^^"; if (caves_closed) "Det verkar inte bättre än att du är död. Tja, eftersom det ändå är så nära stängningsdags, så tror jag vi tar och sätter punkt där."; switch (deaths) { 0: print "Hoppsan, du har visst gått och dött. Jag kan kanske hjälpa dig, men jag har egentligen aldrig gjort det här förut. Vill du att jag ska försöka återuppliva dig?^^"; 1: print "Hör du klumpeduns, nu har du gjort det igen! Jag vet inte hur många gånger jag fixar att göra om det här. Vill du att jag ska försöka återuppliva dig igen?^^"; 2: print "Nu har du verkligen ställt till det! Jag har slut på orange rök! Förväntar du dig på allvar att jag ska försöka mig på en återupplivning utan orange rök?^^"; } print "> "; if (YesOrNo() == false) { switch (deaths) { 0: "Då så."; 1: "Det är nog ett klokt val."; 2: "Jag trodde väl inte det heller!"; } } switch (deaths) { 0: print "Okej. Men skyll inte på mig om något går fe...... ^^^^ --- PUFF!! --- ^^ Du omsveps av ett moln av orange rök. Du hostar och kippar efter andan när du stapplar ut från röken och upptäcker att du är...^"; 1: print "Okej, var gjorde jag nu av min oranga rök?.... >PUFF!< ^^ Allt försvinner i ett tjockt moln av orange rök.^"; 2: "Okej, om du nu är så smart, så fixa det själv då! Jag sticker!"; } deaths++; score = score - 10; if (location ~= thedark) { while (child(player)) { o = child(player); move o to location; if (o ofclass Treasure) score = score - 5; } } else { while (child(player)) { 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); ]; ! ------------------------------------------------------------------------------ ! Meny-baserad hjälp (Egentligen inte en del av spelet) ! ------------------------------------------------------------------------------ [ HelpMenu; if (menu_item == 0) { item_width = 5; item_name = "Om Äventyr"; if (deadflag == 2) return 5; else return 4; } if (menu_item == 1) { item_width = 7; item_name = "Instruktioner"; } if (menu_item == 2) { item_width = 4; item_name = "Historia"; } if (menu_item == 3) { item_width = 6; item_name = "Autenticitet"; } if (menu_item == 4) { item_width = 13; item_name = "Den svenska översättningen"; } if (menu_item == 5) { item_width = 8; item_name = "Visste du att..."; } ]; [ HelpInfo; if (menu_item == 1) { print "Jag känner till platser, handlingar och objekt. Du kan styra mig med kommandon som bildar kompletta meningar. För förflyttning, prova kommandon som ~gå in~ ~öster~, ~väster~, ~norr~, ~söder~, ~upp~, ~ner~, ~gå in i byggnaden~, ~klättra på stolpen~, etc.^^"; print "Jag känner till en del speciella objekt, som en svart stav som ligger gömd i grottan. Dessa objekt kan manipuleras genom att använda vissa av de handlingsord jag känner till. Oftast behöver du ange ett verb följt av ett objekt (tillsammans med beskrivande adjektiv när så önskas), men ibland kan jag gissa vilket objekt som menas med ledning av verbet. Om du undrar vilka objekt du bär med dig, kan du skriva ~lista mina saker~, eller kortare, bara ~lista~. En del objekt har sidoeffekter; staven skrämmer t ex fågeln.^^"; print "Många kommandon har förkortningar. T ex kan du skriva ~l~ istället för ~lista~, ~t~ för titta, ~n~ för ~norr~, ~nv~ för nordväst etc. Några speciella förkortningar är ~x objekt~ för ~undersök objekt~,~g~ för ~igen~ (dvs gör om samma sak som förra draget), och ~z~ för ~vänta~.^^"; print "De flesta spelare som har svårt att förflytta sig i spelet behöver bara prova lite andra ord. De flesta som misslyckas med att manipulera ett objekt, försöker göra något som ligger utanför deras (eller min!) förmåga och bör försöka hitta ett helt nytt angreppssätt.^^"; print "Notera att grottgångar svänger mycket, och att man går norrut när man går ut ur ett rum garanterar inte att man kommer in i nästa rum söderifrån.^^"; print "Om du vill sluta spela, skriv ~sluta~. För att spara ditt äventyr så att du kan fortsätta senare, skriv ~spara~, och för att ladda in ett sparat spel, skriv ~hämta~. För att ta tillbaka ditt senaste drag, skriv ~ångra~. För att se hur bra det går för dig, skriv ~poäng~. För att få full poäng för en skatt måste du lägga den i säkerhet i byggnaden, men du får en del av poängen bara genom att hitta den. Du förlorar poäng om du dör, eller avslutar spelet, men det förstnämnda kostar mer. Du får också poäng för hur stor del (om någon) av grottsystemet som du lyckats utforska; framför allt finns det en stor bonus bara för att man lyckats ta sig in (för att skilja nybörjarna från resten), och det finns andra sätt att avgöra om du kommit igenom några av de grymmare sektionerna.^^"; print "Om du tror att du hittat alla skatterna, fortsätt bara utforska ett tag. Om inget intressant händer, så har du inte hittat alla än. Om något intressant *händer*, så betyder det att du får en bonus och har en chans att ro hem mycket mer poäng i Mästarsektionen.^^"; "Lycka till!"; } if (menu_item == 2) { print "Den kanske första äventyraren var en mulattslav, Stephen Bishop, född ca 1820: 'liten, smidig och väldigt vacker'; en 'snabb, modig, entusiastisk' guide till grottsystemet Mammoth Cave i Kentucky-karsten. Grottsystemets historia är en märklig miniatyr av amerikansk historia. Dess upptäckt finns förklarad i en legend som dateras till 1790-talet; det sägs att en jägare, John Houchin, följde en skadad björn till en stor grop nära floden Green River och snubblade på ingången. Ingången var full av fladdermöss och vid kriget 1812 samlades mycket guano där, vilket löstes i nitrat-tunnor för att bilda salpeter till kruttillverkningen. Efter kriget föll priserna; men grottsystemet blev en liten sidoattraktion när en dissekerad indianmumie hittades i närheten, sittandes upprätt i en kista av sten, omgiven av talismaner. 1815 fördes Hjorthov, som hon kallades efter en av amuletterna, bort av en cirkus, och hon drog publik över hela Amerika (en turné som i mångt och mycket påminner om Don McLeans låt 'The Legend of Andrew McCrew'). Hon hamnade tillslut på Smithsonianmuséet men på 1820-talet kallades grottsystemet för ett av världens underverk, mycket tack vare hennes postuma ansträngningar.^^"; print "Vid artonhundratalets början var europeiska grottsystem stora turistattraktioner, men nästan ingen besökte Mammoth-systemet, hur mycket 'underverk' det än var. Inte var det särskilt stort heller, på den tiden (Namnet var ett minne av guanosamlarna, som skröt om sina ~mammutfynd~ av guano). 1838 köpte Stephen Bishops ägare grottsystemet. Stephen, som han (i egenskap av slav) alltid kallades, var en mycket speciell man: han var självlärd i latin och grekiska, och blev känd som 'högste härskare' över sitt underjordiska rike. Han utforskade och namngav en stor del av grottsystemet på sin fritid, och dubblerade den kända kartan på ett år. Den särprägel som namnen i Mammoth-systemet bär -- till hälften hemgjorda amerikanska, till hälften klassiska -- började med Stephen: Floden Styx, Snöbollsrummet, Lilla fladdermusavenyn, Jättekupolen. Stephen hittade märkliga blinda fiskar, ormar, tysta gräshoppor, kvarlevor av grottbjörnar (vilda, lekfulla djur, en och en halv meter långa och dryga metern höga, som dog ut vid slutet av den senaste istiden), hundratals år gamla indianska arbeten i gipskristaller, och mer och mer grottor. Hans karta från 1842, ritade helt från minnet, var fortfarande i bruk fyrtio år senare.^^"; print "Som turistattraktion (och, eftersom Stephens ägare var en filantrop, under en kort period ett sanatorium för tuberkulos, pga en hopplös medicinsk teori) kom grottsystemet att omsätta mycket pengar: under decennier bytte närliggande grottor ägare och det var massor av tvister om vem som hade laglig rätt till de olika grottorna. Ett annat bolag öppnade Great Onyx Cave 1912, tvärs över dalen Houchins Valley, i berget Flint Ridge. På 1920-talet var Kentuckys grottkrig i full gång. Rivaliserande ägare slussade turister till sina egna grottor med hjälp av falska poliser, anställde lustigkurrar för att sabotera varandras guidade turer, brände ner biljettkiosker, publicerade baktalande och falska annonser. Utforskning av grottor blev så farligt och hemligt at USA:s regering till slut ingrep 1941, gjorde en stor del av området till nationalpark och förbjöd i princip all utforskning av grottor. Guldrushen av turister höll ändå på att avta.^^"; print "Övertygade om att Mammoth-grottorna och Flint Ridge-grottorna alla hängde ihop i en enorm kedja, prövade utforskare olika hemliga ingångar under flera år, och fick till slut officiellt stöd. Under 1960-talet befanns alla gångar ut från Flint Ridge -- knepiga, vattenfyllda tunnlar -- sluta i frustrerande stenras. En 'trådsmal' fysiker, Patricia Crowther, gjorde genombrottet 1972 när hon kom igenom passagen Tight Spot och hittade en gyttjig gång: det var en gömd väg in i Mammoth-grottorna.^^"; print "I enlighet med hans ägares testamente, befriades Stephen Bishop 1856, då grottsystemet bl a innehöll inte mindre än 226 avenyer, 47 kupoler, 23 gropar och 8 vattenfall. Han dog ett år senare, innan han kunde köpa sin fru och sin son. På 1970-talet hittade man Crowthers gyttjiga passage på hans karta.^^"; print "Mammoth är ett enormt grottsystem, och dess fulla utbredning är fortfarande ämne för spekulationer. (uppskattningar ligger mellan 500 och 800 km). Trots att det här spelet ofta har kallats ~Colossal Cave~, så är det i själva verket en simulering av området Bedquilt Cave (Lapptäcksgrottan). Här är Will Crowthers egen historia om hur spelet kom till:^^"; print "~Jag hade hållit på med ett icke datorbaserat rollspel som hette Dungeons and Dragons vid den tidpunkten, och jag hade även aktivt utforskat grottor -- mestadels Mammoth Cave i Kentucky. Plötsligt befann jag mig i en skiljsmässa, och det var slitsamt på flera sätt. Det jobbigaste var att jag saknade barnen. Jag hade också slutat utforska grottor, eftersom det inte kändes roligt längre, så jag bestämde mig för att, på skoj, skriva ett program som var ett återskapande i fantasin av min grottutforskning, och även skulle vara ett spel för barnen, och kanske vissa aspekter av Dungeons and Dragons-spelet som jag hade spelat.^^"; print "~Min idé var att det skulle vara ett datorspel som inte skulle vara skrämmande för folk utan datorvana, och det var en av anledningarna till att jag gjorde så att spelaren styr spelet genom att skriva naturligt språk, istället för mer standardiserade kommandon. Mina barn tyckte det var väldigt roligt.~ [Citerad i ~Genesis II: Creation and Recreation with Computers~, Dale Peterson (1983).]^^"; print "Crowthers ursprungliga FORTRAN-program hade kanske fem skatter eller så, men ingen formell poängräkning. Utmaningen låg egentligen i att utforska, även om det fanns motstånd från t ex ormen. Precis som det verkliga Bedquilt-området, har Crowthers simulering en karta med ungefär fyra olika djupnivåer och är rik på geologiska detaljer. Ett bra exempel är den oranga pelaren som går ner till Oranga flodrummet (där fågeln bor): den verkliga pelaren är av orange travertin, ett vackert mineral som återfinns i våt kalksten.^^"; print "Spelets språk är fullproppat med referenser till grottutforskning, till 'kupoler' och 'krypgångar'. Ett 'plattrum', t ex, är en mycket gammal grotta vars tak har börjat brytas sönder till skarpa skärvor som ligger utspridda över golvet i en märklig hög. Programmets användande av ordet 'rum' för alla möjliga sorters grottor och platser verkar lite slarvigt, men det är utbrett bland grottutforskare går så långt tillbaka som till Stephen Bishop: så äventyrsspelens användning av ordet 'rum' i betydelsen 'plats' kan till och med härstamma från honom.^^"; print "Spelet tog det avgörande steget mot problemlösning när Don Woods, en Stanford-student, avlusade spelet och byggde ut det. Han tripplade antalet skatter och lade till de icke-geografiska zonerna: allt från trollbron och framåt, samt de flesta förmaken på Lapptäcksnivån. Det finns många imitationer och utvidgningar av det ursprungliga spelet Adventure (Äventyr), och de är allihop i princip baserade på Woods 350-poängsversion. (Många onödigt utbyggda, förstörda eller förbättrade -- det beror på hur man ser på saken -- versioner av spelet cirkulerar på Internet, och det mest användbara sättet at identifiera dem är med hjälp av den maximala poängen man kan få. Det finns många versioner med ca 400 till 600 poäng, och en som går upp till 1000. Woods själv fortsätter släppa nya versioner av sitt spel; de flesta av de andra som utökat spelet saknar hans talang.)^^"; print "Trots att spelet har gått ifrån ren simulation, så är det mycket som fortfarande är realistiskt. Även verkliga grottutforskare vänder tillbaka när deras karbidlampor börjar falna; det finns verkligen mystiska märkningar och initialer på grottväggarna, en del gjorda av guanosamlarna, en del av Bishop, en del av 1920-talets utforskare. Självklart finns det inte en aktiv vulkan i centrala Kentucky, lika lite som det finns drakar och dvärgar. Men till och med dessa påhitt är, på sätt och vis, hämtat från historien: liksom de flesta tidiga rollspel, har 'Äventyr' hämtat mycket inspiration från J.R.R. Tolkiens 'Bilbo', och resan genom bergen och Moria i 'Sagan om ringen' (kanske den del av hela trilogin som är mest dramatisk och har bäst atmosfär). Tolkien själv, den mest framgångsrikare mytskaparen under hela nittonhundratalet, arbetade med isländska, finska och walesiska sagor som förebilder.^^"; print "1977 hade 'Adventure' börjat spridas i allt vidare cirklar, bland annat av Digitals användargrupp DECUS: det tog över lunchraster och helger var det än hamnade... men det är en annan historia. (Tracy Kidders fascinerande bok 'En dators födelse', om en arbetsgrupp som utvecklar stordatorer, sedd ur en journalists perspektiv, fångar det hela bra.)^^"; "Det här är en tredjehands- eller fjärdehandskopia: från Will Crowthers original till Donald Woods 350-poängsversion till Donald Ekmans PC-portning till David M. Baggets utmärkta TADS-version (1993), till denna version. Därtill är den sedan översatt till svenska.^^"; } if (menu_item == 3) { print "(Den här texten är skriven av Graham Nelson, så ~jag~ refererar till Graham)^^"; print "Den här portningen ligger ganska nära originalet. Problemen, sakerna och platserna i Woods ursprungliga 350-poängsversion är exakt desamma som här.^^"; print "Jag har lagt till några hjälpsamma meddelanden, såsom ~Detta är en återvändsgränd.~, här och där: och återinför några ~ursprunglig position~-meddelanden för objekt, såsom det (ganska lama) ^^ Det finns god mat här.^^ från källkodsfiler som säkerligen är tidiga men från oklar källa. De verkar passa bra in i den övriga texten.^^"; print "Poängsystemet är original, förutom att man inte längre tappar fyra poäng för att man slutar (eftersom man inte får se sin poäng när man avslutar ett Inform-spel så spelar det ingen roll) och, mer kontroversiellt, ger jag fem poäng för varje skatt man för tillfället bär på, såsom vissa tidiga 80-talsportningar gjorde. Titlarna man får baserat på sig poäng har fått sig en översyn. Den enda märkbara regeländringen är att man inte kan använda magiska ord förrän man har varit på de platser som de leder till.^^"; print "Dvärgarna har enklare rörelsemönster, men å andra sidan har jag lagt till ett mindre antal meddelanden för att få dem att interagera bättre med resten av spelet. Sannolikheterna är som i originalspelet.^^"; print "I originalet kunde man skriva namnet på ett rum för att komma till det: för att hålla koden liten har jag utelämnat denna finess, men tycker samtidigt det är synd att den saknas. [RF: Den här finessen är inlagd i Release 9 [FR: dvs den engelska version som den svenska versionen är direkt baserad på.].]^^"; print "Själva texten har behållits intakt nästan överallt, men jag har rättat några stavfel och grammatikfel (samt ändrat några ytterst missvisande och kryptiska kommentarer). Instruktionerna har ändrats lite grann (av uppenbara skäl) men är i stort sett som originalets.^^"; "En bra källa för detaljer är David Baggetts källkod, som cirkulerar på Internet."; } if (menu_item == 4) { print "Den svenska översättningen försöker vara så trogen originalet som möjligt, men i vissa lägen har jag varit tvungen att göra ändrigar för att det alls ska bli begripligt på svenska.^^"; print "I ett avseende har jag avsiktligt gått ifrån den engelska Inform-versionen, och det gäller ~teleportering~. I originalet kunde man ta sig till vissa närliggande platser genom att skriva ett nyckelord ur namnet på dem, eller ett ord som beskriver vilken väg man vill ta. Direkt i början kan man t ex skriva ~skogen~ så hamnar man i skogen, och i vissa rum kan man skriva ~framåt~ för att gå vidare till nästa rum. Den engelska Informversionen hade utökat detta till att man kunde teleportera sig till alla rum man besökt. Då jag tyckte att det förstörde vissa problem och inte var i linje med vad Crowther (och senare Woods) avsett med teleporteringen, så återställde jag i princip originalets kommandon och räckvidd för teleportering.^^"; print "Den svenska versionen av spelet använder förstås de svenska tecknen å, ä och ö, och förväntar sig även att spelare använder dessa tecken vid inmatning. Tyvärr finns det Zkods-tolkar som har problem att hantera dessa tecken, särskilt vid inmatning, och det finns förstås även spelare som sitter i andra länder, där det kan vara knepigt att få fram de svenska tecknen på tangentbordet. Därför finns ett specialkommando: ~transkription~. Skriver man ~transkription~ kan man därefter använda aa istället för å, ae istället för ä och oe istället för ö. Om man behöver skriva en sådan bokstavskombination som *inte* ska bytas ut mot ett svenskt tecken, skriver man bara ett utropstecken före, som t ex: ~slaa paa b!oet~ tolkas som ~slå på boet~. Skriver man ~transkription visa~ får man ett meddelande varje gång transkriptionsfunktionen griper in. Slutligen kan man skriva ~transkription av~ för att stänga av funktionen.^^"; print "Det finns några andra kommandon som är standard för Informspel på svenska och som kan vara bra att känna till:^^"; style fixed; print "kort/normalt/långt Bestämmer utskriftsläge, dvs när rumsbeskrivningar ska visas^"; print " (aldrig, vid första besöket, alltid)^ börja om Startar om spelet^ sluta Avslutar spelet^ pronomen Listar vad ~den~, ~det~ osv refererar till^ full poäng Listar exakt vad man fått poäng för^ meddelanden på/av Slår på och stänger av poängmeddelanden^ inspelning på/av Slår på och stänger av kommanoinspelning^ uppspelning Spelar upp tidigare inspelade kommandon^ utskrift på/av Slår på och stänger av utskrift till fil^ version Visar fullständig versionsinformation^^"; style roman; "Kommentarer om den svenska översättningen välkomnas! Gå till http://microheaven.com/swedish/ så står min aktuella mailadress längst ner på sidan. På sidan finns även, för nedladdning, källkoden till detta och andra textäventyr på svenska, samt alla verktyg som behövs att skriva egna textäventyr på svenska.^^ -- Fredrik Ramsberg"; } print "Visste du att...^^"; print "De fem dvärgarna har en 96-procentig chans att följa efter dig, förutom om du går ut i ljus eller ner i hål eller om de beundrar sig själva: och de otäcka små knivarna har en pricksäkerhet på 9.5%.^^"; print "Drakar bränner upp dvärgar (kanske för att dvärgar bara äter kol).^^"; print "Björnen (som tycker om vulkanen) är för tung för bron... och du kan gå tillbaka till platsen efter att du blivit återupplivad.^^"; print "Du kan smita förbi ormen in i den hemliga Ö/V-ravinen, i alla fall 35% av gångerna. Och att gå runt i mörkret är inte fullt så farligt som det verkar: det är bara 25% risk att man ramlar ner i ett hål.^^"; print "Vasen tycker inte om att doppas.^^"; print "Mystiska figurer kan vinka till varandra.^^"; print "Vattnar man på dörrens gångjärn så rostar de ihop igen.^^"; print "När grottsystemet stänger, låses gallret och nycklarna kastas bort, djur springer sin väg och kristallbron försvinner...^^"; print "...och en helt oanvändbar ledtråd står skriven på jätteostronets skal i slutspelet. (För att göra denna ledtråd en aning mer rättvis, har jag ändrat ett ord och placerat antydningar på andra ställen i spelet.)^^"; "Den sista nedrans poängen kan man få genom att...men nej. Det vore att skvallra."; ]; [ HelpSub; if (deadflag ~= 2) DoMenu( "Det finns information om följande ämnen:^ ^ Instruktioner för att spela ^ En historisk bakgrund ^ Hur autentisk är den här versionen? ^ Den svenska översättningen^", HelpMenu, HelpInfo); else DoMenu( "Det finns information om följande ämnen:^ ^ Instruktioner för att spela ^ En historisk bakgrund ^ Hur autentisk är den här versionen? ^ Den svenska översättningen ^ Visste du att...^", HelpMenu, HelpInfo); ]; [ Amusing; HelpSub(); ]; Verb 'hjälp' 'h' * -> Help; ! ------------------------------------------------------------------------------ ! Grammatik: the usual grammar and some extensions ! ------------------------------------------------------------------------------ Include "SwedishG"; ! ------------------------------------------------------------------------------ [ OffSub; if (brass_lantern notin player) "Du har ingen lampa."; <>; ]; [ OnSub; if (brass_lantern notin player) "Du har ingen lampa."; <>; ]; Verb 'av' * -> Off; Verb 'på' * -> On; ! ------------------------------------------------------------------------------ [ CatchSub; "Du kan inte fånga ", (the) noun, "."; ]; [ ReleaseSub; "Du kan inte släppa lös ", (the) noun, "."; ]; Verb 'fånga' * creature -> Catch * 'in' creature -> Catch * creature 'med' held -> Catch * 'in' creature 'med' held -> Catch; Extend 'håll' * 'fast' creature -> Catch * 'fast' creature 'med' held -> Catch; Extend 'ta' * 'fast' creature -> Catch * 'fast' creature 'med' held -> Catch; Extend 'släpp' * 'lös'/'loss'/'ut' creature -> Release * creature 'lös' -> Release; Verb 'befria' 'frige' * creature -> Release; ! ------------------------------------------------------------------------------ [ WaterSub; if (bottle in player) <>; "Vatten? Vilket vatten?"; ]; [ OilSub; if (bottle in player) <>; "Olja? Vilken oilja?"; ]; Verb 'vattna' 'skölj' * 'på' noun -> Water * noun -> Water; Verb 'olja' 'smörj' * 'in'/'upp' noun -> Oil * noun -> Oil; Verb 'häll' 'duscha' * 'vatten' 'på' noun -> Water * 'olja' 'på' noun -> Oil * noun -> Empty; ! ------------------------------------------------------------------------------ [ BlastSub; if (location ~= At_Sw_End or At_Ne_End) "Frustrerande, eller hur?"; if (location == At_Sw_End && parent(black_mark_rod) == At_Ne_End) { score = score + 35; deadflag = 2; "En kraftig explosion hörs, och ett fem-meters hål slås upp i bortre väggen, samtidigt som dvärgarna begravs i sten och grus. Du går igenom hålet och hamnar på huvudkontoret, där ett glatt gäng vänliga alver bär iväg den segrande äventyraren in i solnedgången."; } if (location == At_Ne_End && parent(black_mark_rod) == At_Sw_End) { score = score + 20; deadflag = 1; "En kraftig explosion hörs, och ett fem-meters hål slås upp i bortre väggen, samtidigt som ormarna begravs i sten och grus. En flod av smält lava väller in genom hålet och förstör allt i sin väg, inklusive dig!"; } deadflag = 1; "En kraftig explosion hörs, och du stänks plötsligt ut på rummets alla väggar."; ]; [ BlastWithSub; if (second ~= black_mark_rod) "Att spränga kräver dynamit."; "Har du ätit de där konstiga kakorna igen?"; ]; Verb 'spräng' * -> Blast * noun 'med' held -> BlastWith; ! ------------------------------------------------------------------------------ [ XyzzySub; "Inget händer."; ]; [ PlughSub; "Inget händer."; ]; [ PloverSub; "Inget händer."; ]; [ FeeSub; FthingSub(0); ]; [ FieSub; FthingSub(1); ]; [ FoeSub; FthingSub(2); ]; [ FooSub; FthingSub(3); ]; [ FthingSub i; if (feefie_count ~= i) { feefie_count = 0; "Gör om, gör rätt, din tok!"; } if (feefie_count++ == 3) { feefie_count = 0; if (golden_eggs in In_Giant_Room) "Inget händer."; if ((golden_eggs in player) || (golden_eggs in location)) print "Boet med de gyllene äggen har försvunnit!^"; else print "Klart!"; 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) "^^Ett stort bo fullt med gyllene ägg dyker plötsligt upp från ingenstans!"; } else "Okej."; ]; [ OldMagicSub; "Bra försök, men det där är ett gammalt utslitet magiskt ord."; ]; Verb 'xyzzy' * -> Xyzzy; Verb 'plugh' * -> Plugh; Verb 'spov' * -> Plover; Verb 'fee' * -> Fee; Verb 'fie' * -> Fie; Verb 'foe' * -> Foe; Verb 'foo' * -> Foo; Verb 'sesam' 'shazam' 'hokus' 'abrakadabra' 'abra' 'foobar' 'frotz' * -> OldMagic; Extend 'säg' first * 'spräng' -> Blast * 'xyzzy' -> Xyzzy * 'plugh' -> Plugh * 'spov' -> Plover * 'fee' -> Fee * 'fie' -> Fie * 'foe' -> Foe * 'foo' -> Foo * 'sesam'/'shazam'/'hokus'/'abrakadabra'/'abra'/'foobar'/'frotz' -> OldMagic; ! ------------------------------------------------------------------------------ [ CountSub; if (noun has multitude or pluralname) "Det finns ett flertal."; SetGender(noun); print "Jag ser "; if(noun has neuter) print "ett"; else print "en"; " (1) ", (name) noun, "."; ]; [ KickSub; <>; ]; ! For kicking dwarves [ UseSub; "Du måste vara lite tydligare än så."; ]; Verb 'räkna' * noun -> Count; Verb 'sparka' 'kicka' 'känga' 'tåa' * noun -> Kick * 'till'/'på' noun -> Kick; Verb 'släck' * noun -> SwitchOff; Extend 'kasta' * held 'till' creature -> ThrowAt; !Extend 'kasta' ! * held 'till' creature -> ThrowAt; Verb 'höj' * held -> Wave; Verb 'svinga' * 'med' held -> Wave * held -> Wave; Verb 'gestikulera' = 'vifta'; Verb 'använd' * -> Use * topic -> Use; ! ------------------------------------------------------------------------------ ! Teleportering (använder även bibliotekets anropspunkt UnknownVerb) ! ------------------------------------------------------------------------------ [ TeleportSub; if (noun == location) "Men du är redan där!"; PlayerTo(noun); ]; [TeleportMatch w i loc dest scan_dest; ! Algoritm: ! Om location har en property teleport_to, anta att den innehåller ! en array, och sök igenom den baklänges. När vi hittar ett rums-id ! kommer vi ihåg det. När vi hittar första ordet som spelaren skrivit, ! flytta honom till detta rum. Om vi aldrig hittar spelarens första ord, ! leta efter andra, tredje ordet osv. Hittar vi inget av spelarens ord ! i arrayen, signalera att det inte känns igen med GPR_FAIL. loc=location; if(loc provides teleport_to) { while(w~=-1) { w=NextWordStopped(); if(w==-1) { if(dest~=0) return dest; else return GPR_FAIL; } if(dest==0) { scan_dest=0; for(i=((loc.#teleport_to)/WORDSIZE)-1: i>=0: i--) { if((loc.&teleport_to-->i) ofclass Room) scan_dest=loc.&teleport_to-->i; else if((loc.&teleport_to-->i)==w) dest=scan_dest; } } } } return GPR_FAIL; ]; Verb 'gå till' * TeleportMatch -> Teleport; Extend 'gå' first * 'till' TeleportMatch -> Teleport * 'över' noun -> Enter; Extend 'hoppa' * 'till' TeleportMatch -> Teleport; #Ifdef TEST_VERSION; ! ------------------------------------------------------------------------------------ ! I testversionen: inga dvärgar eller pirater, och magiska ord funkar från början. ! Installera även en alternativ slumptalsgenerator som kan fås att ge förutsägbara ! resultat, så att man kan använda en steg-för-steg-lösning (faller annars på att ! vissa utgångar leder till slumpade rum och på att det kan komma olika ! slumptalssekvenser i olika tolkar). ! ------------------------------------------------------------------------------------ [ XdetermSub; StopDaemon(dwarf); StopDaemon(pirate); give In_Debris_Room visited; give At_Y2 visited; give In_Plover_Room visited; ]; Verb 'xdeterm' * -> Xdeterm; Include ">random.h"; !!! Message "Installerade random.h förutsägbar slumptalsgenerator"; #Endif; ! ------------------------------------------------------------------------------