using System;
|
using System.Collections;
|
using TableConfig;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class ReliveWin : Window
|
{
|
[SerializeField]
|
private Text _timeDownText;
|
[SerializeField]
|
private Image _ringImage;
|
|
[SerializeField] Text dieDesText;
|
|
PlayerDeadModel _deadModel;
|
PlayerDeadModel DeadModel
|
{
|
get { return _deadModel ?? (_deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>()); }
|
}
|
|
int questTimes = 0;
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
TimeDownMgr.CoolTimeData coolDown;
|
TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.DuplicatesReborn, out coolDown);
|
RefreshTime(Mathf.RoundToInt(coolDown.duration - coolDown.time));
|
DeadModel.RefreshDuplicatesRebornCDEvent = RefreshTime;
|
MapConfig mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
dieDesText.gameObject.SetActive(false);
|
for (int i = 0; i < DeadModel.dungeonKillArray.Length; i++)
|
{
|
if(DeadModel.dungeonKillArray[i] == PlayerDatas.Instance.baseData.MapID)
|
{
|
dieDesText.gameObject.SetActive(true);
|
string msg = StringUtility.Contact(Language.Get("AncientBattlefield_Text_1", mapConfig.Name, UIHelper.ServerStringTrim(DeadModel.killerName)));
|
dieDesText.text = msg;
|
}
|
}
|
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
this.transform.SetAsLastSibling();
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
public void RefreshTime(int time)
|
{
|
_timeDownText.text = time.ToString();
|
_ringImage.fillAmount = (float)time / DeadModel.duplicatesRebornTime;
|
if (time <= 0)
|
{
|
DeadModel.SendRebornQuest(0);
|
StartCoroutine(CheckPlayerIsReborn());
|
}
|
}
|
IEnumerator CheckPlayerIsReborn()
|
{
|
questTimes = 0;
|
while (questTimes < 5)
|
{
|
yield return new WaitForSeconds(1);
|
questTimes += 1;
|
if (DeadModel.playerIsDie)
|
{
|
DeadModel.SendRebornQuest(0);
|
}
|
else
|
{
|
questTimes = 5;
|
}
|
}
|
}
|
private void CloseWin()
|
{
|
Close();
|
}
|
|
}
|
}
|