ItemVo.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.UI;
  4. using System.Collections.Generic;
  5. using System;
  6. using System.Linq;
  7. /// <summary>
  8. /// 道具Vo
  9. /// </summary>
  10. public class ItemVo
  11. {
  12. /// <summary>
  13. /// 这个物品在玩家身上唯一的id
  14. /// </summary>
  15. public string uid { set; get; }
  16. /// <summary>
  17. /// 当前数量
  18. /// </summary>
  19. public int count { set; get; }
  20. /// <summary>
  21. /// 查询用的id
  22. /// </summary>
  23. public string typeId { set; get; }
  24. /// <summary>
  25. /// 是否是新道具 true:新标志
  26. /// </summary>
  27. public bool isNew
  28. {
  29. get
  30. {
  31. if (this.nMo.subType == (int)EItemSubType.Weapon)
  32. {
  33. List<string> weaponRecord = UserProxy.Instance.player.collectEquip.weaponRecord;
  34. if (weaponRecord.Contains(this.uid))
  35. {
  36. return true;
  37. }
  38. }else if (this.nMo.subType == (int)EItemSubType.YanLing)
  39. {
  40. List<string> record = UserProxy.Instance.player.collectYanling.yanlingRecord;
  41. if (record.Contains(this.uid))
  42. {
  43. return true;
  44. }
  45. }
  46. else
  47. {
  48. List<string> record = UserProxy.Instance.player.collectItem.itemRecord;
  49. if (record.Contains(this.typeId))
  50. {
  51. return true;
  52. }
  53. }
  54. return false;
  55. }
  56. }
  57. #region 属性(Get)方法
  58. /// <summary>
  59. /// 模板数据
  60. /// </summary>
  61. public sm_item_base nMo => sm_item_base.GetMoById(int.Parse(this.typeId));
  62. /// <summary>
  63. /// 是否武器类道具
  64. /// </summary>
  65. public bool IsWeapon => null != nMo && nMo.subType == (int)EItemSubType.Weapon;
  66. /// <summary>
  67. /// 是否是言灵
  68. /// </summary>
  69. public bool IsYanLing => null != nMo && nMo.subType == (int)EItemSubType.YanLing;
  70. #endregion
  71. #region 对外提供的某装备的额外属性加成, 静态方法....
  72. /// <summary>
  73. /// 解析逗号+分号分隔的道具字符串(id,num;id,num;....)
  74. /// </summary>
  75. /// <param name="content"></param>
  76. /// <returns></returns>
  77. public static List<ItemVo> ParsItemContentStr(string content)
  78. {
  79. var li = new List<ItemVo>();
  80. if (!string.IsNullOrEmpty(content.Trim()))
  81. {
  82. content.Split(';').ToList().ForEach(s =>
  83. {
  84. var arr = s.Split(',');
  85. var itemId = arr[0];
  86. var num = int.Parse(arr[1]);
  87. li.Add(new ItemVo() { typeId = itemId, count = num });
  88. });
  89. }
  90. return li;
  91. }
  92. #endregion
  93. }
  94. /// <summary>
  95. /// 道具2级分类
  96. /// </summary>
  97. public enum EItemSubType
  98. {
  99. None = -1,
  100. EXP = 0, // 指挥官经验
  101. Gold = 1, // 金币
  102. Gem = 2, // 钻石
  103. PVPCoin = 5, // 竞技场奖励竞技币
  104. ActivePoint = 6, // 每日任务活跃点奖励
  105. Weapon = 101, // 武器
  106. Segment = 201, // 英雄碎片
  107. YanlingBookSegement = 202, // 言灵书碎片
  108. BuffCard = 301, // 消耗品 | 经验卡---废弃
  109. Package = 302, // 消耗品 | 礼包----废弃
  110. Pill = 303, // 药品(体力)----战斗里使用了
  111. Gene = 311, // 基础材料 | 基因(角色经验丹)
  112. StrengthStone = 312, // 基础材料 | 强化石(言灵强化)
  113. StrengthStone_Wuqi = 313, // 基础材料 | 强化石(用于武器强化)
  114. AdvancedStone = 321, // 进阶材料 | 进阶石(用于武器、言灵升阶)--改成 合成材料了
  115. AdvancedFineStone = 322, // 进阶材料 | 进阶 精华石(用于武器、言灵的升阶)
  116. ForgingMaterial = 323, // 锻造材料 | 用于武器言灵锻造
  117. Hunqi = 324, //魂器
  118. ElementTuPoMaterial = 325,//元素突破材料
  119. professionTuPoMaterial = 326,//职业突破材料
  120. YanLingAdvancedStone = 327,//言灵的突破石
  121. YanLingAdvancedMaterial = 328,//言灵的突破材料
  122. WuqiAdvancedStone = 329, //武器的突破石
  123. WuqiAdvancedMaterial = 330, //武器的突破材料
  124. Box = 331, // 活动道具 | 宝箱
  125. commonWishCoupons = 332, //活动道具 | 普通祈愿券
  126. ActiveWishCoupons = 333, //活动道具 | 活动祈愿券
  127. // 备注
  128. BattleItem_HP = 341, // 战场道具 | 血瓶
  129. BattleItem_MP = 342, // 战场道具 | 蓝瓶
  130. BattleItem_Box = 343, // 战场道具 | 箱子
  131. TownPortalScroll =344, // 回城卷轴
  132. YanlingBook = 351, // 言灵召唤书
  133. //...合成素材等...
  134. YanLing = 401, // 言灵
  135. Package_limit = 501, // 限购礼包
  136. Package_First = 502, // 首冲礼包
  137. Package_limitTs = 503, // 限时礼包
  138. Package_Daliy = 504, // 每日特惠礼包
  139. TaskCard = 601, // 任务卡 default(0)
  140. Gemstone = 701, //宝石
  141. GemTuZhi =702, //设计图纸
  142. GemMaterial = 703, //宝石辅助材料
  143. }
  144. //}
  145. /// <summary>
  146. /// 装备(武器)2019年11月26日14:55:36 (暂时定这些字段,后面再改)
  147. /// </summary>
  148. [Obsolete("改用UserEquipmentVo了.2020年1月2日")]
  149. public partial class EquipeMentVo : ItemVo
  150. {
  151. /// <summary>
  152. /// 当前星级
  153. /// </summary>
  154. public int starLevel;
  155. /// <summary>
  156. /// 当前星级上限
  157. /// </summary>
  158. public int maxStar;
  159. /// <summary>
  160. /// 当前等级
  161. /// </summary>
  162. public new int level;
  163. /// <summary>
  164. /// 当前经验
  165. /// </summary>
  166. public int exp;
  167. /// <summary>
  168. /// 是否锁定(锁定后不会被误卖)
  169. /// </summary>
  170. public int isLocked;
  171. /// <summary>
  172. /// 是否使用中(装备)
  173. /// </summary>
  174. public int WhoIsUsing;
  175. [Obsolete("武器上此字段不可用")]
  176. public new int count = 1;
  177. }