Class: BCDice::GameSystem::ShadowRun5

Inherits:
ShadowRun4 show all
Defined in:
lib/bcdice/game_system/ShadowRun5.rb

Constant Summary collapse

ID =

ゲームシステムの識別子

'ShadowRun5'
NAME =

ゲームシステム名

'シャドウラン 5th Edition'
SORT_KEY =

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

'しやとうらん5'
HELP_MESSAGE =

ダイスボットの使い方

<<~INFO_MESSAGE_TEXT
  個数振り足しロール(xRn)の境界値を6にセット、バラバラロール(xBn)の目標値を5以上にセットします。
  バラバラロール(xBn)のみ、リミットをセットできます。リミットの指定は(xBn@l)のように指定します。(省略可)
  BコマンドとRコマンド時に、グリッチの表示を行います。
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, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

#initialize(command) ⇒ ShadowRun5

Returns a new instance of ShadowRun5.



26
27
28
29
30
31
32
33
34
# File 'lib/bcdice/game_system/ShadowRun5.rb', line 26

def initialize(command)
  super(command)
  @sort_add_dice = true
  @sort_barabara_dice = true
  @reroll_dice_reroll_threshold = 6 # RerollDiceで振り足しをする出目の閾値

  @default_cmp_op = :>=
  @default_target_number = 5
end

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object

シャドウラン5版 リミット時のテスト



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/bcdice/game_system/ShadowRun5.rb', line 37

def eval_game_system_specific_command(command)
  debug('chatch limit prefix')

  m = /(\d+B6)@(\d+)/.match(command)
  b_dice = m[1]
  limit = m[2].to_i
  output_before_limited = BCDice::CommonCommand::BarabaraDice.eval(b_dice, self, @randomizer).text

  m = /成功数(\d+)/.match(output_before_limited)
  output_after_limited = output_before_limited
  before_suc_cnt = m[1].to_i
  if before_suc_cnt > limit
    after_suc_cnt = limit
    over_suc_cnt = before_suc_cnt - limit
    output_after_limited = output_before_limited.gsub(/成功数(\d+)/, "成功数#{after_suc_cnt}")
    output_after_limited += "(リミット超過#{over_suc_cnt})"
  end

  output = output_after_limited
  output = output.gsub('B', 'B6')
  output = output.gsub('6>=5', "[6]Limit[#{limit}]>=5")
  debug(output)
  return output
end

#grich_text(numberSpot1, dice_cnt_total, successCount) ⇒ Object

シャドウラン5版用グリッチ判定



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/bcdice/game_system/ShadowRun5.rb', line 63

def grich_text(numberSpot1, dice_cnt_total, successCount)
  dice_cnt_total_half = dice_cnt_total.to_f / 2
  debug("dice_cnt_total_half", dice_cnt_total_half)

  unless numberSpot1 > dice_cnt_total_half
    return nil
  end

  # グリッチ!
  if successCount == 0
    'クリティカルグリッチ'
  else
    'グリッチ'
  end
end