<var>要素

 $ σ_σ$  < var要素はvariable、つまり変数ね。
 Σc 'д' )  < 変な数? すとれいんじ!!

概要

 フラグや数値を管理するための要素。

 条件判定を行うために、真偽値や数値を設定する。
 また、簡単な四則演算や乱数の設定も行える。

文脈(コンテクスト)

初期化要素(act,option要素内 空要素)

<var/>

 何の属性もない空要素を置くと、変数を全て初期化する。
 開始時にとりあえず入れておくと、再プレイ時に余計なことを考えなくてすむ。
 初期化しないと、前回プレイ時の値が設定される(オートセーブ)

設定要素(act,option要素内 id付き)

真値の設定(空要素)

<var id="doorOpen" />

 一番良く使うだろう形式が。所謂フラグを立てる、という操作。
 id属性に指定した変数をtrueに設定する。
 id属性で指定できるのは、アルファベットや数値の組み合わせに限らず、日本語や他の文字でも構わない。
 ただし、,;+-*/%=~$#などの記号は将来的な拡張の可能性も含め、使わないようにして欲しい。

真偽値の設定

<var id="door">true</var>

 さっきのtrueを設定する書式を明示的に書いたのがこちら。

 falseに設定する場合は必ず明示的に書くが、そもそも全ての変数は初期値がfalseなので、あまり使うことは多くない。

<var id="door">false</var>

数値(自然数)の設定

<var id="hp">100</var>

 数値も設定できる。

 設定できる数値は、0か正の整数(自然数)に限る。

乱数を使った数値の設定

<var id="rnd">d100</var>

 上記例は100面(パーセント)ダイスを振った値(1〜100の値)がrndに設定される。

 乱数は、TRPGでよく使われるndxの方式を使う。n個のx面体ダイスを振ることを意味する。
 この表現は、設定、演算で数値の代わりに使用可能。

 以下は2個の6面ダイス(いわゆるサイコロ)を振った値がrndに設定される。

<var id="rnd">2d6</var>

たし算

<var id="v">+数値</var>

 数値を元の変数に加える。
 足し算以外の演算もすべて元の変数に対して行われ、結果が変数に戻される。

<var id="v">10</var>
<var id="v">+4</var>

 上記のように書くと、まず1行目で変数vが10に設定され、2行目で4が加えられ、vの値は14となる。

 また、数値の部分は自然数以外に、乱数(nDx)も置ける。
 これは他の計算にも共通する。

<var id="v">+v</var>
<var id="v">+2d4</var>

ひき算

<var id="v">-数値</var>

 基本的な機能は、たし算と共通している。
 もちろん、ひき算される。

 varは正の数しか設定できないので、負の数を設定したい場合は、多少面倒だが一旦0を設定して、その後減算を行う。

<var id="charge">0</var>
<var id="charge">-10</var>

置換要素(p要素内 id付き)

<p>現在のスコア<var id="score"/></p>

 p要素内でid付きの空要素として使うと、変数の内容に置き換えられる。
 デバッグで使うことが多いだろう。

属性

color属性

 16進数6桁のカラーコードを書くことで、文字の色を指定できる。
 16進数の頭には#を付ける事。
 指定しない場合はtextio要素のcolor属性で指定した値。

<p><var id="x" color="#cc99dd"/></p>

size属性

 数値を書くことで、文字の大きさを指定できる。
 指定しない場合はtextio要素のsize属性で指定した値。

<p><var id="x" size="20"/></p>

条件分岐

適用可能な判定属性

 var要素は値(var、i、item、at、pla)を属性に書いて条件判定が可能。
 条件となる属性が複数ある場合は、andで判定が行われる。

<var id="win" var="100~score"/>

属性としての仕様

 varによる条件は、textioとselectを除く要素の属性として設定できる。
 条件の記述に空白は含めない。

 フラグとして使う場合、単に変数名をvar属性に指定すれば良い。
 !はNOTを意味し、変数名の前に付ければ「それ以外」を指す。
 変数に数値が設定されている場合、0はfalse、それ以外は全てtrueとして判定される。

<p var="test">テスト成功!</p>
<p var="!test">テスト失敗…</p>

 var属性で比較を行うのには二つの演算子を使う、すなわち=と~ だ。
 =はC言語等の==に、~はC言語等の<=にあたる。
 一般的な言語と異なり、~は変数の前後に使い、範囲を指定することもできる。
 フラグ判定と同様に!を使って結果の真偽を反転できる。

<p var="test=10">10</p>
<p var="test~10">10以下</p>
<p var="10~test">10以上</p>
<p var="10~test~20">10から20</p>

 条件を複数並べることもできる。
 ,はAND、;はORにあたる。,と;が同時に含まれる場合、,(AND)が優先される。

<p var="0~test,test~10">0~test~10と同じ</p>
<p var="test~0;10~test">!0~test~10と同じ</p>

else節

 var要素はelse要素を含める。
 var要素で、何らかの判定属性が設定されていないと、else節は実行されない。

<var i="上級">100<else/>50</var>