Module: BCDice::CommonCommand::RerollDice

Defined in:
lib/bcdice/common_command/reroll_dice.rb,
lib/bcdice/common_command/reroll_dice/node.rb,
lib/bcdice/common_command/reroll_dice/parser.rb

Overview

個数振り足しダイス

ダイスを振り、条件を満たした出目の個数だけダイスを振り足す。振り足しがなくなるまでこれを繰り返す。成功条件を満たす出目の個数を調べ、成功数を表示する。

2R6+1R10[>3]>=5
2R6+1R10>=5@>3

振り足し条件は角カッコかコマンド末尾の @ で指定する。

>3

の場合、3より大きい出目が出たら振り足す。

3

のように数値のみ指定されている場合、成功条件の比較演算子を流用する。

上記の例の時、出目が

"2R6"  -> [5,6] [5,4] [1,3]
"1R10" -> [9] [1]

だとすると、 >=5 に該当するダイスは5つなので成功数5となる。

成功条件が書かれていない場合、成功数0として扱う。振り足し条件が数値のみ指定されている場合、比較演算子は >= が指定されたとして振舞う。

Defined Under Namespace

Modules: Node Classes: Parser

Constant Summary collapse

PREFIX_PATTERN =
/\d+R\d+/.freeze
REROLL_LIMIT =
10000

Class Method Summary collapse

Class Method Details

.eval(command, game_system, randomizer) ⇒ Object



33
34
35
36
# File 'lib/bcdice/common_command/reroll_dice.rb', line 33

def eval(command, game_system, randomizer)
  cmd = Parser.parse(command)
  cmd&.eval(game_system, randomizer)
end