module TyranoDsl::ParsingWords::AskQuestion

Public Instance Methods

ask_question(possible_answers) click to toggle source

@return [void] @raise [TyranoDsl::TyranoException] @param [Hash{String=>Hashnil}] possible_answers

# File lib/tyrano_dsl/parsing_words/ask_question.rb, line 6
def ask_question(possible_answers)
  symbolized_possible_answers = possible_answers.collect do |possible_answer|
    unless possible_answer.is_a? Hash
      raise TyranoDsl::TyranoException, 'Parameter is not a Hash'
    end
    symbolized_possible_answer = symbolize_keys(possible_answer)
    [:text, :left, :top, :scene].each do |param_name|
      unless symbolized_possible_answer.key? param_name
        raise TyranoDsl::TyranoException, "Missing value for #{param_name}"
      end
    end
    scene = symbolized_possible_answer[:scene]
    label = symbolized_possible_answer[:label]
    context.world.jump_targets << TyranoDsl::Elements::JumpTarget.new(scene, label ? context.world.label_value(label) : nil)
    symbolized_possible_answer
  end
  add_parsed_word(
      TyranoDsl::Vocabulary::ASK_QUESTION,
      possible_answers: symbolized_possible_answers
  )
end