class InitDataParser

Public Class Methods

new(game) click to toggle source
# File lib/herostats/init_data_parser.rb, line 4
def initialize(game)
  @game = game
end

Public Instance Methods

load_events(file) click to toggle source
# File lib/herostats/init_data_parser.rb, line 8
def load_events(file)
  file = file.read
  file = file.gsub("}\n{", "},\n{")
  file = file.gsub("]\n{", "],\n{")
  JSON.parse("[#{file}]")
end
parse(file) click to toggle source
# File lib/herostats/init_data_parser.rb, line 15
def parse(file)
  events = load_events(file)
  events.each do |event|
    if event.class == Hash

      event['m_syncLobbyState'].each do |k, v|
        #puts v
        case k
          when 'm_userInitialData'
            #{"m_testAuto"=>false, "m_mount"=>"", "m_observe"=>0, "m_teamPreference"=>{"m_team"=>nil}, "m_toonHandle"=>"", "m_customInterface"=>false, "m_highestLeague"=>0, "m_clanTag"=>"", "m_testMap"=>false, "m_clanLogo"=>nil, "m_examine"=>false, "m_testType"=>0, "m_combinedRaceLevels"=>4294967295, "m_randomSeed"=>0, "m_racePreference"=>{"m_race"=>nil}, "m_skin"=>"", "m_hero"=>"", "m_name"=>"Biscuit"}
            v.each do |initial_data|
              player = Player.new
              player.name = initial_data['m_name']
              puts player.name
              @game.add_player(player) unless player.name.empty?
            end
          when 'm_lobbyState'
            v['m_slots'].each_with_index do |slot, index|
              @game.players[index + 1].hero = slot['m_hero'] unless index > 9
              #puts "#{game.players[index].name} #{game.players[index].hero}"
              #puts slot
            end
          when 'm_gameDescription'
        end
      end
    end
  end

  @game
end