class TyranoDsl::ExportGame::WritingWords::ConditionalJump

Constants

OPERATORS_RUBY_TO_TYRANO

Public Instance Methods

run(writing_context, world, word_location, parameters) click to toggle source
# File lib/tyrano_dsl/export_game/writing_words/conditional_jump.rb, line 14
def run(writing_context, world, word_location, parameters)
  operator = parameters[:operator]
  variable = parameters[:variable]
  value = parameters[:value]
  scene_name = parameters[:scene_name]
  label_name = parameters[:label_name]

  variable_target = world.variables[variable].target_name
  if value.is_a?(String) || value.is_a?(Symbol)
    value_target = "f.#{world.variables[value].target_name}"
  else
    value_target = value
  end
  target_scene = fetch_scene(world, word_location, scene_name)
  label = label_name ? world.labels[label_name].target_name : 'cond'
  tyrano_operator = OPERATORS_RUBY_TO_TYRANO[operator]

  writing_context.append_content(
      word_location,
      "[jump storage=\"#{target_scene.target_name}\.ks\" target=\"#{label}\" cond=\"f.#{variable_target}#{tyrano_operator}#{value_target}\"]"
  )
end