TravelTimeDetailView.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. using System.Collections;
  2. using UnityEngine;
  3. using UI.Travel;
  4. using ET;
  5. using FairyGUI;
  6. using System.Collections.Generic;
  7. using cfg.GfgCfg;
  8. namespace GFGGame
  9. {
  10. public class TravelTimeDetailView : BaseWindow
  11. {
  12. private UI_TravelTimeDetailUI _ui;
  13. private ValueBarController _valueBarController;
  14. private const int spendItemID = 3000102;
  15. public override void Dispose()
  16. {
  17. if (_valueBarController != null)
  18. {
  19. _valueBarController.Dispose();
  20. _valueBarController = null;
  21. }
  22. if (_ui != null)
  23. {
  24. _ui.Dispose();
  25. _ui = null;
  26. }
  27. base.Dispose();
  28. }
  29. protected override void OnInit()
  30. {
  31. base.OnInit();
  32. packageName = UI_TravelTimeDetailUI.PACKAGE_NAME;
  33. _ui = UI_TravelTimeDetailUI.Create();
  34. viewCom = _ui.target;
  35. viewCom.Center();
  36. modal = true;
  37. viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
  38. _valueBarController = new ValueBarController(_ui.m_comValueBar);
  39. _ui.m_btnFinish.onClick.Add(OnClickBtnFinish);
  40. _ui.m_btnSpeedUp.onClick.Add(OnClickBtnSpeedUp);
  41. ItemCfg itemCfg =CommonDataManager.Tables.TblItemCfg.GetOrDefault(spendItemID);
  42. _ui.m_iconFinishSpend.url = ResPathUtil.GetIconPath(itemCfg.Res, "png");
  43. _ui.m_iconSpeedUpSpend.url = _ui.m_iconFinishSpend.url;
  44. _ui.m_spend.url = _ui.m_iconFinishSpend.url;
  45. }
  46. protected override void OnShown()
  47. {
  48. base.OnShown();
  49. _valueBarController.OnShown();
  50. _valueBarController.UpdateList(new List<int>() { spendItemID });
  51. UpdateTime(null);
  52. Timers.inst.Add(1, -1, UpdateTime);
  53. }
  54. protected override void OnHide()
  55. {
  56. base.OnHide();
  57. Timers.inst.Remove(UpdateTime);
  58. _valueBarController.OnHide();
  59. }
  60. private void UpdateTime(object param)
  61. {
  62. long endTime = TravelDataManager.Instance.TravelData.EndTime;
  63. long curTime = TimeHelper.ServerNow();
  64. long time = endTime - curTime;
  65. if (curTime >= endTime)
  66. {
  67. Hide();
  68. EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE);
  69. return;
  70. }
  71. string timeStr = TimeUtil.FormattingTimeTo_HHmmss(time);
  72. _ui.m_txtTime.text = timeStr;
  73. CalculateNum(timeStr);
  74. }
  75. /// <summary>
  76. /// 计算立即完成需要的总消耗
  77. /// </summary>
  78. /// <param name="timeStr"></param>
  79. private void CalculateNum(string timeStr)
  80. {
  81. string[] strArr = timeStr.Split(':');
  82. int num = int.Parse(strArr[0]) + (int.Parse(strArr[1]) > 0 ? 1 : 0);
  83. _ui.m_numFinishSpend.text = num.ToString();
  84. }
  85. private void OnClickBtnFinish()
  86. {
  87. int spendNum = int.Parse(_ui.m_numFinishSpend.text);
  88. List<ItemInfoProto> list = new List<ItemInfoProto>();
  89. ItemInfoProto item = new ItemInfoProto
  90. {
  91. ConfigId = spendItemID,
  92. Count = spendNum
  93. };
  94. list.Add(item);
  95. SpeedUp(1, list);
  96. }
  97. private void OnClickBtnSpeedUp()
  98. {
  99. int spendNum = int.Parse(_ui.m_numSpeedUpSpend.text);
  100. List<ItemInfoProto> list = new List<ItemInfoProto>();
  101. ItemInfoProto item = new ItemInfoProto
  102. {
  103. ConfigId = spendItemID,
  104. Count = spendNum
  105. };
  106. list.Add(item);
  107. SpeedUp(2, list);
  108. }
  109. private async void SpeedUp(int type, List<ItemInfoProto> list)
  110. {
  111. await TravelSProxy.ReqTravelSpeedUp(type, list);
  112. UpdateTime(null);
  113. }
  114. }
  115. }