hxp
4 天以前 4e3d1ff7e0b98fc18b0b6e63e449f3d7577c0ba6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.PassiveTrigger.PassiveEff_5020
#
# @todo:Òý±¬Ä¿±êËùÓгÖÐøbuffËùÓлغÏЧ¹û£¨Ö»Ëã°´»ØºÏ½áËãµÄ£©
# @author hxp
# @date 2025-10-28
# @version 1.0
#
# ÏêϸÃèÊö: Òý±¬Ä¿±êËùÓгÖÐøbuffËùÓлغÏЧ¹û£¨Ö»Ëã°´»ØºÏ½áËãµÄ£©
#
#-------------------------------------------------------------------------------
#"""Version = 2025-10-28 10:30"""
#-------------------------------------------------------------------------------
 
import TurnBuff
import GameWorld
import TurnPassive
import ChConfig
 
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    #effectID = curEffect.GetEffectID()
    noDel = curEffect.GetEffectValue(0)
    
    buffList = []
    buffMgr = tagObj.GetBuffManager()
    for index in range(buffMgr.GetBuffCount()):
        buff = buffMgr.GetBuffByIndex(index)
        skillData = buff.GetSkillData()
        if skillData.GetSkillType() != ChConfig.Def_SkillType_LstDepBuff:
            continue
        isByTurn = False # Ö»Ëã°´»ØºÏ½áËãµÄ
        for effIndex in range(skillData.GetEffectCount()):
            effect = skillData.GetEffect(effIndex)
            if effect.GetEffectID() == 5001:
                isByTurn = True
                break
        if not isByTurn:
            continue
        buffList.append(buff)
        
    FinalDamPer = TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.AttrID_FinalDamPer, connSkill)
    GameWorld.DebugLog("Òý±¬Ä¿±êËùÓгÖÐøbuffËùÓлغÏЧ¹û: tagID=%s,buffCnt=%s,noDel=%s,FinalDamPer=%s" % (tagObj.GetID(), len(buffList), noDel, FinalDamPer))
    for buff in buffList:
        GameWorld.DebugLog("buffID=%s,RemainTime=%s" % (buff.GetBuffID(), buff.GetRemainTime()))
        for _ in range(buff.GetRemainTime()):
            TurnBuff.DoBuffProcess(turnFight, tagObj, buff, FinalDamPer=FinalDamPer)
        if noDel:
            continue
        TurnBuff.DoBuffDel(turnFight, tagObj, buff)
        
    return True