Class: BCDice::GameSystem::BBN

Inherits:
Base
  • Object
show all
Defined in:
lib/bcdice/game_system/BBN.rb

Constant Summary collapse

ID =
'BBN'
NAME =
'BBNTRPG'
SORT_KEY =
'ひいひいえぬTRPG'
HELP_MESSAGE =
<<~MESSAGETEXT
  ・判定(xBN±y>=z[c,f])
   xD6の判定。クリティカル、ファンブルの自動判定を行います。
   1Dのクリティカル値とファンブル値は1。2Dのクリティカル値とファンブル値は2。
   nDのクリティカル値とファンブル値は n/2 の切り上げ。
   クリティカルとファンブルが同時に発生した場合、クリティカルを優先。
   x:xに振るダイス数を入力。
   y:yに修正値を入力。省略可能。
    z:zに目標値を入力。省略可能。
    c:クリティカルに必要なダイス目「6」の数の増減。省略可能。
    f:ファンブルに必要なダイス目「1」の数の増減。省略可能。
   例) 3BN+4 3BN>=8 3BN+1>=10[-1] 3BN+1>=10[,1] 3BN+1>=10[1,1]
MESSAGETEXT

Instance Attribute Summary

Attributes inherited from Base

#d66_sort_type, #default_cmp_op, #default_target_number, #randomizer, #reroll_dice_reroll_threshold, #round_type, #sides_implicit_d, #upper_dice_reroll_threshold

Instance Method Summary collapse

Methods inherited from Base

#change_text, #check_result, command_pattern, #enable_debug, #enabled_d9?, #eval, eval, #grich_text, #initialize, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

This class inherits a constructor from BCDice::Base

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/bcdice/game_system/BBN.rb', line 29

def eval_game_system_specific_command(command)
  unless parse(command)
    return nil
  end

  # ダイスロール
  dice_list = @randomizer.roll_barabara(@roll_times, 6)
  dice = dice_list.sum()
  dice_str = dice_list.join(",")

  total = dice + @modify

  # 出力文の生成
  sequence = [
    "(#{command})",
    "#{dice}[#{dice_str}]#{@modify_str}",
    total
  ]

  # クリティカルとファンブルが同時に発生した時にはクリティカルが優先
  if critical_?(dice_list)
    sequence.push("クリティカル!", *additional_roll(dice_list.count(6), total))
  elsif fumble_?(dice_list)
    sequence.push("ファンブル!")
  elsif @difficulty
    sequence.push(total >= @difficulty ? "成功" : "失敗")
  end

  return sequence.join("")
end