<go>要素

 $ σ_σ$  < go要素はレッツゴーのgoよ。
 Σc ' _' )  < 三匹でも永井でもないから気をつけろ!

概要

 シナリオファイルとactを移動する命令。
 プログラム制御的には、ジャンプに当たる。

文脈(コンテクスト)

命令要素(act,option要素内 空要素)

<go/>

 空の要素なしのgoは、現在実行中のactの先頭に移動(つまりactの後処理を飛ばす)
 ただし、一番最初に実行される開始act(root.xmlのid="start")だけは、前回のプレイ終了時のactに移動。プレイ初回の場合は何もしない。

 href属性に#付きでactのid(アンカー)を書くと、同じファイル内のトップレベルにある指定idが設定されたactへ移動する。
 #をつけないとファイル指定と判断され、ファイルが存在しないという意味のエラーが発生するので、つけ忘れに注意。

<go href="#epilogue"/>

 シナリオファイルを指定して、開始act(id="start"が設定されているか、idなしのact)へ移動する。

<go href="scenario.xml"/>

 シナリオファイルは、ディレクトリの指定もできる。

<go href="chapter1/section2.xml"/>

 シナリオファイルとactの同時指定もできる。

<go href="stage2.xml#act3"/>

条件分岐

適用可能な判定属性

 go要素はvar、i、item、at、pla属性による条件判定が可能。
 条件となる属性が複数ある場合は、andで判定が行われる。

<go var="100~score" href="nextStage.xml"/>

 go要素の条件判定で真(true)となると、その時点でジャンプするので、else要素のような動作をさせたいならば、単にgo要素を列挙すれば良い。

<go var="score~100" href="#retry"/>
<go href="nextStage.xml"/>

 1行目の条件がtrueなら、#retryへジャンプし2行目は実行されない。
 falseなら、2行目が実行される。