差分

170行目: 170行目:  
     @randResults = nil
 
     @randResults = nil
 
   end
 
   end
 +
end
 +
</syntaxhighlight>
 +
 +
== dice_command ==
 +
 +
https://github.com/torgtaitai/BCDice/blob/86b8dd03ae00f8ea6a8787f9f514a5d83b2e3d41/src/bcdiceCore.rb#L769-L801
 +
 +
ダイスロールを実行する。以下の順で、実行できる処理があればそれを実行し、できなければ次の処理を試すことを繰り返す。
 +
 +
# 指定されたゲームシステムの固有コマンド
 +
# D66ロール
 +
# 加算ロール <code><var>x</var>D<var>n</var></code>
 +
# バラバラロール <code><var>x</var>B<var></var></code>
 +
# 個数振り足しロール <code><var>x</var>R<var>n</var></code>
 +
# 上方無限ロール <code><var>x</var>U<var>n</var></code>
 +
# ランダム選択 <code>choice[<var>A</var>, <var>B</var>, ...]</code>
 +
# 独自の表から項目を引く
 +
 +
戻り値は、結果のメッセージと、シークレットロールかどうか。すべての処理に失敗した場合は結果のメッセージが <code>"1"</code> となることに注意。これはPerl時代の名残りと思われる。
 +
 +
<syntaxhighlight lang="ruby">
 +
def dice_command  # ダイスコマンドの分岐処理
 +
  arg = @message.upcase
 +
 +
  debug('dice_command arg', arg)
 +
 +
  output, secret = @diceBot.dice_command(@message, @nick_e)
 +
  return output, secret if( output != '1' )
 +
 +
  output, secret = rollD66(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output, secret = checkAddRoll(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output, secret = checkBDice(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output, secret = checkRnDice(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output, secret = checkUpperRoll(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output, secret = checkChoiceCommand(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output, secret = getTableDataResult(arg)
 +
  return output, secret unless( output.nil? )
 +
 +
  output = '1'
 +
  secret = false
 +
  return output, secret
 
end
 
end
 
</syntaxhighlight>
 
</syntaxhighlight>