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