| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #  | 
| ##@package  | 
| #  | 
| # @todo: buffÖб»±ê¼ÇµÄ¹¥»÷Õß¹¥»÷±ê¼Ç·½£¬²ã¼¶×îºóÒ»´Î·´µ¯É˺¦  | 
| #  | 
| # @author: Alee  | 
| # @date 2019-4-27 ÏÂÎç10:25:12  | 
| # @version 1.0  | 
| #  | 
| # @note:   | 
| #  | 
| #---------------------------------------------------------------------  | 
|   | 
| import ChConfig  | 
| import GameWorld  | 
| import GameObj  | 
| import SkillCommon  | 
|   | 
| def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs):  | 
|     if not defender:  | 
|         return False  | 
|     useSkill = skillkwargs.get("useSkill", None)  | 
|     if not useSkill:  | 
|         return False  | 
|     # Ö÷¶¯Ðͼ¼ÄܲÅÓÐЧ  | 
|     if useSkill.GetFuncType() not in [ChConfig.Def_SkillFuncType_FbSkill,  | 
|                                       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  | 
|   | 
|     if buff.GetLayer() != 1:  | 
|         return False  | 
|       | 
|     if buff.GetOwnerID() != defender.GetID():  | 
|         return False  | 
|     return True  | 
|   | 
|   | 
| def GetValue(attacker, defender, passiveEffect):  | 
|     return passiveEffect.GetEffectValue(0)  |