ItemInfo.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Core.Utility;
  2. using Excel2Json;
  3. using Fort23.UTool;
  4. using GameLogic.Equipment;
  5. namespace GameLogic.Bag
  6. {
  7. public class ItemInfo
  8. {
  9. public readonly int itemID;
  10. // public int itemID;
  11. public string guid;
  12. public EncryptionLong count;
  13. public ItemConfig config;
  14. /// <summary>
  15. /// 非道具时会被初始话,比如掉落的的装备等级,稀有度等等
  16. /// </summary>
  17. public DropItemConfig dropItemConfig;
  18. public EquipmentInfo eqInfo;
  19. public ItemInfo(int itemID, long count = 0)
  20. {
  21. this.itemID = itemID;
  22. guid = itemID.ToString();
  23. this.count = (EncryptionLong)count;
  24. config = ConfigComponent.Instance.Get<ItemConfig>(itemID);
  25. }
  26. public ItemInfo(DropItemConfig dropItemConfig)
  27. {
  28. this.dropItemConfig = dropItemConfig;
  29. }
  30. public ItemInfo(AccountFileInfo.ItemData itemData)
  31. {
  32. itemID = itemData.itemId;
  33. count = (EncryptionLong)itemData.itemCount;
  34. config = ConfigComponent.Instance.Get<ItemConfig>(itemID);
  35. guid = itemData.guid;
  36. if (itemData.eqData != null && itemData.eqData.zyEqId != 0)
  37. {
  38. eqInfo = new EquipmentInfo(itemData.eqData, this);
  39. //TODO 如果数量=0,且是穿了的装备,设置数量=1(仅初始化生效),感觉不是很好,看后面有新思路没
  40. if (count.Value == 0 && eqInfo.isWear)
  41. {
  42. count.Value = 1;
  43. }
  44. }
  45. }
  46. /// <summary>
  47. /// 是一个装备吗
  48. /// </summary>
  49. /// <returns></returns>
  50. public bool IsEquipItem()
  51. {
  52. if (eqInfo != null && eqInfo.basicEquipConfig.ID > 0)
  53. {
  54. return true;
  55. }
  56. return false;
  57. }
  58. public AccountFileInfo.ItemData ToItemData()
  59. {
  60. AccountFileInfo.ItemData itemData = new AccountFileInfo.ItemData(itemID, count.Value, guid);
  61. if (eqInfo != null)
  62. {
  63. itemData.eqData = eqInfo.ToData();
  64. }
  65. return itemData;
  66. }
  67. }
  68. }