yyl
6 天以前 602be2411564ab90514b5e3bdaf45804e01e76f7
125 主线buff直接不显示的处理
4个文件已修改
47 ■■■■■ 已修改文件
Main/System/Battle/BattleField/BattleField.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/StoryBattleField.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Buff/BattleObjectBuffMgr.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/UIComp/BattleHeroInfoBar.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/BattleField.cs
@@ -899,4 +899,15 @@
    {
        return isFocus;
    }
    public virtual void PlayBuffAction(RecordAction buffAction, bool insert)
    {
        var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(this);
        if (insert)
            targetPlayer.ImmediatelyPlay(buffAction);
        else
            targetPlayer.PlayRecord(buffAction);
    }
}
Main/System/Battle/BattleField/StoryBattleField.cs
@@ -362,4 +362,9 @@
        return true;
    }
    public override void PlayBuffAction(RecordAction buffAction, bool insert)
    {
        buffAction.ForceFinish();
    }
}
Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -158,12 +158,8 @@
        // 原因:Buff移除可能是技能效果的一部分(技能内部触发),也可能是独立的(Buff自然到期)
        // 如果有当前RecordAction上下文,则使用innerRecordPlayer,确保Buff移除与技能生命周期绑定
        // 否则使用BattleField的主RecordPlayer
        var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(battleObject.battleField);
        if (insert)
            targetPlayer.ImmediatelyPlay(buffRemoveAction);
        else
            targetPlayer.PlayRecord(buffRemoveAction);
        
        battleObject.battleField.PlayBuffAction(buffRemoveAction, insert);
    }
    //  刷新buff
@@ -196,11 +192,7 @@
            // 原因:Buff添加可能是技能效果的一部分(技能内部触发),也可能是独立的
            // 如果有当前RecordAction上下文,则使用innerRecordPlayer
            // 否则使用BattleField的主RecordPlayer
            var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(battleObject.battleField);
            if (insert)
                targetPlayer.ImmediatelyPlay(buffMountAction);
            else
                targetPlayer.PlayRecord(buffMountAction);
            battleObject.battleField.PlayBuffAction(buffMountAction, insert);
        }
        else
        {
@@ -245,11 +237,7 @@
            // 原因:Buff批量添加可能是技能效果的一部分,也可能是独立的
            // 如果有当前RecordAction上下文,则使用innerRecordPlayer
            // 否则使用BattleField的主RecordPlayer
            var targetPlayer = PackageRegeditEx.GetTargetRecordPlayer(battleObject.battleField);
            if (insert)
                targetPlayer.ImmediatelyPlay(buffMountAction);
            else
                targetPlayer.PlayRecord(buffMountAction);
            battleObject.battleField.PlayBuffAction(buffMountAction, insert);
        }
        // 处理只刷新数据的buff (IsAdd == 0)
Main/System/Battle/UIComp/BattleHeroInfoBar.cs
@@ -85,6 +85,7 @@
            heroInfoContainer.SetHeroInfo(heroBattleObject.teamHero);
        }
        CleanupTips();
        InitBuff();
        
        var buffMgr = battleObject.GetBuffMgr();
        if (buffMgr != null) // 命格不有 buff
@@ -120,6 +121,14 @@
        // 打印设置护盾时的状态
        // Debug.LogError($"[BattleHeroInfoBar.SetBattleObject] 设置护盾 - curHp: {curHp}, shieldValue: {shieldValue}, maxHp: {maxHp}, shield1前: {oldShield1Value}, shield1后: {shield1Value}, shield2前: {oldShield2Value}, shield2后: {shield2Value}");
    }
    protected void InitBuff()
    {
        for (int i = 0; i < buffCells.Count; i++)
        {
            buffCells[i].SetActive(false);
        }
    }
    
    public void SetActive(bool active)
    {
@@ -128,6 +137,10 @@
    
    public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
    {
        if (battleObject.battleField is StoryBattleField)
        {
            return;
        }
        if (buffCells == null)
        {
            for (int i = 0; i < buffCells.Count; i++)