using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
[XLua.Hotfix]
|
public class CrossServerArenaWin : Window
|
{
|
[SerializeField] Button matchBtn;
|
[SerializeField] Image matchBtn_Img;
|
[SerializeField] Text matchBtn_Text;
|
[SerializeField] Button dayAwardBtn;
|
[SerializeField] Text winRateText;
|
[SerializeField] Text sumNumText;
|
[SerializeField] Text reaminNumText;
|
[SerializeField] Text seasonTimeText;
|
[SerializeField] Text openTimeText;
|
[SerializeField] Button buyTimesBtn;
|
[SerializeField] Button matchRecordBtn;
|
CrossServerRewardModel m_CrossServerRewardModel;
|
CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
|
CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
protected override void AddListeners()
|
{
|
dayAwardBtn.AddListener(ClickDayAward);
|
matchBtn.AddListener(ClickMatch);
|
buyTimesBtn.AddListener(ClickBuyTimes);
|
matchRecordBtn.AddListener(ClickMatchRecord);
|
}
|
|
protected override void OnPreOpen()
|
{
|
SetDisplay();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void SetDisplay()
|
{
|
UpdateMatchInfo();
|
UpdatePKInfo();
|
UpdateActivityState();
|
}
|
|
private void UpdateMatchInfo()
|
{
|
int remainNum = crossServerModel.alreadyBuyNum + crossServerModel.freeMaxMatchNum - crossServerModel.dayMatchNum;
|
if (remainNum > 0)
|
{
|
reaminNumText.text = StringUtility.Contact(UIHelper.AppendStringColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
|
}
|
else
|
{
|
reaminNumText.text = StringUtility.Contact(UIHelper.AppendStringColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
|
}
|
}
|
|
private void UpdatePKInfo()
|
{
|
winRateText.text = StringUtility.Contact(crossServerModel.curWinRate,"%");
|
sumNumText.text = crossServerModel.sumBattleNum.ToString();
|
}
|
|
private void UpdateActivityState()
|
{
|
bool isInTime = false;
|
bool isOpen = false;
|
matchBtn.RemoveAllListeners();
|
if(!isInTime)
|
{
|
matchBtn_Text.text = "即将开启";
|
matchBtn_Img.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
}
|
else
|
{
|
matchBtn_Text.text = "开始匹配";
|
if(isOpen)
|
{
|
matchBtn_Img.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
matchBtn.AddListener(ClickMatch);
|
}
|
else
|
{
|
matchBtn_Img.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
}
|
}
|
|
}
|
|
private void ClickBuyTimes()
|
{
|
int remainNum = crossServerModel.alreadyBuyNum + crossServerModel.freeMaxMatchNum - crossServerModel.dayMatchNum;
|
if (remainNum >= crossServerModel.freeMaxMatchNum) return;
|
|
WindowCenter.Instance.Open<CrossSeverBuyMatchTimesWin>();
|
}
|
|
private void ClickDayAward()
|
{
|
WindowCenter.Instance.Open<CrossServerDayAwardsWin>();
|
}
|
|
private void ClickMatch()
|
{
|
CloseImmediately();
|
crossServerModel.SendCrossMatch(1);
|
crossServerRewardModel.IsOpenMatch = true;
|
crossServerRewardModel.ResetTime();
|
WindowCenter.Instance.Open<MatchWin>();
|
}
|
|
private void ClickMatchRecord()
|
{
|
WindowCenter.Instance.Open<CrossMatchRecordWin>();
|
}
|
|
}
|
}
|