#!/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 costHPPer = curEffect.GetEffectValue(2) # ¿É¸½¼ÓÏûºÄ×ÔÉíѪÁ¿°Ù·Ö±È£¬Åä0²»ÏûºÄ£¬´óÓÚ0ѪÁ¿²»×ãʱ²»ÊÍ·Å searchFrom = curEffect.GetEffectValue(3) # Ä¿±êÎ佫IDÊÇ·ñ´ÓÕóÈÝÖÐËÑË÷ tagHero = tagObj if searchFrom: batLineup = batObj.GetBatLineup() tagHero = batLineup.getHeroObj(effHeroID) if not effHeroID or not tagHero: return if tagHero.IsAlive(): return tagHeroID = tagHero.GetHeroID() if tagHeroID != effHeroID: #GameWorld.DebugLogEx("5507·ÇÄ¿±êÎ佫ËÀÍö²»´¦Àí! tagHeroID=%s,effHeroID=%s", tagHeroID, effHeroID) return if not passiveSkillID: passiveSkillID = effSkill.GetSkillID() if not passiveSkillID: return if tagHero.CheckInState(ChConfig.BatObjState_RebornLimit): GameWorld.DebugLogEx("5507Ä¿±ê±»½ûÖ¹¸´»î²»´¦Àí! tagHeroID=%s", tagHeroID) return 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 GameWorld.DebugLogEx("5507¿ÛѪ¸´»îÖ¸¶¨Ä¿±ê! curHP=%s/%s,costHPPer=%s,costHP=%s,tagHeroID=%s,tagID=%s", curHP, maxHP, costHPPer, costHP, tagHeroID, tagID) batObj.SetHP(max(1, curHP - costHP), 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)