Class: BCDice::GameSystem::CyberpunkRed
- Defined in:
- lib/bcdice/game_system/CyberpunkRed.rb,
lib/bcdice/game_system/cyberpunk_red/tables.rb
Defined Under Namespace
Classes: ScreamSheetRandomizerTable, ShopPeopleTable
Constant Summary collapse
- ID =
ゲームシステムの識別子
'CyberpunkRed'
- NAME =
ゲームシステム名
'サイバーパンクRED'
- SORT_KEY =
ゲームシステム名の読みがな
'さいはあはんくれつと'
- HELP_MESSAGE =
ダイスボットの使い方
<<~HELP ・判定 CPx+y>z (x=能力値と技能値の合計、y=修正値、z=難易度 or 受動側 x、y、zは省略可) 例)CP12 CP10+2>12 CP7-1 CP8+4 CP7>12 CP CP>9 各種表 ・致命的損傷表 FFD :身体への致命的損傷 HFD :頭部への致命的損傷 ・遭遇表 NCDT :ナイトシティ(日中) NCMT :ナイトシティ(深夜) ・スクリームシート SCSR :スクリームシート(ランダム) SCST :スクリームシート分類 SCSA :ヘッドラインA SCSB :ヘッドラインB SCSC :ヘッドラインC ・最寄りの自販機 VMCR :最寄りの自販機表 VMCT :自販機タイプ決定表 VMCE :食品 VMCF :ファッション VMCS :変なもの ・ボデガの客 STORE :ボデガの客と店員 STOREA :店主またはレジ係 STOREB :変わった客その1 STOREC :変わった客その2 ・夜の市 NMCT :商品の分野 NMCFO :食品とドラッグ NMCME :個人用電子機器 NMCWE :武器と防具 NMCCY :サイバーウェア NMCFA :衣料品とファッションウェア NMCSU :サバイバル用品 HELP
- TABLES =
translate_tables(@locale)
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
- #cp_roll_result(command) ⇒ Object
- #eval_game_system_specific_command(command) ⇒ Object
-
#initialize(command) ⇒ CyberpunkRed
constructor
A new instance of CyberpunkRed.
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) ⇒ CyberpunkRed
Returns a new instance of CyberpunkRed.
62 63 64 65 66 67 |
# File 'lib/bcdice/game_system/CyberpunkRed.rb', line 62 def initialize(command) super(command) @sort_add_dice = false @d66_sort_type = D66SortType::NO_SORT end |
Instance Method Details
#cp_roll_result(command) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/bcdice/game_system/CyberpunkRed.rb', line 77 def cp_roll_result(command) parser = Command::Parser.new('CP', round_type: RoundType::FLOOR) .enable_suffix_number .restrict_cmp_op_to(nil, :>) parsed = parser.parse(command) return nil if parsed.nil? dice_cnt = 1 dice_face = 10 modify_number = 0 total = 0 result = Result.new dices = [@randomizer.roll_once(dice_face)] total += dices.first modify_number += parsed.suffix_number if parsed.suffix_number modify_number += parsed.modify_number if parsed.modify_number total += modify_number case dices.first when 10 # critical dices << @randomizer.roll_once(dice_face) total += dices.last result.critical = true when 1 # fumble dices << @randomizer.roll_once(dice_face) total -= dices.last result.fumble = true end if parsed.target_number result.condition = total > parsed.target_number end result.text = "(#{dice_cnt}D#{dice_face}#{Format.modifier(modify_number)}#{parsed.cmp_op}#{parsed.target_number})" result.text += ' > ' result.text += "#{dices.first}[#{dices.first}]#{Format.modifier(modify_number)}" result.text += ' > ' if result.critical? result.text += "#{translate('CyberpunkRed.critical')} > " result.text += "#{dices.last}[#{dices.last}] > " end if result.fumble? result.text += "#{translate('CyberpunkRed.fumble')} > " result.text += "#{dices.last}[#{dices.last}] > " end result.text += total.to_s if result.success? result.text += " > #{translate('success')}" end if result.failure? result.text += " > #{translate('failure')}" end return result end |
#eval_game_system_specific_command(command) ⇒ Object
69 70 71 72 73 |
# File 'lib/bcdice/game_system/CyberpunkRed.rb', line 69 def eval_game_system_specific_command(command) debug("eval_game_system_specific_command begin string", command) cp_roll_result(command) || roll_tables(command, TABLES) end |