def count_enemy(data: LogicData, skill_type: int): """ :param skill_type: 0:普通 1:悔罪 """ if data.config.single == Define.FORCE_SINGLE: return 1 if data.config.single == Define.FORCE_MULTI: return 3 if skill_type == 0: aoe = circle(data.me.pos.x, data.me.pos.y, 5) else: aoe = circle(data.target.pos.x, data.target.pos.y, 5) return sum(map(lambda x: aoe.intersects(x.hitbox), data.valid_enemies))
def count_enemy(data: LogicData, skill_type: int): """ :param skill_type: 0:冲击疾风震雷 1:六分 2:画圆斩 """ if data.config.single == Define.FORCE_SINGLE: return 1 if data.config.single == Define.FORCE_MULTI: return 3 if skill_type == 0: aoe = circle(data.target.pos.x, data.target.pos.y, 5) # 冲击疾风震雷 elif skill_type == 1: aoe = circle(data.target.pos.x, data.target.pos.y, 6) # 六分 else: aoe = sector(data.me.pos.x, data.me.pos.y, 8, rdm_aoe_angle, data.me.target_radian(data.target)) # 画圆斩 return sum(map(lambda x: aoe.intersects(x.hitbox), data.valid_enemies))
def is_single(data: LogicData, skill_type: int) -> bool: if data.config.single == Define.FORCE_SINGLE: return True if data.config.single == Define.FORCE_MULTI: return False if skill_type == 0: aoe = sector(data.me.pos.x, data.me.pos.y, 12, bard_aoe_angle, data.me.target_radian(data.target)) # 连珠箭 elif skill_type == 1: aoe = circle(data.me.pos.x, data.me.pos.y, 5) # 影噬箭 elif skill_type == 2: aoe = circle(data.me.pos.x, data.me.pos.y, 8) # 死亡箭雨 else: aoe = circle(data.me.pos.x, data.me.pos.y, 25) # 死亡箭雨 cnt = 0 for enemy in data.valid_enemies: if aoe.intersects(enemy.hitbox): cnt += 1 if cnt > 1: return False return True
def count_enemy(data: LogicData, skill_type: int): if data.config.single == Define.FORCE_SINGLE: return 1 if data.config.single == Define.FORCE_MULTI: return 3 if skill_type == 1: aoe = circle(data.me.pos.x, data.me.pos.y, 5) # 转圈圈 else: aoe = rotated_rect(data.me.pos.x, data.me.pos.y, 1.5, 10, data.me.target_radian(data.target)) # 波动 return sum(map(lambda x: aoe.intersects(x.hitbox), data.valid_enemies))
def is_single(data: LogicData, skill_type: int) -> int: if data.config.single == Define.FORCE_SINGLE: return 1 if data.config.single == Define.FORCE_MULTI: return 3 aoe = circle(data.target.pos.x, data.target.pos.y, 5 if skill_type == 0 else 8) # 0:迸裂,1:灾祸 return sum(map(lambda x: aoe.intersects(x.hitbox), data.valid_enemies))
def hitbox(self): return circle(self.pos.x, self.pos.y, self.HitboxRadius)
def count_enemy(data: LogicData, skill_type: int): # 1:普通aoe,2:大小舞 aoe = circle(data.me.pos.x, data.me.pos.y, 5 if skill_type == 1 else 15) return sum(map(lambda x: aoe.intersects(x.hitbox), data.valid_enemies))
def count_enemy(data: LogicData): if data.config.single == Define.FORCE_SINGLE: return 1 if data.config.single == Define.FORCE_MULTI: return 3 aoe = circle(data.me.pos.x, data.me.pos.y, 5) # 六分 return sum(map(lambda x: aoe.intersects(x.hitbox), data.valid_enemies))