<item>要素
$ σ_σ$ < item要素はその名の通りアイテムの有る無しを設定する要素よ。 Σc ' _' ) < こいつを使うと、ぐっとゲームらしくなるぜ!!
概要
アイテムを管理するための要素。
inventory要素で表示されるものを設定する要素、とも言える。
文脈(コンテクスト)
初期化要素(act,option要素内 空要素)
<item/>
何の属性もない空要素を置くと、変数を全て初期化する。
開始時にとりあえず入れておくと、再プレイ時に余計なことを考えなくてすむ。
初期化しないと、前回プレイ時の値が設定される(オートセーブ)
設定要素(act,option要素内 id付き)
真偽値の設定(空要素)
<item id="コンボウ"/>
id属性に指定したアイテムをtrueに設定する。
id属性で指定できるのは、アルファベットや数値の組み合わせ、日本語や他の文字も使える。
ただし、,;+-*/%=~などの記号は将来的な拡張の可能性も含め、使わないようにして欲しい。
とはいえ、ここで設定された値がinventory要素で表示されるので、必然的に全角カタカナを使うのが定番。
真偽値の設定
<item id="コンボウ">true</item>
さっきのtrueを設定する書式を明示的に書いたのがこちら。
falseを設定する場合は必ず明示的に書く。アイテムを捨てたり使ってなくなったりした時に記述する。
<item id="コンボウ">false</item>
真偽値でアイテムを管理している場合、アイテムを消費した途端に、元あった場所に使ったアイテムが復活したりする。
消費アイテムや複数箇所におけるアイテムは、文字列を使ったほうがいいだろう。
文字列の設定
<item id="ホウチョウ">台所</item>
文字列も設定できる。
アイテムが置かれている場所を設定する、という使い方を想定している。
置換要素(p要素内 id付き空要素)
<p>クギバット : <item id="クギバット"/></p>
以下のようにid付きの空要素として使うと、アイテムの状態(true/false)か設定された文字列に置き換えられる。
ユーザにtrueとかfalseとか見せても意味不明なので、デバッグ以外で使うことはないだろう。
属性
color属性
16進数6桁のカラーコードを書くことで、文字の色を指定できる。
16進数の頭には#を付ける事。
指定しない場合はtextio要素のcolor属性で指定した値。
<p><item id="テガミ" color="#cc99dd"/></p>
size属性
数値を書くことで、文字の大きさを指定できる。
指定しない場合はtextio要素のsize属性で指定した値。
<p><item id="テガミ" size="20"/></p>
条件分岐
適用可能な判定属性
item要素はvar、i、item、at、pla属性による条件判定が可能。
条件となる属性が複数ある場合は、andで判定が行われる。
<item id="カサ" var="in_the_rain"/>
属性としての仕様
itemによる条件は、textioとselectを除く要素の属性として設定できる。
条件の記述に空白は含めない。
item属性はアイテムがあるかないかの判定に使い、単にアイテム名をitem属性に指定すれば良い。
i属性とは逆に文字列が設定されているとfalseと判定される。
!はNOTを意味し、アイテム名の前に付ければ「それ以外」を指す。
<p item="カナヅチ">貯金箱を壊した!</p> <p item="!カナヅチ">貯金箱は硬くて割ることができない。</p>
ちなみに上記の場合、else要素を使って以下のように書いたほうが記述量も短く、かつ分かりやすい。
<p item="カナヅチ">貯金箱を壊した!<else/>貯金箱は硬くて割ることができない。</p>
item属性は=で比較を行う。
=はC言語等の==
にあたる。
フラグ判定と同様に!を使って結果の真偽を反転できる。
条件を複数並べることもできる。
,はAND、;はORにあたる。,と;が同時に含まれる場合、,(AND)が優先される。
<p item="カナヅチ,クギ">イスを組み立てた!</p>
<p item="セイショ=胸ポケット;カタミ=胸ポケット">銃弾が心臓に達する前に止まった。</p>