ノベルエンジンに変数宣言とか計算とか

そういえばADVといえばフラグを立てなければいけないのだった。
ので変数くらいは必須かなと思う。
実際吉里吉里NScripterもLemoNovelも変数くらい宣言できてる。


とりあえずこんな実装にしてみた

<Expression>hoge = 10 + 5</Expression>

変数hogeに対して10+5の結果を渡す。
hogeが既にある変数でも、ない変数でも無視して作成する。
計算は四則演算と比較と論理和積ができれば、とりあえず問題なさそうかな。
いやしかしこうの方がいいような気もする。

<SetVar name="hoge" value="10 + 5"/>

こっちの方が素直かも。


とここで気がついたのはスコープの問題。
例えば現在作成中のツールでは 章 節 段落 の単位でツリー状に作っていくのだけど、
複数人で作成する時、章単位で担当を分けて作成する場面があると思う。
このとき好き勝手にtmpなんて変数を作成しようモノなら多分どっかしらカブって面倒なことになるだろう。
ので変数にはスコープを作成する必要があるかもしれない。

<Clause>//節
	〜中略〜//スコープを節内と指定して変数hogeを宣言する
	<SetVar scope="Clause" name="hoge" value="10"/>
	〜中略〜
</Clause>
<Clause>//節
	〜中略〜//節が違うのでかぶらない!!
	<SetVar scope="Clause" name="hoge" value="FOOBAR"/>
	〜中略〜
</Clause>

作ること自体は楽しそうだけど、ボッチで作成する自分にとっては不要なのかもしれないw