| | |
| | | import ChConfig
|
| | | import EffGetSet
|
| | | import GameWorld
|
| | | import ShareDefine
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | ## 给玩家添加非线性Buff效果
|
| | | # @param curPlayer 当前玩家
|
| | | # @param effectDict 效果列表
|
| | | # @return None
|
| | | def ChangePlayerAttrInNoLineEffectList(curPlayer, effectDict, mfpObjAttrDict=None, isBuffAttr=False):
|
| | | def ChangePlayerAttrInNoLineEffectList(curPlayer, effectDict, isBuffAttr=False):
|
| | | for key, value in effectDict.items():
|
| | | if value == 0:
|
| | | continue
|
| | |
| | | ## # 衰减算法
|
| | | ## EffGetSet.SetValueByEffIndex(curPlayer, key, tmpValue)
|
| | | # else:
|
| | | if mfpObjAttrDict:
|
| | | for mfpObj, attrDict in mfpObjAttrDict.items():
|
| | | #if not attrDict.has_key(key): # 如果该模块没有增加该属性,则跳过
|
| | | if key not in attrDict: # 如果该模块没有增加该属性,则跳过
|
| | | continue
|
| | | #装备模块攻击、生命非线性属性提升的属性不计算战力,战力另外算
|
| | | if mfpObj.mfpType == ShareDefine.Def_MFPType_Equip \
|
| | | and key in [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax, ChConfig.TYPE_Calc_AttrMaxHP]:
|
| | | GameWorld.DebugLog("装备模块某些属性不计入战力计算: key=%s,value=%s" % (key, attrDict[key]))
|
| | | continue
|
| | | curMValue = attrDict[key]
|
| | | curMAddValue = curValue * curMValue / ChConfig.Def_MaxRateValue # 相对增加值
|
| | | mfpObj.AddCalcMFPAttr(key, curMAddValue) # 给对应模块累加上非线性增加的战斗属性值
|
| | | |
| | | EffGetSet.SetValueByEffIndex(curPlayer, key, curValue * (ChConfig.Def_MaxRateValue + value) / ChConfig.Def_MaxRateValue)
|
| | |
|
| | | return
|