Class: BCDice::GameSystem::ChaosFlare

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

Constant Summary collapse

ID =

ゲームシステムの識別子

'ChaosFlare'
NAME =

ゲームシステム名

'カオスフレア'
SORT_KEY =

ゲームシステム名の読みがな

'かおすふれあ'
HELP_MESSAGE =

ダイスボットの使い方

<<~INFO_MESSAGE_TEXT
  判定
  CF
    書式: [ダイスの数]CF[修正値][@クリティカル値][#ファンブル値][>=目標値]
      CF以外は全て省略可能
    例:
    - CF 2D6,クリティカル値12,ファンブル値2で判定
    - CF+10@10 修正値+10,クリティカル値10で判定
    - CF+10#3 修正値+10,ファンブル値3で判定
    - CF+10>=10 目標値を指定した場合、差分値も出力する
    - 3CF+10@10#3>=10 3D6での判定
    - CF@9#3+8>=10

  2D6
    ファンブル値2で判定する。クリティカルの判定は行われない。
    目標値が設定された場合、差分値を出力する。
    - 2D6+4>=10

  各種表
    FT: 因縁表
    FTx: 数値を指定すると因果表の値を出力する
    - FT -> 11から66の間でランダム決定
    - FT23 -> 23の項目を出力
    - FT0
    - FT7
INFO_MESSAGE_TEXT

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



77
78
79
80
81
82
83
# File 'lib/bcdice/game_system/ChaosFlare.rb', line 77

def eval_game_system_specific_command(command)
  if command.start_with? "FT"
    roll_fate_table(command)
  else
    cf_roll(command)
  end
end

#result_2d6(total, dice_total, _dice_list, cmp_op, target) ⇒ Object

ゲーム別成功度判定(2D6)。以前の処理をそのまま残しています。



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/bcdice/game_system/ChaosFlare.rb', line 45

def result_2d6(total, dice_total, _dice_list, cmp_op, target)
  return nil unless cmp_op == :>=

  sequence = []
  result = Result.new

  if dice_total <= 2
    total -= 20
    sequence.push("ファンブル(-20)")
    result.fumble = true
  end

  if target != '?'
    if total >= target
      sequence.push("成功")
      result.success = true
    else
      sequence.push("失敗")
      result.failure = true
    end

    if total - target != 0
      sequence.push("差分値#{total - target}")
    end
  end

  return Result.nothing if sequence.empty?

  result.text = sequence.join("")
  return result
end