yyl
2025-12-09 039b2d01aeecf017dfcbabdf6c90073bf0301590
125 战斗 解决盈野的BOSS血量在战斗结束后还会剩余的问题
2个文件已修改
21 ■■■■ 已修改文件
Main/System/Battle/BoneFieldBattleWin.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillBase.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BoneFieldBattleWin.cs
@@ -138,19 +138,26 @@
        }
    }
    protected override void OnDamageTaken(BattleDmgInfo info)
    {
        // Debug.LogError("OnDamageTaken 被调用 调用者是 " + info.battleHurtParam.caster.casterObj?.teamHero.name + " 对象 " + info.battleHurtParam.hurter.hurtObj?.teamHero.name);
        base.OnDamageTaken(info);
        if (battleField == null || info.battleFieldGuid != battleField.guid)
            return;
        if (bossBattleObject != null && info.hurtObj.ObjID == bossBattleObject.ObjID)
        {
            RefreshHP();
        }
        if (null == bossBattleObject)
            return;
        // ★★★ 完全使用 StoryBossBattleWin 的逻辑 ★★★
        if (info.battleHurtParam.hurter.hurtObj != null && bossBattleObject.teamHero.ObjID == info.battleHurtParam.hurter.hurtObj.teamHero.ObjID)
        {
            bossLifeBar.Show((ulong)info.battleHurtParam.hurter.toHp, (ulong)bossBattleObject.teamHero.maxHp);
        }
        else if (info.battleHurtParam.caster.casterObj != null && bossBattleObject.teamHero.ObjID == info.battleHurtParam.caster.casterObj.teamHero.ObjID)
        {
            bossLifeBar.Show((ulong)info.battleHurtParam.caster.toHp, (ulong)bossBattleObject.teamHero.maxHp);
        }
    }
    protected override void OnClose()
Main/System/Battle/Skill/SkillBase.cs
@@ -594,6 +594,8 @@
    // 命中目标回调:处理所有被命中的目标(包括主目标、弹射目标、溅射目标)
    protected virtual void OnHitTargets(int _hitIndex, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hitList)
    {
        // Debug.LogError($"Skill {skillConfig.SkillID} hit targets _hitIndex: {_hitIndex} hit {string.Join(", ", hitList.Select(h => h.ObjID + ":" + battleField.battleObjMgr.GetBattleObject((int)h.ObjID)?.teamHero.name))}");
        //  造成伤害前先处理血量刷新包
        HandleRefreshHP();