Class: BCDice::GameSystem::TokumeiTenkousei
- Defined in:
- lib/bcdice/game_system/TokumeiTenkousei.rb
Constant Summary collapse
- ID =
ゲームシステムの識別子
'TokumeiTenkousei'
- NAME =
ゲームシステム名
'特命転攻生'
- SORT_KEY =
ゲームシステム名の読みがな
'とくめいてんこうせい'
- HELP_MESSAGE =
ダイスボットの使い方
<<~HELP ・判定 (xD6+y>=n) ゾロ目での自動振り足し 1の出目に応じてEPPの獲得量を表示 目標値 "?" には未対応 HELP
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
-
#epp(count_one) ⇒ String?
エキストラパワーポイント獲得.
- #eval_game_system_specific_command(command) ⇒ Object
-
#initialize(command) ⇒ TokumeiTenkousei
constructor
A new instance of TokumeiTenkousei.
- #interim_expr(cmd, dice_total) ⇒ Object
-
#same_all_dice?(dice_list) ⇒ Boolean
出目が全て同じか.
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) ⇒ TokumeiTenkousei
Returns a new instance of TokumeiTenkousei.
23 24 25 26 27 |
# File 'lib/bcdice/game_system/TokumeiTenkousei.rb', line 23 def initialize(command) super(command) @sort_add_dice = true end |
Instance Method Details
#epp(count_one) ⇒ String?
エキストラパワーポイント獲得
90 91 92 93 94 |
# File 'lib/bcdice/game_system/TokumeiTenkousei.rb', line 90 def epp(count_one) if count_one > 0 "#{count_one * 5}EPP獲得" end end |
#eval_game_system_specific_command(command) ⇒ Object
[View source]
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/bcdice/game_system/TokumeiTenkousei.rb', line 31 def eval_game_system_specific_command(command) parser = Command::Parser.new(/\d+D6/, round_type: round_type) cmd = parser.parse(command) unless cmd return nil end times = cmd.command.to_i dice_list = @randomizer.(times, 6).sort @dice_list = [dice_list] while same_all_dice?(dice_list) dice_list = @randomizer.(times, 6).sort @dice_list.push(dice_list) end dice_list_flatten = @dice_list.flatten dice_total = dice_list_flatten.sum() count_one = dice_list_flatten.count(1) total = dice_total + cmd.modify_number result = if cmd.cmp_op total.send(cmd.cmp_op, cmd.target_number) ? Result.success("成功") : Result.failure("失敗") end sequence = [ "(#{cmd})", interim_expr(cmd, dice_total), total.to_s, result.text, epp(count_one) ].compact result.text = sequence.join(" > ") return result end |
#interim_expr(cmd, dice_total) ⇒ Object
[View source]
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/bcdice/game_system/TokumeiTenkousei.rb', line 75 def interim_expr(cmd, dice_total) if @dice_list.flatten.size == 1 && cmd.modify_number == 0 return nil end dice_list = @dice_list.map { |ds| "[#{ds.join(',')}]" }.join("") modifier = Format.modifier(cmd.modify_number) return [dice_total.to_s, dice_list, modifier].join("") end |
#same_all_dice?(dice_list) ⇒ Boolean
出目が全て同じか
71 72 73 |
# File 'lib/bcdice/game_system/TokumeiTenkousei.rb', line 71 def same_all_dice?(dice_list) dice_list.size > 1 && dice_list.uniq.size == 1 end |