class BCDice::GameSystem::TokumeiTenkousei
Constants
- HELP_MESSAGE
ダイスボットの使い方
- ID
ゲームシステムの識別子
- NAME
ゲームシステム名
- SORT_KEY
ゲームシステム名の読みがな
Public Class Methods
new(command)
click to toggle source
Calls superclass method
BCDice::Base::new
# File lib/bcdice/game_system/TokumeiTenkousei.rb, line 23 def initialize(command) super(command) @sort_add_dice = true end
Public Instance Methods
epp(count_one)
click to toggle source
エキストラパワーポイント獲得
@param count_one [Integer] @return [String, nil]
# 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)
click to toggle source
# 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.roll_barabara(times, 6).sort @dice_list = [dice_list] while same_all_dice?(dice_list) dice_list = @randomizer.roll_barabara(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)
click to toggle source
# 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)
click to toggle source
出目が全て同じか
# 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