________________________________________________________________________
[<<] [Inhalt] [>>] III. Beispiele

10. Verschiedene Arten von Objekten

10.1.   Behälter und Ablagen
10.2.   Türen und Schlüssel
10.3.   Sitze, Liegen und begehbare Objekte
10.4.   Fahrzeuge
10.5.   Unwichtige Dekorationen
10.6.   Ähnliche Objekte an verschiedenen Orten

10.1. Behälter und Ablagen

Objekte liegen selten direkt auf dem Fußboden, meist befinden sie sich auf oder in anderen Objekten. Damit ein Objekt andere aufnehmen kann, muß es das Attri- but Ablage oder Behälter besitzen.

Ablagen sind, wie man vermuten möchte, Objekte, die eine ebene Oberfläche haben, auf denen etwas abgelegt werden kann. Typische Ablagen sind Tische, Regale und Tabletts. Objekte, die darauf liegen, bekommen z.B. die Angabe 'Ort auf Tablett' bei ihrer Definition.

Behälter sind Objekte, in die etwas hineingelegt werden kann. Die Objekte in einem Behälter können manipuliert werden, wenn der Behälter weder geschlossen noch abgeschlossen ist, d.h. wenn er offen ist oder einen anderen Zustand besitzt. (Es gibt auch Behälter, die nicht verschließbar sind, wie etwa ein Wassereimer.)

Im Allgemeinen kann man in geschlossene Behälter nicht hineinschauen. Gibt man einem Behälter jedoch das Attribut Transparent, so kann man die Dinge in diesem Behälter sehen, jedoch nicht berühren:

        Obj     Vitrine
        Name    'Glasvitrine' f
        Adj     'gläsern'
        Vor     'glas' 'schau'
        Subst   'vitrine' f  'kasten' m
        Zust    abgeschlossen verschließbar
        Attr    Behälter Transparent
        Darin   'In dem gläsernen Schaukasten [ist 0] [liste 0]
                ausgestellt.'

Um nicht ständig den Standard-Text 'In/Auf dem x siehst du y.' zu benutzen, kann man bei Behältern die Texte Darin und Darauf definieren, die dann stattdessen angezeigt werden. Dabei muß der Befehl [liste x] auftauchen, jenachdem, in welchem Fall die Liste stehen soll mit x = 0, 1 oder 2. Ist x = 0, d.h. wird die Liste im Nominativ geschrieben, so muß das Verb je nach Anzahl der Dinge in der Liste nach Singular und Plural veränderlich sein. Dazu gibt man bei den Verben oder den Endungen anstelle eines Objekts 0 an. Mit [ist 0] wird dann 'sind' geschrieben, wenn die Liste mehr als ein Objekt enthält oder das einzige Objekt im Plural steht, und 'ist' sonst. (Bißchen umständlich vielleicht, aber es lohnt sich, wenn dann der Satzbau stimmt.)

Es können beliebig viele Gegenstände in einen Behälter oder auf eine Ablage gelegt werden, solange iht Volumen zusammen nicht größer ist als das Volumen des Behälters oder der Ablage. Wer also zu keinem Objekt ein Volumen definiert, kann unbeschränkt Dinge dort lagern. Mit Hilfe der Volumendefinition kann aber verhindert werden, daß unsinnige Dinge ineinandergestapelt werden, wie z.B. eine Spitzhacke in einen Brotkorb.

Das Konzept des Volumens ist bei Ablagen sicherlich nicht ganz richtig, denn was ist das Volumen eines Tabletts? Aber auch hier dient das Volumen von Gegenständen nur als grobes Maß für seine Größe.

Anders als die meisten anderen Autorensysteme unterscheidet TAG zwischen Behältern und Ablagen, und ein Objekt kann auch Ablage und Behälter zugleich sein:

        Obj     Kommode
        Name    'Kommode "Linköping"' f
        Subst   'kommode' f  'Linköping' f  'schublade' f
        Zust    geschlossen
        Attr    Ablage Behälter
        Besch   'Ein Designer-Stück aus Buche aus der Serie
                "Kirkegaard". Sie hat eine schwarz abgesetze
                Schublade.'
        Darauf  '[Liste 0] lieg[en 0] auf der Kommode.'
        Darin   'In der geöffneten Schublade der Kommode kannst du
                [liste 1] sehen.'

Mit dieser Definition funktioniert das folgende:

        > u Kommode
        Ein Designer-Stück aus Buche aus der Serie "Kirkegaard". Sie
        hat eine schwarz abgesetze Schublade. Das Telefonbuch von
        Stockholm liegt auf der Kommode.

        > öffne Schublade
        Die Kommode ist nun offen. In der geöffneten Schublade der
        Kommode kannst du einige Taschentücher, eine Krawattennadel
        und ein Paar Handschuhe sehen.

        > u Kommode
        Ein Designer-Stück aus Buche aus der Serie "Kirkegaard". Sie
        hat eine schwarz abgesetze Schublade. In der geöffneten
        Schublade der Kommode kannst du einige Taschentücher, eine
        Krawattennadel und ein Paar Handschuhe sehen. Das Telefonbuch
        von Stockholm liegt auf der Kommode.

Behälter können natürlich auch abgeschlossen sein. Zu abgeschlossenen Objekten und deren passenden Schlüsseln gibt es im nächsten Kapitel mehr.

Ein Behälter oder eine Ablage können mit dem Pseudo-Befehl empfangen auf Objekte reagieren, die in oder auf sie gestellt werden und mit freigeben regelt das Heraus- und Herunternehmen von Ablagen und Behältern:

        Obj     Decke
        Name    'Picknick-Decke' f
        vor     'picknick' 'patchwork'
        Subst   'decke' f  'tuch' n  'plane' f
        Besch   'Es ist die alte Patchwork-Decke, die Tante Gisela vor
                zwanzig Jahren in liebevoller Handarbeit angefertigt
                hat. (Du verfluchst den Herausgeber der Handarbeits/-/
                zeitschriften immer noch, aber im Gegensatz zu den
                zahllosen Makramee-Eulen kann man diese Decke gut zum
                Picknicken benutzen.)'
        VorAusf
          (empfangen)   MutterObj iObj selbst
                        Bed (iObj = 0)
                            'Dazu solltest Du die Decke erst hinlegen.'
          (nehmen)      Sei #Liste 1
                        ObjListe iObj (iObj auf Decke)
                        Bed /(AnzListe)
                            'Solange [liste 0] noch auf der Decke
                            [ist], kannst du sie nicht nehmen.'
        EndeAusf
        NachAusf
          (hinlegen)    Text 'Du breitest die Decke auf dem Boden aus.'
          (freigeben)   Wenn (Proz 60) dann
                          Text 'Die Decke wirft Falten, als du
                               [den aObj] herunternimmst.'
                        Ende
        EndeAusf

10.2. Türen und Schlüssel

Türen sind wohl die beliebteste Art von Hindernissen in Adventures.Deshalb gibt es das vorgefertigte Attribut Tür in TAG. Türen haben in der Regel zwei Ortsangaben. Das Betreten des dahinterliegenden Raumes ist nur möglich, wenn die Tür nicht abgeschlossen ist. Ist sie nur zu, so wird sie automatisch geöffnet, wenn der Spieler hindurchgeht. Eine einfache Tür wäre:

        Obj     Haustür
        Name    'blaue Haustür' f
        adj     'blau'
        vor     'eingangs' 'haus'
        subst   'tür' f
        Ort     Vor_Haus   Diele
        Zust    geschlossen
        Attr    Fest Tür
        Besch   'Die schlichte, blau gestrichene Tür ist
                [Haustür.Zust].'

Damit haben wir eine Tür, die von vor dem Haus in die Diele führt. Geht der Spieler von einem der beiden Räume in den anderen, so wird die Tür 'mitgenommen' und die beiden Räume vertauscht. Das geschieht automatisch, es spielt auch keine Rolle von welcher Seite der Spieler die Tür zuerst zu sehen bekommt.

Einen kleinen Haken gibt es allerdings bei Türen: Beim Gehen von einem Raum in den anderen wird geprüft, ob sich eine Tür dazwischen befindet, die abgeschlossen ist und deren beide Raumangaben mit dem Start- und Zielräumen übereinstimmen. Ist das der Fall, so wird das gesagt, und der Spieler bleibt wo er ist. Diese Bedingung greift auch dann, wenn es z.B. zwei Türen zum selben Raum gibt, eine offen, die anderen verschlossen. Die verschlossene Türe ist immer dominant. Auch wenn es eine normale Verbindung zu einem Raum gibt und eine, die mit einer Tür verschlossen ist. In dem Fall müsste man sich mit einer Weg-Definition behelfen:

        Raum    Diele
        N       Wohnzimmer
        O       durch_Tür
        S       Bad
        W       Vor_Haus
        Besch   'Von dieser geschmackvoll eingerichteten Diele aus
                gibt es zwei Wege ins Wohnzimmer, eine Tür im Osten,
                und einen offenen Durchgang im Norden.'

        Weg     durch_Tür
        Ausf
          Bed (Dielentür offen)
                'Die Dielentür ist aber noch zu.'
          Wenn (aRaum Diele) dann
            GeheZu Wohnzimmer
            ObjNach Dielentür Wohnzimmer
          sonst
            GeheZu Diele
            ObjNach Dielentür Diele
          Ende
          Wenn (Mistelzweig in nirgendwo) dann
            ObjNach Mistelzweig aRaum
            Text        'Als ich durch die Tür gehe, stoße ich mit dem
                        Kopf an einen alten Mistelzweig, der wohl noch
                        seit der letzten Weihnachtsfeier dort hängt.
                        Er fällt auf den Boden.'
          Ende
        EndeAusf

        Obj     Dielentür
        Name    'Dielentür' f
        Subst   'dielentür' f  'tür' f
        Ort     Diele
        Attr    Fest
        Zust    offen

Das ist ungefähr die Art und Weise, wie TAG Türen behandelt. Die Geschichte mit dem Mistelzweig ist nur ein Zusatz: Es muß ja schliesslich einen Grund geben, um durch die Tür zu wollen. Diese "von Hand" eingabaute Tür darf natürlich nicht das Tür-Attribut besitzen.

(Die Theorie hinter den Türen von TAG ist, daß sie immer zwei Räume verbinden bzw. voneinander trennen, die ansonsten keine weitere Verbindung haben. Ich denke, für die meisten Türen gilt das. Deswegen kann man bei außergewöhnlichen Türen ruhig etwas Mehraufwand in Kauf nehmen.)

Der Zielraum einer Tür kann mit Obj.Ort2 angesprochen und auch geändert werden. Der Zielraum ist immer der Raum, in dem man gerade nicht ist. So kann man zum Beispiel eine magische Tür erschaffen:

        Aktion  Tür_Zeichen
        Ausf
          Wenn (aRaum = großer_Saal) dann
            Text 'In der Mitte der Tür prangt das Zeichen'
            jenach Zaubertür.Ort2
              (See)     Text 'des Wassers.'
              (Berg)    Text 'der Luft.'
              (Mine)    Text 'der Erde.'
              (Vulkan)  Text 'des Feuers.'
            Ende
          Ende
        EndeAusf

        Obj     Zaubertür
        Name    'eigenartig^ Tür' f
        adj     'eigenartig'
        subst   'tür' f
        Ort     großer_Saal See
        Besch   'Es ist eine geheimnisvolle Tür. [Tür_Zeichen]'

        Weg     durch_Tür
        Ausf
          Bed (Zaubertür offen) dann
              'Die eigenartige Tür ist noch geschlossen.'
          GeheZu Zaubertür.Ort2
        EndeAusf

        Bef     ignis
        Name    '"IGNIS" sagen'
        Verb    'ignis'
        Ausf
          Bed (aRaum = großer_Saal) und /(Zaubertür.Ort2 = Vulkan)
                'Nichs passiert...'
          Sei Zaubertür.Ort2 Vulkan
          Text  'Du hörst ein dumpfes Grollen aus den Tiefen der Erde,
                als das Zeichen des Feuers auf der Tür erscheint.'
        EndeAusf

Das Gehen durch die Tür muß mit einer Weg-Definition gemacht werden, weil die Tür nicht weiß, in welcher Richtung sie sich befindet. Sie weiß nur, welche Räume sie verbindet. (Beim Gehen in einen anderen Raum, prüft das Programm bei der Ausführung nur, ob es eine Tür gibt, deren Ort2 der Zielraum ist.)

Türen in Adventures sind selten sperrangelweit auf. Obwohl es High-Tech und Magie gibt, die Türen verschlossen halten, ist das übliche Mittel dazu doch noch ein Schlüssel. Der passende Schlüssel zur Haustür oben wäre:

        Obj     Haustürschl
        Name    'Stahlschlüssel' m
        vor     'haus' 'haustür' 'stahl'
        subst   'schlüssel' m
        Attr    Schlüssel
        Ort     unter Fußmatte
        Öffnet  Haustür
        Besch   'Paßt bestimmt auf die Haustür...'

Die Öffnet-Definition beschreibt also das Objekt, auf den der Schlüssel paßt. Auch hier ist wieder der denkbar einfachste Fall angenommen: Jeder Schlüssel paßt auf eine Tür. Fehlt die Öffnet-Angabe, so paßt der Schlüssel nirgendwo im Spiel.

Aber auch hier kann man abhelfen: Obj.Öffnet enthält das Objekt, das der Schlüssel momentan aufschließt:

        Obj     General
        Name    'Generalschlüssel' m
        [...]
        VorAusf
          (aufschl_mit) Sei selbst.öffnet aObj
        EndeAusf

Und schon sind Türen kein Hindernis mehr. Schlüssel können übrigens nicht nur Türen, sondern auch andere Objekte als öffnet-Objekt besitzen, etwa Behälter und Vorhängeschlösser.

Achtung: Der Speicherplatz für öffnet und 'Ort2 ist derselbe. Ein Objekt kann also nicht gleichzeiteig Schlüssel und Tür sein, was mir logisch erscheint. Auf dem selben Platz liegt auch die Information Anz, die die Anzahl der Objekte angibt, wenn es einen Plural besitzt. Auch hier denke ich, daß eine Tür und ein (klar von allen anderen unterscheidbarer) Schlüssel nicht mehrfach auftreten. Es gibt aber ein paar Stolperstricke: öffnet ist ein Objekt, Ort2 ein Raum und Anz eine Zahl. Belegt man z.B. Anz von einer Tür, so landet man sonstwo. Dies nur als Information und als Warnung, die Attribute Tür und Schlüssel erst abzuchecken, bevor Ihr diese Variablen bei einem allgemeinen Objekt verändert.

10.3. Sitze, Liegen und begehbare Objekte

Genau wie Objekte auf anderen liegen können, kann sich auch der Spieler in oder auf anderen Objekten befinden. Solche Objekte müssen das Attribut Sitz, Liege oder Standfläche besitzen:

        Obj     Sessel
        Name    'Ledersessel' m
        Vor     'leder'
        Subst   'sessel' m
        Ort     Stube
        Attr    Fest Sitz In_Obj Ablage
        Besch   'Der Sessel ist ein wahres Monstrum. Vom Standpunkt
                des Designers ist er sicher verbesserungswürdig, an
                Bequemlichkeit allerdings kaum zu überbieten.'

Dieser Sessel ist ein Sitz, sobald sich der Spieler daraufsetzt, wird aSitz mit dem Sessel belegt. Da der Sessel ein In_Obj ist, sitzt man im Sessel, nicht auf ihm. Der Spieler kann sich allerdings weder auf den Sessel legen noch darauf stellen. Dazu wären die Attribute Liege und Standfläche nötig.

TAG unterscheidet, ob der Spieler auf einem Gegenstand sitzt, steht oder liegt. Das wird in der Flagge bSitz festgehalten, die die Werte %sitzen (1), %stellen (2) und %legen (3) haben kann. Ist aSitz = 0, so hat diese Flagge keine Bedeutung, es wird einfach angenommen, daß der Spieler steht, oder - noch einfacher - daß es keine Rolle spielt, in welcher Haltung er sich in einem Raum befindet.

Um sich von einem Sitz auf einen anderen zu setzen, muß der Spieler erst aufstehen. Dasselbe gilt für das Verlassen des Raums. Wenn der Spieler auf dem selben Objekt bleibt und nur seine Haltung ändert, kann das ohne weiteres geschehen. wenn er auf einem Sofa liegt, muß er nicht erst aufstehen, um sich darauf zu legen.

Sitze, Standflächen und Liegen können auch Behälter und Ablagen sein. Was aber passiert, wenn sich der Spieler auf eine Ablage setzt, auf der viele Sachen liegen, das muß der Autor des Adventures selbst programmieren.

Eines oder mehrere der Attribute Sitz, Liege oder Standfläche zusammen mit dem Behälter-Attribut machen ein Objekt begehbar. Wenn das Objekt nicht transparent ist und geschlossen wird, wenn sich der Spieler darin befindet, so ist es in diesem Objekt dunkel (es sei denn, das Objekt selbst ist eine Lichtquelle, dann ist es darin immer hell) und der Spieler kann nur die Sachen in diesem Objekt sehen. Das Objekt ist dann quasi wie ein Raum im Raum. Für eine Hütte ist eine solche Definition nicht besonders klug, aber für einen Kleiderschrank oder etwas ähnliches ist es sicherlich angebracht, ihn als Objekt zu definieren, da der Spieler auch Sachen daraus nehmen kann, ohne hineinzugehen.

Auf diese Weise kann man auch einen Käfig implementieren, den der Spieler betreten kann oder in dem er gefangen ist.

        Obj     Käfig
        Name    'groß^ Käfig' m
        Adj     'gross' 'käfig' 'eisen'
        Subst   'käfig' m 'stangen' p 'stange' f
        Attr    Immobil Behälter Standfläche Transparent InObj
        Zust    geschlossen
        Besch   'Es ist ein großer, quadratischer Käfig, dessen dicke
                Eisenstangen bis an die Decke reichen.'
        Erst    'In der Mitte des Raumes steht ein großer Käfig,
                dessen Tür [selbst.Zust] ist.'
        InBesch 'Du stehst in einem Käfig und schaust durch die dicken
                Gitterstäbe hinaus.'

Und damit ist der Käfig fertig. Wichtig ist, daß der Käfig transparent ist. Wenn nicht, dann könnte der Spieler den Raum, in dem der Käfig steht und die anderen Sachen darin nicht sehen.

10.4. Fahrzeuge

In TAG können Sitze, Liegen und Standflächen als Fahrzeuge definiert werden. Das heißt, diese Objekte bewegen sich mit dem Spieler, wenn er sich in oder auf ihnen befindet. Das ist zwar schon ganz bequem, aber dennoch gibt es einige Einschränkungen, denn man kann ja z.B. nicht mit einem Auto einen Steilhang hochfahren. Als Beispiel soll hier (in Anlehnung an Zork I) ein Boot definiert werden, mit dem man natürlich nur auf dem Wasser fahren kann.

        RaumAttr Wasser

        RaumVar xRaum

        Obj     Boot
        Name    'Ruderboot' n
        vor     'ruder' 'paddel'
        Subst   'boot' n  'bötchen' n
        Besch   'Dieses Boot ist aus Holz und hat zwei Riemen.'
        VorAusf
          (gehen)       SeiRaum xRaum aRaum aRitg
                        Wenn /(xRaum = 0) dann
                          Bed (xRaum Wasser) oder (aRaum Wasser)
                                'In diese Richtung kannst du schlecht
                                rudern - dort ist kein Wasser.'
                          Wenn /(aRaum Wasser) dann
                            Text 'Du ruderst nach [ARitg], wo Du
                                 wieder festen Boden unter den
                                 Füßen hast.'
                          sonst
                            Text 'Du ruderst nach [ARitg].[#]'
                          Ende
                          Absatz
                        Ende
        EndeAusf

        Bef     gehen
        VorAusf
          SeiRaum xRaum aRaum aRitg
          Bed /(xRaum Wasser) oder (aSitz Fahrzeug)
                'In dieser Richtung ist für meinen Geschmack
                zuviel Wasser.'
        NachAusf

        Bef     rudern
        Name    'rudern'
        Verb    'rudere' 'fahre' 'paddle'
        Syntax  nachRitg
        Ausf
          Bed /(aSitz = 0) und (aSitz Fahrzeug)
                'Dazu bräuchtest du wohl ein Boot...'
          Ausf gehen aSitz aRitg
        NachAusf

Mit dem Raumattribut beschreibt man, ob ein Raum Wasser ist oder nicht. Ein Strand wäre kein Wasser, ein Ort auf einem See oder in einem Fluß schon. Die Bedingung zum Paddeln ist nun, daß der Zielraum, der momentane Raum oder beide Wasser sind. Mit der Erweiterung des Befehls gehen wird verhindert, daß man auch zu Fuß übers Wasser gehen kann.

Wenn man beim Befehl gehen auf einem Fahrzeug sitzt, so ist aObj das Fahr- zeug, damit man es in der Vorausführung berücksichtigen kann.

10.5. Unwichtige Dekorationen

Manche Spiele benutzen Dekorationen, die zu nichts benutzt werden können. Man kann sie zwar untersuchen, aber wenn man eine konkrete Handlung ausführen will, so kommt ein Satz wie "Das ist nicht wichtig."

Eine solche Dekoration kann man wie folgt definieren:

        ObjKlasse unwichtig
        VorAusf
          (untersuchen)
          (sonst)       Stop    'Ein flüchtiger Blick auf [den selbst]
                                sagt dir, daß [er] total unwichtig
                                [ist].'
        EndeAusf

Und damit braucht man sich keine Sorgen mehr darüber zu machen, daß es bei den Dekorationen Stolpersteine gibt, wie es oft der Fall ist, wenn der Spieler wirklich alles versuchen muß.

Die leere Anweisung bei (untersuchen) bewirkt, daß dieser Befehl nicht unter die Klausel (sonst) fällt. Nur beim Untersuchen geht es also weiter wie gewohnt, alle anderen Befehle führen zum Abbruch. Dabei ist es egal, ob die Deko aObj oder aObj2 im Befehl ist, da mit (sonst) auch Pseudo-Aktionen berücksichtigt werden.

10.6. Ähnliche Objekte an verschiedenen Orten

Um Objekte zu sparen, kann man eine Klasse von ähnlichen Objekten, die sich an verschiedenen Orten befinden, als ein Objekt definieren. Nehmen wir an, es gäbe verschiedene Torbögen, durch die man gehen könnte und die einen dann magisch zu einem anderen Ort teleportieren.

        RaumAttr Teleporter
        RaumVar ZielRaum
        Flagge  TorNr

        Obj     Torbogen
        Name    'steinern^ Torbogen' m
        Adj     'steinern'
        Vor     'tor' 'stein'
        Subst   'bogen' m   'tor' n
        Attr    Fest
        Besch   'Oben auf dem Torbogen ist auf einem vorstehenden
                Stein die Zahl [Rom TorNr] eingemeißelt.'
        VorAusf
          (betreten)    Bed /(Münzen.Anz < TorNr) und (Münzen BeiMir)
                                'Du willst durch den Bogen gehen, aber
                                du prallst wie an einer unsichtbaren
                                Wand ab.'
                        Text    'Du trittst durch den Bogen. Die Luft
                                scheint sich zu verwirbeln, es kommt
                                Dir vor wie ein Schleier.

                                Als sich der Dunst gelegt hat, schaust
                                Du dich genauer um. Du befindest
                                dich...'
                        GeheZu ZielRaum

          (schauen)     Bed (Münzen.Anz < TorNr) oder
                        /(Münzen BeiMir) dann
                                'Wenn du ganz genau hinschaust, siehst
                                du durch den Torbogen ganz schwach
                                einen anderen Raum. Du kannst aber
                                nichts Genaues erkennen.'
        EndeAusf

        Aktion *
        Ausf
          Wenn (aRaum Teleporter) und /(Torbogen hier)
            Jenach (aRaum)
              (Brunnen)   Sei ZielRaum Stille_Bucht
                          Sei TorNr 1
              (Klostergarten)
                          Sei ZielRaum Alte_Heide
                          Sei TorNr 2
              (Friedhof)  Sei ZielRaum Hades
                          Sei TorNr 7
              [...]
            Ende
            ObjNach Torbogen aRaum
          Ende
        EndeAusf

        Raum    Friedhof
        Name    'Friedhof'
        W       Vor_Kapelle
        SO      Gruft
        Attr    Teleporter
        Besch   'Dies ist der etwas trostlos wirkende Friedhof der
                St.-Gabriel-Kapelle, die sich im Westen düster gegen
                den Himmel abzeichnet. Ein paar Holzkreuze verraten,
                wer in den ungepflegten Gräbern vermodert. Im Südosten
                steht der wuchtige Bau einer Familiengruft.

                Ein steinerner Torbogen steht hier, ein gotisches
                Monstrum auf zwei Säulen, halb mit Efeu bewachsen. Die
                römische Ziffer VII ist auf dem obersten Stein
                eingemeißelt.'
        Ende

Der Torbogen wird in einer Aktion, die nach jedem Zug aufgerufen wird, in den momentanen Aufenthaltsort geholt, wenn dieser das Attribut Teleporter besitzt. Je nach aRaum werden dann der Zielraum und die römische Ziffer über dem Torbogen gesetzt. (Ganz genauso funktionieren übrigens die Dekorationen, die in der Ortsdefinition ein Raumattribut benutzen, nur daß sie keine weiteren Variablen setzen.)

Man hätte dasselbe auch mit der Objektklasse Torbogen bewerkstelligen können. Aber diese Lösung würde soviele Objekte benötigen, wie es Torbögen gibt plus eine Objektklasse. Die Lösung oben benötigt ein Objekt und eine Aktion, was dann recht praktisch ist, wenn das Spiel groß ist und man die gesparten Objekte anderweitig verwenden kann.

Martin Oehm, 04.02.2000 Vorheriges KapitelInhaltsverzeichnisNächstes Kapitel