Class: BCDice::GameSystem::ShinobiGami

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

Direct Known Subclasses

ShinobiGami_Korean

Defined Under Namespace

Classes: DemonSkillTableForMetamorphose

Constant Summary collapse

ID =

ゲームシステムの識別子

'ShinobiGami'
NAME =

ゲームシステム名

'シノビガミ'
SORT_KEY =

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

'しのひかみ'
HELP_MESSAGE =

ダイスボットの使い方 25/01/17:書式成形(半角スペース×2に統一、同じ書籍のシーン表は改行なしで列挙)

"\u30FB\u884C\u70BA\u5224\u5B9A nSG@s#f>=x\n  2D6\u306E\u884C\u70BA\u5224\u5B9A\u3092\u884C\u3046\u3002\u30C0\u30A4\u30B9\u6570\u304C\u6307\u5B9A\u3055\u308C\u305F\u5834\u5408\u3001\u5927\u304D\u3044\u51FA\u76EE2\u500B\u3092\u63A1\u7528\u3059\u308B\u3002\n  n: \u30C0\u30A4\u30B9\u6570 (\u7701\u7565\u6642 2)\n  s: \u30B9\u30DA\u30B7\u30E3\u30EB\u5024 (\u7701\u7565\u6642 12)\n  f: \u30D5\u30A1\u30F3\u30D6\u30EB\u5024 (\u7701\u7565\u6642 2)\n  x: \u76EE\u6A19\u5024 (\u7701\u7565\u53EF)\n  \u4F8B\uFF09SG, SG@11, SG@11#3, SG#3>=7, 3SG>=7\n\n\u30FB\u884C\u70BA\u5224\u5B9A\u4EE5\u5916\u306E\u8868\n  \u4EE5\u4E0B\u306E\u8868\u306F\u300C\u56DE\u6570+\u30B3\u30DE\u30F3\u30C9\u300D\u3067\u8907\u6570\u56DE\u632F\u308C\u308B\n  \u4F8B\uFF093RCT, 2WT\n\n\u30FB\u30E9\u30F3\u30C0\u30E0\u7279\u6280\u6C7A\u5B9A\u8868 RTTn (n:\u5206\u91CE\u756A\u53F7\u3001\u7701\u7565\u53EF\u80FD)\n  1\u5668\u8853 2\u4F53\u8853 3\u5FCD\u8853 4\u8B00\u8853 5\u6226\u8853 6\u5996\u8853\n\n\u30FB\u30E9\u30F3\u30C0\u30E0\u5206\u91CE\u8868 RCT\n\n\u30FB\u5404\u7A2E\u8868\uFF1A\u57FA\u672C\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u4EE5\u964D\n  \u30D5\u30A1\u30F3\u30D6\u30EB\u8868 FT\u3001\u6226\u5834\u8868 BT\u3001\u611F\u60C5\u8868 ET\u3001\u5909\u8ABF\u8868 WT\u3001\u6226\u56FD\u5909\u8ABF\u8868 GWT\u3001\u30D7\u30E9\u30A4\u30BA\u52B9\u679C\u8868 PT\n  \u5996\u9B54\u5316\uFF08\u7570\u5F62\u8868\u3001\u5996\u9B54\u5FCD\u6CD5\u8868\u4E00\u62EC\uFF09 MT\u3001\u7570\u5F62\u8868 MTR\u3001\u5996\u9B54\u5FCD\u6CD5\u8868(x:A,B,C) DSx\n\n\u30FB\u5404\u7A2E\u8868\uFF1A\u6D41\u6D3E\u30D6\u30C3\u30AF\u4EE5\u964D\n  \u6BD4\u826F\u5742\u6D41\u6D3E\u30D6\u30C3\u30AF\n    \u30D1\u30CB\u30C3\u30AF\u8868 HRPT\n  \u978D\u99AC\u6D41\u6D3E\u30D6\u30C3\u30AF\n    \u65B0\u6226\u5834\u8868 BNT\n  \u5FA1\u658E\u6D41\u6D3E\u30D6\u30C3\u30AF\n    \u899A\u9192\u8868 OTAT\n    \u5FCD\u6CD5\u6388\u696D\u30B7\u30FC\u30F3\u8868\uFF08x:1-\u653B\u6483\u7CFB 2-\u9632\u5FA1\u7CFB 3-\u6226\u7565\u7CFB\uFF09NCTx\n    \u3010\u6570\u5947\u3011OTS\n  \u96A0\u5FCD\u6D41\u6D3E\u30D6\u30C3\u30AF\n    \u5996\u8853\u5909\u8ABF\u5BFE\u5FDC\u8868\uFF08x:\u306A\u3057-\u73FE\u4EE3\uFF0F\u6226\u56FD\u30011-\u73FE\u4EE3\u30012-\u6226\u56FD\uFF09YWTx\n    \u5996\u9B54\u5316\uFF08\u65B0\u7570\u5F62\u8868\u5229\u7528\uFF09 NMT\u3001\u65B0\u7570\u5F62\u8868 NMTR\u3001\u5996\u9B54\u5FCD\u6CD5\u8868\uFF08x:1-\u7570\u970A 2-\u51F6\u8EAB 3-\u795E\u5316 4-\u653B\u6FC0\uFF09DSNx\n    \u51FA\u7269\u8868 ONDT\n\n\u30FB\u5404\u7A2E\u8868\uFF1A\u57FA\u672C\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u6539\u8A02\u7248\u4EE5\u524D\n  \u7121\u5370\n    \u65E7\u30D5\u30A1\u30F3\u30D6\u30EB\u8868 OFT \u3001\u65E7\u5909\u8ABF\u8868 OWT\u3001\u65E7\u6226\u5834\u8868 OBT\u3001\u7570\u5F62\u8868 MT\n  \u602A\n    \u602A\u30D5\u30A1\u30F3\u30D6\u30EB\u8868 KFT\u3001\u602A\u5909\u8ABF\u8868 KWT (\u57FA\u672C\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u3068\u540C\u4E00\uFF09\n\n\u30FB\u30B7\u30FC\u30F3\u8868\n  \u57FA\u672C\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\n    \u901A\u5E38 ST\u3001\u51FA\u5CF6 DST\u3001\u90FD\u5E02 CST\u3001\u9928 MST\u3001\u30C8\u30E9\u30D6\u30EB TST\u3001\u56DE\u60F3 KST\u3001\u65E5\u5E38 NST\u3001\u5B66\u6821 GAST\u3001\u6226\u56FD GST\n  \u5FCD\u79D8\u4F1D\n    \u4E2D\u5FCD\u8A66\u9A13 HC\u3001\u6EC5\u3073\u306E\u5854 HT\u3001\u5F71\u306E\u8857 HK\u3001\u591C\u884C\u5217\u8ECA HY\u3001\u75C5\u9662 HO\u3001\u9F8D\u52D5 HR\u3001\u5BC6\u5BA4 HM\u3001\u50AC\u7720 HS\n  \u6B63\u5FCD\u8A18\n    \u30AB\u30B8\u30CE TC\u3001\u30ED\u30FC\u30C9\u30E0\u30FC\u30D3\u30FC TRM\u3001\u30DE\u30B9\u30AB\u30EC\u30A4\u30C9\u30FB\u30AD\u30E3\u30C3\u30B9\u30EB TMC\u3001\u6708\u5929\u306B\u6B7B\u306E\u54B2\u304F TGS\u3001\u604B\u4EBA\u3068\u306E\u65E5\u3005 TKH\u3001\u5B66\u6821\uFF08\u9ED2\u661F\u796D\uFF09 TKG\u3001\u9B54\u90FD\u5B66\u5712 TMG\u3001\u9B54\u90FD\u6771\u4EAC TMT\n  \u6D41\u6D3E\u30D6\u30C3\u30AF\u4EE5\u964D\n    \u5FA1\u658E\u6D41\u6D3E\u30D6\u30C3\u30AF\n      \u4E0D\u826F\u9AD8\u6821 OTFK\n  \u57FA\u672C\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u6539\u8A02\u7248\u4EE5\u524D\n    \u6B7B\n      \u6771\u4EAC TKST\n    \u30EA\u30D7\u30EC\u30A4\u62261\u301C2\u5DFB\n      \u4EAC\u90FD KYST\u3001\u795E\u793E\u4ECF\u95A3 JBST\n  \u305D\u306E\u4ED6\n    \u79CB\u7A7A\u306B\u96EA\u821E\u3048\u3070 AKST\u3001\u590F\u306E\u7D42\u308F\u308A NTST\u3001\u51FA\u5CF6EX DXST\u3001\u707D\u5384 CLST\u3001\u659C\u6B6F\u30E9\u30DC HLST\u3001\u57F9\u990A\u30D7\u30E9\u30F3\u30C8 PLST\n\n\u30FBD66\u30C0\u30A4\u30B9\u3042\u308A\n"

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.



96
97
98
99
100
101
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 96

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



121
122
123
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 121

def eval_game_system_specific_command(command)
  return action_roll(command) || repeat_table(command)
end

#repeat_table(command) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 125

def repeat_table(command)
  times = command.start_with?(/\d/) ? command.to_i : 1
  key = command.sub(/^\d+/, '')
  results = [*0...times].map do |_|
    roll_tables(key, self.class::TABLES) || roll_tables(key, self.class::SCENE_TABLES) ||
      roll_tables(key, self.class::DEMON_SKILL_TABLES) || roll_tables(key, self.class::DEMON_SKILL_TABLES_NEW) || self.class::RTT.roll_command(@randomizer, key)
  end.compact
  return nil if results.empty?

  return results.join("\n")
end

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



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 103

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

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