Class: BCDice::GameSystem::ShinobiGami
- Defined in:
- lib/bcdice/game_system/ShinobiGami.rb
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"
- 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
- #eval_game_system_specific_command(command) ⇒ Object
-
#initialize(command) ⇒ ShinobiGami
constructor
A new instance of ShinobiGami.
- #repeat_table(command) ⇒ Object
- #result_2d6(total, dice_total, _dice_list, cmp_op, target) ⇒ Object
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
Constructor Details
#initialize(command) ⇒ ShinobiGami
Returns a new instance of ShinobiGami.
93 94 95 96 97 98 |
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 93 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
120 121 122 |
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 120 def eval_game_system_specific_command(command) return action_roll(command) || repeat_table(command) end |
#repeat_table(command) ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 124 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, TABLES) || roll_tables(key, SCENE_TABLES) || roll_tables(key, DEMON_SKILL_TABLES) || roll_tables(key, DEMON_SKILL_TABLES_NEW) || 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
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/bcdice/game_system/ShinobiGami.rb', line 102 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 |