#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#  
 | 
##@package  
 | 
#  
 | 
# @todo: ¼õËÙרÓã¬ÊÜÊôÐÔÓ°ÏìÈç·ûÎÄ  
 | 
#  
 | 
# @author: Alee  
 | 
# @date 2019-5-8 ÏÂÎç02:55:40  
 | 
# @version 1.0  
 | 
#  
 | 
# @note:   
 | 
#  
 | 
  
 | 
#------------------------------------------------------------------------------   
 | 
#µ¼Èë  
 | 
import ChConfig  
 | 
import PlayerControl  
 | 
import IPY_GameWorld  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
## buff·ÇÏßÐÔ¼õÉÙÊôÐÔ  
 | 
#  @param defender Buff³ÐÊÜÕß  
 | 
#  @param curEffect ¼¼ÄÜЧ¹û  
 | 
#  @param calcDict ¼¼ÄÜЧ¹ûÀÛ¼Ó×Ü±í  
 | 
#  @return None  
 | 
def OnCalcBuffEx(defender, curEffect, calcDict, curBuff):  
 | 
      
 | 
    effect = curEffect.GetEffectValue(0)  
 | 
    if curBuff and curBuff.GetLayer():  
 | 
        # ²ã¼¶µþ¼ÓЧ¹û  
 | 
        effect = effect*curBuff.GetLayer()  
 | 
  
 | 
    effect += curBuff.GetValue()  
 | 
    calcDict[ChConfig.TYPE_Calc_AttrSpeed] = calcDict.get(ChConfig.TYPE_Calc_AttrSpeed, 0) - effect  
 | 
          
 | 
    return   
 | 
  
 | 
  
 | 
## ·µ»ØbuffÀàÐÍ£¬ÏßÐÔÓë·ñ  
 | 
#  @param   
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.    
 | 
def GetCalcType():  
 | 
    return ChConfig.TYPE_NoLinear  
 | 
  
 | 
  
 | 
##¼ÆËãÔöǿֵ  
 | 
# @param attacker ¹¥»÷ÕßʵÀý  
 | 
# @param curSkill ¼¼ÄÜʵÀý  
 | 
# @param curEffect µ±Ç°¼¼ÄÜЧ¹û1  
 | 
# @return ×ÜÖµ  
 | 
def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):  
 | 
      
 | 
    return [PlayerControl.GetSubSpeedPer(attacker)]  
 |