using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace Snxxz.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>();
|
|
ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
|
FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } }
|
KingFairyModel kingFairyModel { get { return ModelCenter.Instance.GetModel<KingFairyModel>(); } }
|
protected override void BindController()
|
{
|
|
}
|
|
protected override void AddListeners()
|
{
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
GlobalTimeEvent.Instance.secondEvent += RefreshSecond;
|
PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList;
|
Init();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
|
PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void Init()
|
{
|
ceremonyModel.SendGetRankInfo(PlayerRankData.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)PlayerRankData.RankType.Def_BT_FCCostGold) return;
|
|
RefreshRankInfo();
|
}
|
|
private void RefreshRankInfo()
|
{
|
List<PlayerRankData.RankData> list = PlayerDatas.Instance.rank.GetRankList((int)PlayerRankData.RankType.Def_BT_FCCostGold);
|
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.AppendStringColor(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].gameObject.SetActive(true);
|
FairylandCeremonyModel.AwardItem itemData = list[i];
|
ItemCellModel cellModel = new ItemCellModel(itemData.itemId, true,(ulong)itemData.itemCount,itemData.isBind);
|
baiscs[i].Init(cellModel);
|
baiscs[i].cellBtn.RemoveAllListeners();
|
baiscs[i].cellBtn.AddListener(() =>
|
{
|
switch(itemData.itemId)
|
{
|
case 2278:
|
kingFairyModel.ViewKingFairyChest(itemData.itemId,itemData.itemCount,itemData.isBind);
|
break;
|
default:
|
ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount, -1, itemData.isBind);
|
tipsModel.SetItemTipsModel(attrData);
|
break;
|
}
|
|
});
|
}
|
else
|
{
|
baiscs[i].gameObject.SetActive(false);
|
}
|
}
|
}
|
|
}
|
}
|