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