#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package SkillModule_3  
 | 
#  
 | 
# @todo: Á´Ê½¹¥»÷  
 | 
# @author Alee  
 | 
# @date 2010-12-16 20:50  
 | 
# @version 1.0  
 | 
#  
 | 
# ÏêϸÃèÊö: Á´Ê½¹¥»÷  
 | 
#  
 | 
#------------------------------------------------------------------------------   
 | 
"""Version = 2010-12-16 20:50"""  
 | 
#------------------------------------------------------------------------------  
 | 
#µ¼Èë  
 | 
  
 | 
import ChConfig  
 | 
import BaseAttack  
 | 
import SkillShell  
 | 
import IPY_GameWorld  
 | 
##Á´Ê½¹¥»÷  
 | 
# @param attacker ¹¥»÷ÕßʵÀý  
 | 
# @param defender ·ÀÊØÕßʵÀý  
 | 
# @param curSkill ¼¼ÄÜʵÀý  
 | 
# @param tagRoundPosX ÇøÓò×ø±êX  
 | 
# @param tagRoundPosY ÇøÓò×ø±êY  
 | 
# @param isEnhanceSkill ÊÇ·ñΪ¸½¼Ó¼¼ÄÜ  
 | 
# @param tick Ê±¼ä´Á  
 | 
# @return ·µ»ØÖµÎªÕæ, Êͷųɹ¦  
 | 
# @remarks Á´Ê½¹¥»÷  
 | 
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):  
 | 
    #¼¼ÄÜÔöǿֵ  
 | 
    skillPer = curSkill.GetEffect(0).GetEffectValue(0)  
 | 
    #¼¼Äܸ½¼ÓÖµ  
 | 
    addValue = curSkill.GetEffect(0).GetEffectValue(1)  
 | 
    #¼¼ÄܵÝÔöÖµ  
 | 
    addPer = curSkill.GetEffect(1).GetEffectValue(0)  
 | 
    # 0µÝ¼õ 1µÝÔö  
 | 
    changeType = curSkill.GetEffect(1).GetEffectValue(1)  
 | 
      
 | 
    #¼¼ÄÜÌø×ª´ÎÊý  
 | 
    jumpCount = curSkill.GetEffect(2).GetEffectValue(0)  
 | 
      
 | 
    if SkillShell.IsPlayerUseSkill(attacker, curSkill):  
 | 
        jumpCount = len(SkillShell.GetClientHurtDict())  
 | 
      
 | 
    #¹¹½¨ÁÐ±í  
 | 
    skillPerList = []  
 | 
    for i in range(jumpCount):  
 | 
        if changeType:  
 | 
            skillPerList.append((skillPer + i * addPer))  
 | 
        else:  
 | 
            skillPerList.append((skillPer - i * addPer))  
 | 
  
 | 
    #GameWorld.Log("ÉÁµçÁ´¹¥»÷¼¼ÄÜÔöÇ¿Áбí = %s,¸½¼ÓÖµ = %s, Ìø×ª´ÎÊý = %s"%(skillPerList, addValue, jumpCount))    
 | 
      
 | 
    if SkillShell.IsPlayerUseSkill(attacker, curSkill):  
 | 
        return BaseAttack.ChainAttackAreaEx(attacker, defender, curSkill, defender.GetPosX(),   
 | 
                                          defender.GetPosY(), addValue, skillPerList, tick,  
 | 
                                          isExSkill = isEnhanceSkill)  
 | 
    else:  
 | 
        #µ÷Óù¥»÷Êý×é  
 | 
        return BaseAttack.ChainAttackArea(attacker, defender, curSkill, defender.GetPosX(),   
 | 
                                          defender.GetPosY(), addValue, skillPerList, tick,  
 | 
                                          isExSkill = isEnhanceSkill)  
 | 
      
 |