using FL.Data.Items; using System.Collections.Generic; using XGame.Database; using XGame.Framework.Network; namespace FL.Network { public class ActEquipLsListPushCtrl : MsgController { protected override void OnProcess(ActEquipLsListPush message, object context) { //XGame.Log.Info("消息201501 ActEquipLsListPushCtrl"); if (message?.list?.Count > 0) { bool bNew = false; HashSet changEquipIdList = new HashSet(); foreach (var item in message.list) { changEquipIdList.Add(item.xhid); EquipAttr equipData = EquipData.Instance.GetBagEquipItem(item.xhid); if (equipData == null) { // 非更换装备,新增掉落装备数据 equipData = new EquipAttr(); bNew = true; } else { bNew = false; } equipData.Init(EquipmentTableRepo.Get(item.equipId), item.xhid); equipData.Level = item.level; equipData.FightingPower = item.power; equipData.Attributes.Clear(); foreach (var attr in item.eps) { equipData.Attributes.SetValue((EAttributeType)attr.epid, attr.val); } if (bNew) { EquipData.Instance.AddTemporaryEquip(equipData); } EquipData.Instance.UpdataBagEquipData(equipData); } if (changEquipIdList.Count > 0) EventSingle.Instance.Notify(EventDefine.WearEquipSucess, changEquipIdList); } } } }