yyl
2025-10-22 b1f98c42a6b859b35c26e0722efb38a6e9c215be
Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -7,6 +7,9 @@
public class BattleObjectBuffMgr
{
    public Action onBuffChanged;
    private Dictionary<int/*EffectId*/, KeyValuePair<BattleEffectPlayer, HashSet<uint/*BuffID*/>>> buffEffectDict = new Dictionary<int, KeyValuePair<BattleEffectPlayer, HashSet<uint>>>();
    private Dictionary<uint, HB428_tagSCBuffRefresh> buffDataDict = new Dictionary<uint, HB428_tagSCBuffRefresh>();
@@ -20,7 +23,7 @@
    public void Release()
    {
        onBuffChanged = null;
    }
    public void Run()
@@ -67,6 +70,7 @@
        buffDataDict.Clear();
        battleObject.heroInfoBar.RefreshBuff(buffDataDict.Values.ToList());
        onBuffChanged?.Invoke();
    }
    //  删除buff
@@ -105,11 +109,19 @@
        //  不做表现
        battleObject.heroInfoBar.RefreshBuff(buffDataDict.Values.ToList());
        onBuffChanged?.Invoke();
    }
    //  刷新buff
    public void RefreshBuff(HB428_tagSCBuffRefresh vNetData, bool insert = false)
    {
        if (battleObject.IsDead())
        {
            Debug.LogError("给死亡对象刷新buff 检查服务器代码");
            RemoveAllBuff();
            return;
        }
        SkillConfig skillConfig = SkillConfig.Get((int)vNetData.SkillID);
        if (null == skillConfig)
@@ -131,7 +143,7 @@
        if (vNetData.IsAdd != 0)
        {
            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>(){ vNetData}, () =>
            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>() { vNetData }, () =>
            {
                if (null != skillConfig && skillConfig.BuffEffect > 0)
                {
@@ -147,13 +159,14 @@
                        BoneFollower boneFollower = effect.AddMissingComponent<BoneFollower>();
                        effect.BindBone(battleObject.motionBase.skeletonAnim, "hit");
                        HashSet<uint> buffIdSet = new HashSet<uint>();
                        buffIdSet.Add(vNetData.BuffID);
                        buffEffectDict.Add(skillConfig.BuffEffect, new KeyValuePair<BattleEffectPlayer, HashSet<uint>>(effect, buffIdSet));
                    }
                }
                battleObject.heroInfoBar.RefreshBuff(buffDataDict.Values.ToList());
                onBuffChanged?.Invoke();
            });
            if (insert)
            {
@@ -168,8 +181,14 @@
        {
            //  已经存在的buff 刷新
            battleObject.heroInfoBar.RefreshBuff(buffDataDict.Values.ToList());
            onBuffChanged?.Invoke();
        }
    }
    public List<HB428_tagSCBuffRefresh> GetBuffList()
    {
        return buffDataDict.Values.ToList();
    }
    public void InsertBuff(HB428_tagSCBuffRefresh vNetData)
    {