Class: BCDice::GameSystem::Insane

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

Direct Known Subclasses

Insane_Korean

Constant Summary collapse

ID =

ゲームシステムの識別子

'Insane'
NAME =

ゲームシステム名

'インセイン'
SORT_KEY =

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

'いんせいん'
HELP_MESSAGE =

ダイスボットの使い方

<<~INFO_MESSAGE_TEXT
  ・判定(スペシャル/ファンブル/成功/失敗を判定)
  ・各種表
  シーン表 ST
   本当は怖い現代日本シーン表 HJST/狂騒の二〇年代シーン表 MTST
   暗黒のヴィクトリアシーン表 DVST
  形容表 DT/本体表 BT/部位表 PT
  感情表      FT
  職業表      JT
  バッドエンド表  BET
  ランダム分野表  RCT
  ランダム特技表  RTTn(n:分野番号、省略可能)
    1暴力(TVT)、2情動(TET)、3知覚(TPT)
    4技術(TST)、5知識(TKT)、6怪異(TMT)
  ホラースケープ表
    会話(CHT)    /街中(VHT)  /不意訪問(IHT)
    廃墟遭遇(RHT)/野外遭遇(MHT)/情報潜在(LHT)
  遭遇表 都市(ECT)/山林(EMT)/海辺(EAT)/反応表 RET
  残業ホラースケープ表(OHT)  /残業電話表(OPT)/残業シーン表(OWT)
  社名決定表1(CNT1)/社名決定表2(CNT2)/社名決定表3(CNT3)
  暫定整理番号作成表(IRN)
  ・D66ダイスあり
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, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

#initialize(command) ⇒ Insane

Returns a new instance of Insane.



40
41
42
43
44
45
46
# File 'lib/bcdice/game_system/Insane.rb', line 40

def initialize(command)
  super(command)

  @sort_add_dice = true
  @sort_barabara_dice = true
  @d66_sort_type = D66SortType::ASC
end

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object



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

def eval_game_system_specific_command(command)
  case command
  when 'BET'
    type = translate("Insane.BET.name")
    output, total_n = get_badend_table
  when 'IRN'
    type = translate("Insane.IRN.name")
    output, total_n = get_interim_reference_number
  else
    return self.class::RTT.roll_command(@randomizer, command) || roll_tables(command, self.class::TABLES)
  end

  return "#{type}(#{total_n}) > #{output}"
end

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

ゲーム別成功度判定(2D6)



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/bcdice/game_system/Insane.rb', line 49

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

  if dice_total <= 2
    Result.fumble(translate("Insane.fumble"))
  elsif dice_total >= 12
    Result.critical(translate("Insane.special"))
  elsif target == "?"
    Result.nothing
  elsif total >= target
    Result.success(translate("success"))
  else
    Result.failure(translate("failure"))
  end
end