Closed blhsrwznrghfzpr closed 4 years ago
加算ダイスのパーサーを修正して、中途半端な状態は受け付けないようにする
なぜか知らんけど現状のv3だと動いちゃう
[DiceBot]> use Insane
[Insane]> 1D6>=
Insane : (1D6>=) > 6 > 失敗
なぜか知らんけど現状のv3だと動いちゃう
インセインは check_2d6
が実装されているので、2d6>=
じゃないと落ちないです
うっかりしてました……
現象
特定システムで
2d>=
のように目標値無しのコマンドで例外が発生する。上記テストケースの結果
ココフォリアでの表示
ユドナリウムでの表示
原因
インセインなどの特定システムだけ発生するので、
check_nDx
系メソッドを 実装しているシステムだけ発生するんだと思います。 インセインではtotal >= target
の箇所で例外が発生しています。 https://github.com/bcdice/BCDice/blob/e0215e041e2f7734bf8c2914c1499f038b83d3f0/lib/bcdice/game_system/Insane.rb#L62-L77 関連issue) https://github.com/bcdice/BCDice/issues/243目標値を
"?"
と比較している箇所で、機械的に""
(空文字)とも比較するようにすれば スタックトレースを抑制することができると思います。 もしくは不完全なコマンドをcheck_nDx
系メソッドに流さないようにするか