class BCDice::GameSystem::ParanoiaRebooted

Constants

HELP_MESSAGE

ダイスボットの使い方

ID

ゲームシステムの識別子

NAME

ゲームシステム名

SORT_KEY

ゲームシステム名の読みがな

Public Instance Methods

eval_game_system_specific_command(command) click to toggle source
# File lib/bcdice/game_system/ParanoiaRebooted.rb, line 31
def eval_game_system_specific_command(command)
  case command
  when /^ND/i
    return get_node_dice_roll(command)
  when /^MP/i
    return get_mutant_power_roll(command)
  else
    return nil
  end
end

Private Instance Methods

generate_roll_results(dices) click to toggle source
# File lib/bcdice/game_system/ParanoiaRebooted.rb, line 44
def generate_roll_results(dices)
  computer_dice_message = ''
  results = dices.dup
  if results[-1].to_i == 6
    results[-1] = 'C'
    computer_dice_message = '(Computer)'
  end

  return results, computer_dice_message
end
get_mutant_power_roll(command) click to toggle source
# File lib/bcdice/game_system/ParanoiaRebooted.rb, line 81
def get_mutant_power_roll(command)
  debug("eval_game_system_specific_command Begin")

  m = /^MP(\d+)/i.match(command)
  unless m
    return ''
  end

  debug("command", command)

  parameter_num = m[1].to_i
  dice_count = parameter_num.abs + 1

  dices = @randomizer.roll_barabara(dice_count, 6)

  failure_rate = dices.count(1)
  message = failure_rate == 0 ? '成功' : "失敗(#{failure_rate})"

  results, computer_dice_message = generate_roll_results(dices)

  debug(dices)

  debug("eval_game_system_specific_command result")

  return "(#{command}) > [#{results.join(', ')}] > #{message}#{computer_dice_message}"
end
get_node_dice_roll(command) click to toggle source
# File lib/bcdice/game_system/ParanoiaRebooted.rb, line 55
def get_node_dice_roll(command)
  debug("eval_game_system_specific_command Begin")

  m = /^ND((-)?\d+)/i.match(command)
  unless m
    return ''
  end

  debug("command", command)

  parameter_num = m[1].to_i
  dice_count = parameter_num.abs + 1

  dices = @randomizer.roll_barabara(dice_count, 6)

  success_rate = dices.count { |dice| dice >= 5 }
  success_rate -= dices.count { |dice| dice < 5 } if parameter_num < 0
  debug(dices)

  results, computer_dice_message = generate_roll_results(dices)

  debug("eval_game_system_specific_command result")

  return "(#{command}) > [#{results.join(', ')}] > 成功度#{success_rate}#{computer_dice_message}"
end