| | |
| | | [SerializeField] Button matchRecordBtn;
|
| | | [SerializeField] GameObject inSeasonTimeObj;
|
| | | [SerializeField] GameObject outSeasonTimeObj;
|
| | |
|
| | | CrossServerRewardModel m_CrossServerRewardModel;
|
| | | CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } }
|
| | | [SerializeField] GameObject lookPlayerObj;
|
| | | [SerializeField] Text lookTimeText;
|
| | | CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
|
| | |
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | |
| | | {
|
| | | SetDisplay();
|
| | | TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
|
| | | GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | | protected override void OnPreClose()
|
| | | {
|
| | | TimeMgr.Instance.OnMinuteEvent -= UpdateMinute;
|
| | | GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
|
| | | }
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | |
| | | UpdateMatchInfo();
|
| | | UpdatePKInfo();
|
| | | UpdateActivityState();
|
| | | UpdateLookPlayerTime();
|
| | | seasonTimeText.text = CrossServerPKSeason.Instance.ToDisplaySeasonTime();
|
| | | var openTimes = CrossServerPKSeason.Instance.GetActivityTimes();
|
| | | openTimeText.gameObject.SetActive(openTimes != null && openTimes.Count > 0);
|
| | |
| | | }
|
| | | openTimeText.text = Language.Get("CrossServer119", openTimeDes);
|
| | | }
|
| | | |
| | |
|
| | | lookPlayerObj.SetActive(crossServerModel.IsMatching);
|
| | | }
|
| | |
|
| | | private void UpdateMatchInfo()
|
| | |
| | | private void UpdateMinute()
|
| | | {
|
| | | UpdateActivityState();
|
| | | }
|
| | |
|
| | | private void UpdateSecond()
|
| | | {
|
| | | UpdateLookPlayerTime();
|
| | | }
|
| | |
|
| | | private void UpdateLookPlayerTime()
|
| | | {
|
| | | if (!crossServerModel.IsMatching) return;
|
| | |
|
| | | int totalSeconds = Mathf.RoundToInt((float)(DateTime.Now - crossServerModel.matchStartTime).TotalSeconds);
|
| | | if(totalSeconds < 3600)
|
| | | {
|
| | | int minute = totalSeconds / 60;
|
| | | int seconds = totalSeconds % 60;
|
| | | lookTimeText.text = StringUtility.Contact(minute.ToString("D2"), ":", seconds.ToString("D2"));
|
| | | }
|
| | | else
|
| | | {
|
| | | ClickMatch(0);
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | private void UpdateActivityState()
|
| | |
| | | matchBtn.RemoveAllListeners();
|
| | | matchBtn_Text.text = Language.Get("CrossServer109");
|
| | | matchBtn_Img.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
| | | if (!crossServerRewardModel.IsOpenMatch)
|
| | | if (!crossServerModel.IsMatching)
|
| | | {
|
| | | matchBtn.AddListener(() => { ClickMatch(1); });
|
| | | }
|
| | |
| | | private void ClickMatch(int type)
|
| | | {
|
| | | crossServerModel.SendCrossMatch(type);
|
| | | crossServerRewardModel.IsOpenMatch = type == 1? true : false;
|
| | | crossServerRewardModel.ResetTime();
|
| | | lookPlayerObj.SetActive(type == 1);
|
| | | if(type == 1)
|
| | | {
|
| | | WindowCenter.Instance.Open<MatchWin>();
|
| | | crossServerModel.IsMatching = true;
|
| | | crossServerModel.matchStartTime = DateTime.Now;
|
| | | UpdateLookPlayerTime();
|
| | | }
|
| | | else
|
| | | {
|
| | | WindowCenter.Instance.CloseImmediately<MatchWin>();
|
| | | crossServerModel.IsMatching = false;
|
| | | }
|
| | | UpdateActivityState();
|
| | | }
|