NinjaSlayer: repeatコマンド使用時のバグを修正する #469
Merged
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.
ニンジャスレイヤーTRPGの
AT
、EL
コマンドに存在した、repeat
コマンドで繰り返し実行した場合のバグを修正しました。症状
これまで
repeat
コマンドで繰り返し実行した場合に、後の方の回で出目が悪い場合でも、意図せず「サツバツ!」等が表示される場合がありました。原因
BCDice/lib/bcdice/game_system/NinjaSlayer.rb
Lines 177 to 179 in 7c0b4e7
上記の部分で、複数回の実行で蓄積された出目を取り、「サツバツ!」等の判定を行っていました。
BarabaraDice::Result#rands
には、複数回の実行結果が蓄積されるRandomizer#rand_results
の値が入ります。#335 で私がこの部分を実装したときにrepeat
を考慮し忘れていたため、Randomizer#rand_results
を使ってしまいました。対策
BarabaraDice::Result
に、最後に振ったときの出目を記録する以下のメンバを加えました。last_dice_list_list
:出目のグループの配列(例:[[1, 3], [5, 2]]
)last_dice_list
:すべての出目の配列(例:[1, 3, 5, 2]
)NinjaSlayer側では、
BarabaraDice::Result#last_dice_list
を使うように変更しました。関連するテストケースも追加しました。