using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class CrossServerOneVsOneRoundWin : Window
|
{
|
[SerializeField] Image roundImg;
|
[SerializeField] GameObject victoryObj;
|
[SerializeField] GameObject failureObj;
|
[SerializeField] Text infoText;
|
[SerializeField] Text coolTimeText;
|
|
CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
|
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
int coolTime = 0;
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
protected override void AddListeners()
|
{
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
SetDisplay();
|
}
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
UpdateCoolTime();
|
|
}
|
protected override void OnPreClose()
|
{
|
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void SetDisplay()
|
{
|
int roundNum = dungeonModel.mission.roundNum;
|
coolTime = -1;
|
bool isWin = IsWin();
|
victoryObj.SetActive(isWin);
|
failureObj.SetActive(!isWin);
|
UpdateCoolTime();
|
switch (roundNum)
|
{
|
case 1:
|
roundImg.SetSprite("CrossServer_25");
|
break;
|
case 2:
|
roundImg.SetSprite("CrossServer_23");
|
break;
|
case 3:
|
roundImg.SetSprite("CrossServer_24");
|
break;
|
}
|
}
|
|
private void UpdateCoolTime()
|
{
|
if (crossServerModel.roundEndTime > DateTime.Now)
|
{
|
var surplusTime = Mathf.Clamp((int)(crossServerModel.roundEndTime - DateTime.Now).TotalSeconds, 0, int.MaxValue);
|
if (coolTime != surplusTime)
|
{
|
coolTime = surplusTime + 1;
|
coolTimeText.text = coolTime.ToString();
|
}
|
}
|
else
|
{
|
CloseImmediately();
|
}
|
}
|
|
private bool IsWin()
|
{
|
int roundNum = dungeonModel.mission.roundNum;
|
int[] winerIds = dungeonModel.mission.roundWinerIDList;
|
if (winerIds == null) return false;
|
int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
|
int index = roundNum - 1;
|
if(index < winerIds.Length)
|
{
|
if(playerId == winerIds[index])
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
}
|
}
|