#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
##@package
|
#
|
# @todo: ÎüÊÕ¶Ô·½ÊôÐÔ£¬ÓÐÄ¿±ê¼¼ÄÜ£¨41£©£¬×î¶à3ÖÖÊôÐÔ, ÔöÒæbuff
|
#
|
# @author: Alee
|
# @date 2019-3-15 ÏÂÎç04:48:41
|
# @version 1.0
|
#
|
# @note:
|
#
|
#---------------------------------------------------------------------
|
|
import ChConfig
|
import BuffSkill
|
|
#---------------------------------------------------------------------
|
|
## buffÏßÐÔÔö¼ÓÊôÐÔ
|
# @param defender Buff³ÐÊÜÕß
|
# @param curEffect ¼¼ÄÜЧ¹û
|
# @param calcDict ¼¼ÄÜЧ¹ûÀÛ¼Ó×ܱí
|
# @return None
|
def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):
|
attrType = curEffect.GetEffectValue(0)
|
|
curSkill = curBuff.GetSkill()
|
if not curSkill:
|
return
|
|
valueIndex = None
|
for i in xrange(curSkill.GetEffectCount()):
|
curEffect = curSkill.GetEffect(i)
|
if curEffect.GetEffectValue(0) == attrType:
|
valueIndex = i
|
break
|
|
if valueIndex == None:
|
return
|
|
if attrType == ChConfig.TYPE_Calc_AttrATKMin:
|
# ×îС¹¥»÷²»´¦Àí£¬½ö´¦Àí×î´ó¹¥»÷£¬ÅäÖõÄʱºòÖ»ÅäÖÃ×î´ó¹¥»÷¼´¿É£¬Í¬²½¼Ó×îС¹¥»÷
|
return
|
|
vauleFunc = [curBuff.GetValue, curBuff.GetValue1, curBuff.GetValue2]
|
addValue = vauleFunc[min(2, valueIndex)]()
|
if curBuff.GetLayer() and BuffSkill.IsLayerPlusAttr(curBuff):
|
addValue *= curBuff.GetLayer()
|
|
calcDict[attrType] = calcDict.get(attrType, 0) + addValue
|
if attrType == ChConfig.TYPE_Calc_AttrATKMax:
|
calcDict[ChConfig.TYPE_Calc_AttrATKMin] = calcDict.get(ChConfig.TYPE_Calc_AttrATKMin, 0) + addValue
|
|
return
|
|
|
## ·µ»ØbuffÀàÐÍ£¬ÏßÐÔÓë·ñ
|
# @param
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def GetCalcType():
|
return ChConfig.TYPE_Linear
|
|
|