#!/usr/bin/python # -*- coding: GBK -*- # # @todo: ÓнǶȵÄȺÌåbuff # # @author: Alee # @date 2018-1-23 ÉÏÎç09:59:44 # @version 1.0 # # @note: # #------------------------------------------------------------------------------------------------------------- #µ¼Èë import BaseAttack import GameWorld import ChConfig #------------------------------------------------------------------------------ def UseBuff(attacker, defender, curSkill, tick, tagRoundPosX, tagRoundPosY): #---¹¥»÷±éÀúÆðµãÓÅÏȼ¶ 1.ÕÒÖ¸¶¨µã 2.·ÀÊØÕߣ¨°üÀ¨×Ô¼º£©--- if tagRoundPosX == -1 or tagRoundPosY == -1: #ÆðµãÊǹ¥»÷·½£¬»¹ÊÇÊܺ¦·½£¬»¹ÊÇµãµØ tagRoundPosX = defender.GetPosX() tagRoundPosY = defender.GetPosY() attackRad = curSkill.GetAtkRadius() attackMatrix = ChConfig.Def_Angle_MatrixDict.get(attackRad) if attackMatrix == None: GameWorld.ErrLog("ÀàÐÍ´íÎó(%s), ÓнǶȵĹ¥»÷¾ØÕó"%attackRad) return False srcPosX, srcPosY = attacker.GetPosX(), attacker.GetPosY() skillMatrix = GameWorld.MatrixCircle(attackMatrix, attacker.GetPosX(), attacker.GetPosY(), tagRoundPosX, tagRoundPosY) #¼ÆËãÆ«ÒÆ²úÉú¶µã£¬²¹×ãÄ¿±êµã desDist = GameWorld.GetDist(srcPosX, srcPosY, tagRoundPosX, tagRoundPosY) atkDist = curSkill.GetAtkDist() if atkDist != 0 and desDist <= atkDist: insertIndex = int(desDist/float(atkDist)*len(skillMatrix)) if (tagRoundPosX, tagRoundPosY) not in skillMatrix: skillMatrix.insert(insertIndex, (tagRoundPosX, tagRoundPosY)) #ʹÓü¼ÄÜ return BaseAttack.SkillAddAreaBuff(attacker, defender, curSkill, attacker.GetPosX(), attacker.GetPosY(), tick, False, skillMatrix)