#!/usr/bin/python # -*- coding: GBK -*- # # @todo: ±»¹¥»÷xx%¼¸ÂÊ´¥·¢¼¼ÄÜ # # @author: Alee # @date 2017-12-9 ÏÂÎç09:41:44 # @version 1.0 # # @note: # #--------------------------------------------------------------------- import ChConfig import GameWorld import SkillCommon import BuffSkill def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs): onlySkillID = passiveEffect.GetEffectValue(2) # µ¥×´Ì¬²»¿ÉÖØ¸´µÄBUFFID, ²ãÊý¾ö¶¨´¥·¢´ÎÊý if onlySkillID: if not defender: return False # Ä¿±êÉíÉϲéÕÒ findSkill = GameWorld.GetGameData().GetSkillBySkillID(passiveEffect.GetEffectValue(2)) if not findSkill: return False buffType = SkillCommon.GetBuffType(findSkill) buffTuple = SkillCommon.GetBuffManagerByBuffType(defender, buffType) if buffTuple == (): return False buffManager = buffTuple[0] findBuff = buffManager.FindBuff(onlySkillID) if findBuff and findBuff.GetOwnerID() == attacker.GetID(): # µ¥×´Ì¬²»¿ÉÖØ¸´µÄBUFFID, ²ãÊý¾ö¶¨´¥·¢´ÎÊý if findBuff.GetLayer() >= BuffSkill.GetBuffMaxLayer(findSkill): return False return GameWorld.CanHappen(passiveEffect.GetEffectValue(0)) def GetSkillData(passiveEffect): skillID = passiveEffect.GetEffectValue(1) return GameWorld.GetGameData().GetSkillBySkillID(skillID) def AfterUsePassiveSkill(attacker, defender, passiveEffect, tick): skillID = passiveEffect.GetEffectValue(2) # µ¥×´Ì¬²»¿ÉÖØ¸´µÄBUFFID if not skillID: return addSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID) if not addSkill: return buffType = SkillCommon.GetBuffType(addSkill) BuffSkill.AddBuffNoRefreshState(defender, buffType, addSkill, tick, [], attacker) return