From c7b8b789a4ef38bbd7bdbfd86b0aa73bf9334b1d Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 26 十月 2018 10:41:18 +0800
Subject: [PATCH] 4218【1.2】仙盟宴会传功

---
 System/Dungeon/DungeonFairyFeastHintWin.cs |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/System/Dungeon/DungeonFairyFeastHintWin.cs b/System/Dungeon/DungeonFairyFeastHintWin.cs
index 4e61b33..c2d1986 100644
--- a/System/Dungeon/DungeonFairyFeastHintWin.cs
+++ b/System/Dungeon/DungeonFairyFeastHintWin.cs
@@ -23,12 +23,20 @@
         [SerializeField] FairyFeastRankBehaviour[] m_RankBehaviours;
         [SerializeField] FairyFeastRankBehaviour m_TopRank;
         [SerializeField] DungeonMultipleTaskWin.SelectEffect m_SelectEffect;
+        [SerializeField] Button m_Transmit;
+        [SerializeField] SmoothSlider m_TransmitSlider;
+        [SerializeField] Text m_TransmitProgress;
 
         DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
+        FairyFeastModel fairyFeastModel { get { return ModelCenter.Instance.GetModel<FairyFeastModel>(); } }
 
         int currentSelect = 0;
         #region Built-in
         protected override void BindController()
+        {
+        }
+
+        protected override void AddListeners()
         {
             m_FairyFeast.onClick.AddListener(() =>
             {
@@ -38,17 +46,19 @@
             {
                 Select(1);
             });
-        }
-
-        protected override void AddListeners()
-        {
+            m_Transmit.onClick.AddListener(Transmit);
         }
 
         protected override void OnPreOpen()
         {
             Select(0);
+            m_TransmitSlider.ResetValue(0);
             model.updateMissionEvent += UpdateMissionEvent;
+            fairyFeastModel.selectTransmit += SelectTransmit;
+            fairyFeastModel.transmitStateUpdate += TransmitStateUpdate;
+            SelectTransmit();
         }
+
 
         protected override void OnAfterOpen()
         {
@@ -57,10 +67,34 @@
         protected override void OnPreClose()
         {
             model.updateMissionEvent -= UpdateMissionEvent;
+            fairyFeastModel.selectTransmit -= SelectTransmit;
+            fairyFeastModel.transmitStateUpdate -= TransmitStateUpdate;
         }
 
         protected override void OnAfterClose()
         {
+        }
+
+        protected override void LateUpdate()
+        {
+            if (fairyFeastModel.transmiting)
+            {
+                if (!m_TransmitSlider.gameObject.activeSelf)
+                {
+                    m_TransmitSlider.gameObject.SetActive(true);
+                }
+                var surplusTime = (fairyFeastModel.transmitCompleteTime - DateTime.Now).TotalSeconds;
+                var progress = Mathf.Clamp01(1 - (float)surplusTime / fairyFeastModel.transmitCostSeconds);
+                m_TransmitSlider.value = progress;
+                m_TransmitProgress.text = StringUtility.Contact((int)(progress * 100), "%");
+            }
+            else
+            {
+                if (m_TransmitSlider.gameObject.activeSelf)
+                {
+                    m_TransmitSlider.gameObject.SetActive(false);
+                }
+            }
         }
         #endregion
 
@@ -128,6 +162,22 @@
         {
             return x.rank.CompareTo(y.rank);
         }
+
+        private void SelectTransmit()
+        {
+            m_Transmit.gameObject.SetActive(fairyFeastModel.selectPlayer != 0 && fairyFeastModel.allowTransmit
+                && !fairyFeastModel.transmiting);
+        }
+
+        private void Transmit()
+        {
+            fairyFeastModel.Transmit();
+        }
+
+        private void TransmitStateUpdate()
+        {
+            SelectTransmit();
+        }
     }
 }
 

--
Gitblit v1.8.0