#!/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
|
|