ItemView.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. using ET;
  2. using FairyGUI;
  3. using UnityEngine;
  4. namespace GFGGame
  5. {
  6. public class ItemView
  7. {
  8. private GComponent _obj;
  9. private GComponent _item;
  10. private GLoader _loaIcon;
  11. private GLoader _loaRarity;
  12. private GTextField _txtName;
  13. private GTextField _txtCount;
  14. // private GImage _imgGot;
  15. private GGroup _grpGot;
  16. private GImage _imgNotHas;
  17. private GImage _imgHas;
  18. private GImage _imgShouTong;
  19. private GImage _imgNum;
  20. private Controller _qualityType;
  21. private Controller _scaleType;
  22. private Controller _buttonType;
  23. // private GGroup _grpCount;
  24. private bool _showTips = true;
  25. private ItemData _itemData;
  26. public ItemView(GComponent obj)
  27. {
  28. _obj = obj;
  29. _item = obj.GetChild("comItemIcon").asCom;
  30. _loaIcon = _item.GetChild("loaIcon") as GLoader;
  31. _loaRarity = _item.GetChild("loaRarity") as GLoader;
  32. _txtName = obj.GetChild("txtName") as GTextField;
  33. _txtCount = _item.GetChild("txtCount") as GTextField;
  34. // _imgGot = obj.GetChild("imgGot") as GImage;
  35. _grpGot = _item.GetChild("grpGot") as GGroup;
  36. _imgNotHas = _item.GetChild("imgNotHas") as GImage;
  37. _imgHas = _item.GetChild("imgHas") as GImage;
  38. _imgShouTong = _item.GetChild("imgShowTong") as GImage;
  39. _imgNum = _item.GetChild("imgNum") as GImage;
  40. _qualityType = _item.GetController("QualityType") as Controller;
  41. _scaleType = _item.GetController("ScaleType") as Controller;
  42. _buttonType = _item.GetController("ButtonType") as Controller;
  43. // _grpCount = obj.GetChild("grpCount") as GGroup;
  44. // AddClickListener();
  45. _item.onClick.Remove(AddClickListener);
  46. _item.onClick.Add(AddClickListener);
  47. }
  48. public void Dispose()
  49. {
  50. _item.onClick.Remove(AddClickListener);
  51. _item.Dispose();
  52. }
  53. private void AddClickListener()
  54. {
  55. if (!ShowTips) return;
  56. GoodsItemTipsController.ShowItemTips(_itemData.id);
  57. }
  58. public void SetData(ItemData itemData)
  59. {
  60. _itemData = itemData;
  61. UpdateView();
  62. }
  63. private void UpdateView()
  64. {
  65. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemData.id);
  66. if (itemCfg == null)
  67. {
  68. Log.Error($"使用了一个不存在的物品 {_itemData.id}!");
  69. return;
  70. }
  71. _loaIcon.url = string.IsNullOrEmpty(itemCfg.res) ? "" : ResPathUtil.GetIconPath(itemCfg);
  72. RarityIconController.UpdateRarityIcon(_loaRarity, _itemData.id, false);
  73. // _imgGot.visible = false;
  74. _txtName.visible = false;
  75. _grpGot.visible = false;
  76. _imgNotHas.visible = false;
  77. _imgHas.visible = false;
  78. _imgShouTong.visible = false;
  79. // _grpCount.visible = true;
  80. _showTips = true;
  81. _txtCount.visible = true;
  82. _imgNum.visible = true;
  83. _txtName.text = itemCfg.name;
  84. string strNum = "";
  85. if(_itemData.numRandomeMin > 0 && _itemData.num > _itemData.numRandomeMin)
  86. strNum = string.Format("{0}~{1}", _itemData.numRandomeMin, _itemData.num);
  87. else
  88. strNum = string.Format("{0}", _itemData.num);
  89. _txtCount.text = strNum;
  90. if (itemCfg.rarity > 0)
  91. _qualityType.selectedIndex = itemCfg.rarity - 1;
  92. }
  93. public ItemData ItemData
  94. {
  95. get
  96. {
  97. return _itemData;
  98. }
  99. }
  100. public GComponent GetGComponentObj
  101. {
  102. get
  103. {
  104. return _obj;
  105. }
  106. }
  107. /// <summary>
  108. /// “已领取”显示状态
  109. /// </summary>
  110. /// <value></value>
  111. public bool GrpGotVisible
  112. {
  113. get
  114. {
  115. return _grpGot.visible;
  116. }
  117. set
  118. {
  119. _grpGot.visible = value;
  120. }
  121. }
  122. /// <summary>
  123. /// 左右上角小按钮显示状态
  124. /// </summary>
  125. /// <value></value>
  126. public int ButtonTypeVisible
  127. {
  128. get
  129. {
  130. return _buttonType.selectedIndex;
  131. }
  132. set
  133. {
  134. _buttonType.selectedIndex = value;
  135. }
  136. }
  137. /// “已获得”显示状态
  138. /// </summary>
  139. /// <value></value>
  140. public bool ImgHasVisible
  141. {
  142. get
  143. {
  144. return _imgHas.visible;
  145. }
  146. set
  147. {
  148. _imgHas.visible = value;
  149. }
  150. }
  151. /// <summary>
  152. /// “未获得”显示状态
  153. /// </summary>
  154. /// <value></value>
  155. public bool ImgNotGotVisible
  156. {
  157. get
  158. {
  159. return _imgNotHas.visible;
  160. }
  161. set
  162. {
  163. _imgNotHas.visible = value;
  164. }
  165. }
  166. /// <summary>
  167. /// <summary>
  168. /// "首通奖励"显示状态
  169. /// </summary>
  170. /// <value></value>
  171. public bool ImgShouTongVisable
  172. {
  173. get
  174. {
  175. return _imgShouTong.visible;
  176. }
  177. set
  178. {
  179. _imgShouTong.visible = value;
  180. }
  181. }
  182. /// <summary>
  183. /// 显示名字
  184. /// </summary>
  185. /// <value></value>
  186. public bool ShowName
  187. {
  188. set
  189. {
  190. _txtName.visible = value;
  191. }
  192. }
  193. /// <summary>
  194. /// 显示稀有度
  195. /// </summary>
  196. /// <value></value>
  197. public bool ShowRarity
  198. {
  199. set
  200. {
  201. _loaRarity.visible = value;
  202. }
  203. }
  204. // /// <summary>
  205. // /// 显示数量
  206. // /// </summary>
  207. // /// <value></value>
  208. // public bool ShowCount
  209. // {
  210. // set
  211. // {
  212. // _grpCount.visible = value;
  213. // }
  214. // }
  215. /// <summary>
  216. /// 展示详情tips
  217. /// </summary>
  218. /// <value></value>
  219. public bool ShowTips
  220. {
  221. get
  222. {
  223. return _showTips;
  224. }
  225. set
  226. {
  227. _showTips = value;
  228. }
  229. }
  230. public float SetComItemScale
  231. {
  232. set
  233. {
  234. _item.SetScale(value, value);
  235. }
  236. }
  237. public float SetTxtCountScale
  238. {
  239. set
  240. {
  241. _txtCount.SetScale(value, value);
  242. _imgNum.SetScale(value, value);
  243. }
  244. }
  245. public float SetTxtNameScale
  246. {
  247. set
  248. {
  249. _txtName.SetScale(value, value);
  250. }
  251. }
  252. public void SetTxtCountPos(int x, int y)
  253. {
  254. _txtCount.SetPosition(x, y, 0);
  255. }
  256. public bool ShowTxtCount
  257. {
  258. set
  259. {
  260. _txtCount.visible = value;
  261. _imgNum.visible = value;
  262. }
  263. }
  264. public void ChangeTxtCountStyle()
  265. {
  266. _txtCount.text = string.Format("{0}", _itemData.num);
  267. }
  268. public void SetTxtNamePos(int x, int y)
  269. {
  270. _txtName.SetPosition(x, y, 0);
  271. }
  272. }
  273. }