class BCDice::GameSystem::Alsetto
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/Alsetto.rb, line 42 def initialize(command) super(command) @sort_add_dice = true # ダイスのソート有 end
Public Instance Methods
checkRoll(rapid, target, damage, isCritical, criticalNumber)
click to toggle source
# File lib/bcdice/game_system/Alsetto.rb, line 71 def checkRoll(rapid, target, damage, isCritical, criticalNumber) totalSuccessCount = 0 totalCriticalCount = 0 text = "" rollCount = rapid while rollCount > 0 diceArray = @randomizer.roll_barabara(rollCount, 6).sort diceText = diceArray.join(",") successCount = 0 criticalCount = 0 diceArray.each do |i| if i <= target successCount += 1 end if i <= criticalNumber criticalCount += 1 end end totalSuccessCount += successCount totalCriticalCount += 1 unless criticalCount == 0 text += "+" unless text.empty? text += "#{successCount}[#{diceText}]" break unless isCritical rollCount = criticalCount end isDamage = (damage != 0) if isDamage totalDamage = totalSuccessCount * damage result = "(#{rapid}D6\<\=#{target}) > #{text} > Hits:#{totalSuccessCount}*#{damage} > #{totalDamage}ダメージ" else result = "(#{rapid}D6\<\=#{target}) > #{text} > 成功数:#{totalSuccessCount}" end if isCritical result += " / #{totalCriticalCount}トライアンフ" end return result end
eval_game_system_specific_command(command)
click to toggle source
# File lib/bcdice/game_system/Alsetto.rb, line 47 def eval_game_system_specific_command(command) # ALCコマンド:命中判定 # ALCコマンド:成功判定 if command =~ /(\d+)AL(C|G)?(\d+)?((x|\*)(\d+))?$/i rapid = Regexp.last_match(1).to_i isCritical = Regexp.last_match(2).nil? if isCritical criticalNumber = 1 else if Regexp.last_match(2) == "G" isCritical = true criticalNumber = 2 else criticalNumber = 0 end end target = (Regexp.last_match(3) || 3).to_i damage = (Regexp.last_match(6) || 0).to_i return checkRoll(rapid, target, damage, isCritical, criticalNumber) end return nil end