class FifthedSim::BlockNode
Public Class Methods
new(arg, &block)
click to toggle source
# File lib/fifthed_sim/nodes/block_node.rb, line 9 def initialize(arg, &block) @arg = arg @block = block @current_expression = block.call(arg.value) @current_value = @current_expression.value end
Public Instance Methods
distribution()
click to toggle source
# File lib/fifthed_sim/nodes/block_node.rb, line 24 def distribution @arg.distribution.results_when(&distribution_block) end
reroll()
click to toggle source
# File lib/fifthed_sim/nodes/block_node.rb, line 20 def reroll self.class.new(@arg.reroll, &@block) end
value()
click to toggle source
# File lib/fifthed_sim/nodes/block_node.rb, line 16 def value @current_value end
value_equation(terminal: false)
click to toggle source
# File lib/fifthed_sim/nodes/block_node.rb, line 28 def value_equation(terminal: false) arg = @arg.value_equation(terminal: terminal) ce = @current_expression.value_equation(terminal: terminal) "blockNode(#{arg} => #{ce})" end
Protected Instance Methods
distribution_block()
click to toggle source
# File lib/fifthed_sim/nodes/block_node.rb, line 36 def distribution_block h = Hash[@arg.range.map do |k| [k, @block.call(k).distribution] end] require 'pry' proc do |x| h.fetch(x) end end