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]