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
#!/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):
    skillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
    checkTagHPInfo = curEffect.GetEffectValue(1) # ¿É¸½¼ÓÑé֤Ŀ±êÉúÃüÖµ[¼ÆË㷽ʽ, °Ù·Ö±È]
    if checkTagHPInfo:
        checkType, checkHPPer = checkTagHPInfo
        tagHP = tagObj.GetHP()
        tagHPMax = tagObj.GetMaxHP()
        nowPer = tagHP / float(tagHPMax) * 100
        
        effSkillTypeID = effSkill.GetSkillTypeID()
        checkHPPer += TurnPassive.GetTriggerEffectValue(turnFight, batObj, tagObj, ChConfig.PassiveEff_AddCheckPer5505, connSkillTypeID=effSkillTypeID, **kwargs)
        
        GameWorld.DebugLogEx("5505Ñé֤Ŀ±êÉúÃü! tagHP=%s/%s,nowPer=%s,checkHPPer=%s,checkType=%s,effSkillTypeID=%s", 
                             tagHP, tagHPMax, nowPer, checkHPPer, checkType, effSkillTypeID)
        
        # Ð¡ÓÚµÈÓÚ
        if checkType == 0:
            if nowPer > checkHPPer:
                return
        # ´óÓÚµÈÓÚ
        else:
            if nowPer < checkHPPer:
                return
            
    if not skillID:
        passiveSkill = effSkill
    else:
        passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID)
    if not passiveSkill:
        return
    effectID = curEffect.GetEffectID()
    effSkillID = effSkill.GetSkillID()
    return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagObj, passiveSkill, 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)