class TyranoDsl::ExportGame::ElementsWriters::CharactersWriter

Write things where all characters are implied

Public Instance Methods

write(world) click to toggle source

@param [TyranoDsl::Elements::World] world @return [Array]

# File lib/tyrano_dsl/export_game/elements_writers/characters_writer.rb, line 12
def write(world)
  log {'Writing characters'}
  chara_define_content = ''
  world.characters.values.collect do |character|
    chara_define_content << "[chara_new name=\"#{character.name}\" jname=\"#{character.name}\" storage=\"chara\/#{character.default_stance.short_target_file_name}\"]\n"
  end
  chara_define_content << "\n"
  chara_define_content << "[iscript]\n"
  world.variables.values.collect do |variable|
    chara_define_content << "f['#{variable.target_name}']=#{variable.initial_value};\n"
  end
  chara_define_content << "[endscript]\n"

  builder_config_content = {}
  world.characters.values.each do |character|
    builder_config_content[character.name] = character.index
  end

  [
      TyranoDsl::ExportGame::FileActions::CreateFile.new(
          File.join('data', 'scenario', 'system', 'chara_define.ks'),
          chara_define_content
      ),
      TyranoDsl::ExportGame::FileActions::JsonPatch.new(
          'builder_config.json',
          ['map_chara'],
          builder_config_content
      )
  ]
end