| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #  | 
| ##@package  | 
| #  | 
| # @todo: Ç¿»¯Ì×װÿһ½×ÊýÌáÉýÊôÐÔ°Ù·Ö±È  | 
| #  | 
| # @author: Alee  | 
| # @date 2018-11-5 ÏÂÎç04:38:39  | 
| # @version 1.0  | 
| #  | 
| # @note:   | 
| #  | 
| #---------------------------------------------------------------------  | 
| #µ¼Èë  | 
| import ChConfig  | 
| import PlayerControl  | 
| import ChEquip  | 
| import IPY_GameWorld  | 
| #---------------------------------------------------------------------  | 
|   | 
|   | 
| def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):  | 
|     if defender.GetGameObjType() != IPY_GameWorld.gotPlayer:  | 
|         return  | 
|     suitsLV = ChEquip.GetEquipSuitsLVByType(defender, ChConfig.EquipSuitType_Plus, ChConfig.EquipGroupType_Armor)  | 
|     if not suitsLV:  | 
|         return  | 
|     attrList = PlayerControl.GetCalcAttrListValue(defender, curEffect.GetEffectValue(2))  | 
|     attrType = curEffect.GetEffectValue(1)  | 
|     attrTypeList = [attrType]  | 
|     # ¹¥»÷Á¦ÓÐ×î´ó×îС ÌØÊâ´¦Àí  | 
|     if attrType in [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax]:  | 
|         attrTypeList = [ChConfig.TYPE_Calc_AttrATKMin, ChConfig.TYPE_Calc_AttrATKMax]  | 
|     for tmpType in attrTypeList:  | 
|         value = int(attrList[2].get(tmpType, 0)*curEffect.GetEffectValue(0)*suitsLV*1.0/ChConfig.Def_MaxRateValue)  | 
|         calcDict[tmpType] = calcDict.get(tmpType, 0) + value  | 
|           | 
|     return  | 
|   | 
|   | 
| ## ·µ»ØbuffÀàÐÍ£¬ÏßÐÔÓë·ñ  | 
| #  @param   | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.    | 
| def GetCalcType():  | 
|     return ChConfig.TYPE_Linear  | 
|   | 
| import random  | 
|   | 
| random.seed()  | 
|   |