//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, July 10, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
using System.Collections.Generic;
|
|
namespace vnxbqy.UI
|
{
|
|
public class BossRebornBehaviour : ScrollItem
|
{
|
[SerializeField] Text m_Decription;
|
[SerializeField] RewardPreviewGroup m_Rewards;
|
[SerializeField] RectTransform m_GotoOrGetReward;
|
[SerializeField] Button m_Goto;
|
[SerializeField] Button m_GetReward;
|
[SerializeField] Text m_CompleteTimes;
|
[SerializeField] RectTransform m_GotReward;
|
|
BossRebornTask rebornTask;
|
BossRebornModel model { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
|
|
public override void Display(object _data)
|
{
|
base.Display(_data);
|
|
rebornTask = (BossRebornTask)_data;
|
|
DisplayBaseInfo();
|
UpdateState();
|
UpdateRewardableTimes();
|
|
m_Goto.RemoveAllListeners();
|
m_Goto.AddListener(Goto);
|
m_GetReward.RemoveAllListeners();
|
m_GetReward.AddListener(GetReward);
|
|
rebornTask.gotRewardTimesChangeEvent -= UpdateState;
|
rebornTask.gotRewardTimesChangeEvent -= UpdateRewardableTimes;
|
rebornTask.gotRewardTimesChangeEvent += UpdateState;
|
rebornTask.gotRewardTimesChangeEvent += UpdateRewardableTimes;
|
}
|
|
public override void Dispose()
|
{
|
base.Dispose();
|
|
rebornTask.gotRewardTimesChangeEvent -= UpdateState;
|
rebornTask.gotRewardTimesChangeEvent -= UpdateRewardableTimes;
|
}
|
|
private void DisplayBaseInfo()
|
{
|
var config = BossRebornConfig.Get(rebornTask.id);
|
m_Decription.text = string.Format(config.Description, rebornTask.SingleTimes);
|
m_Rewards.Display(rebornTask.rewards);
|
}
|
|
private void Goto()
|
{
|
var config = BossRebornConfig.Get(rebornTask.id);
|
WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
|
}
|
|
private void GetReward()
|
{
|
model.RequestTaskReward(rebornTask.id);
|
}
|
|
private void UpdateState()
|
{
|
var state = rebornTask.GetState();
|
m_GotoOrGetReward.SetActive(
|
state == BossRebornTask.State.Normal || state == BossRebornTask.State.Rewardable);
|
|
m_Goto.SetActive(state == BossRebornTask.State.Normal);
|
m_GetReward.SetActive(state == BossRebornTask.State.Rewardable);
|
m_GotReward.SetActive(state == BossRebornTask.State.Completed);
|
}
|
|
private void UpdateRewardableTimes()
|
{
|
var config = BossRebornConfig.Get(rebornTask.id);
|
|
var totalTimes= rebornTask.TotalTimes == 0 ? -1 : rebornTask.TotalTimes / rebornTask.SingleTimes;
|
var rewardedTimes = rebornTask.gotRewardTimes / rebornTask.SingleTimes;
|
if (totalTimes==-1)
|
{
|
m_CompleteTimes.text = StringUtility.Contact(rewardedTimes, "/", Language.Get("BossFHLanguage4"));
|
}
|
else
|
{
|
m_CompleteTimes.text = StringUtility.Contact(rewardedTimes, "/", totalTimes);
|
}
|
}
|
|
}
|
|
}
|
|
|
|