lib/gamefic/active/take.rb in gamefic-3.0.0 vs lib/gamefic/active/take.rb in gamefic-3.1.0
- old
+ new
@@ -14,11 +14,11 @@
# @return [Scene::Default]
attr_reader :scene
# @param actor [Active]
# @param cue [Active::Cue]
- # @param props [Props::Default]
+ # @param props [Props::Default, nil]
def initialize actor, cue, props = nil
@actor = actor
@cue = cue
@scene = actor.epic.select_scene(cue.scene)
@props = props
@@ -29,26 +29,26 @@
@props ||= @scene.new_props(**cue.context)
end
# @return [Props::Default]
def start
- actor.output[:scene] = scene.to_hash
+ props.output[:scene] = scene.to_hash
scene.run_start_blocks actor, props
scene.start actor, props
# @todo See if this can be handled better
- actor.epic.rulebooks.each { |rlbk| rlbk.run_player_output_blocks actor, actor.output }
- actor.output.merge!({
+ actor.epic.rulebooks.each { |rlbk| rlbk.run_player_output_blocks actor, props.output }
+ props.output.merge!({
messages: actor.messages,
queue: actor.queue
})
props
end
# @return [void]
def finish
actor.flush
scene.finish(actor, props)
- actor.output.replace(last_prompt: props.prompt, last_input: props.input)
+ props.output.replace(last_prompt: props.prompt, last_input: props.input)
scene.run_finish_blocks actor, props
end
# @param actor [Active]
# @param cue [Active::Cue]