Mit Hilfe des hero-Tags kann in AOQML bei Gruppenbegegnungen (Gruppen-ZB oder Gruppenquest) die HeldID oder der Heldenname eines Helden der Gruppe auf Basis bestimmter Parameter ermittelt werden.
Beispielsweise ist es möglich nach einer misslungen Talentprobe herauszufinden, welcher Held die Probe am meisten "versaut" hat.
Inhaltsverzeichnis
Syntax
<hero [output="name"] [by-challenge=""] [by-talent=""] [by-quality=""] [by-attribute=""] [val=""] [select=""] />
- output: 'name' oder 'id'. 'name' liefert den Name des Helden zurück, 'id' die HeldID.
- select: 'best' oder 'worst', wenn in Kombination mit anderen Parametern verwendet oder 'random' um einen Helden der Gruppe zufällig auszuwählen.
- by-challenge: Wenn einer Probe zuvor eine ID gegeben wurde, kann diese ID hier angegeben werden - somit wird die Probe referenziert. Jedoch muss sich die Probe in derselben Szene befinden!
- by-talent: Hier kann ein Talentname angegeben werden.
- by-quality: Hier kann ein Eigenschaftskürzel (MU, IQ, ...) angegeben werden.
- by-attribute: Angabe eines Heldenattributs wie z.B. Verletzungen ('LEP', 'AUP', 'ERP', 'wounds'), Talentwerte, Eigenschaftswerte usw.
Hinweis zur Anwendung: Das <hero>-Tag kann von einem store-Tag umschlossen werden, wenn man bspw. die HeldID in eine Variable speichern möchte, um sie später bei einem select-Tag anzugeben.
Es kann auch vorkommen, dass kein Held zurückgegeben werden kann, weil kein Held der geforderten Bedingung aus den o.g. Attributen entspricht, z.B. wenn man ein sehr selten aktiviertes Talent abfragt. In diesem Fall ist die Rückgabe leer.
Beispiele
by-challenge
<challenge talent="Schleichen" hero-quantity="all" id="Pr1">
<success>
<p>Vorsichtig schleicht ihr weiter.</p>
</success>
<failure><!-- mindestens ein Held hat die Schleichen-Probe versaut! -->
<p>Ups!</p>
<!-- Welcher Held ist schuld? ;) -->
<p><hero output="name" by-challenge="Pr1" select="worst" /> tritt ungünstig auf ein paar Steinchen, was ungeheuren Lärm verursacht...</p>
</failure>
</challenge>
by-talent
<!-- ermitteln, welcher Held am besten feilschen kann -->
<hero output="name" by-talent="Feilschen" select="best" /> kann am besten feilschen.
Sollte man ein Talent abfragen, das kein Held in der Gruppe besitzt, ist die Rückgabe leer.
<!-- ermitteln, wer am besten urelfisch sprechen kann -->
<store name="held"><hero output="name" by-talent="Urelfisch" select="best"/></store>
<switch name="held">
<case val="">
<p>Es kann von euch leider niemand urelfisch sprechen.</p>
</case>
<else>
<p><fetch name="held"/> ist in Urelfisch ziemlich fit.</p>
</else>
</switch>
by-quality
<!-- ermitteln, welcher Held am meisten Charisma hat -->
<hero output="name" by-quality="CH" select="best" />
by-injury
Mögliche Angaben sind 'LEP', 'AUP', 'ERP' und 'wounds'.
by-attribute
by-attribute (mögliche Ausprägungen siehe Held_Attribute) kann mit val wie folgt kombiniert werden:
<!-- Held ermitteln, der eher passiv agiert -->
<store name="held_id"><hero output="id" by-attribute="kampf" val="passiv"/></store>
Alternativ können auch numerische Heldenattribute wie select="best" oder select="worst" verglichen werden.
<!-- ermitteln, welcher Held am meisten erschöpft ist -->
<hero output="name" by-attribute="ERP" select="worst" /> ist sehr erschöpft.
<!-- ermitteln, welcher Held die meisten Wunden hat -->
<store name="held_verletzt"><hero output="name" by-attribute="wounds" select="worst" /></store>
<!-- falls kein Held Wunden hat, hat die Variable 'held_verletzt' einen leeren Inhalt -->
<switch name="held_verletzt">
<case val="">
<p>Ihr seid alle unverwundet!</p>
</case>
<else>
<p><fetch name="held_verletzt"/> hat die meisten Wunden.</p>
</else>
</switch>
select="random"
Ein Held der Gruppe kann zufällig ausgewählt werden mit:
<store name="zufaelligerHeldID"><hero output="id" select="random"/></store>
<select hero="${zufaelligerHeldID}"/>