module Gamefic::Scriptable::Scenes

def active_choice(name = nil, &block)

Returns:
  • (Class) -

Parameters:
  • name (Symbol, nil) --
def active_choice(name = nil, &block)
  self.block Class.new(Scene::ActiveChoice, &block), name
end

def block(scene, name = nil)

def block(scene, name = nil)
  named_scenes[name] = scene if name
  scene_classes.add scene
  scene
end

def conclusion(name = nil, &block)

Returns:
  • (Class) -

Other tags:
    Yieldparam: -
    Yieldparam: -

Parameters:
  • name (Symbol, nil) --
def conclusion(name = nil, &block)
  self.block(Class.new(Scene::Conclusion) do
    on_start(&block)
  end, name)
end

def introduction(&start)

Returns:
  • (void) -

Other tags:
    Yieldparam: -
    Yieldparam: -

Raises:
  • (ArgumentError) - if an introduction already exists

Other tags:
    Example: Welcome the player to the game -
def introduction(&start)
  introductions.push start
end

def introductions

Returns:
  • (Array) -
def introductions
  @introductions ||= []
end

def multiple_choice(name = nil, &block)

Returns:
  • (Class) -

Parameters:
  • name (Symbol, nil) --
def multiple_choice(name = nil, &block)
  self.block Class.new(Scene::MultipleChoice, &block), name
end

def named_scenes

def named_scenes
  @named_scenes ||= {}
end

def pause(name = nil, &block)

Returns:
  • (Class) -

Other tags:
    Yieldparam: -
    Yieldparam: -

Parameters:
  • name (Symbol, nil) --
def pause(name = nil, &block)
  self.block(Class.new(Scene::Pause) do
    on_start(&block)
  end, name)
end

def scene_classes

def scene_classes
  @scene_classes ||= Set.new
end

def scene_classes_map

def scene_classes_map
  scene_classes.each_with_object(named_scenes.clone) { |klass, hash| hash[klass] = klass }
end

def scenes

def scenes
  scene_classes_map.values.uniq
end

def select_default_conclusion(klass)

Parameters:
  • (Scene::Conclusion) --
def select_default_conclusion(klass)
  scene_classes.add klass
  @default_conclusion = klass
end

def select_default_scene(klass)

Parameters:
  • (Scene::Base) --
def select_default_scene(klass)
  scene_classes.add klass
  @default_scene = klass
end

def yes_or_no(name = nil, &block)

Returns:
  • (Class) -

Parameters:
  • name (Symbol, nil) --
def yes_or_no(name = nil, &block)
  self.block Class.new(Scene::YesOrNo, &block), name
end