#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#  
 | 
##@package  
 | 
#  
 | 
# @todo: buffÖжԵÚһĿ±ê±©»÷´¥·¢¼¼ÄÜ  ¸½¼ÓµÚX±¶Êý´ÎÆÕ¹¥±©»÷´¥·¢  
 | 
#  
 | 
# @author: Alee  
 | 
# @date 2019-4-27 ÏÂÎç10:19:51  
 | 
# @version 1.0  
 | 
#  
 | 
# @note:   
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
import ChConfig  
 | 
import GameWorld  
 | 
import SkillCommon  
 | 
import BuffSkill  
 | 
  
 | 
def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):  
 | 
    cnt = passiveEffect.GetEffectValue(0)  
 | 
    if cnt:  
 | 
        #=======================================================================  
 | 
        # useSkill = skillkwargs.get("useSkill", None)  
 | 
        # if not useSkill:  
 | 
        #    return False  
 | 
        #=======================================================================  
 | 
        # ÆÕͨ¹¥»÷ÓÐЧ  
 | 
        #=======================================================================  
 | 
        # if useSkill.GetFuncType() != ChConfig.Def_SkillFuncType_NormalAttack:  
 | 
        #    return False  
 | 
        #=======================================================================  
 | 
          
 | 
        curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)  
 | 
        if not curSkill:  
 | 
            return False  
 | 
          
 | 
        buffType = SkillCommon.GetBuffType(curSkill)  
 | 
        buffTuple = SkillCommon.GetBuffManagerByBuffType(attacker, buffType)  
 | 
        #ͨ¹ýÀàÐÍ»ñȡĿ±êµÄbuff¹ÜÀíÆ÷Ϊ¿Õ£¬ÔòÌø³ö  
 | 
        if buffTuple == ():  
 | 
            return False  
 | 
          
 | 
        buffManager = buffTuple[0]  
 | 
        buff = buffManager.FindBuff(curSkill.GetSkillTypeID())  
 | 
        if not buff:  
 | 
            return False  
 | 
      
 | 
        buff.SetValue2(buff.GetValue2() + 1)  
 | 
        #±ÈÈçÿ5´Î£¬´ú±íÔÚµÚËĴδ¥·¢BUFF¼ÓÊôÐÔ£¬µÚÎå´ÎÏûbuff£¬ÖØÖÃvalue  
 | 
        if buff.GetValue2() == cnt - 1:  
 | 
            return True  
 | 
          
 | 
        if buff.GetValue2() == cnt:  
 | 
            buff.SetValue2(0)  
 | 
          
 | 
        return False  
 | 
          
 | 
    return True  
 | 
  
 | 
  
 | 
def GetSkillData(passiveEffect):  
 | 
    skillID = passiveEffect.GetEffectValue(1)  
 | 
    return GameWorld.GetGameData().GetSkillBySkillID(skillID)  
 | 
  
 | 
  
 | 
  
 |