DailyWelfareView.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. using FairyGUI;
  5. using UI.DailyWelfare;
  6. using UnityEngine;
  7. namespace GFGGame
  8. {
  9. public class DailyWelfareView : BaseWindow
  10. {
  11. private UI_DailyWelfareUI _ui;
  12. private ValueBarController _valueBarController;
  13. private int _signCount;
  14. private int _month;
  15. private int _day;
  16. public override void Dispose()
  17. {
  18. base.Dispose();
  19. if (_valueBarController != null)
  20. {
  21. _valueBarController.Dispose();
  22. _valueBarController = null;
  23. }
  24. if (_ui != null)
  25. {
  26. _ui.Dispose();
  27. _ui = null;
  28. }
  29. }
  30. protected override void OnInit()
  31. {
  32. base.OnInit();
  33. packageName = UI_DailyWelfareUI.PACKAGE_NAME;
  34. _ui = UI_DailyWelfareUI.Create();
  35. this.viewCom = _ui.target;
  36. isfullScreen = true;
  37. _valueBarController = new ValueBarController(_ui.m_comValueBar);
  38. _ui.m_btnback.onClick.Add(OnBtnBackClick);
  39. _ui.m_list.itemRenderer = ListItemRender;
  40. }
  41. protected override void OnShown()
  42. {
  43. base.OnShown();
  44. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("mrqd_bjbj");
  45. _valueBarController.OnShown();
  46. _month = DateTime.Now.Month;
  47. _day = DateTime.Now.Day;
  48. // _ui.m_list.ScrollToView(0);
  49. UpdateSgignView();
  50. }
  51. protected override void OnHide()
  52. {
  53. _valueBarController.OnHide();
  54. base.OnHide();
  55. }
  56. private void OnBtnBackClick()
  57. {
  58. ViewManager.GoBackFrom(typeof(DailyWelfareView).FullName);
  59. }
  60. private void UpdateSgignView()
  61. {
  62. _signCount = MathHelper.CountOnes(GameGlobal.myNumericComponent.GetAsInt(NumericType.SignDay));
  63. _ui.m_txtSignCount.text = _signCount.ToString();// DailyWelfareManager.Instance.DailySignDatas.Count.ToString();
  64. List<DailySignBonusCfg> signBonusCfgs = DailySignBonusCfgArray.Instance.GetCfgsBymonth(_month);
  65. _ui.m_proSign.target.max = signBonusCfgs.Count;
  66. _ui.m_proSign.target.value = _signCount;
  67. List<DailySignCfg> signCfgs = DailySignCfgArray.Instance.GetCfgsBymonth(_month);
  68. for (int i = 0; i < signCfgs.Count; i++)
  69. {
  70. GComponent comProBonus = _ui.m_proSign.target.GetChild("comProBonus" + i).asCom;
  71. comProBonus.x = ((float)signCfgs[i].day / (float)signBonusCfgs.Count) * _ui.m_proSign.target.width;
  72. UI_ComProBonus item = UI_ComProBonus.Proxy(comProBonus);
  73. item.m_loaIcon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(signCfgs[i].bonusArr[0][0]));
  74. item.m_txtCount.text = signCfgs[i].bonusArr[0][1].ToString();
  75. item.m_txtDay.text = signCfgs[i].day.ToString();
  76. if (item.target.data == null)
  77. {
  78. item.target.onClick.Add(OnBtnGetProBonus);
  79. }
  80. item.target.data = signCfgs[i];
  81. UI_ComProBonus.ProxyEnd();
  82. }
  83. _ui.m_list.numItems = signBonusCfgs.Count;
  84. }
  85. private void OnBtnGetProBonus(EventContext context)
  86. {
  87. GObject obj = context.sender as GObject;
  88. DailySignCfg signCfg = obj.data as DailySignCfg;
  89. }
  90. private void UpdateSupplyView()
  91. {
  92. }
  93. private void ListItemRender(int index, GObject obj)
  94. {
  95. DailySignBonusCfg bonusCfg = DailySignBonusCfgArray.Instance.GetCfgsBymonth(_month)[index];
  96. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(bonusCfg.bonusArr[0][0]);
  97. bool isGot = MathHelper.isBitSet(_signCount, bonusCfg.day);
  98. if (itemCfg == null) return;
  99. UI_ListSignItem item = UI_ListSignItem.Proxy(obj);
  100. item.m_c1.selectedIndex = itemCfg.itemType == ConstItemType.DRESS_UP ? 0 : bonusCfg.type;
  101. item.m_txtDay.text = bonusCfg.day.ToString();
  102. item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
  103. item.m_txtCount.text = bonusCfg.bonusArr[0][1].ToString();
  104. item.m_imgGot.visible = isGot;// bonusCfg.day <= _day && DailyWelfareManager.Instance.DailySignDatas.IndexOf(bonusCfg.day) >= 0;
  105. item.m_imgNotGet.visible = bonusCfg.day < _day && !isGot;
  106. RedDotController.Instance.SetComRedDot(item.target, bonusCfg.day == _day && !isGot);
  107. if (item.target.data == null)
  108. {
  109. item.target.onClick.Add(OnGetSignBonus);
  110. }
  111. item.target.data = bonusCfg.day;
  112. UI_ListSignItem.ProxyEnd();
  113. }
  114. private async void OnGetSignBonus(EventContext context)
  115. {
  116. GObject obj = context.sender as GObject;
  117. int day = (int)obj.data;
  118. bool result = false;
  119. if (day > _day) return;
  120. if (day < _day)
  121. {
  122. int[] cost = GlobalCfgArray.globalCfg.dailySignConsumeArr[0];
  123. AlertUI.Show(string.Format("是否确定花费{0}{1}补签?", cost[1], ItemCfgArray.Instance.GetCfg(cost[0]).name)).
  124. SetLeftButton(true, "否").
  125. SetRightButton(true, "是", async (object param) =>
  126. {
  127. result = await DailyWelfareSProxy.ReqReSign(day);
  128. });
  129. }
  130. else
  131. {
  132. result = await DailyWelfareSProxy.ReqSign(day);
  133. }
  134. if (result)
  135. {
  136. _ui.m_list.numItems = DailySignCfgArray.Instance.GetCfgsBymonth(_month).Count;
  137. }
  138. }
  139. private void UpdateReward(GObject obj, int id)
  140. {
  141. DailySupplyCfg supplyCfg = DailySupplyCfgArray.Instance.GetCfg(id);
  142. UI_ComSupply item = UI_ComSupply.Proxy(obj);
  143. UI_ComSupply.ProxyEnd();
  144. }
  145. private void ListBonusItemRender(int index, GObject obj)
  146. {
  147. }
  148. }
  149. }