加算ダイスで目標値に?をした時に、一部のシステムで例外になる問題を修正 #244
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.
各システムで独自に成否判定を実装するBCDice#check_nDx系のメソッドで、
多くのシステムで目標値に?が来ることを想定していない書き方がされており、
目標値?とすると例外が発生してしまっていた。
これを、目標値?の時には空白文字列を返すように修正した。
空白文字列が返されると他のcheck系メソッドにフォールバックされ、最終的に
BCDice#check_nDxから "失敗" が返される。
目標値を?にできるのはほとんどのマニュアルに書かれておらず、認知度も低いが、
TunnelsAndTrollsやNightmareHunterDeepで積極的に利用される可能性が高いため、
引き続きサポートする必要があった。
Fix #243
修正方法
1.以下の文字列をgrepして対象システムの洗い出し
def check_1D100
def check_1D20
def check_2D6
def check_nD10
def check_nD6
2.それらのメソッド内で
?
の検証をしていないメソッドの行頭に以下の一文を追加3.ダイスの数に応じて、下記のようなテストを追加