#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.GameSkills.SkillModule_50
|
#
|
# @todo:½áËãׯÉÕ
|
# @author hxp
|
# @date 2024-04-02
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ½áËãׯÉÕ Ð§¹û1£º AÖµ-É˺¦Ôö¼Ó°Ù·Ö±È
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2024-04-02 19:00"""
|
#-------------------------------------------------------------------------------
|
|
import ChConfig
|
import GameWorld
|
import BuffSkill
|
import SkillShell
|
|
def UseSkill(attacker, defender, curSkill, tagRoundPosX, tagRoundPosY, isEnhanceSkill, tick):
|
if not defender:
|
return
|
|
# ¶Ô´æÔÚׯÉÕЧ¹ûIDµÄ³ÖÐø¼õÒæbuff½øÐнáËã
|
buffState = defender.GetProcessDeBuffState()
|
buffStateCount = buffState.GetBuffCount()
|
if not buffStateCount:
|
return
|
|
skillEffect = curSkill.GetEffect(0)
|
addBurnHurtPer = skillEffect.GetEffectValue(0)
|
defender.SetDict("addBurnHurtPer", addBurnHurtPer)
|
|
isBurn = False
|
#buff³ÖÐøÐ§¹û£¬»ØºÏÏ¿ÉÄÜɾ³ýbuff£¬µ¹Ðò±éÀú
|
for i in range(0, buffStateCount)[::-1]:
|
curBuff = buffState.GetBuff(i)
|
if not curBuff:
|
continue
|
isDel = False
|
curBuffSkill = curBuff.GetSkill()
|
for effIndex in range(0, curBuffSkill.GetEffectCount()):
|
#µÃµ½µ±Ç°Ð§¹û
|
curEffect = curBuffSkill.GetEffect(effIndex)
|
curEffectID = curEffect.GetEffectID()
|
if curEffectID == ChConfig.Def_Skill_Effect_Burn:
|
isDel = True
|
break
|
if not isDel:
|
continue
|
# Ö±½Óɾ³ýbuff£¬ÓÉbuff×ÔÉíÏûʧÂß¼½øÐнáËã
|
GameWorld.DebugLog(" Á¢¼´½áËãׯÉÕbuff: atkID=%s,defID=%s,skillID=%s,addBurnHurtPer=%s"
|
% (attacker.GetID(), defender.GetID(), curBuffSkill.GetSkillID(), addBurnHurtPer))
|
isBurn = True
|
skillID = curBuffSkill.GetSkillID()
|
skillTypeID = curBuffSkill.GetSkillTypeID()
|
ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
|
BuffSkill.DoBuffDisApper(defender, curBuff, tick)
|
buffState.DeleteBuffByTypeID(skillTypeID)
|
SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType)
|
|
defender.SetDict("addBurnHurtPer", 0)
|
return isBurn
|