DailyLoginView.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System.Collections.Generic;
  2. using FairyGUI;
  3. using UI.DailyLogin;
  4. using UnityEngine;
  5. namespace GFGGame
  6. {
  7. public class DailyLoginView : BaseWindow
  8. {
  9. private UI_DailyLoginUI _ui;
  10. private List<DailyLoginCfg> _cfgs;
  11. public override void Dispose()
  12. {
  13. base.Dispose();
  14. }
  15. protected override void OnInit()
  16. {
  17. base.OnInit();
  18. packageName = UI_DailyLoginUI.PACKAGE_NAME;
  19. _ui = UI_DailyLoginUI.Create();
  20. this.viewCom = _ui.target;
  21. this.modal = true;
  22. this.viewCom.Center();
  23. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  24. _ui.m_list.itemRenderer = ListItemRender;
  25. _ui.m_loaIcon.onClick.Add(OnListItemClick);
  26. }
  27. protected override void OnShown()
  28. {
  29. base.OnShown();
  30. ViewManager.SetMaskAlpha(0.8f);
  31. _cfgs = DailyLoginCfgArray.Instance.GetCfgs("1");
  32. _ui.m_list.numItems = _cfgs.Count;
  33. _ui.m_loaIcon.url = "ui://DailyLogin/yzhd_dyt_7";
  34. _ui.m_loaIcon.data = _cfgs[_cfgs.Count - 1];
  35. }
  36. protected override void OnHide()
  37. {
  38. base.OnHide();
  39. ViewManager.SetMaskAlpha(0.6f);
  40. }
  41. private void ListItemRender(int index, GObject obj)
  42. {
  43. DailyLoginCfg cfg = _cfgs[index];
  44. UI_ListItem item = UI_ListItem.Proxy(obj);
  45. item.m_loaBg.url = string.Format("ui://DailyLogin/yzhd_dyt_{0}", cfg.id);
  46. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.rewardsArr[0][0]);
  47. item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
  48. item.m_txtName.text = itemCfg.name;
  49. item.m_txtNum.text = "x" + NumberUtil.ChangeNumberUnit(cfg.rewardsArr[0][1], 10000);
  50. int dailyLoginId = ActivityDataManager.Instance.dailyLoginId;
  51. item.m_imgGot.visible = cfg.id < dailyLoginId || cfg.id == dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.GOT;
  52. if (cfg.id == dailyLoginId)
  53. {
  54. RedDotController.Instance.SetComRedDot(item.target, ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET);
  55. }
  56. if (item.target.data == null)
  57. {
  58. item.target.onClick.Add(OnListItemClick);
  59. }
  60. item.target.data = cfg;
  61. UI_ListItem.ClearProxy();
  62. }
  63. private async void OnListItemClick(EventContext context)
  64. {
  65. DailyLoginCfg cfg = (context.sender as GObject).data as DailyLoginCfg;
  66. if (cfg.id == ActivityDataManager.Instance.dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET)
  67. {
  68. bool result = await ActivitySProxy.ReqGetDailyLoginRewards(cfg.id);
  69. if (result)
  70. {
  71. _ui.m_list.numItems = _cfgs.Count;
  72. }
  73. }
  74. else
  75. {
  76. GoodsItemTipsController.ShowItemTips(cfg.rewardsArr[0][0]);
  77. }
  78. }
  79. }
  80. }