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) { HashSet changEquipIdList = new HashSet(); foreach (var item in message.list) { changEquipIdList.Add(item.xhid); EquipItem equipData = EquipData.Instance.GetBagEquipItem(item.xhid); if (equipData == null) { // 非更换装备,新增掉落装备数据 EquipData.Instance.AddTemporaryEquip(EquipData.Instance.GetDropEquipData(item)); } else { equipData.Init(EquipmentTableRepo.Get(item.equipId), equipData.Id); equipData.Level = item.level; equipData.FightingPower = EquipData.Instance.GetEquipPower(item.eps); equipData.Attributes.Clear(); foreach (var attr in item.eps) { equipData.Attributes.SetValue((EAttributeType)attr.epid, attr.val); } EquipData.Instance.UpdataBagEquipData(equipData); } } if (changEquipIdList.Count > 0) EventSingle.Instance.Notify(EventDefine.WearEquipSucess, changEquipIdList); } } } }