Sha256: 5e4729184e4e732ab45a193d2b670635150f34237cdc49b073129e5b05c3565a

Contents?: true

Size: 1.49 KB

Versions: 1

Compression:

Stored size: 1.49 KB

Contents

require 'travian_bot/application/time'

class TravianBot
  class Application
    module Hero
      include TravianBot::Application::Navigation
      include TravianBot::Application::Time
      
      def start_closest_adventure(selenium)
        to_hero_quest_page(selenium)
        elements = selenium.find_elements(:xpath, '//div[@class="hero_adventure"]/table/tbody/tr')
        quests = Hash.new
        
        elements.each_with_index do |item, index|
          quests[index] = to_seconds(item.find_element(:class, 'moveTime').text)
        end
        
        shortest_quest = quests.sort{|a,b| a[1] <=> b[1]}.first.first
        elements[shortest_quest].find_element(:class, 'gotoAdventure').click
        
        begin
          link = selenium.find_element(:link_text, 'Abenteuer starten')
          link.click
        rescue
          return ['Currently the hero is busy for a quest.', [0, 0]]
        end
        
        mission_name = selenium.find_element(:xpath, '//span[@class="coordinates coordinatesWithText"]/span[@class="coordText"]')
        coordinate_x = selenium.find_element(:xpath, 'span[@class="coordinates coordinatesWithText"]/span[@class="coordinateX"]')
        coordinate_y = selenium.find_element(:xpath, 'span[@class="coordinates coordinatesWithText"]/span[@class="coordinateY"]')
        
        confirm_link = selenium.find_element(:id, 'btn_ok')
        confirm_link.click
        
        [mission_name, [coordinate_x.sub('(', ''), coordinate_y.sub(')', '')]]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
travian_bot-0.3.0 lib/travian_bot/application/hero.rb