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