#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
  
 | 
##@package BuffProcess_1089  
 | 
# °´±»¹¥»÷ÕßµÄ×î´óѪÁ¿°Ù·Ö±È¼õѪ  
 | 
#  
 | 
# @author Alee  
 | 
# @date 2011-03-18 16:45  
 | 
# @version 1.2  
 | 
#  
 | 
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ  
 | 
#  
 | 
  
 | 
#µ¼Èë  
 | 
import SkillCommon  
 | 
import GameWorld  
 | 
import ChConfig  
 | 
import GameObj  
 | 
#---------------------------------------------------------------------  
 | 
#È«¾Ö±äÁ¿  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#Â߼ʵÏÖ  
 | 
## ³ÖÐøÐÔBuff´¦Àí °´×î´óѪÁ¿°Ù·Ö±È¼õѪ  
 | 
#  @param defender ³ÐÊÜÕß  
 | 
#  @param curBuff µ±Ç°Buff  
 | 
#  @param curEffect BuffЧ¹û  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def ProcessBuff(defender, curBuff, curEffect, processBuffTick, tick):  
 | 
  
 | 
    #µ¥´ÎÉ˺¦  
 | 
    singleDecHP = SkillCommon.GetProcessBuffChangeHp_Time(curBuff, processBuffTick, tick)  
 | 
      
 | 
    #buffÓµÓÐÕß  
 | 
    buffOwner = SkillCommon.GetBuffOwner(curBuff)  
 | 
      
 | 
    curBuffSkillID = curBuff.GetSkill().GetSkillTypeID()  
 | 
      
 | 
    SkillCommon.SkillLostHP(defender, curBuffSkillID, buffOwner, singleDecHP, tick, hurtType=ChConfig.Def_HurtType_Bleed)  
 | 
    return  
 | 
  
 | 
## ³ÖÐøÐÔBuffÏûʧ  
 | 
#  @param defender ³ÐÊÜÕß  
 | 
#  @param curSkill µ±Ç°¼¼ÄÜ  
 | 
#  @param curBuff µ±Ç°Buff  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def OnBuffDisappear(defender, curSkill, curBuff, curEffect, tick):  
 | 
    buffValue = curBuff.GetValue()  
 | 
      
 | 
    #ÎÞÊ£Óà  
 | 
    if buffValue <= 0:  
 | 
        return  
 | 
      
 | 
    #ÒѾËÀÍö²»´¥·¢  
 | 
    if GameObj.GetHP(defender) <= 0:  
 | 
        return  
 | 
      
 | 
    buffOwner = SkillCommon.GetBuffOwner(curBuff)  
 | 
      
 | 
    SkillCommon.SkillLostHP(defender, curSkill.GetSkillTypeID(), buffOwner, buffValue, tick, hurtType=ChConfig.Def_HurtType_Bleed)  
 | 
    return  
 | 
  
 | 
  
 | 
##³ÖÐøÉ˺¦Buff, ¸ù¾Ý¹¥»÷ÕßѪÁ¿¼ÆËã  
 | 
# @param attacker ¹¥»÷ÕßʵÀý  
 | 
# @param curSkill ¼¼ÄÜʵÀý  
 | 
# @param curEffect µ±Ç°¼¼ÄÜЧ¹û1  
 | 
# @return ×ÜÖµ  
 | 
def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):  
 | 
    curEffect = curSkill.GetEffect(0)  
 | 
    skillPer = curEffect.GetEffectValue(0)  
 | 
    skillPer /= float(ChConfig.Def_MaxRateValue)  
 | 
    #¼¼Äܸ½¼Ó  
 | 
    skillEnhance = curEffect.GetEffectValue(1)  
 | 
      
 | 
    return [int(GameObj.GetMaxHP(defender) * skillPer + skillEnhance)]  
 | 
  
 |