| | |
| | | { |
| | | HB428_tagSCBuffRefresh buffData = null; |
| | | |
| | | |
| | | bool isRemove = false; |
| | | |
| | | if (buffDataDict.TryGetValue(tempvNetData.BuffID, out buffData)) |
| | |
| | | return; |
| | | } |
| | | |
| | | BattleObject buffCaster = battleObject.battleField.battleObjMgr.GetBattleObject((int)buffData.OwnerID); |
| | | |
| | | if (null == buffCaster) |
| | | { |
| | | Debug.LogError("找不到buff caster 对象 id is " + buffData.OwnerID + " buff id is " + tempvNetData.BuffID + " pack uid is " + vNetData.packUID); |
| | | } |
| | | |
| | | bool isRemoveEffect = false; |
| | | |
| | | int remainCnt = -1; |
| | | |
| | | if (buffData != null) |
| | | if (buffData != null && buffCaster != null) |
| | | { |
| | | SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID); |
| | | SkillSkinConfig skillSkinConfig = null; |
| | | if (buffCaster is HeroBattleObject heroBattleObject) |
| | | { |
| | | skillSkinConfig = skillConfig.GetSkillSkinConfig(heroBattleObject.teamHero.SkinID); |
| | | } |
| | | else |
| | | { |
| | | skillSkinConfig = skillConfig.GetOriginSkinConfig(); |
| | | } |
| | | |
| | | if (null == skillConfig || skillConfig.BuffEffect <= 0) |
| | | if (null == skillConfig || skillSkinConfig.BuffEffect <= 0) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | KeyValuePair<BattleEffectPlayer, HashSet<uint>> effectPair; |
| | | |
| | | if (buffEffectDict.TryGetValue(skillConfig.BuffEffect, out effectPair)) |
| | | if (buffEffectDict.TryGetValue(skillSkinConfig.BuffEffect, out effectPair)) |
| | | { |
| | | effectPair.Value.Remove(buffData.BuffID); |
| | | |
| | |
| | | { |
| | | // 没有这个buff了 |
| | | isRemoveEffect = true; |
| | | battleObject.battleField.battleEffectMgr.RemoveEffect(skillConfig.BuffEffect, effectPair.Key); |
| | | buffEffectDict.Remove(skillConfig.BuffEffect); |
| | | battleObject.battleField.battleEffectMgr.RemoveEffect(skillSkinConfig.BuffEffect, effectPair.Key); |
| | | buffEffectDict.Remove(skillSkinConfig.BuffEffect); |
| | | } |
| | | } |
| | | |
| | |
| | | if (battleObject.IsDead()) |
| | | return; |
| | | |
| | | if (skillConfig.BuffEffect > 0) |
| | | BattleObject buffCaster = battleObject.battleField.battleObjMgr.GetBattleObject((int)buffRefresh.OwnerID); |
| | | |
| | | if (null == buffCaster) |
| | | { |
| | | if (buffEffectDict.TryGetValue(skillConfig.BuffEffect, out var pair)) |
| | | Debug.LogError("找不到buff caster 对象 id is " + buffRefresh.OwnerID + " buff id is " + buffRefresh.BuffID + " pack uid is " + buffRefresh.packUID); |
| | | } |
| | | |
| | | SkillSkinConfig skillSkinConfig = null; |
| | | |
| | | if (buffCaster is HeroBattleObject heroBattleObject) |
| | | { |
| | | skillSkinConfig = skillConfig.GetSkillSkinConfig(heroBattleObject.teamHero.SkinID); |
| | | } |
| | | else |
| | | { |
| | | skillSkinConfig = skillConfig.GetOriginSkinConfig(); |
| | | } |
| | | |
| | | |
| | | if (skillSkinConfig.BuffEffect > 0) |
| | | { |
| | | if (buffEffectDict.TryGetValue(skillSkinConfig.BuffEffect, out var pair)) |
| | | { |
| | | pair.Value.Add(buffRefresh.BuffID); |
| | | } |
| | | else |
| | | { |
| | | BattleEffectPlayer effect = battleObject.battleField.battleEffectMgr |
| | | .PlayEffect(battleObject, skillConfig.BuffEffect, battleObject.GetRectTransform(), battleObject.Camp, battleObject.GetModelScale()); |
| | | .PlayEffect(battleObject, skillSkinConfig.BuffEffect, battleObject.GetRectTransform(), battleObject.Camp, battleObject.GetModelScale()); |
| | | |
| | | effect.BindBone(battleObject, effect.effectConfig.nodeName); |
| | | |
| | | var buffIdSet = new HashSet<uint> { buffRefresh.BuffID }; |
| | | buffEffectDict.Add( |
| | | skillConfig.BuffEffect, |
| | | skillSkinConfig.BuffEffect, |
| | | new KeyValuePair<BattleEffectPlayer, HashSet<uint>>(effect, buffIdSet)); |
| | | } |
| | | } |