battlepillars-bot/apple-farm.py

81 lines
1.8 KiB
Python

from datetime import datetime
__author__ = "Alexander Popov <iiiypuk@fastmail.fm>"
__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()