//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Sunday, September 17, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; namespace Snxxz.UI { public class DailyQuestActiveSlider : MonoBehaviour { [SerializeField] Slider m_ActiveValueSlider; [SerializeField] Text m_CurrentActiveValue; [SerializeField] Button m_RewardButton; [SerializeField] RectTransform m_LeftPoint; [SerializeField] RectTransform m_RightPoint; [SerializeField] DailyQuestActiveRewardTooltip[] m_RewardToolTips; DailyQuestModel model { get { return ModelCenter.Instance.GetModel(); } } public void Initialize() { m_RewardButton.RemoveAllListeners(); m_RewardButton.AddListener(PreviewAward); var allRewardKeys = DailyLivenessRewardConfig.GetKeys(); allRewardKeys.Sort((x, y) => { var configX = DailyLivenessRewardConfig.Get(x); var configY = DailyLivenessRewardConfig.Get(y); return configX.Liveness.CompareTo(configY.Liveness); }); var stageIndex = model.currentRewardStageIndex; var totalWidth = m_RightPoint.anchoredPosition.x - m_LeftPoint.anchoredPosition.x; var totalActive = DailyLivenessRewardConfig.Get(allRewardKeys[allRewardKeys.Count - 1]).Liveness; var rate = totalWidth / totalActive; for (int i = 0; i < m_RewardToolTips.Length; i++) { var tooltip = m_RewardToolTips[i]; if (i < allRewardKeys.Count) { var config = DailyLivenessRewardConfig.Get(allRewardKeys[i]); tooltip.gameObject.SetActive(true); (tooltip.transform as RectTransform).anchoredPosition = m_LeftPoint.anchoredPosition + new Vector2(rate * config.Liveness, 0); tooltip.Init(int.Parse(allRewardKeys[i]), stageIndex); } else { tooltip.gameObject.SetActive(false); } } } public void UpdateCurrentActiveValue(int current, int total) { var progress = (float)current / total; m_ActiveValueSlider.value = progress; m_CurrentActiveValue.text = current.ToString(); } private void PreviewAward() { WindowCenter.Instance.Open(); } } }