#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package Skill.GameSkills.SkillModule_50  
 | 
#  
 | 
# @todo:½áËãׯÉÕ  
 | 
# @author hxp  
 | 
# @date 2024-04-02  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: ½áËãׯÉÕ    Ð§¹û1£º    AÖµ-É˺¦Ôö¼Ó°Ù·Ö±È  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#"""Version = 2024-04-02 19:00"""  
 | 
#-------------------------------------------------------------------------------  
 | 
  
 | 
import ChConfig  
 | 
import GameWorld  
 | 
import BuffSkill  
 | 
import SkillShell  
 | 
  
 | 
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):  
 | 
    if not defender:  
 | 
        return  
 | 
      
 | 
    # ¶Ô´æÔÚׯÉÕЧ¹ûIDµÄ³ÖÐø¼õÒæbuff½øÐнáËã  
 | 
    buffState = defender.GetProcessDeBuffState()  
 | 
    buffStateCount = buffState.GetBuffCount()  
 | 
    if not buffStateCount:  
 | 
        return  
 | 
      
 | 
    skillEffect = curSkill.GetEffect(0)  
 | 
    addBurnHurtPer = skillEffect.GetEffectValue(0)  
 | 
    defender.SetDict("addBurnHurtPer", addBurnHurtPer)  
 | 
      
 | 
    isBurn = False  
 | 
    #buff³ÖÐøÐ§¹û£¬»ØºÏÏ¿ÉÄÜɾ³ýbuff£¬µ¹Ðò±éÀú  
 | 
    for i in range(0, buffStateCount)[::-1]:  
 | 
        curBuff = buffState.GetBuff(i)  
 | 
        if not curBuff:  
 | 
            continue  
 | 
        isDel = False  
 | 
        curBuffSkill = curBuff.GetSkill()  
 | 
        for effIndex in range(0, curBuffSkill.GetEffectCount()):  
 | 
            #µÃµ½µ±Ç°Ð§¹û  
 | 
            curEffect = curBuffSkill.GetEffect(effIndex)  
 | 
            curEffectID = curEffect.GetEffectID()  
 | 
            if curEffectID == ChConfig.Def_Skill_Effect_Burn:  
 | 
                isDel = True  
 | 
                break  
 | 
        if not isDel:  
 | 
            continue  
 | 
        # Ö±½Óɾ³ýbuff£¬ÓÉbuff×ÔÉíÏûʧÂß¼½øÐнáËã  
 | 
        GameWorld.DebugLog("        Á¢¼´½áËãׯÉÕbuff: atkID=%s,defID=%s,skillID=%s,addBurnHurtPer=%s"   
 | 
                           % (attacker.GetID(), defender.GetID(), curBuffSkill.GetSkillID(), addBurnHurtPer))  
 | 
        isBurn = True  
 | 
        skillID = curBuffSkill.GetSkillID()  
 | 
        skillTypeID = curBuffSkill.GetSkillTypeID()  
 | 
        ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()  
 | 
        BuffSkill.DoBuffDisApper(defender, curBuff, tick)  
 | 
        buffState.DeleteBuffByTypeID(skillTypeID)  
 | 
        SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType)  
 | 
          
 | 
    defender.SetDict("addBurnHurtPer", 0)  
 | 
    return isBurn  
 |