Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
バラバラロール(
xBn
)の結果を表すクラスを作り、通常の結果に加えて出目と成功数を記録するようにしました。目的は、BarabaraDiceの結果オブジェクトから必要な項目を直接取得できるようにすることです。これまでは結果が文字列でしか得られなかったため、ニンジャスレイヤーTRPG等では結果の文字列から必要な部分を抽出して判断していました。この方法はバラバラロールの出力書式に依存するため、書式の変更に弱いです(i18nを行う場合は、さらに言語数分だけ修正作業が多くなります)。結果オブジェクトから必要な項目を直接取得できれば、書式を考慮する必要がなくなります。
実装では
BCDice::Result
を継承するクラスBCDice::CommonCommand::BarabaraDice::Result
を作りました。追加したのは成功数(success_num
)のみです。出目の記録には、BCDice::Base#eval
の最後で設定される#rands
と#detailed_rands
を使用しましたが、これでも大丈夫でしょうか?作った仕組みを使って、ひとまずニンジャスレイヤーTRPGのTODO整理を行いました。他にはシャドウラン5th Editionに適用できそうです(ただ、シャドウラン5th EditionではニンジャスレイヤーTRPGよりもアドホックな処理が多かったため、今回は適用を見送りました)。