Class: BCDice::GameSystem::UnsungDuet
- Defined in:
- lib/bcdice/game_system/UnsungDuet.rb
Constant Summary collapse
- ID =
"UnsungDuet"
- NAME =
"アンサング・デュエット"
- SORT_KEY =
"あんさんくてゆえつと"
- HELP_MESSAGE =
<<~MESSAGETEXT ■ シフター用判定 (shifter, UDS) 1D10をダイスロールして判定を行います。 例) shifter, UDS, shifter>=5, shifter+1>=6 ■ バインダー用判定 (binder, UDB) 2D6をダイスロールして判定を行います。 例) binder, UDB, binder>=5, binder+1>=6 ■ 変異表 ・外傷 (HIN, HInjury) ・体調の変化 (HPH, HPhysical) ・恐怖 (HFE, HFear) ・幻想化 (HFA, HFantasy) ・精神 (HMI, HMind) ・そのほか (HOT, HOther) MESSAGETEXT
- ALIAS_1D10 =
["shifter", "UDS"].freeze
- ALIAS_2D6 =
["binder", "UDB"].freeze
- SHIFTER_ALIAS_REG =
/^#{ALIAS_1D10.join('|')}/i.freeze
- BINDER_ALIAS_REG =
/^#{ALIAS_2D6.join('|')}/i.freeze
- ALIAS =
{ "HInjury" => "HIN", "HPhysical" => "HPH", "HFear" => "HFE", "HFantasy" => "HFA", "HMind" => "HMI", "HOther" => "HOT", }.transform_keys(&:upcase)
- TABLES =
{ "HIN" => DiceTable::Table.new( "変異表:外傷", "1D6", [ "顔の傷 → 顔にできた傷。じわりと血がにじむ", "大きな怪我 → 早く手当てをしないと命に関わる", "痛みのない傷 → 大きな傷なのに、なぜか痛くない", "喪失 → 身体のどこかが消えてしまった", "文字のような傷跡 → 読めない文字のような傷", "模様を描くアザ → 模様のような、身体にできたアザ", ] ), "HPH" => DiceTable::Table.new( "変異表:体調の変化", "1D6", [ "視界がぼやける → 目の焦点が合わない", "耳鳴り → ずっと甲高い音が鳴り続けている気がする", "異様な寒気 → 凍えそうなほどに寒く感じる", "発汗 → 暑いわけでもないのに、汗がだらだらと", "幻覚 → それが本物か幻か、区別がつかない", "走馬灯 → 過去のことを次々と思い出してしまう", ] ), "HFE" => DiceTable::Table.new( "変異表:恐怖", "1D6", [ "不安 → 漠然とした不安が心を蝕む", "狭い場所が怖い → 狭い場所に入りたくない", "震えが止まらない → どうしても落ち着かない", "物音が怖い → ほんの小さな物音にも怯えてしまう", "暗い場所が怖い → 灯りのない場所がひどく恐ろしい", "誰かがついてくる → 誰かが後ろにいる気がする……", ] ), "HFA" => DiceTable::Table.new( "変異表:幻想化", "1D6", [ "硝子化 → 身体の一部がガラスのように透明に", "羽毛化 → 身体のどこかから羽毛が生えてくる", "植物化 → ツタや葉が身体から生えてくる", "動物の瞳 → 瞳の形が動物のそれに変わってしまう", "有角化 → 額や側頭部から角が生えてくる", "陶器化 → 皮膚が陶器のようなものに変わっていく", ] ), "HMI" => DiceTable::Table.new( "変異表:精神", "1D6", [ "記憶の混乱 → ここはどこ、どうしてこんなところに?", "幼少期の記憶 → 口調や態度が幼くなってしまう", "素直 → 思ったことを全部言ってしまう", "蛮勇 → パートナーを守るために無茶ばかりする", "疑心暗鬼 → 何もかもが悪い方向にしか考えられない", "食べちゃいたい → パートナーをかじりたくなる", ] ), "HOT" => DiceTable::Table.new( "変異表:そのほか", "1D6", [ "影絵化 → 身体の一部が影のようになる", "水槽化 → 身体の一部が水槽のようなものになる", "涙が止まらない → なぜか涙が流れ続ける", "鉤爪 → 手や足が、獣のような鉤爪になる", "未来視 → 未来が見えてしまう。本当かどうかは不明", "帰りたくない → 現実に帰りたくないと微かに思う", ] ), }.freeze
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
- #roll_replaced_command_if_match(command, regexp, dist) ⇒ Object
Methods inherited from Base
#change_text, #check_result, command_pattern, #enable_debug, #enabled_d9?, #eval, eval, #grich_text, #initialize, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?
Methods included from Translate
Constructor Details
This class inherits a constructor from BCDice::Base
Instance Method Details
#eval_game_system_specific_command(command) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/bcdice/game_system/UnsungDuet.rb', line 38 def eval_game_system_specific_command(command) command = ALIAS[command] || command roll_replaced_command_if_match(command, SHIFTER_ALIAS_REG, "1D10") || roll_replaced_command_if_match(command, BINDER_ALIAS_REG, "2D6") || roll_tables(command, TABLES) end |
#roll_replaced_command_if_match(command, regexp, dist) ⇒ Object
46 47 48 49 50 |
# File 'lib/bcdice/game_system/UnsungDuet.rb', line 46 def roll_replaced_command_if_match(command, regexp, dist) if command.match?(regexp) CommonCommand::AddDice.eval(command.sub(regexp, dist), self, @randomizer) end end |