/* ================================================================================ Das Magiesystem ist von der Enchanter-Trilogie geklaut. ================================================================================ */ ObjVar benutzter_Spruch Flagge Spruch_gecheckt ObjAttr kompliziert | komplizierte Sprüche können nicht mit Gnusto ins Zauberbuch | übertragen werden. Wie der Kulcad-Spruch in Enchanter. /* -------------------------------------------------------------------------------- Hier wird geprüft, ob ein Spruch auch benutzt werden kann, d.h. ob er auf einer Schriftrolle steht, die im Besitz des Spieler ist oder ob er mit 'lerne' ins Gedächtnis gerufen wurde. -------------------------------------------------------------------------------- */ Aktion Vorher Ausf Jenach aBef (frotz) sei benutzter_Spruch frotz_Spruch (gnusto) sei benutzter_Spruch gnusto_Spruch (rezrov) sei benutzter_Spruch rezrov_Spruch (filfre) sei benutzter_Spruch filfre_Spruch |... hier eigene Sprüche einfügen ...| (sonst) sei benutzter_Spruch 0 Ende | Zaubersprüche auf Abrufbarkeit testen Wenn (benutzter_Spruch > 0) und /(Spruch_gecheckt) dann Bed /(benutzter_Spruch in Zauberbuch) oder (benutzter_Spruch.gelernt) '[Der benutzter_Spruch] ist dir nicht im Gedächtnis.' Bed (benutzter_Spruch hier) oder (benutzter_Spruch.gelernt) 'Du kennst diesen Spruch nicht, wenn es denn überhaupt einer ist.' Wenn /(benutzter_Spruch.gelernt) dann MutterObj xObj benutzter_Spruch Bed (xObj beimir) 'Um einen Spruch von einer Schriftrolle ablesen zu können, mußt du die in der Hand halten.' Objnach xObj Nirwana Text 'Als du den Zauber sprichst, verschwinde[t] [der xObj].[#]' Ende Wenn (benutzter_Spruch in Zauberbuch) und (benutzter_Spruch.gelernt < 10) Dekr benutzter_Spruch.gelernt Setze Spruch_gecheckt Ende EndeAusf Aktion * Ausf | Nach jedem Zug wird die Überprüfung gelöscht Lösche Spruch_gecheckt EndeAusf ObjKlasse Spruch Vor 'zauber' Subst 'spruch' m Var gelernt | In dieser Variable wird gespeichert, wie oft der Spruch ins | Gedächtnis gerufen wurde. Ist sie 100, so ist der Spruch | immer parat. Attr fest VorAusf (vargel) Stop 'Du versuchst ins Gefüge der Magie einzugreifen, aber die eigene Kraft des [aObj]s ist zum Glück stärker.' (nehmen) MutterObj iObj aObj Bed /(Spruch in Zauberbuch) und (iObj Pergament) 'Du kannst dir [den aObj] durch Studium aneignen, aber ihn einfach nemhen, das geht nicht.' sei aObj iObj EndeAusf ObjKlasse Pergament Vor 'schrift' Subst 'pergament' n 'rolle' f Attr magisch Text Ausf Schleife xObj (xObj in selbst) Ausf untersuchen xObj Ende EndeAusf VorAusf (vargel) Stop 'Das Pergament und seine Inhalte unterliegen bereits einer komplexen Struktur, die noch dazu durch Magie geschützt ist.' EndeAusf Obj Zauberbuch Name 'Zauberbuch' n %dein Vor 'zauber' Subst 'buch' n Ort in Ranzen VorAusf (vargel) Stop 'Das Zauberbuch und seine Inhalte unterliegen bereits einer komplexen Struktur, die noch dazu durch Magie geschützt ist.' (blättern) Stop 'Das brauchst Du nicht. Das Zauberbuch schlägt immer automatisch die Seite auf, die du lesen willst.' (empfangen) Bed /(aObj = Nachricht Karte) und /(aObj Pergament) 'Das Zauberbuch schlägt immer automatisch die Seite auf, die du lesen möchtest. Du brauchst also [den aObj] nicht als Lesezeichen zu mißbrauchen.' EndeAusf Text Ausf Lösche Aux Schleife xObj (xObj Spruch) und (xObj in Zauberbuch) Wenn /(Aux) Text 'Mein Zauberbuch[#]' Ausf untersuchen xObj Text '[+0][x]' Inkr Aux Ende Wenn (Aux) dann Text '[+0][x]' sonst Text 'In deinem Zauberbuch steht nichts.' Ende EndeAusf Konst max_gelernt 3 | Soviele Sprüche kann unser Lehrling maximal lernen. | Andere Spiele erhöhen diesen Wert während des Spiels, | wenn der magier Fortschritte macht, als Belohnung sozusagen. /* -------------------------------------------------------------------------------- Hier wird die Variable 'gelernt' der Spruch-Objekte erhöht, wenn alle Bedingungen zum Lernen gegeben sind. -------------------------------------------------------------------------------- */ Bef lernen Name 'lernen' Verb 'lerne' 'studiere' 'studiere ein' 'lerne auswendig' 'memoriere' Verb 'merke' 'merke dir' Syntax dasObj Ausf Bed (aObj Spruch) 'Du kannst nur Zaubersprüche lernen.' Bed (aObj in Zauberbuch) 'Um einen Zauberspruch zu lernen, muß er in deinem Zauberbuch sein.' Bed (Zauberbuch beimir) 'Um einen Zauberspruch lernen zu können, mußt du dein Zauberbuch in der Hand haben.' Wenn /(lichthier) Text '(Die Buchstaben des Spruchs leuchten in einem fahlen Licht, so daß man sie trotz der Dunkelheit lesen kann.)[#]' Bed (aObj.gelernt < 10) 'Dieser Spruch bleibt ewig in deinem Gedächtnis, du brauchst ihn nicht mehr zu lernen.' Lösche Aux Schleife xObj (xObj Spruch) und (xObj in Zauberbuch) Wenn (xObj.gelernt < 10) Inkr Aux xObj.gelernt Ende Text 'Gewissenhaft rufst du dir [den aObj]' Wenn (aObj.gelernt > 0) Text 'ein weiteres Mal' Text 'ins Gedächtnis.' Inkr aObj.gelernt Wenn (Aux = max_gelernt) dann wiederhole Zufall xObj minObj maxObj bis (xObj Spruch) und (xObj.gelernt > 0) und (xObj.gelernt < 10) Dekr xObj.gelernt Text 'Momentan schwirren dir aber zu viele Dinge im Kopf herum, du kannst dich nicht richtig konzentrieren. Wahrscheinlich hast du einen anderen Spruch vergessen.' Ende EndeAusf /* -------------------------------------------------------------------------------- Ein Dummy-Objekt, und ein Verb, um 'rufe Dir Frotz ins Gedächtnis' zu erlauben. (Florian Edlbauer bevorzugt ja 'memoriere'.) -------------------------------------------------------------------------------- */ Bef ins_Gedächtnis_rufen Name 'rufen' Verb 'rufe' 'rufe dir' 'hole' 'hole dir' Syntax dasObj (allg) in dasObj (allg) Ausf Bed (aObj2 = Gedächtnis) 'Du kannst dir nur Dinge ins Gedächtnis rufen. Wenn du eins hast.' Sei aObj2 0 Ausf lernen EndeAusf Deko Gedächtnis Name 'Gedächtnis' n %dein Subst 'gedächtnis' n 'erinnerung' f Ort BeiMir Text 'Wer kann einem Zauberlehrling schon in den Kopf schauen?' VorAusf (untersuchen lesen ins_Gedächtnis_rufen nicht_verst) (sonst) Stop 'Laß doch dein Gedächtnis in Ruhe, du brauchst es noch.' EndeAusf /* -------------------------------------------------------------------------------- Diese längliche Befehl listet lediglich die Sprüche auf, die der Lehrling parat hat, etwa 'Der Gnusto-Spruch ist Dir stets im Gedächtnis. Außerdem hast du den Frotz-Spruch zweimal und den Rezrov-Spruch parat.' -------------------------------------------------------------------------------- */ Bef Sprüche Name 'gelernte Sprüche anzeigen' Verb 'sprüche' Ausf Sei #liste 1 ObjListe xObj (xObj Spruch) und (xObj.gelernt > 10) Wenn (AnzListe) Text '[Liste 0] [ist 0] dir stets im Gedächtnis.' Sei Aux AnzListe Sei #Liste 0 ObjListe xObj (xObj Spruch) und (xObj.gelernt > 0) und (xObj.gelernt < 11) Wenn (AnzListe) dann Wenn (Aux) dann Text 'Außerdem hast du' sonst Text 'Du hast' Ende Lösche Aux Schleife xObj (xObj Spruch) und (xObj.gelernt > 0) und (xObj.gelernt < 11) Inkr Aux Wenn (Aux = AnzListe) und (Aux > 1) dann Text ' und' sonst Wenn (Aux > 1) Text ',' Ende Text '[den xObj]/' Wenn (xObj.gelernt > 1) Text ' [num xObj.gelernt]mal/' Ende Text ' parat.' sonst Wenn (Aux) dann Text 'Sonst hast du keine Zaubersprüche parat.' sonst Text 'Du hast keine Zaubersprüche parat.' Ende Ende EndeAusf /* -------------------------------------------------------------------------------- Zwei Beispiel-Sprüche, die aus dem Original-Enchanter stammen: frotz: Macht, daß ein Gegenstand Licht spendet. gnusto: Überträgt einen Zauberspruch von einer Schriftrolle ins Zauberbuch. -------------------------------------------------------------------------------- */ Bef frotz Name 'frotzen' Verb 'frotze' Syntax dasObj (evtl) Ausf Bed /(aObj = 0) 'Da der Frotz-Spruch auf nichts gerichtet war, wird es nur eine Nuance heller.' SeiBed Aux (Licht_in aRaum) Wenn (aObj = du) dann Bed /(Lehrling Licht) 'Du hast dich doch schon gefrotzt.' AttrHin Lehrling Licht Text 'Du bist nun von einem blaßgelben Widerschein umgeben.' sonst Bed /(aObj fest immobil) und /(aObj Deko) '[Der aObj] schimmer[t] einen Moment lang, aber [er] [ist] wohl zu groß und deine Zauberkraft zu gering. Der Spruch verpufft.' Text 'Ein blendender Blitz zuckt um [den aObj] und [er] [fängt/fangen] an zu leuchten. Die Intensität lässt rasch nach, aber [der aObj] [gibt/geben] nun eine ganz brauchbare Lichtquelle ab.' AttrHin aObj Licht Ende Wenn /(Aux) dann Absatz Ausf Lage Ende EndeAusf Obj frotz_Spruch (Spruch) Name 'Frotz-Spruch' m Vor 'frotz' subst 'frotz' m 'spruch' m 'zauber' m Ort in Zauberbuch Text 'frotz: [+8]Macht, daß ein Gegenstand Licht spendet.' Bef gnusto Name 'gnusten' Verb 'gnusto' 'gnuste' 'gnustoe' Syntax dasObj (evtl) Ausf Bed /(aObj = 0) 'Der Gnusto-Spruch verpufft wirkungslos, da er auf keinen Zauberspruch angewandt wurde.' Wenn (aObj Spruch) dann MutterObj xObj aObj Bed /(aObj = Zauberbuch) 'Dieser Spruch ist bereits ins Zauberbuch übertragen worden.' Wenn (xObj Pergament) sei aObj xObj Ende Bed (aObj Pergament) 'Der Spruch verpufft wirkungslos im Ungewissen.' Bed (aObj beimir) 'Der Gnusto-Spruch funktioniert nur, wenn Du die Schriftrolle, die Du ins Zauberbuch übertragen willst, in der Hand hältst.' Bed (Zauberbuch beimir) 'Der Zauber schlägt fehl, da du kein Zauberbuch hast.' sei iObj 0 Schleife xObj (xObj in aObj) Wenn (xObj Spruch) sei iObj xObj Ende Bed (iObj > 0) 'Auf der Schriftrolle steht kein Spruch, und der Zauber verpufft.' Bed /(iObj kompliziert) 'Das Zauberbuch fängt an, leicht zu glühen. Der Gnusto-Spruch versucht unter Aufbietung aller magischen Kraft, [den iObj] in dein Buch zu übertragen, aber er ist zu lang, zu kompliziert und zu mächtig. Das Leuchten des Buchs läßt langsam nach. Zum Glück ist die Schriftrolle unbeschädigt geblieben.' ObjNach iObj in Zauberbuch Objnach aObj Nirwana Text 'Das Zauberbuch fängt an, leicht zu glühen, als [der iObj] Wort für Wort in verschnörkelten, hell leuchtenden Buchstaben übertragen wird. Dann läßt das Leuchten des Buchs nach, der Spruch ist komplett übertragen. Die Schriftrolle verschwindet allerdings, als der letzte Buchstabe geschrieben wird.' EndeAusf Obj gnusto_Spruch (Spruch) Name 'Gnusto-Spruch' m Vor 'gnusto' subst 'gnusto' m 'spruch' m 'zauber' m Ort in Zauberbuch Var gelernt 100 Text 'gnusto: [+8]Überträgt einen Zauberspruch von einer Schriftrolle ins Zauberbuch.'