BonusBoxDetailView.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using UI.CommonGame;
  2. using System.Collections.Generic;
  3. using FairyGUI;
  4. namespace GFGGame
  5. {
  6. public delegate int GetBoxBonusStatusCall();
  7. public delegate void GetBoxBonusCall();
  8. public class BonusBoxDetailView : BaseWindow
  9. {
  10. private UI_BonusBoxDetailUI _ui;
  11. private List<ItemData> _bonusList;
  12. private GetBoxBonusStatusCall _getStatusCall;
  13. private GetBoxBonusCall _getBonusCall;
  14. public override void Dispose()
  15. {
  16. if (_ui != null)
  17. {
  18. _ui.Dispose();
  19. _ui = null;
  20. }
  21. base.Dispose();
  22. }
  23. protected override void OnInit()
  24. {
  25. base.OnInit();
  26. _ui = UI_BonusBoxDetailUI.Create();
  27. this.viewCom = _ui.target;
  28. this.modal = true;
  29. this.viewCom.Center();
  30. _ui.m_listBonus.itemRenderer = UpdateBonusItem;
  31. // _ui.m_listBonus.onClickItem.Add(OnClickListBonusItem);
  32. _ui.m_btnSure.onClick.Add(OnClickBtnSure);
  33. }
  34. protected override void OnShown()
  35. {
  36. base.OnShown();
  37. object[] datas = this.viewData as object[];
  38. _bonusList = datas[0] as List<ItemData>;
  39. _getStatusCall = datas[1] as GetBoxBonusStatusCall;
  40. _getBonusCall = datas[2] as GetBoxBonusCall;
  41. UpdateBtnStatus();
  42. if (_bonusList != null)
  43. {
  44. _ui.m_listBonus.numItems = _bonusList.Count;
  45. }
  46. else
  47. {
  48. _ui.m_listBonus.numItems = 0;
  49. }
  50. if (_ui.m_listBonus.numItems > 4)
  51. {
  52. _ui.m_listBonus.columnGap = 40;
  53. }
  54. else
  55. {
  56. _ui.m_listBonus.columnGap = 60;
  57. }
  58. _ui.m_listBonus.ResizeToFit();
  59. _ui.target.Center();
  60. }
  61. protected override void OnHide()
  62. {
  63. base.OnHide();
  64. }
  65. private void OnClickListBonusItem(EventContext context)
  66. {
  67. GComponent item = context.data as GComponent;
  68. int itemId = (int)item.data;
  69. GoodsItemTipsController.ShowItemTips(itemId);
  70. }
  71. private void UpdateBtnStatus()
  72. {
  73. int status = _getStatusCall();
  74. switch (status)
  75. {
  76. case ConstBonusStatus.CAN_GET:
  77. _ui.m_btnSure.text = "领取";
  78. break;
  79. case ConstBonusStatus.CAN_NOT_GET:
  80. _ui.m_btnSure.text = "确定";
  81. break;
  82. case ConstBonusStatus.GOT:
  83. _ui.m_btnSure.text = "已领取";
  84. break;
  85. }
  86. }
  87. private void OnClickBtnSure()
  88. {
  89. int status = _getStatusCall();
  90. if (status == ConstBonusStatus.CAN_GET)
  91. {
  92. _getBonusCall();
  93. }
  94. this.Hide();
  95. }
  96. private void UpdateBonusItem(int index, GObject item)
  97. {
  98. ItemData itemData = _bonusList[index] as ItemData;
  99. // ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
  100. // UI_BonusItem listItem = UI_BonusItem.Proxy(item);
  101. // listItem.m_goodsItem.m_txtNumber.text = "x" + itemData.num;
  102. // listItem.m_txtOwned.SetVar("count", "" + ItemDataManager.GetItemNum(itemData.id)).FlushVars();
  103. // listItem.m_goodsItem.m_txtName.text = itemCfg.name;
  104. // listItem.m_goodsItem.m_iconItem.m_icon.url = ResPathUtil.GetIconPath(itemCfg);
  105. // listItem.m_iconBonusOnce.visible = itemData.isOnceBonus;
  106. // RarityIconController.UpdateRarityIcon(listItem.m_goodsItem.m_iconItem.m_rarity, itemData.id, true);
  107. // listItem.target.data = itemData.id;
  108. if (item.data == null)
  109. {
  110. item.data = new ItemView(item as GComponent);
  111. }
  112. (item.data as ItemView).SetData(itemData);
  113. }
  114. }
  115. }