GoBCDiceは、多くのゲームシステムに対応するTRPG向けダイスボット「ボーンズ&カーズ(BCDice)」のGoによる実装です。中核となるダイスローラー(ダイス表記の構文解析器および評価器)および多くのゲームシステム固有ダイスボットで構成されます。
ビルド要件:Go ≥ 1.12
現在は動作確認のためのREPLのみビルド、実行できます。
cd cmd/GoBCDiceREPL
# REPLをビルドする
go build
# REPLを実行する
./GoBCDiceREPL
ダイス表記の構文解析器(pkg/core/parser/parser.go)を修正し、ビルドするには、さらにgithub.com/mna/pigeonをインストールする必要があります:
GO111MODULE=off go get -u github.com/mna/pigeon
そのうえで、以下のコマンドによってビルドします:
cd pkg/core/parser
make
GoBCDiceのダイスローラーは、一般的なダイスロール機能を提供します。
BCDiceは以下のダイス表記に対応しています(詳細については、GitHub上のbcdice/BCDice/docs/README.txtを参照してください)。現在GoBCDiceが対応しているダイス表記にはチェックがついています。
- 加算ロール(D):
xDn
- 成功判定つき:
xDn>=y
など
- 成功判定つき:
- バラバラロール(B):
nBx
- 成功判定つき:
xBn>=y
など
- 成功判定つき:
- 個数振り足しロール(R):
xRn>=y
など - 上方無限ロール(U):
xUn[t]
- 成功判定つき:
xUn[t]>=y
など
- 成功判定つき:
x:ダイス数、n:ダイスの面数、y:目標値、t:振り足しの閾値
追加の構文は以下のとおりです:
- ランダム数値埋め込み:
[最小値...最大値]
- シークレットロール:
SxDn
など
ダイスローラーは以下のコマンドにも対応しています:
- 計算(四則演算、C):
C(1+2-3*4/5)
など - ランダム選択:
CHOICE[A,B,C]
など
ダイスロールや計算で使用可能な演算子を示します。
算術演算では、数値は整数として扱われます。
- 単項演算子
- 単項プラス(何もしない)
+
- 単項マイナス(符号反転)
-
- 単項プラス(何もしない)
- 二項演算子
- 加算
+
- 減算
-
- 乗算
*
- 除算
- 端数を切り捨てる除算
/
- 端数を四捨五入する除算
/R
- 端数を切り上げる除算
/U
- 端数を切り捨てる除算
- 加算
比較演算子は、成功判定において使用します。
- 等価
=
- 非等価
<>
- 未満
<
- 以下
<=
- 超過
>
- 以上
>=