#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Skill.PassiveTrigger.PassiveEff_5010 # # @todo:¹¥»÷·½´¥·¢Êͷż¼ÄÜ£¨¿É¼Ì³ÐÖ÷¼¼ÄÜÄ¿±ê»òÖØÐÂÉèÖÃÄ¿±ê£© # @author hxp # @date 2025-08-25 # @version 1.0 # # ÏêϸÃèÊö: ¹¥»÷·½´¥·¢Êͷż¼ÄÜ£¨¿É¼Ì³ÐÖ÷¼¼ÄÜÄ¿±ê»òÖØÐÂÉèÖÃÄ¿±ê£© # #------------------------------------------------------------------------------- #"""Version = 2025-08-25 12:00""" #------------------------------------------------------------------------------- import TurnSkill import IpyGameDataPY import GameWorld import ChConfig def DoSkillEffectLogic(turnFight, batObj, tagObj, effSkill, curEffect, connSkill): effectID = curEffect.GetEffectID() skillID = curEffect.GetEffectValue(0) if not skillID: passiveSkill = effSkill else: passiveSkill = IpyGameDataPY.GetIpyGameData("Skill", skillID) if not passiveSkill: return passiveSkillID = passiveSkill.GetSkillID() tagObjList = connSkill.GetTagObjList() if connSkill else [] # ¼Ì³ÐÖ÷¼¼ÄÜÄ¿±ê if passiveSkill.GetTagAim() == ChConfig.SkillTagAim_MainSkill and tagObjList: happenRate = passiveSkill.GetHappenRate() GameWorld.DebugLog("±»¶¯´¥·¢¼¼ÄÜ£¬¼Ì³ÐÖ÷¼¼ÄÜÄ¿±ê! effectID=%s,passiveSkillID=%s,happenRate=%s" % (effectID, passiveSkillID, happenRate)) passiveTagObjList = [] for tagObj in tagObjList: tagID = tagObj.GetID() if tagObj.GetHP() <= 0: GameWorld.DebugLog(" Òѱ»»÷ɱ²»´¥·¢: tagID=%s" % (tagID)) continue inHurt = False for hurtObj in connSkill.GetHurtObjList(): if hurtObj.GetObjID() != tagID: continue if not hurtObj.GetHurtHP() or hurtObj.HaveHurtType(ChConfig.HurtType_Miss): continue inHurt = True break if not inHurt: GameWorld.DebugLog(" ûÓÐÉËѪ²»´¥·¢: tagID=%s" % (tagID)) continue if happenRate and happenRate != ChConfig.Def_MaxRateValue and not GameWorld.CanHappen(happenRate, ChConfig.Def_MaxRateValue): GameWorld.DebugLog(" ¸ÅÂʲ»´¥·¢: tagID=%s,happenRate=%s" % (tagID, happenRate)) continue passiveTagObjList.append(tagObj) if passiveTagObjList: TurnSkill.OnUseSkill(turnFight, batObj, passiveSkill, passiveTagObjList, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill) else: GameWorld.DebugLog("±»¶¯´¥·¢¼¼ÄÜ£¬ÖØÐÂËø¶¨Ä¿±ê! effectID=%s,passiveSkillID=%s" % (effectID, passiveSkillID)) TurnSkill.OnUseSkill(turnFight, batObj, passiveSkill, batType=ChConfig.TurnBattleType_Passive, bySkill=connSkill) return def DoBuffEffectLogic(turnFight, batObj, tagObj, curBuff, curEffect, connSkill): return DoSkillEffectLogic(turnFight, batObj, tagObj, None, curEffect, connSkill)