0
0
mirror of https://github.com/ok-oldking/ok-wuthering-waves.git synced 2025-06-08 00:15:20 +00:00
firedcto@gmail.com 9170f16107 add jinhsi
2024-06-28 22:41:52 +08:00

68 lines
2.5 KiB
Python

from src.char.BaseChar import BaseChar, Priority
class Jinhsi(BaseChar):
def __init__(self, *args):
super().__init__(*args)
self.incarnation = False
def do_perform(self):
if self.click_resonance()[0]:
return self.switch_next_char()
self.click_liberation()
if self.click_echo():
return self.switch_next_char()
self.switch_next_char()
# def n4(self):
# self.continues_normal_attack(2.5)
def do_get_switch_priority(self, current_char: BaseChar, has_intro=False):
return Priority.MAX
# if has_intro or self.incarnation:
# self.logger.info(f'switch priority max because has {has_intro} {self.incarnation}')
# return Priority.MAX
# else:
# return super().do_get_switch_priority(current_char, has_intro)
# def click_resonance(self):
# while True:
# current_resonance = self.current_resonance()
# if not self.resonance_available(current_resonance):
# break
# if current_resonance == 0:
# self.task.click(interval=0.1)
# else:
# self.send_resonance_key(interval=0.1)
#
def click_resonance(self, post_sleep=0, has_animation=True):
if self.incarnation:
while not self.resonance_available():
self.task.click(interval=0.1)
clicked, duration, animated = super().click_resonance(has_animation=True)
self.logger.debug(f'click_resonance: {clicked}, {duration}')
if animated:
self.incarnation = False
elif duration > 1: # incarnation switch out
self.incarnation = True
self.task.click()
self.logger.info(f'in incarnation switch out {duration}')
return clicked, duration, animated
# while not self.resonance_available():
# self.task.click(interval=0.1)
# self.send_resonance_key(interval=0.1)
# animation_start = 0
# while True:
# in_team = self.task.in_team()[0]
# if not in_team and animation_start == 0:
# animation_start = time.time()
# if animation_start != 0 and in_team:
# self.logger.info(
# f'incarnation e duration {time.time() - animation_start} has_intro {self.has_intro}')
# break
# if in_team and self.resonance_available():
# self.send_resonance_key(interval=0.1)
# self.task.next_frame()