ActivityDay7View.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. using FairyGUI;
  2. using UI.ActivityDay7;
  3. using UI.Task;
  4. namespace GFGGame
  5. {
  6. public class ActivityDay7View : BaseWindow
  7. {
  8. private UI_ActivityDay7UI _ui;
  9. //7日活动配置
  10. private Activity7DaysCfg[] cfgDataArray;
  11. //7日活动积分配置
  12. private Activity7DaysCfg[] activity7DaysCfgs;
  13. //选中的天数index 天数=index+1
  14. private int onClickIndex = 0;
  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. packageName = UI_ActivityDay7UI.PACKAGE_NAME;
  28. _ui = UI_ActivityDay7UI.Create();
  29. viewCom = _ui.target;
  30. isfullScreen = true;
  31. bringToFontOnClick = false;
  32. _ui.m_btnBack.onClick.Add(OnBtnBackClick);
  33. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("lm_beijing2");
  34. _ui.m_DayList.itemRenderer = DayListRenderer;
  35. _ui.m_TaskList.itemRenderer = TaskListRenderer;
  36. }
  37. private void OnBtnBackClick()
  38. {
  39. ViewManager.GoBackFrom(typeof(ActivityDay7View).FullName);
  40. }
  41. protected override void OnShown()
  42. {
  43. base.OnShown();
  44. SetScoreList();
  45. SetDayList();
  46. }
  47. protected override void OnHide()
  48. {
  49. base.OnHide();
  50. }
  51. //DayListRenderer
  52. private void DayListRenderer(int index, GObject obj)
  53. {
  54. var item = UI_ButtonDay.Proxy(obj);
  55. if (item.target.data == null)
  56. {
  57. var cfg = cfgDataArray[index];
  58. item.m_text.text = $"第{cfg.id}天";
  59. item.target.data = index;
  60. item.target.onClick.Add(OnClickDay);
  61. }
  62. //设置按钮状态
  63. item.target.selected = index == onClickIndex;
  64. UI_ButtonDay.ProxyEnd();
  65. }
  66. //选中天数
  67. private void OnClickDay(EventContext context)
  68. {
  69. onClickIndex = (int)context.data;
  70. _ui.m_TaskList.numItems = cfgDataArray.Length;
  71. //TODO 刷新天数任务列表
  72. }
  73. //TaskListRenderer
  74. private void TaskListRenderer(int index, GObject obj)
  75. {
  76. var item = UI_TaskListItem.Proxy(obj);
  77. UI_TaskListItem.ProxyEnd();
  78. }
  79. //设置积分列表
  80. private void SetScoreList()
  81. {
  82. //7日活动配置
  83. activity7DaysCfgs = Activity7DaysCfgArray.Instance.dataArray;
  84. var maxCfg = activity7DaysCfgs[activity7DaysCfgs.Length - 1];
  85. var maxScore = maxCfg.score;
  86. var pos = _ui.m_StartIndex.position;
  87. var endY = _ui.m_EndIndex.position.y;
  88. //循环设置UI
  89. foreach (var cfg in activity7DaysCfgs)
  90. {
  91. var cfgScore = cfg.score;
  92. var item = UI_ExpProcessItem.Create();
  93. var target = item.target;
  94. _ui.target.AddChild(target);
  95. // 根据 maxScore cfgScore pos.y endY 设置target 位置 x,z不变,y根据比例设置
  96. var y = pos.y - (pos.y - endY) * cfgScore / maxScore;
  97. target.SetPosition(pos.x, y, pos.z);
  98. item.m_Score.text = cfgScore.ToString();
  99. var cfgBonusArr = cfg.bonusArr;
  100. var itemCfg = ItemCfgArray.Instance.GetCfg(cfgBonusArr[0][0]);
  101. item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
  102. item.m_Num.text = cfgBonusArr[0][1].ToString();
  103. UI_ExpProcess.ProxyEnd();
  104. }
  105. }
  106. //设置天数列表
  107. private void SetDayList()
  108. {
  109. //7日活动配置
  110. cfgDataArray = Activity7DaysCfgArray.Instance.dataArray;
  111. _ui.m_DayList.numItems = cfgDataArray.Length;
  112. }
  113. }
  114. }