Class: BCDice::GameSystem::ShinobiGami

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

Constant Summary collapse

ID =

ゲームシステムの識別子

'ShinobiGami'
NAME =

ゲームシステム名

'シノビガミ'
SORT_KEY =

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

'しのひかみ'
HELP_MESSAGE =

ダイスボットの使い方

<<~INFO_MESSAGE_TEXT
  ・行為判定 SG@s#f>=x
   2D6の行為判定を行う
   s: スペシャル値 (省略時 12)
   f: ファンブル値 (省略時 2)
   x: 目標値 (省略可)
   例)SG, SG@11, SG@11#3, SG#3>=7
  ・各種表
   ・(無印)シーン表 ST/ファンブル表 FT/感情表 ET
     /変調表 WT/戦場表 BT/異形表 MT
   ・ランダム特技決定表 RTTn (n:分野番号、省略可能)
     1器術 2体術 3忍術 4謀術 5戦術 6妖術
   ・ランダム分野表 RCT
   ・(弐)都市シーン表 CST/館シーン表  MST/出島シーン表 DST
   ・(参)トラブルシーン表 TST/日常シーン表 NST/回想シーン表 KST
   ・(死)東京シーン表 TKST/戦国シーン表 GST
   ・(乱)戦国変調表 GWT
   ・(リプレイ戦1〜2巻)学校シーン表 GAST/京都シーン表 KYST
     /神社仏閣シーン表 JBST
   ・(怪)怪ファンブル表 KFT/怪変調表 KWT
   ・(その他)秋空に雪舞えばシーン表 AKST/災厄シーン表 CLST
    /出島EXシーン表 DXST/斜歯ラボシーン表 HLST
    /夏の終わりシーン表 NTST/培養プラントシーン表  PLST
    ・忍秘伝  中忍試験シーン表 HC/滅びの塔シーン表 HT/影の街でシーン表 HK
    /夜行列車シーン表 HY/病院シーン表 HO/龍動シーン表 HR/密室シーン表 HM/催眠シーン表 HS
  ・D66ダイスあり
INFO_MESSAGE_TEXT
SPECIAL =
"スペシャル(【生命力】1点か変調一つを回復)"
RTT =
DiceTable::SaiFicSkillTable.new(
  [
    ['器術', ['絡繰術', '火術', '水術', '針術', '仕込み', '衣装術', '縄術', '登術', '拷問術', '壊器術', '掘削術']],
    ['体術', ['騎乗術', '砲術', '手裏剣術', '手練', '身体操術', '歩法', '走法', '飛術', '骨法術', '刀術', '怪力']],
    ['忍術', ['生存術', '潜伏術', '遁走術', '盗聴術', '腹話術', '隠形術', '変装術', '香術', '分身の術', '隠蔽術', '第六感']],
    ['謀術', ['医術', '毒術', '罠術', '調査術', '詐術', '対人術', '遊芸', '九ノ一の術', '傀儡の術', '流言の術', '経済力']],
    ['戦術', ['兵糧術', '鳥獣術', '野戦術', '地の利', '意気', '用兵術', '記憶術', '見敵術', '暗号術', '伝達術', '人脈']],
    ['妖術', ['異形化', '召喚術', '死霊術', '結界術', '封術', '言霊術', '幻術', '瞳術', '千里眼の術', '憑依術', '呪術']],
  ],
  s_format: "『%<category_name>s』%<skill_name>s",
  rtt_format: "ランダム指定特技表(%<category_dice>d,%<row_dice>d) > %<text>s"
)

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) ⇒ ShinobiGami

Returns a new instance of ShinobiGami.



46
47
48
49
50
51
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 46

def initialize(command)
  super(command)

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

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 73

def eval_game_system_specific_command(command)
  result = action_roll(command) || roll_tables(command, TABLES) || RTT.roll_command(@randomizer, command)
  return result if result
  return sinobigami_metamorphose_table() if command == 'MT'

  nil
end

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



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 55

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

  if dice_total <= 2
    Result.fumble("ファンブル")
  elsif dice_total >= 12
    Result.critical(SPECIAL)
  elsif target == "?"
    nil
  elsif total >= target
    Result.success("成功")
  else
    Result.failure("失敗")
  end
end