要件
- データテーブルの参照
- データテーブルの更新
- ダイス結果やデータテーブルの値を別のダイスで使用できる、動的なダイスコマンド
- 通常のチャットの中にダイスコマンドを埋め込む、動的なチャット
インライン構文(案)
[@#]{[STAT[:=]]EXPR}
STAT = データテーブルの項目名
EXPR = インライン構文、ダイスコマンド、データテーブル参照
![STAT[:=]]EXPR
インラインを1つのみ記載する場合用のシンタックスシュガー。
#{[STAT[:=]]EXPR}と等価。
ダイスの結果はすべて出力する。以下の例では長くなるので省略して書いた。
インラインダイス
目標値はそれぞれ@{1d6}、#{2+1d6}です
1d6: 7
2+1d6: 9
目標値はそれぞれ7、(2+1d6=)9です
データテーブル参照
与えるダメージはそれぞれ@{2+@{ATK}d6}、@{2+@{@{ATK}+2}d6}です
ATK: 1
2+1d6: 5
ATK+2: 3
2+3d6: 13
与えるダメージはそれぞれ5、13です
データテーブル変更
: で加算
被ダメージ1D6が2回、HPは@{HP:-1D6}、@{HP:-1D6}へ
-1D6: 3
HP: 30-3
HP: 27-3
被ダメージ1D6が2回、HPは27、24へ
= で代入
初期MPを1D6で決定します @{MP=1D6}
1D6: 3
MP: 3
初期MPを1D6で決定します 3
別のインラインダイスの返り値を参照しデータテーブル変更
ラベルは [a-z] にマッチする小文字のみ
被ダメージは#a{1d6}、HPは@{HP:-##{a}}へ
1d6: 3 #a
HP: 30-3
被ダメージは(a: 1d6=)3、HPは27へ
インラインダイスの結果をダイスコマンドに接続
@{1d6}d6 ダメージ算出
1d6: 3
3d6: 11
エラー処理
基本的に、正常OKの場合のみデータテーブル変更や結果のチャット出力を行う
正常NG、異常のケースは他の人には感知できないようにする
.result を > でパース
const bcdice_response = {
"ok": true,
"result": ": KeyNo.14c[9]+5 > 2D:[6,5 3,6 5,5 1,1]=11,9,10,2 > 7,5,6,**+5 > 3回転 > 23", // parse it
"secret": false,
"dices": [
{
"faces": 6,
"value": 6
}
],
"detailed_rands": [
{
"kind": "normal",
"sides": 6,
"value": 6
}
]
}
要件
インライン構文(案)
[@#]{[STAT[:=]]EXPR}STAT = データテーブルの項目名
EXPR = インライン構文、ダイスコマンド、データテーブル参照
![STAT[:=]]EXPRインラインを1つのみ記載する場合用のシンタックスシュガー。
#{[STAT[:=]]EXPR}と等価。ダイスの結果はすべて出力する。以下の例では長くなるので省略して書いた。
インラインダイス
データテーブル参照
データテーブル変更
:で加算=で代入別のインラインダイスの返り値を参照しデータテーブル変更
ラベルは
[a-z]にマッチする小文字のみインラインダイスの結果をダイスコマンドに接続
エラー処理
基本的に、正常OKの場合のみデータテーブル変更や結果のチャット出力を行う
正常NG、異常のケースは他の人には感知できないようにする
.resultを>でパース