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