Exemple #1
0
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))
Exemple #2
0
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))
Exemple #3
0
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
Exemple #4
0
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))
Exemple #5
0
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))
Exemple #6
0
 def hitbox(self):
     return circle(self.pos.x, self.pos.y, self.HitboxRadius)
Exemple #7
0
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))
Exemple #8
0
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))