from datetime import datetime __author__ = "Alexander Popov " __version__ = "1.0.0" __license__ = "Unlicense" def date_string(): """Return current date.""" date_now = datetime.now() date_str = date_now.strftime("%Y-%m-%d %H:%M:%S") return(date_str) def run_level(): """Running level and farming apples""" wait("images/farm_level_on_map.png", 10) click("images/farm_level_on_map.png") wait("images/level_title.png", 3) click("images/level_start_button.png") wait("images/equip_window.png", 3) click("images/button_start.png") wait("images/level_info_message.png", 5) click("images/level_info_message_ok.png") Mouse.wheel(WHEEL_DOWN, 6) pillar_heal = find("images/pillar_heal.png") pillar_fire = find("images/pillar_fire.png") for pillar in range(2): pillar_fire.click("images/pillar_fire.png") for x in range(6): pillar_heal.click("images/pillar_heal.png") click("images/pillar_go.png") try: wait("images/winner_window.png", 60 * 2) click("images/level_complete.png") except FindFailed as e: print("[{0}] Level timeout. Return to Map".format(date_string())) return_to_menu() def return_to_menu(): """Return to Map if an error has passed""" click("images/menu_button.png") click("images/menu_map_button.png") def main(): """Main farm loop.""" print("Battlepillars Farming Bot {0} by {1}".format(__version__, __author__)) run_count = 0 while True: run_count += 1 print( "[{date}] Running farm {times} times".format( date=date_string(), times=run_count ) ) run_level() if __name__ == "__main__": main()