GenKuzumochi
GenKuzumochi
なるほど。個人的には`SG+1`が`1+SG`と表記できないように、システム独自コマンドが中置記法との整合性を取る意味は薄いかと感じています。 ちなみに、中置記法の原則から外れず、「優先度の低い二項演算子」として解釈するパーサを追加するのはいかがでしょうか。(既存のコマンドは壊さない前提で) ``` 高 D(加算ダイス) */ +- 低 CMD ``` `1+2*3CMD1+2*3>=5`を`(1+2*3)CMD(1+2*3)>=5`と解釈 特に、達成値を出さないコマンド(アサルトエンジンや獸ノ森、表の参照等)では`2CMD6+1`が`(2CMD6)+1`と解釈される余地がありません。「CMD固定値+直前の出目」のような、チャットパレットに登録できないコマンドを頻繁に使う場合、カッコが必要だとゲームテンポが悪化します。 簡便なパーサによって、新クトゥルフが`CC2`や`CC+2`はOKで`CC+1+1`は許容しないような、実装依存のゆらぎは低減できるのではと思っています。 > こちらは SG+0@12-1 が許容されてしまうことがバグ的な挙動なので、SG+0@12-1 を許可しないように修正したほうがよいと思います。 こちらは提案3を導入した仮定なので、現状で`SG+0@12-1`は構文エラーとなります。 また、提案2のmodifierが無意味にONになっている箇所を時間があるときに探してみます。
ネクロニカ、コードレイヤード、スカイノーツ、ガラコあたりは中身をよく見ているので実装し次第PRを出します。
お疲れさまです。 ### max:nD 「nD6から最大値1つを選ぶ」は`3D6KH1` で振ることができます。 複雑なのでシステム固有で作成するのはありだと思いますが、できればBCDiceの共通処理を呼び出すほうが良さそうですね。 (現状そういう方法があるのかはわかってませんが…) また、BCDiceは伝統的にnDXのような記法を取っているので、`nKB` (Kizuna Bullet)とか `nMD` (Max Dice)とかのほうが馴染みそうに思います。 ### ダイスを2回振って12通りの結果を得るテーブル こちらの表がそのまま使えたりしませんか? https://github.com/bcdice/BCDice/blob/master/lib/bcdice/dice_table/d66_half_grid_table.rb 参考用に公式のPDF https://1706f27e-e6e8-4a4c-890e-926f462395a2.filesusr.com/ugd/500c33_32896aaff73444bea14a8639d2f3d96b.pdf