def complete_idle_check(): """ input: none output: none """ while event.find_image(image.click_prompt.value) == True: event.search_click(image.click_prompt.value) print ("Idle check clicker completed")
def rewind(): print("rewind start") event.search_click(image.rewind_menu.value) while event.find_image(image.rewind_locked.value) == False: event.search_click(image.rewind_select.value) event.search_click(image.rewind_confirm.value) event.search_click(image.stat_icon.value) game.level_battle_skill(image.skill_devastation.value) event.search_click(image.rewind_menu.value)
def restart_game(): if event.find_image(image.stop_macro.value) == True: event.search_click(image.stop_macro.value) event.search_click(image.app_tab.value) event.search_click(image.close_app.value) event.click_next_screen_validate(image.home_tab.value, image.app_icon.value) event.search_click(image.app_icon.value) while event.find_image(image.battle_button.value) == False: event.search_click(image.welcome_text.value)
def check_menu_popups(quest, reward, purchase, json_daily_status): """ input: none output: true/false """ while event.find_image(image.skill_knockback_icon.value) == False and event.find_image(image.battle_button.value) == True: if event.find_image(image.title_check_in.value) == True: clear_daily_popup(quest, reward, purchase, json_daily_status) elif event.find_image(image.progress_update_popup.value) == True: event.search_click(image.progress_update_claim.value) elif event.find_image(image.click_prompt.value) == True: complete_idle_check() else: return "none"
def get_daily_gem_ads(self): #Input: None #Output: Success of Operation print("Daily Gem Ads Status:", self.rewards_list["status"]["daily_free_gems"]) if self.rewards_list["status"]["daily_free_gems"] == False: event.search_click(image.store_icon.value) time.sleep(1) while imagesearch(image.ad_ruby_invalid.value, 0.9)[0] == -1: game.watchAds(image.ad_ruby.value, image.store_rubies.value) time.sleep(2) self.rewards_list["status"]["daily_free_gems"] = True event.click_next_screen_validate(image.ads_close.value, image.battle_button.value) return self.rewards_list
def levelSkill(skillproperties): event.search_click(image.rewind_menu.value) index = skillproperties["index"] array = skillproperties["skillList"] skill_image_path = array[index] #make sure to scroll for skills below default view if 'scroll' in skill_image_path: pyautogui.moveTo(1234,267) pyautogui.dragTo(1234,365,0.5, button='left') event.search_click_offset(skill_image_path, 470, 25) event.search_click(image.ok_button.value) #increment array to select next skill if index == len(array)-1: index = 0 else: index += 1 return index
def make_purchase(self, image_purchase_button, purchase_item): if "rubies" in purchase_item: coordinates = [297, 202, 1008, 311] elif "weapon" in purchase_item: coordinates = [297, 327, 1008, 433] elif "hero" in purchase_item: coordinates = [297, 448, 1008, 557] else: return "Error, invalid purchase item" print("coordinates:", coordinates[0]) while event.find_image_area(image_purchase_button, coordinates[0], coordinates[1], coordinates[2], coordinates[3]) == True: print("correct") event.search_click_offset(purchase_item, 471, 28) time.sleep(0.5) event.search_click(image.store_purchase_confirm.value)
def expedition(imgPathDifficulty): event.log("FUNCTION", "battle.expedition", "Starting Expedition Function") event.search_click(image.battle_button.value,1) event.search_click(image.expedition.value, 1) event.search_click(imgPathDifficulty) event.search_click(image.ok_button.value) game.macro_start(image.spell_macro.value) while event.find_image(image.small_back.value, True) == False: time.sleep(0.5) #imagesearch_loop(image.small_back.value, 1) exit_battle(image.small_back.value)
def get_daily_summon(self): #Input: None #Output: Success of Operation print("Daily Summon:", self.rewards_list["status"]["daily_free_summon"]) if self.rewards_list["status"]["daily_free_summon"] == False: event.search_click(image.character_icon.value) event.search_click(image.character_ticket.value) event.search_click(image.classic_summon.value) if event.find_image(image.free_summon.value) == True: event.search_click(image.free_summon.value) event.click_next_screen_validate_offset(image.bluestacks_logo.value, 1272, 73, image.summon_confirm.value) event.search_click(image.summon_confirm.value) self.rewards_list["status"]["daily_free_summon"] = True else: self.rewards_list["status"]["daily_free_summon"] = True event.click_next_screen_validate(image.summon_close.value, image.weapons_icon.value) return self.rewards_list
def campaign(): event.log("FUNCTION", "battle.campaign", "Starting Campaign Function") event.search_click(image.battle_button.value) event.search_click(image.campaign_button.value) #print (event.find_image(image.ad_2x_gold.value)) time.sleep(0.2) if event.find_image(image.ad_2x_gold.value) == True: game.watchAds(image.ad_2x_gold.value, image.health_bar.value) elif event.find_image(image.ok_button.value) != False: event.search_click(image.ok_button.value) game.macro_start(image.normal_macro.value) while event.find_image(image.defeat_prompt.value, True) == False: if imagesearch(image.weapon_crate.value)[0] != -1: print("Weapons crate found") event.search_click(image.stop_macro.value, 0) game.watchAds(image.x2_Battle.value, image.victory_prompt.value) time.sleep(3) event.search_click(image.battle_next.value) game.macro_start(image.normal_macro.value) exit_battle(image.back_button.value)
def level_skill(self): """ Input: none output: none """ event.search_click(image.rewind_menu.value) index = self.skill_index array = self.skill_list skill_image_path = array[index] #make sure to scroll for skills below default view if 'scroll' in skill_image_path: pyautogui.moveTo(1234, 267) pyautogui.dragTo(1234, 365, 0.5, button='left') event.search_click_offset(skill_image_path, 470, 25) event.search_click(image.ok_button.value) #increment array to select next skill if index == len(array) - 1: index = 0 else: index += 1 #return array back to self self.skill_index = index return
def rewind(self): event.log("INFO", "event.rewind", "Starting Rewind Loop") event.search_click(image.rewind_menu.value) event.search_click(image.rewind_select.value) event.search_click(image.rewind_confirm.value) # while event.find_image(image.rewind_locked.value) == False: # event.search_click(image.rewind_select.value) # event.search_click(image.rewind_confirm.value) return
def check_quests(self): """ Input: none Output: (Dictionary) full updated quest dictionary """ #active_quests = [] # print('quest list - status - quest_checked', self.quest_list["status"]["quest_checked"]) if event.find_image(image.quest_window_title.value) == False: event.search_click(image.quest_icon.value) time.sleep(1) if event.find_image(image.quest_dungeon.value): self.quest_list["status"]["dungeon"] = True if event.find_image(image.quest_spells.value): self.quest_list["status"]["spells"] = True if event.find_image(image.quest_expedition.value): self.quest_list["status"]["expedition"] = True if event.find_image(image.quest_leviathan.value): self.quest_list["status"]["leviathan"] = True if event.find_image(image.quest_asmodeus.value): self.quest_list["status"]["asmodeus"] = True self.quest_list["status"]["quest_checked"] = True #event.search_click(image.close_quest.value) print('quest list is:', self.quest_list) return self.quest_list
def get_daily_friendships(self): #Input: None #Output: Success of Operation print("Daily Friendship Status:", self.rewards_list["status"]["daily_friendship"]) if self.rewards_list["status"]["daily_friendship"] == False: event.search_click(image.social_icon.value) event.search_click(image.friends_menu.value) time.sleep(5) event.search_click(image.friends_gift_all.value) self.rewards_list["status"]["daily_friendship"] = True event.click_next_screen_validate(image.close.value, image.battle_button.value) return self.rewards_list
def sell_hunt_gear(): gears = [ image.helmet_tab.value, image.armour_tab.value, image.boots_tab.value, image.ring_tab.value ] if event.find_image(image.weapons.value) == True: event.click_next_screen_validate(image.weapons.value, image.gears.value) else: event.search_click(image.gears.value) for gear in gears: event.search_click(gear) event.search_click(image.sell_button.value) event.search_click_offset(image.bs_logo.value, 1090, 245) event.search_click_offset(image.bs_logo.value, 1090, 325) event.search_click_offset(image.bs_logo.value, 1090, 400) event.search_click(image.sell_button_2.value) event.search_click_offset(image.bs_logo.value, 500, 500)
def spend_fossils(self): print("Daily Weekly Fossil Shop:", self.purchase_list["status"]["daily_expedition_shop"]) if self.purchase_list["status"]["daily_expedition_shop"] == False: event.search_click(image.store_icon.value) event.search_click(image.store_expedition_menu.value) time.sleep(0.5) self.make_purchase(image.store_expedition.value, image.store_rubies.value) self.make_purchase(image.store_expedition.value, image.store_weapon.value) self.make_purchase(image.store_expedition.value, image.store_hero.value) self.purchase_list["status"]["daily_expedition_shop"] = True event.search_click(image.store_close.value) return self.purchase_list
def spend_friendship(self): #Input: None #Output: updated purchase dictionary print("Daily Weekly Frienship Shop:", self.purchase_list["status"]["daily_friendship_shop"]) if self.purchase_list["status"]["daily_friendship_shop"] == False: event.search_click(image.store_icon.value) event.search_click(image.store_friendship_menu.value) time.sleep(0.5) self.make_purchase(image.store_friendship.value, image.store_rubies.value) self.make_purchase(image.store_friendship.value, image.store_weapon.value) self.make_purchase(image.store_friendship.value, image.store_hero.value) self.purchase_list["status"]["daily_friendship_shop"] = True event.search_click(image.store_close.value) return self.purchase_list
def clear_daily_popup(quest, reward, purchase, json_daily_status): """ input: none output: none """ count = 0 dailies.reset_all(quest, reward, purchase, json_daily_status) event.search_click(image.check_in_claim.value) if image.check_in_close == False and image.confirm_button.value == False: pyautogui.click(560,400) time.sleep(2) if event.find_image(image.confirm_button.value) != False: event.search_click(image.confirm_button.value) while event.find_image(image.skill_knockback_icon.value) == False: event.search_click(image.check_in_close.value) count += 1 if count == 10: raise Exception("Daily Reward Failure - Game Restarted") return True
def claim_quests(self): """ Description: Check quests and check off any quests that can be completed. Input: none Output: (Boolean) true or false """ outcome = False #if self.quest_list["status"]["daily_quests"] != True: if event.find_image(image.quest_window_title.value) == False: event.search_click(image.quest_icon.value) time.sleep(1) pyautogui.moveTo(1017, 419) pyautogui.dragTo(1017, 438, 0.5, button='left') while imagesearch(image.quest_claim_x5.value, 0.9)[0] != -1: event.search_click(image.quest_claim_x5.value) if imagesearch(image.quest_claim_x15.value, 0.9)[0] != -1: event.search_click(image.quest_claim_x15.value) outcome = True event.click_button_validate(image.close_quest.value) print('All quest claimed:', outcome) return outcome
def hunt(boss_type, level, repeat_number): """Input: What Boss to fight, what level to fight at, how many times to fight""" exit_flag = False inventory_full_flag = False i = 0 event.search_click(image.battle_button.value) event.search_click(image.hunt.value) event.search_click(boss_type) event.search_click(level) time.sleep(0.5) if event.find_image(image.insufficient_slots.value) == True: print("test") inventory_full_flag = True event.search_click(image.ok_button.value) event.search_click(image.hunt_close.value) print(inventory_full_flag) if inventory_full_flag == False: event.search_click(image.ok_button.value) game.macro_start(image.normal_macro.value) while i < repeat_number or exit_flag == False: if event.find_image(image.hunt_over.value, True) == True: i += 1 print("Hunt Count:", i) while event.find_image(image.hunt_over.value, True) == True: #If it has repeated enough, exit battle if i == repeat_number: exit_flag = True print("loop - exit") event.search_click(image.stop_macro.value, 0) exit_battle(image.back_button.value) #event.click_next_screen_validate(image.back_button.value,image.battle_button.value,click_limit= 20) #if it hasnt repeated enough times, check for items full elif event.find_image(image.insufficient_slots.value, True) == True: inventory_full_flag = True exit_flag = True event.search_click(image.stop_macro.value) exit_battle(image.ok_button.value) #exit_battle(image.back_button.value) if inventory_full_flag == True: game.sell_hunt_gear()
def exit_battle (exit_button): event.search_click(image.stop_macro.value) while event.find_image(image.battle_button.value) == False: event.search_click(exit_button) time.sleep(3)
def dungeon(timeLimit): event.log("FUNCTION", "battle.dungeon", "Starting Dungeon Function") timer = 0 event.search_click(image.battle_button.value) event.search_click(image.dungeon.value) event.search_click(image.dungeon_down.value) event.search_click(image.dungeon_down.value) event.search_click(image.dungeon_down.value) event.search_click(image.dungeon_down.value) event.search_click(image.dungeon_enter.value) time.sleep(1) game.watchAds(image.ad_2x_gold.value, image.health_bar.value) game.macro_start(image.spell_macro.value) #if (30 minutes or defeat shows up:) while event.find_image(image.small_back.value, True) == False and timer <= timeLimit: time.sleep(60) timer += 1 print("Time Elapsed: ", timer) if event.find_image(image.small_back.value) != False: print("defeated!") elif timer >= timeLimit: event.search_click(image.stop_macro.value) event.search_click(image.dungeon_pause.value) event.search_click(image.dungeon_leave.value) event.search_click(image.ok_button.value) exit_battle(image.small_back.value)