FieldTaskView.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System.Collections.Generic;
  2. using FairyGUI;
  3. using UI.Field;
  4. using UnityEngine;
  5. namespace GFGGame
  6. {
  7. public class FieldTaskView : BaseWindow
  8. {
  9. private UI_FieldTaskUI _ui;
  10. private List<FieldTaskCfg> _cfgs;
  11. private string[] difficulty = new string[] { "初级", "中级", "高级" };
  12. public override void Dispose()
  13. {
  14. base.Dispose();
  15. }
  16. protected override void OnInit()
  17. {
  18. base.OnInit();
  19. _ui = UI_FieldTaskUI.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. }
  26. protected override void OnShown()
  27. {
  28. base.OnShown();
  29. _cfgs = FieldDataManager.Instance.GetTaskCfgs();
  30. _ui.m_list.numItems = _cfgs.Count;
  31. }
  32. protected override void OnHide()
  33. {
  34. base.OnHide();
  35. }
  36. private void ListItemRender(int index, GObject obj)
  37. {
  38. UI_ListItem item = UI_ListItem.Proxy(obj);
  39. item.m_txtDesc.text = string.Format("{0}难度挑战成功", difficulty[_cfgs[index].subType]);
  40. item.m_btnGet.m_txtTitle.text = string.Format("每周上限+{0}", _cfgs[index].addRewardLimit);
  41. item.m_btnGet.m_c1.selectedIndex = FieldDataManager.Instance.GetTaskState(_cfgs[index].id);
  42. if (item.m_btnGet.target.data == null)
  43. {
  44. item.m_btnGet.target.onClick.Add(OnBtnGetClick);
  45. }
  46. item.m_btnGet.target.data = _cfgs[index].id;//item.m_btnGet.m_c1.selectedIndex;
  47. UI_ListItem.ClearProxy();
  48. }
  49. private async void OnBtnGetClick(EventContext context)
  50. {
  51. int taskId = (int)(context.sender as GObject).data;
  52. int state = FieldDataManager.Instance.GetTaskState(taskId);
  53. if (state == 1)
  54. {
  55. bool result = await FieldSProxy.ReqFieldTaskBonus(taskId);
  56. if (result)
  57. {
  58. PromptController.Instance.ShowFloatTextPrompt("每周奖励上限提升");
  59. _ui.m_list.numItems = _cfgs.Count;
  60. }
  61. }
  62. }
  63. }
  64. }