Closed ochaochaocha3 closed 5 years ago
ダイスをバラバラにロールして、その成功数の個数分さらにロールして成功度を加算するロール(天羅万象など)にも対応しました。振り足し回数はゲーム設定で対応になっています。(デフォルトは無限) BのかわりにRを使うことで使用できます。条件式は必須で、ダイスの括弧内前処理も使えます。 例) 3r6>=4 3R6=6 3r6+2r6<=2 (3+2)r6>=5
ダイスをバラバラにロールして、その成功数の個数分さらにロールして成功度を加算するロール(天羅万象など)にも対応しました。振り足し回数はゲーム設定で対応になっています。(デフォルトは無限) BのかわりにRを使うことで使用できます。条件式は必須で、ダイスの括弧内前処理も使えます。
例)
3r6>=4 3R6=6 3r6+2r6<=2 (3+2)r6>=5
個数振り足しの最大個数は10,000(Ruby版ではDiceBotクラスで定義)。
https://github.com/bcdice/BCDice/issues/65 も参照。
再定義 READMEの記述と直感的に期待される挙動から、仕様を再定義する。 ダイスの指定はnRxのようにし、+で複数繋げられる ダイス指定の直後に成功条件式を >=6 や <2 のように記述する 指定された条件式を用いて各ダイスの成否判定が行われる 成功したダイスは振り直される 成功した回数をカウントし、成功数とする []をつかった2R3+4R5[6]のような式は2R3+4R5>=6 の糖衣構文とする 式中の数値は、0以上のみ受け付ける
READMEの記述と直感的に期待される挙動から、仕様を再定義する。
nRx
+
>=6
<2
[]
2R3+4R5[6]
2R3+4R5>=6
3r6>=4
(RRollComp (>= (RRollList nil (RRoll 3 6)) 4))
2R6+3R4>=4
(RRollComp (>= (RRollList nil (RRoll 2 6) (RRoll 3 4)) 4))
2r6[3]
(RRollList 3 (RRoll 2 6))
2r6[3]>=4
(RRollComp (>= (RRollList 3 (RRoll 2 6)) 4))
成功数
object.Integer
DiceBot : (3R6[4]>=4) > 1,2,5 + 4 + 1 > 成功数2
[4]
3r6>(1+3)
DiceBot : (3R6[4]>4) > 5,3,3 + 5 + 3 > 成功数2
個数振り足しの最大個数は10,000(Ruby版ではDiceBotクラスで定義)。
https://github.com/bcdice/BCDice/issues/65 も参照。
抽象構文木の例
3r6>=4
(RRollComp (>= (RRollList nil (RRoll 3 6)) 4))
2R6+3R4>=4
(RRollComp (>= (RRollList nil (RRoll 2 6) (RRoll 3 4)) 4))
2r6[3]
(RRollList 3 (RRoll 2 6))
2r6[3]>=4
(RRollComp (>= (RRollList 3 (RRoll 2 6)) 4))
結果の型
成功数
object.Integer
結果のメッセージの例
3r6>=4
DiceBot : (3R6[4]>=4) > 1,2,5 + 4 + 1 > 成功数2
[4]
と条件の数値は等しい。3r6>(1+3)
DiceBot : (3R6[4]>4) > 5,3,3 + 5 + 3 > 成功数2