ActEquipLsListPushCtrl.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using FL.Data.Items;
  2. using System.Collections.Generic;
  3. using XGame.Database;
  4. using XGame.Framework.Network;
  5. namespace FL.Network
  6. {
  7. public class ActEquipLsListPushCtrl : MsgController<ActEquipLsListPush>
  8. {
  9. protected override void OnProcess(ActEquipLsListPush message, object context)
  10. {
  11. //XGame.Log.Info("消息201501 ActEquipLsListPushCtrl");
  12. if (message?.list?.Count > 0)
  13. {
  14. HashSet<long> changEquipIdList = new HashSet<long>();
  15. foreach (var item in message.list)
  16. {
  17. changEquipIdList.Add(item.xhid);
  18. EquipItem equipData = EquipData.Instance.GetBagEquipItem(item.xhid);
  19. if (equipData == null)
  20. {
  21. // 非更换装备,新增掉落装备数据
  22. EquipData.Instance.AddTemporaryEquip(EquipData.Instance.GetDropEquipData(item));
  23. }
  24. else
  25. {
  26. equipData.Init(EquipmentTableRepo.Get(item.equipId), equipData.Id);
  27. equipData.Level = item.level;
  28. equipData.FightingPower = EquipData.Instance.GetEquipPower(item.eps);
  29. equipData.Attributes.Clear();
  30. foreach (var attr in item.eps)
  31. {
  32. equipData.Attributes.SetValue((EAttributeType)attr.epid, attr.val);
  33. }
  34. EquipData.Instance.UpdataBagEquipData(equipData);
  35. }
  36. }
  37. if (changEquipIdList.Count > 0)
  38. EventSingle.Instance.Notify(EventDefine.WearEquipSucess, changEquipIdList);
  39. }
  40. }
  41. }
  42. }