def MatchingAction(): print_out() loop_count = 0 while True: if quitting_flag: sys.exit(0) time.sleep(STATE_CHECK_INTERVAL) click.commit_error_report() ok = update_log_state() if ok: if not log_state.is_end: return FSM_CHOOSING_CARD curr_state = get_screen.get_state() if curr_state == FSM_CHOOSING_HERO: return FSM_CHOOSING_HERO loop_count += 1 if loop_count >= 60: warn_print("Time out in Matching Opponent") return FSM_ERROR
def AutoHS_automata(): global FSM_state if get_screen.test_hs_available(): hs_hwnd = get_screen.get_HS_hwnd() get_screen.move_window_foreground(hs_hwnd) time.sleep(0.5) while 1: if quitting_flag: sys.exit(0) if FSM_state == "": FSM_state = get_screen.get_state() FSM_state = FSM_dispatch(FSM_state)
def MainMenuAction(): print_out() time.sleep(3) while True: if quitting_flag: sys.exit(0) click.enter_battle_mode() time.sleep(5) state = get_screen.get_state() # 重新连接对战之类的 if state == FSM_BATTLING: ok = update_log_state() if ok and log_state.available: return FSM_BATTLING if state == FSM_CHOOSING_HERO: return FSM_CHOOSING_HERO
def QuittingBattle(): print_out() time.sleep(5) loop_count = 0 while True: if quitting_flag: sys.exit(0) state = get_screen.get_state() if state in [FSM_CHOOSING_HERO, FSM_LEAVE_HS]: return state click.cancel_click() click.test_click() click.commit_error_report() loop_count += 1 if loop_count >= 15: return FSM_ERROR time.sleep(STATE_CHECK_INTERVAL)
def WaitMainMenu(): print_out() while get_screen.get_state() != FSM_MAIN_MENU: click.click_middle() time.sleep(5) return FSM_MAIN_MENU