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()); } } CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel(); } } #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(); } private void ClickDayAward() { WindowCenter.Instance.Open(); } private void ClickMatch() { CloseImmediately(); crossServerModel.SendCrossMatch(1); crossServerRewardModel.IsOpenMatch = true; crossServerRewardModel.ResetTime(); WindowCenter.Instance.Open(); } private void ClickMatchRecord() { WindowCenter.Instance.Open(); } } }