少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-26 82931aabaaa3e479bc04e11630a77cd9c9dd5fe3
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();
        }
    }
}