hch
10 天以前 dc7922d80c1d133b6261b8af1d521567d2c0a35d
Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -94,23 +94,24 @@
    //  删除buff
    public void RemoveBuff(HB429_tagSCBuffDel vNetData)
    {
        HB428_tagSCBuffRefresh buffData = null;
        bool isRemove = false;
        if (buffDataDict.TryGetValue(vNetData.BuffID, out buffData))
        {
            isRemove = true;
            buffDataDict.Remove(vNetData.BuffID);
        }
        if (!isRemove)
        {
            return;
        }
        var tempvNetData = vNetData;
        BuffUnmountAction buffRemoveAction = new BuffUnmountAction(battleObject.battleField, new List<HB429_tagSCBuffDel>() { vNetData }, () =>
        {
            HB428_tagSCBuffRefresh buffData = null;
            bool isRemove = false;
            if (buffDataDict.TryGetValue(tempvNetData.BuffID, out buffData))
            {
                isRemove = true;
                buffDataDict.Remove(tempvNetData.BuffID);
            }
            if (!isRemove)
            {
                return;
            }
            bool isRemoveEffect = false;
            int remainCnt = -1;
@@ -143,7 +144,7 @@
                if (buffGroupStateDict[BattleConst.HardControlGroup.ToString()].Contains(skillConfig.BuffState))
                {
                    BattleDebug.LogError("[BattleObjectBuffMgr]移除对象 " + battleObject.ObjID + " 的buff id " + vNetData.BuffID + " BuffState is " + skillConfig.BuffState + " 是否删除了字典内的内容 " + isRemove.ToString() + " 是否删除了特效 " + isRemoveEffect.ToString() + " pack uid 是 " + vNetData.packUID);
                    BattleDebug.LogError("[BattleObjectBuffMgr]移除对象 " + battleObject.ObjID + " 的buff id " + tempvNetData.BuffID + " BuffState is " + skillConfig.BuffState + " 是否删除了字典内的内容 " + isRemove.ToString() + " 是否删除了特效 " + isRemoveEffect.ToString() + " pack uid 是 " + vNetData.packUID);
                }
            }
@@ -173,21 +174,21 @@
            return;
        }
        // bool isNew = false;
        if (buffDataDict.ContainsKey(vNetData.BuffID))
        {
            buffDataDict[vNetData.BuffID] = vNetData;
        }
        else
        {
            // isNew = true;
            buffDataDict.Add(vNetData.BuffID, vNetData);
        }
        var tempvNetData = vNetData;
        if (vNetData.IsAdd != 0)
        if (tempvNetData.IsAdd != 0)
        {
            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>() { vNetData }, () =>
            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>() { tempvNetData }, () =>
            {
                if (buffDataDict.ContainsKey(tempvNetData.BuffID))
                {
                    buffDataDict[tempvNetData.BuffID] = tempvNetData;
                }
                else
                {
                    buffDataDict.Add(tempvNetData.BuffID, tempvNetData);
                }
                if (battleObject.IsDead())
                {
                    return;
@@ -198,7 +199,7 @@
                    //  已经存在相同的buff特效
                    if (buffEffectDict.TryGetValue(skillConfig.BuffEffect, out KeyValuePair<BattleEffectPlayer, HashSet<uint>> pair))
                    {
                        pair.Value.Add(vNetData.BuffID);
                        pair.Value.Add(tempvNetData.BuffID);
                    }
                    else
                    {
@@ -209,7 +210,7 @@
                        effect.BindBone(battleObject.motionBase.skeletonAnim, effect.effectConfig.nodeName);
                        HashSet<uint> buffIdSet = new HashSet<uint>();
                        buffIdSet.Add(vNetData.BuffID);
                        buffIdSet.Add(tempvNetData.BuffID);
                        buffEffectDict.Add(skillConfig.BuffEffect, new KeyValuePair<BattleEffectPlayer, HashSet<uint>>(effect, buffIdSet));
                    }
@@ -217,7 +218,7 @@
                if (skillConfig != null && buffGroupStateDict[BattleConst.HardControlGroup.ToString()].Contains(skillConfig.BuffState))
                {
                    BattleDebug.LogError("[BattleObjectBuffMgr]添加对象 " + battleObject.ObjID + " 的buff id " + vNetData.BuffID + " pack uid 是 " + vNetData.packUID + " BuffState is " + skillConfig.BuffState);
                    BattleDebug.LogError("[BattleObjectBuffMgr]添加对象 " + battleObject.ObjID + " 的buff id " + tempvNetData.BuffID + " pack uid 是 " + tempvNetData.packUID + " BuffState is " + skillConfig.BuffState);
                }
                OnBuffChanged();
@@ -233,6 +234,14 @@
        }
        else
        {
            if (buffDataDict.ContainsKey(tempvNetData.BuffID))
            {
                buffDataDict[tempvNetData.BuffID] = tempvNetData;
            }
            else
            {
                buffDataDict.Add(tempvNetData.BuffID, tempvNetData);
            }
            //  已经存在的buff 刷新
            OnBuffChanged();
        }