nRcロール(3):ファンブル間違い

ファンブルだけに。
Rダイスファンブル時の処理をいろいろクリティカルに間違ってたので、もういっそと思って新しい記事立てましたorz

  1. ループ初回に
  2. 振ったダイスのすべてが1の時、
  3. 達成値は0となる。

のがファンブル


で、最初に書いてたコードだと、

15:42 (ten-you) #1r10
15:42 (ten-you) ten-you:1R10=[1]=1

そもそもファンブル表示してないじゃん。


じゃー達成値0にすればいいや、と以下のように書き直したわけですが、

        //一通り振ったところで結果を格納
        achieveValue += preAchieveValue;
        achieveString = achieveString.substr(0, (achieveString.length - 1))
                        + ']=' + achieveValue;
        
        //ファンブル処理
        if (preAchieveValue == 1 && count == 0){
            preAchieveValue = 0;
            achieveString += ' Fumble!!';
            criticalDice = 0;
        }

15:43 (ten-you) #1r10
15:43 (ten-you) ten-you:1R10=[1]=1 Fumble!!

やっぱり1じゃん。いや、当たり前なんですが。


ということで、以下のように書き直し。

        //一通り振ったところで結果を格納
        //ファンブル時は分岐処理
        if (preAchieveValue == 1 && count == 0){
            preAchieveValue = 0;
            achieveValue = 0;
            achieveString = achieveString.substr(0, (achieveString.length - 1))
                            + ']=' + achieveValue + ' Fumble!!';
            criticalDice = 0;
        } else {
            achieveValue += preAchieveValue;
            achieveString = achieveString.substr(0, (achieveString.length - 1))
                            + ']=' + achieveValue;
        }

実行↓

16:00 (ten-you) #2r10
16:00 (ten-you) ten-you:2R10=[1,1]=0 Fumble!!

できたできた。


この結果出すためにかなりダイス振ったのですが、やっぱりしみじみと、Rダイスは数を増やせば増やすほどファンブルしにくい、失敗しにくい判定だなと思いました。
いやたくさん失敗したいわけじゃないですが。


……たまに大失敗を買いたくなるけどね(ゲーム違い)。