#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
# @todo: ¼õÉÙÖ¸¶¨¼¼ÄܵÄCD£¬Èç¹ûÓдÎÊý¿ØÖÆ ÐèÒª×ö³É²ã¼¶buff ----- ÀལÈз籩¼¼ÄÜʹÓÃ
|
# µÚÈý¸öЧ¹ûֵĬÈÏΪ0£¬Ã¿´Î¶¼¼õÉÙCD Ôò²»ÐèÒªÅäÖóÉbuff£» ÅäÖÃÊý×ÖÔòÐèÒªºÍbuff²ã¼¶´îÅäÀ´¿ØÖÆ´ÎÊý
|
#
|
# @author: Alee
|
# @date 2018-1-9 ÏÂÎç09:39:37
|
# @version 1.0
|
#
|
# @note:
|
#
|
#---------------------------------------------------------------------
|
|
import ChConfig
|
import IPY_GameWorld
|
import GameWorld
|
import SkillCommon
|
import BuffSkill
|
|
def CheckCanHappen(attacker, defender, effect, curSkill):
|
if attacker.GetGameObjType() != IPY_GameWorld.gotPlayer:
|
return False
|
|
if effect.GetEffectValue(2):
|
skillID = curSkill.GetSkillID()
|
if SkillCommon.IsBuff(curSkill):
|
buffType = SkillCommon.GetBuffType(curSkill)
|
buffTuple = SkillCommon.GetBuffManagerByBuffType(attacker, buffType)
|
if buffTuple == ():
|
return False
|
|
buffManager = buffTuple[0]
|
findBuff = buffManager.FindBuff(skillID)
|
if findBuff and findBuff.GetLayer() >= effect.GetEffectValue(2):
|
# ³¬¹ý²»ÔÙ¼õCD
|
return False
|
|
return True
|
|
def GetValue(attacker, defender, effect):
|
# ´Ë´¦´¦Àí¼õÉÙCDÂß¼
|
skillID = effect.GetEffectValue(0)
|
|
curSkill = attacker.GetSkillManager().FindSkillBySkillID(skillID)
|
coolDownTime = curSkill.GetCoolDownTime()
|
remainTime = curSkill.GetRemainTime()
|
remainTime = int(max(remainTime - coolDownTime*1.0*effect.GetEffectValue(1)/ChConfig.Def_MaxRateValue, 0))
|
|
curSkill.SetRemainTime(remainTime)
|
curSkill.SetLastUseTick(GameWorld.GetGameWorld().GetTick())
|
curSkill.Sync_Skill()
|
return 0
|