Class: BCDice::CommonCommand::AddDice::Node::DiceRoll
- Inherits:
-
Object
- Object
- BCDice::CommonCommand::AddDice::Node::DiceRoll
- Defined in:
- lib/bcdice/common_command/add_dice/node.rb
Overview
ダイスロールのノード
Direct Known Subclasses
Instance Method Summary collapse
-
#eval(game_system, randomizer) ⇒ Integer
ノードを評価する(ダイスを振る).
-
#expr(game_system) ⇒ String
文字列に変換する.
- #include_dice? ⇒ Boolean
-
#initialize(times, sides) ⇒ DiceRoll
constructor
ノードを初期化する.
-
#output ⇒ String
メッセージへの出力を返す.
-
#s_exp ⇒ String
ノードのS式を返す.
Constructor Details
#initialize(times, sides) ⇒ DiceRoll
ノードを初期化する
377 378 379 380 381 382 383 |
# File 'lib/bcdice/common_command/add_dice/node.rb', line 377 def initialize(times, sides) @times = times @sides = sides # ダイスを振った結果の出力 @text = nil end |
Instance Method Details
#eval(game_system, randomizer) ⇒ Integer
ノードを評価する(ダイスを振る)
評価結果は出目の合計値になる。出目はランダマイザに記録される。
392 393 394 395 396 397 398 399 400 401 402 |
# File 'lib/bcdice/common_command/add_dice/node.rb', line 392 def eval(game_system, randomizer) times = @times.eval(game_system, nil) sides = eval_sides(game_system) dice_list = randomizer.roll(times, sides) total = dice_list.sum() @text = "#{total}[#{dice_list.join(',')}]" return total end |
#expr(game_system) ⇒ String
文字列に変換する
411 412 413 414 415 416 |
# File 'lib/bcdice/common_command/add_dice/node.rb', line 411 def expr(game_system) times = @times.eval(game_system, nil) sides = eval_sides(game_system) "#{times}D#{sides}" end |
#include_dice? ⇒ Boolean
405 406 407 |
# File 'lib/bcdice/common_command/add_dice/node.rb', line 405 def include_dice? true end |
#output ⇒ String
メッセージへの出力を返す
420 421 422 |
# File 'lib/bcdice/common_command/add_dice/node.rb', line 420 def output @text end |
#s_exp ⇒ String
ノードのS式を返す
426 427 428 |
# File 'lib/bcdice/common_command/add_dice/node.rb', line 426 def s_exp "(DiceRoll #{@times.s_exp} #{@sides.s_exp})" end |