#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#---------------------------------------------------------------------  
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
##@package CalcLineEffect.  
 | 
# @todo:   
 | 
#  
 | 
# @author: panwei  
 | 
# @date 2011-03-22  
 | 
# @version 1.1  
 | 
#  
 | 
# @change: "2013-04-17 20:35" Alee ¸ü¸Ä¼ÆË㷽ʽ  
 | 
#------------------------------------------------------------------------------   
 | 
"""Version = 2013-04-17 20:35"""  
 | 
#---------------------------------------------------------------------  
 | 
import EffGetSet  
 | 
import GameWorld  
 | 
import ChConfig  
 | 
#---------------------------------------------------------------------  
 | 
## ¸øÍæ¼ÒÌí¼ÓÏßÐÔBuffЧ¹û   
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param effectDict Ð§¹û×Öµä  
 | 
#  @return None  
 | 
def ChangePlayerAttrInLineEffectList(curPlayer, effectDict, isBuffAttr=False):  
 | 
    return __CalcAttrInLineEffectList(curPlayer, effectDict, isBuffAttr)  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
## ¸øNPCÌí¼ÓÏßÐÔBuffЧ¹û  
 | 
#  @param curPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param effectDict Ð§¹û×Öµä  
 | 
#  @return None  
 | 
#  @remarks   
 | 
def ChangeNPCAttrInLineEffectList(curNPC, effectDict):  
 | 
    return __CalcAttrInLineEffectList(curNPC, effectDict, False)  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
##Ìí¼ÓÏßÐÔBuff  
 | 
# @param curObj ¶ÔÏóʵÀý  
 | 
# @param effectList Ð§¹ûÁбíTYPE_Max_Attr  
 | 
# @return ·µ»ØÖµÎÞÒâÒå  
 | 
# @remarks   
 | 
def __CalcAttrInLineEffectList(curObj, effectDict, isBuffAttr):  
 | 
    for key, value in effectDict.items():  
 | 
        if value == 0:  
 | 
            continue  
 | 
          
 | 
        # buff¶ÔÒÆ¶¯ËٶȵÄÓ°Ïì²»ÔÚÕâÀï¼ÆËã, µ¥¶ÀÌá³öÀ´¶ÀÁ¢¼ÆËã  
 | 
        if isBuffAttr and key == ChConfig.TYPE_Calc_AttrSpeed:  
 | 
            continue  
 | 
          
 | 
        curValue = EffGetSet.GetValueByEffIndex(curObj, key)  
 | 
  
 | 
        if curValue == None:  
 | 
            GameWorld.Log("µ÷ÓÃÏßÐÔÊôÐÔÌõ¼þʧ°Ü, curObjType = %s, index = %s"%(curObj.GetGameObjType(), key))  
 | 
            continue  
 | 
  
 | 
        EffGetSet.SetValueByEffIndex(curObj, key, curValue + value)  
 | 
  
 | 
    return  
 | 
  
 |