#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package Skill.GameSkills.SkillModule_46  
 | 
#  
 | 
# @todo:ÃüÁîµÚһλÖÃÁéÊÞÁ¢¼´Ê¹ÓÃÒ»´Î¼¼ÄÜ  
 | 
# @author hxp  
 | 
# @date 2024-02-01  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ÃüÁîµÚһλÖÃÁéÊÞÁ¢¼´Ê¹ÓÃÒ»´Î¼¼ÄÜ£¨¾ßÌåЧ¹ûÓÉÁéÊÞ¼¼Äܾö¶¨£©£¬Ð§¹û1£º AÖµ-ÁéÊÞ¼¼ÄÜÊÇ·ñÖØÐ½øÈë¼¼ÄÜCD£¬»ØºÏÖÆÊÊÓà  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2024-02-01 15:30"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
import ChConfig  
 | 
import PetControl  
 | 
import SkillCommon  
 | 
import TurnAttack  
 | 
import BaseAttack  
 | 
import AICommon  
 | 
  
 | 
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):  
 | 
    if not attacker.GetDictByKey(ChConfig.Def_Obj_Dict_TurnFightTimeline):  
 | 
        return  
 | 
      
 | 
    # Ä¬ÈϵÚһλÖÃÁéÊÞÇ¿ÖÆÊ¹Óü¼ÄÜ1  
 | 
    curPet = PetControl.GetFightPet(attacker, 1)  
 | 
    if not curPet:  
 | 
        return  
 | 
      
 | 
    tagObj = TurnAttack.GetEnemyObj(attacker)  
 | 
    if not tagObj:  
 | 
        return  
 | 
      
 | 
    skillEffect = curSkill.GetEffect(0)  
 | 
    isCD = skillEffect.GetEffectValue(0) # ÊÇ·ñÖØÐ½øÈëÀäȴʱ¼ä  
 | 
    remainTime = None  
 | 
      
 | 
    useSkill = None  
 | 
    skillManager = curPet.GetSkillManager()  
 | 
    for index in range(0, skillManager.GetSkillCount()):  
 | 
        skill = skillManager.GetSkillByIndex(index)  
 | 
        #ÒѾµ½Î²²¿ÁË  
 | 
        if not skill or skill.GetSkillTypeID() == 0:  
 | 
            break  
 | 
          
 | 
        if skill.GetSkillType() == ChConfig.Def_SkillType_Revive:  
 | 
            #¸´»î¼¼Äܵ¥¶À´¦Àí  
 | 
            continue  
 | 
          
 | 
        #±»¶¯¼¼Äܲ»ÊÍ·Å  
 | 
        if SkillCommon.isPassiveSkill(skill):  
 | 
            continue  
 | 
          
 | 
        remainTime = skill.GetRemainTime()  
 | 
        skill.SetRemainTime(0)  
 | 
        useSkill = skill  
 | 
        break  
 | 
      
 | 
    if not useSkill:  
 | 
        return  
 | 
      
 | 
    BaseAttack.DoSkillEx_AttackSucess(attacker, defender, curSkill, tick, isEnhanceSkill)      
 | 
    tagDist = 0  
 | 
    isOK = AICommon.DoNPCUseSkill(curPet, tagObj, useSkill, tagDist, tick)  
 | 
    if isOK:  
 | 
        # ²»ÖØÐ½øÈëCDµÄ»°£¬»¹ÔÔÊ£Óàʱ¼ä  
 | 
        if not isCD and remainTime != None:  
 | 
            skill.SetRemainTime(remainTime)  
 | 
    else:  
 | 
        # ÊÍ·Åʧ°Ü£¬»¹ÔÔÊ£Óàʱ¼ä  
 | 
        if remainTime != None:  
 | 
            skill.SetRemainTime(remainTime)  
 | 
              
 | 
    return isOK  
 | 
  
 |