mirror of
https://github.com/ok-oldking/ok-wuthering-waves.git
synced 2025-06-08 08:25:24 +00:00
68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
import time
|
|
|
|
from ok.logging.Logger import get_logger
|
|
from src.task.BaseCombatTask import BaseCombatTask
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
class DiagnosisTask(BaseCombatTask):
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.description = "Diagnosis Problem, Performance Test, Run in Game World"
|
|
self.name = "Diagnosis"
|
|
self.start = 0
|
|
|
|
def run(self):
|
|
if not self.in_team()[0]:
|
|
self.log_error('must be in game world and in teams, please check you game resolution is 16:9', notify=True)
|
|
return
|
|
self.load_hotkey(force=True)
|
|
self.load_chars()
|
|
|
|
self.start = time.time()
|
|
while True:
|
|
char = self.get_current_char()
|
|
if not char:
|
|
self.info.clear()
|
|
self.info['Current Character'] = "None"
|
|
self.start = time.time()
|
|
else:
|
|
self.info['Capture Frame Count'] = self.info.get('Capture Frame Count', 0) + 1
|
|
self.info['Capture Frame Rate'] = round(
|
|
self.info['Capture Frame Count'] / ((time.time() - self.start) or 1),
|
|
2)
|
|
self.info['Game Resolution'] = f'{self.frame.shape[1]}x{self.frame.shape[0]}'
|
|
self.info['Current Character'] = str(char)
|
|
self.info['Resonance in CD'] = char.has_cd('resonance')
|
|
self.info['Resonance Available'] = char.current_resonance() > 0
|
|
self.info['Echo in CD'] = char.has_cd('echo')
|
|
self.info['Echo Available'] = char.current_echo() > 0
|
|
self.info['Liberation in CD'] = char.has_cd('liberation')
|
|
self.info['Liberation Available'] = char.current_liberation() > 0
|
|
self.next_frame()
|
|
|
|
def choose_level(self, start):
|
|
y = 0.17
|
|
x = 0.15
|
|
distance = 0.08
|
|
|
|
logger.info(f'choose level {start}')
|
|
self.click_relative(x, y + (start - 1) * distance)
|
|
self.sleep(0.5)
|
|
|
|
self.wait_click_feature('gray_button_challenge', raise_if_not_found=True, use_gray_scale=True,
|
|
click_after_delay=0.5)
|
|
self.wait_click_feature('gray_confirm_exit_button', relative_x=-1, raise_if_not_found=False,
|
|
use_gray_scale=True, time_out=3, click_after_delay=0.5, threshold=0.8)
|
|
self.wait_click_feature('gray_start_battle', relative_x=-1, raise_if_not_found=True,
|
|
use_gray_scale=True, click_after_delay=0.5, threshold=0.8)
|
|
|
|
|
|
echo_color = {
|
|
'r': (200, 255), # Red range
|
|
'g': (150, 220), # Green range
|
|
'b': (130, 170) # Blue range
|
|
}
|