using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
public class CeremonyOutOfPrintWin : Window
|
{
|
[SerializeField] Text firstNameText;
|
[SerializeField] Text secondNameText;
|
[SerializeField] Text thirdNameText;
|
[SerializeField] Text remainTimeText;
|
[SerializeField] List<UIEffect> rankEffectlist = new List<UIEffect>();
|
[SerializeField] List<CommonItemBaisc> firstItemlist = new List<CommonItemBaisc>();
|
[SerializeField] List<CommonItemBaisc> secondItemlist = new List<CommonItemBaisc>();
|
[SerializeField] List<CommonItemBaisc> thirdItemlist = new List<CommonItemBaisc>();
|
[SerializeField] Button m_Recharge;
|
|
FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } }
|
KingFairyModel kingFairyModel { get { return ModelCenter.Instance.GetModel<KingFairyModel>(); } }
|
RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } }
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
m_Recharge.SetListener(GotoRecharge);
|
}
|
|
protected override void OnPreOpen()
|
{
|
GlobalTimeEvent.Instance.secondEvent += RefreshSecond;
|
rankModel.onRankRefresh += OnRefreshRankList;
|
Init();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
|
rankModel.onRankRefresh -= OnRefreshRankList;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void Init()
|
{
|
ceremonyModel.SendGetRankInfo(RankType.Def_BT_FCCostGold);
|
SetRankAward(firstItemlist, ceremonyModel.GetRankAwardByLv(1));
|
SetRankAward(secondItemlist, ceremonyModel.GetRankAwardByLv(2));
|
SetRankAward(thirdItemlist, ceremonyModel.GetRankAwardByLv(3));
|
RefreshRankInfo();
|
RefreshSecond();
|
}
|
|
private void OnRefreshRankList(int type)
|
{
|
if (type != (int)RankType.Def_BT_FCCostGold) return;
|
|
RefreshRankInfo();
|
}
|
|
private void RefreshRankInfo()
|
{
|
List<RankData> list = null;
|
rankModel.TryGetRanks((int)RankType.Def_BT_FCCostGold, out list);
|
firstNameText.text = Language.Get("CeremoneyOutOfPrint");
|
secondNameText.text = Language.Get("CeremoneyOutOfPrint");
|
thirdNameText.text = Language.Get("CeremoneyOutOfPrint");
|
|
if (list != null)
|
{
|
if (list.Count > 0)
|
{
|
firstNameText.text = list[0].name1;
|
SetRankEffect(0, (int)list[0].id);
|
}
|
|
if (list.Count > 1)
|
{
|
secondNameText.text = list[1].name1;
|
SetRankEffect(1, (int)list[1].id);
|
}
|
|
if (list.Count > 2)
|
{
|
thirdNameText.text = list[2].name1;
|
SetRankEffect(2, (int)list[2].id);
|
}
|
}
|
}
|
|
private void SetRankEffect(int rank, int playerId)
|
{
|
for (int i = 0; i < rankEffectlist.Count; i++)
|
{
|
if (rank == i && playerId == PlayerDatas.Instance.baseData.PlayerID)
|
{
|
if (!rankEffectlist[i].IsPlaying)
|
{
|
rankEffectlist[i].Play();
|
}
|
}
|
else
|
{
|
if (rankEffectlist[i].IsPlaying)
|
{
|
rankEffectlist[i].Stop();
|
}
|
}
|
}
|
}
|
|
private void RefreshSecond()
|
{
|
int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony);
|
if (seconds > 0)
|
{
|
remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToHMS(seconds), "</color>");
|
}
|
else
|
{
|
remainTimeText.text = UIHelper.AppendColor(TextColType.Red, Language.Get("XMZZ110"));
|
}
|
|
}
|
|
private void SetRankAward(List<CommonItemBaisc> baiscs, List<FairylandCeremonyModel.AwardItem> list)
|
{
|
if (list == null) return;
|
|
for (int i = 0; i < baiscs.Count; i++)
|
{
|
if (i < list.Count)
|
{
|
baiscs[i].SetActive(true);
|
FairylandCeremonyModel.AwardItem itemData = list[i];
|
ItemCellModel cellModel = new ItemCellModel(itemData.itemId, true, (ulong)itemData.itemCount);
|
baiscs[i].Init(cellModel);
|
baiscs[i].button.RemoveAllListeners();
|
baiscs[i].button.AddListener(() =>
|
{
|
switch (itemData.itemId)
|
{
|
case 2278:
|
kingFairyModel.ViewKingFairyChest(itemData.itemId, itemData.itemCount);
|
break;
|
default:
|
ItemTipUtility.Show(itemData.itemId);
|
break;
|
}
|
|
});
|
}
|
else
|
{
|
baiscs[i].SetActive(false);
|
}
|
}
|
}
|
|
private void GotoRecharge()
|
{
|
WindowJumpMgr.Instance.WindowJumpTo( JumpUIType.VipRechargeFunc1);
|
}
|
|
}
|
}
|