//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Sunday, September 17, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
using System.Collections.Generic;
|
|
namespace vnxbqy.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<DailyQuestModel>(); } }
|
|
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.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.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<DailyQuestRewardPreviewWin>();
|
}
|
|
}
|
|
}
|