BonusBoxDetailView.cs 4.0 KB

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