DailyLoginView.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 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.viewCom.Center();
  22. this.modal = true;
  23. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  24. _ui.m_list.itemRenderer = ListItemRender;
  25. _ui.m_list.onClickItem.Add(OnListItemClick);
  26. _ui.m_loaIcon.onClick.Add(OnListItemClick);
  27. }
  28. protected override void OnShown()
  29. {
  30. base.OnShown();
  31. _cfgs = DailyLoginCfgArray.Instance.dataArray;
  32. _ui.m_list.numItems = _cfgs.Length;
  33. _ui.m_loaIcon.url = "ui://DailyLogin/yzhd_dyt_7";
  34. _ui.m_loaIcon.data = _cfgs[_cfgs.Length - 1];
  35. }
  36. protected override void OnHide()
  37. {
  38. base.OnHide();
  39. }
  40. private void ListItemRender(int index, GObject obj)
  41. {
  42. DailyLoginCfg cfg = _cfgs[index];
  43. UI_ListItem item = UI_ListItem.Proxy(obj);
  44. item.m_loaBg.url = string.Format("ui://DailyLogin/yzhd_dyt_{0}", cfg.id);
  45. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.rewardsArr[0][0]);
  46. item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
  47. item.m_txtName.text = itemCfg.name;
  48. item.m_imgGot.visible = cfg.id < ActivityDataManager.Instance.dailyLoginId;
  49. if (cfg.id == ActivityDataManager.Instance.dailyLoginId)
  50. {
  51. RedDotController.Instance.SetComRedDot(item.target, ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET);
  52. }
  53. item.target.data = cfg;
  54. UI_ListItem.ClearProxy();
  55. }
  56. private async void OnListItemClick(EventContext context)
  57. {
  58. DailyLoginCfg cfg = (context.sender as GObject).data as DailyLoginCfg;
  59. if (cfg.id == ActivityDataManager.Instance.dailyLoginId && ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET)
  60. {
  61. bool result = await ActivitySProxy.ReqGetDailyLoginRewards(cfg.id);
  62. if (result)
  63. {
  64. _ui.m_list.numItems = _cfgs.Length;
  65. }
  66. }
  67. else
  68. {
  69. GoodsItemTipsController.ShowItemTips(cfg.rewardsArr[0][0]);
  70. }
  71. }
  72. }
  73. }