ActEquipLsListPushCtrl.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. bool bNew = false;
  15. HashSet<long> changEquipIdList = new HashSet<long>();
  16. foreach (var item in message.list)
  17. {
  18. changEquipIdList.Add(item.xhid);
  19. EquipAttr equipData = EquipData.Instance.GetBagEquipItem(item.xhid);
  20. if (equipData == null)
  21. {
  22. // 非更换装备,新增掉落装备数据
  23. equipData = new EquipAttr();
  24. bNew = true;
  25. }
  26. else
  27. {
  28. bNew = false;
  29. }
  30. equipData.Init(EquipmentTableRepo.Get(item.equipId), item.xhid);
  31. equipData.Level = item.level;
  32. equipData.FightingPower = item.power;
  33. equipData.Attributes.Clear();
  34. foreach (var attr in item.eps)
  35. {
  36. equipData.Attributes.SetValue((EAttributeType)attr.epid, attr.val);
  37. }
  38. if (bNew)
  39. {
  40. EquipData.Instance.AddTemporaryEquip(equipData);
  41. }
  42. EquipData.Instance.UpdataBagEquipData(equipData);
  43. }
  44. if (changEquipIdList.Count > 0)
  45. EventSingle.Instance.Notify(EventDefine.WearEquipSucess, changEquipIdList);
  46. }
  47. }
  48. }
  49. }