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
55
56
57
58
59
60
61
62
63
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.PassiveTrigger.PassiveEff_5509
#
# @todo:´¥·¢Êͷż¼ÄÜ£¨ÑéÖ¤ÊÇ·ñΪָ¶¨ÓѾüÀ´Ô´£©
# @author hxp
# @date 2025-12-22
# @version 1.0
#
# ÏêϸÃèÊö: ´¥·¢Êͷż¼ÄÜ£¨ÑéÖ¤ÊÇ·ñΪָ¶¨ÓѾüÀ´Ô´£©
#
#-------------------------------------------------------------------------------
#"""Version = 2025-12-22 16:30"""
#-------------------------------------------------------------------------------
 
import TurnSkill
import GameWorld
 
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    if "byFriendObj" not in kwargs:
        return
    byFriendObj = kwargs.pop("byFriendObj") # Ö±½ÓÈ¡³ö£¬·ÀÖ¹´«µÝ
    
    passiveSkillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
    byFriendRule = curEffect.GetEffectValue(1) # ÓѾüÑéÖ¤¹æÔò[ÑéÖ¤·½Ê½, ÑéÖ¤Öµ]
    tagRule = curEffect.GetEffectValue(2) # Ö¸¶¨Ä¿±ê 0-°´¼¼ÄÜ£¬1-¶Ô»÷ɱ·½£¬2-¶ÔÀ´Ô´ÓѾü£¬3-¶Ô¹ØÁª¶ÔÏó
    
    if byFriendRule:
        checkType = byFriendRule[0]
        # ÑéÖ¤·½Ê½ 1 - °´Î佫ID£¬ Öµ-Î佫ID
        if checkType == 1:
            byHeorID = byFriendRule[1] if len(byFriendRule) > 1 else 0
            friendHeroID = byFriendObj.GetHeroID()
            if friendHeroID != byHeorID:
                GameWorld.DebugLogEx("5509ÓѾüÎ佫·Ç´¥·¢À´Ô´²»´¦Àí! friendHeroID=%s != %s", friendHeroID, byHeorID)
                return
            
        # ÑéÖ¤·½Ê½ 2 - °´¹ú¼Ò£¬ Öµ-¹ú¼Ò
        elif checkType == 2:
            byCountry = byFriendRule[1] if len(byFriendRule) > 1 else 0
            friendCountry = byFriendObj.GetCountry()
            if friendCountry != byCountry:
                GameWorld.DebugLogEx("5509ÓѾü¹ú¼Ò·Ç´¥·¢À´Ô´²»´¦Àí! friendCountry=%s != %s", friendCountry, byCountry)
                return
            
    if not passiveSkillID:
        passiveSkillID = effSkill.GetSkillID()
    if not passiveSkillID:
        return
    
    effectID = curEffect.GetEffectID()
    effSkillID = effSkill.GetSkillID()
    toTagObj = None
    if tagRule == 1:
        toTagObj = byFriendObj.GetKiller()
    elif tagRule == 2:
        toTagObj = byFriendObj
    elif tagRule == 3:
        toTagObj = tagObj
        
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, toTagObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)