#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Skill.PassiveTrigger.PassiveEff_5507
|
#
|
# @todo:´¥·¢Êͷż¼ÄÜ£¨¸´»îÖ¸¶¨Ä¿±ê£©
|
# @author hxp
|
# @date 2025-12-19
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ´¥·¢Êͷż¼ÄÜ£¨¸´»îÖ¸¶¨Ä¿±ê£©
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-12-19 18:00"""
|
#-------------------------------------------------------------------------------
|
|
import TurnSkill
|
import GameWorld
|
import ChConfig
|
|
def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill, connBuff, **kwargs):
|
|
passiveSkillID = curEffect.GetEffectValue(0) # ¼¼ÄÜID£¬Îª0ʱÊͷű¾¼¼ÄÜ
|
effHeroID = curEffect.GetEffectValue(1) # Ö¸¶¨Ä¿±êÎ佫ID£¬0ʱΪÀ´Ô´ÓѾüÄ¿±ê
|
costHPPer = curEffect.GetEffectValue(2) # ¿É¸½¼ÓÏûºÄ×ÔÉíѪÁ¿°Ù·Ö±È£¬Åä0²»ÏûºÄ£¬´óÓÚ0ѪÁ¿²»×ãʱ²»ÊÍ·Å
|
searchFrom = curEffect.GetEffectValue(3) # Ä¿±êÎ佫IDÊÇ·ñ´ÓÕóÈÝÖÐËÑË÷
|
|
tagHero = tagObj
|
if effHeroID:
|
if searchFrom:
|
batLineup = batObj.GetBatLineup()
|
tagHero = batLineup.getHeroObj(effHeroID)
|
|
if not tagHero:
|
return
|
|
tagHeroID = tagHero.GetHeroID()
|
if tagHeroID != effHeroID:
|
GameWorld.DebugLogEx("5507·ÇÄ¿±êÎ佫ËÀÍö²»´¦Àí! tagHeroID=%s,effHeroID=%s", tagHeroID, effHeroID)
|
return
|
|
if tagHero.IsAlive():
|
return
|
|
if not passiveSkillID:
|
passiveSkillID = effSkill.GetSkillID()
|
if not passiveSkillID:
|
return
|
|
if tagHero.CheckInState(ChConfig.BatObjState_RebornLimit):
|
GameWorld.DebugLogEx("5507Ä¿±ê±»½ûÖ¹¸´»î²»´¦Àí! tagHeroID=%s", tagHeroID)
|
return
|
|
tagHeroID = tagHero.GetHeroID()
|
tagID = tagHero.GetID()
|
if costHPPer:
|
curHP = batObj.GetHP()
|
maxHP = batObj.GetMaxHP()
|
costHP = maxHP * costHPPer / 100.0
|
if curHP < costHP:
|
GameWorld.DebugLogEx("5507×ÔÉíѪÁ¿²»×㣬ÎÞ·¨¸´»î¶Ô·½! curHP=%s/%s,costHPPer=%s,costHP=%s", curHP, maxHP, costHPPer, costHP)
|
return
|
updHP = curHP - costHP
|
GameWorld.DebugLogEx("5507¿ÛѪ¸´»îÖ¸¶¨Ä¿±ê! curHP=%s/%s,costHPPer=%s,costHP=%s,updHP=%s,tagHeroID=%s,tagID=%s", curHP, maxHP, costHPPer, costHP, updHP, tagHeroID, tagID)
|
batObj.SetHP(updHP, True) # Ö±½Ó¿Û³ý
|
else:
|
GameWorld.DebugLogEx("5507Ö±½Ó¸´»îÖ¸¶¨Ä¿±ê! tagHeroID=%s,tagID=%s,searchFrom=%s", tagHeroID, tagID, searchFrom)
|
|
effectID = curEffect.GetEffectID()
|
effSkillID = effSkill.GetSkillID()
|
return TurnSkill.OnUsePassiveSkill(turnFight, batObj, tagHero, passiveSkillID, connSkill, effSkillID, effectID, connBuff, **kwargs)
|