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
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.PassiveTrigger.PassiveEff_5021
#
# @todo:¶îÍâÔö¼ÓbuffЧ¹ûID/ÊôÐÔIDÖµ£¨Ã¿»÷ÖÐx״̬Ŀ±ê£©
# @author hxp
# @date 2025-10-30
# @version 1.0
#
# ÏêϸÃèÊö: ¶îÍâÔö¼ÓbuffЧ¹ûID/ÊôÐÔIDÖµ£¨Ã¿»÷ÖÐx״̬Ŀ±ê£©
#
#-------------------------------------------------------------------------------
#"""Version = 2025-10-30 16:00"""
#-------------------------------------------------------------------------------
 
import GameWorld
 
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    if not connSkill or not connBuff:
        return
    
    bySkill = connSkill.GetBySkill()
    if not bySkill:
        return
    
    attrID = curEffect.GetEffectValue(0)
    attrValue = curEffect.GetEffectValue(1)
    checkInStateList = curEffect.GetEffectValue(2)
    if not checkInStateList or not attrID or not attrValue:
        return
    
    hitCnt = 0
    effIgnoreObjIDList = bySkill.GetEffIgnoreObjIDList()
    tagObjList = bySkill.GetTagObjList()
    for tagObj in tagObjList:
        tagID = tagObj.GetID()
        if tagID in effIgnoreObjIDList:
            #GameWorld.DebugLog("    ÉÁ±Ü»òÃâÒßµÄÄ¿±ê: tagID=%s" % (tagID))
            continue
        if not tagObj.CheckInState(checkInStateList):
            #GameWorld.DebugLog("    ²»ÔÚ״̬ϵÄÄ¿±ê: tagID=%s not in state:%s" % (tagID, checkInStateList))
            continue
        hitCnt += 1
        
    attrValue *= hitCnt
    connBuff.AddEffectValueEx(attrID, attrValue)
    GameWorld.DebugLog("ÿ»÷ÖÐx״̬Ŀ±ê¶îÍâÔö¼ÓbuffЧ¹ûID/ÊôÐÔIDÖµ: hitCnt=%s,attrID=%s,attrValue=%s" % (hitCnt, attrID, attrValue))
    return True