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
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package Skill.PassiveTrigger.PassiveEff_5505
#
# @todo:´¥·¢Êͷż¼ÄÜ£¨ÑéÖ¤ÉúÃü£©
# @author hxp
# @date 2025-12-16
# @version 1.0
#
# ÏêϸÃèÊö: ´¥·¢Êͷż¼ÄÜ£¨ÑéÖ¤ÉúÃü£©
#
#-------------------------------------------------------------------------------
#"""Version = 2025-12-16 19:30"""
#-------------------------------------------------------------------------------
 
import TurnSkill
import TurnPassive
import IpyGameDataPY
import GameWorld
import ChConfig
 
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
    passiveSkillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
    checkTagHPInfo = curEffect.GetEffectValue(1) # ¿É¸½¼ÓÑé֤Ŀ±êÉúÃüÖµ[¼ÆË㷽ʽ, °Ù·Ö±È]
    checkTagType = curEffect.GetEffectValue(2) # Ñé֤Ŀ±êĬÈÏ0-¶Ô·½£»1×Ô¼º
    if checkTagHPInfo:
        checkType, checkHPPer = checkTagHPInfo
        checkTag = batObj if checkTagType == 1 else tagObj
        tagHP = checkTag.GetHP()
        tagHPMax = checkTag.GetMaxHP()
        nowPer = tagHP / float(tagHPMax) * 100
        
        effSkillTypeID = effSkill.GetSkillTypeID()
        checkHPPer += TurnPassive.GetTriggerEffectValue(turnFight, batObj, checkTag, ChConfig.PassiveEff_AddCheckPer5505, connSkillTypeID=effSkillTypeID, **kwargs)
        
        GameWorld.DebugLogEx("5505ÑéÖ¤ÉúÃü! checkTagType=%s,checkTagID=%s,HP=%s/%s,nowPer=%s,checkHPPer=%s,checkType=%s,effSkillTypeID=%s", 
                             checkTagType, checkTag.GetID(), tagHP, tagHPMax, nowPer, checkHPPer, checkType, effSkillTypeID)
        
        # Ð¡ÓÚµÈÓÚ
        if checkType == 0:
            if nowPer > checkHPPer:
                return
        # ´óÓÚµÈÓÚ
        else:
            if nowPer < checkHPPer:
                return
            
    effectID = curEffect.GetEffectID()
    effSkillID = effSkill.GetSkillID()
    if not passiveSkillID:
        passiveSkillID = effSkillID
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)
 
def DoBuffEffectLogic(turnFight, batObj, tagObj, effBuff, curEffect, connSkill, connBuff, **kwargs):
    effSkill = effBuff.GetSkillData().GetIpyData()
    return DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs)