From ad3f66509d2e61d8dc6630558153b71b774df20c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 21 二月 2025 01:40:56 +0800
Subject: [PATCH] 0312 10349 【越南】【英文】【BT】【砍树】跨服竞技场优化 - 第一版
---
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs | 224 +++++++++++++++++--------------------------------------
1 files changed, 69 insertions(+), 155 deletions(-)
diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
index acfd648..861200a 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
@@ -8,26 +8,25 @@
public class CrossServerOneVsOneArenaWin : Window
{
[SerializeField] Button scoreRankBtn;
- [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] Text winStreakText;
+ [SerializeField] Text reaminNumText;
[SerializeField] Button buyTimesBtn;
[SerializeField] Button matchRecordBtn;
- [SerializeField] RedpointBehaviour matchRedPointBeh;
[SerializeField] GameObject inSeasonTimeObj;
[SerializeField] GameObject outSeasonTimeObj;
- [SerializeField] GameObject lookPlayerObj;
- [SerializeField] Text lookTimeText;
[SerializeField] Text curSeasonNumText;
+ [SerializeField] Transform playerObjs;
+ [SerializeField] CrossServerOneVsOnePKPlayerCell[] matchPlayerObjs;
+ [SerializeField] Image refreshMoneyIcon;
+ [SerializeField] Text refreshMoneyText;
+ [SerializeField] Text freeRefreshText;
+ [SerializeField] Button refreshBtn;
+
CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
- float coolTime = 0;
#region Built-in
protected override void BindController()
{
@@ -39,17 +38,16 @@
buyTimesBtn.AddListener(ClickBuyTimes);
matchRecordBtn.AddListener(ClickMatchRecord);
scoreRankBtn.AddListener(ClickScoreRank);
+ refreshBtn.AddListener(ClickBuyRefreshMatch);
}
protected override void OnPreOpen()
{
- coolTime = 0;
- crossServerModel.isClickCoolTime = false;
+ crossServerModel.SendCrossMatch(0);
SetDisplay();
CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;
TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
- GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
- DTCC002_tagGCCrossRealmPKStartMatch.CrossServerStartMatchEvent += OnStartMatch;
+ crossServerModel.UpdateMatchPlayersEvent += UpdateMatchPlayers;
}
protected override void OnAfterOpen()
@@ -57,26 +55,12 @@
}
- protected override void LateUpdate()
- {
- base.LateUpdate();
- if(crossServerModel.isClickCoolTime)
- {
- coolTime += Time.deltaTime;
- if(coolTime >= 1)
- {
- coolTime = 0;
- crossServerModel.isClickCoolTime = false;
- }
- }
- }
protected override void OnPreClose()
{
CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;
TimeMgr.Instance.OnMinuteEvent -= UpdateMinute;
- GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
- DTCC002_tagGCCrossRealmPKStartMatch.CrossServerStartMatchEvent -= OnStartMatch;
+ crossServerModel.UpdateMatchPlayersEvent -= UpdateMatchPlayers;
}
protected override void OnAfterClose()
{
@@ -90,53 +74,55 @@
UpdatePKInfo();
}
+ private void UpdateMatchPlayers()
+ {
+ playerObjs.SetActive(true);
+ for (int i = 0; i < matchPlayerObjs.Length; i++)
+ {
+ matchPlayerObjs[i].Display(i);
+ }
+ }
+
private void SetDisplay()
{
UpdateMatchInfo();
UpdatePKInfo();
UpdateActivityState();
- UpdateLookPlayerTime();
+ UpdateMatchPlayers();
var pkSeason = CrossServerOneVsOnePKSeason.Instance;
seasonTimeText.text = pkSeason.ToDisplaySeasonTime();
curSeasonNumText.text = pkSeason.SeasonID.ToString();
- var openTimes = pkSeason.GetActivityTimes();
- openTimeText.SetActive(openTimes != null && openTimes.Count > 0);
- if(openTimes != null)
- {
- string openTimeDes = string.Empty;
- for(int i = 0; i < openTimes.Count; i++)
- {
- var openTime = openTimes[i];
- string timeDes = StringUtility.Contact(openTime.hourBegin.ToString("D2"), ":", openTime.minuteBegin.ToString("D2")
- ,"-",openTime.hourEnd.ToString("D2"),":",openTime.minuteEnd.ToString("D2"));
- if(i == 0)
- {
- openTimeDes = timeDes;
- }
- else
- {
- openTimeDes = StringUtility.Contact(openTimeDes,",",timeDes);
- }
- }
- openTimeText.text = Language.Get("CrossServer119", openTimeDes);
- }
-
- lookPlayerObj.SetActive(crossServerModel.IsMatching);
- matchRedPointBeh.SetActive(!crossServerModel.IsMatching);
}
private void UpdateMatchInfo()
{
int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
- if (remainNum > 0)
+ //if (remainNum > 0)
+ //{
+ // reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+ //}
+ //else
+ //{
+ // reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+ //}
+ reaminNumText.text = StringUtility.Contact(remainNum, "/", crossServerModel.freeMaxMatchNum);
+
+ int remainFreeNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshNum();
+ if (remainFreeNum > 0)
{
- reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+ freeRefreshText.SetActive(true);
+ refreshMoneyIcon.SetActive(false);
+ freeRefreshText.text = StringUtility.Contact(Language.Get("L2032"), Language.Get("BlessedLand036", remainFreeNum, crossServerModel.freeMaxMatchRefreshNum));
}
else
{
- reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+ freeRefreshText.SetActive(false);
+ refreshMoneyIcon.SetActive(true);
+ refreshMoneyIcon.SetSmallIconWithMoneyType(crossServerModel.refreshMoneyType);
+ refreshMoneyText.text = StringUtility.Contact(Language.Get("BlessedLand036", CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshPrice(), UIHelper.ReplaceLargeNum( UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType))));
}
}
+
private void UpdatePKInfo()
{
@@ -152,72 +138,13 @@
UpdateActivityState();
}
- private void UpdateSecond()
- {
- UpdateLookPlayerTime();
- }
-
- private void UpdateLookPlayerTime()
- {
- if (!crossServerModel.IsMatching)
- {
- if(lookPlayerObj.activeInHierarchy)
- {
- matchRedPointBeh.SetActive(true);
- lookPlayerObj.SetActive(false);
- }
- return;
- }
-
- if(CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch)
- {
- 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);
- }
- }
- else
- {
- ClickMatch(0);
- }
- }
private void UpdateActivityState()
{
bool isInTime = CrossServerOneVsOnePKSeason.Instance.InPkSeason(TimeUtility.ServerNow);
- bool isOpen = CrossServerOneVsOnePKSeason.Instance.InOpenTime();
inSeasonTimeObj.SetActive(isInTime);
outSeasonTimeObj.SetActive(!isInTime);
- matchBtn.RemoveAllListeners();
- if (isInTime)
- {
- matchBtn_Text.text = Language.Get("CrossServer109");
- if (isOpen)
- {
- matchBtn_Img.material = MaterialUtility.GetUIDefaultGraphicMaterial();
- if (!crossServerModel.IsMatching)
- {
- matchBtn.AddListener(() => { ClickMatch(1); });
- }
- else
- {
- matchBtn_Text.text = Language.Get("CrossServer110");
- matchBtn.AddListener(() => { ClickMatch(0); });
- }
- }
- else
- {
- matchBtn_Img.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
- matchBtn.AddListener(() => { SysNotifyMgr.Instance.ShowTip("CrossMatching20"); });
- }
- }
+ playerObjs.SetActive(isInTime);
}
private void ClickBuyTimes()
@@ -225,6 +152,32 @@
if (!crossServerModel.TryGetBuyMatchTimes("CrossMatching21")) return;
WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
+ }
+
+ private void ClickBuyRefreshMatch()
+ {
+ int price = CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshPrice();
+ // UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType)
+ if (price == 0)
+ {
+ crossServerModel.SendCrossMatch(1);
+ return;
+ }
+
+ if (UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType) < (ulong)price)
+ {
+ SysNotifyMgr.Instance.ShowTip("LackMoney", crossServerModel.refreshMoneyType);
+ return;
+ }
+
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
+ Language.Get("CrossServerOneVsOne1", price), (bool isOk) =>
+ {
+ if (isOk)
+ {
+ crossServerModel.SendCrossMatch(1);
+ }
+ });
}
private void ClickDayAward()
@@ -238,45 +191,6 @@
WindowCenter.Instance.Open<RankingWin>();
}
- private void OnStartMatch()
- {
- matchRedPointBeh.SetActive(false);
- lookPlayerObj.SetActive(true);
- crossServerModel.matchStartTime = DateTime.Now;
- UpdateLookPlayerTime();
- UpdateActivityState();
- }
-
- private void ClickMatch(int type)
- {
- if (type == 1)
- {
- if (!AssetVersionUtility.IsUnpriorAssetDownLoadOk())
- {
- InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
- return;
- }
- int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
- if (remainNum < 1)
- {
- WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
- return;
- }
- }
-
- if (crossServerModel.isClickCoolTime) return;
-
- DebugEx.Log("ClickMatch......");
- crossServerModel.isClickCoolTime = true;
- crossServerModel.SendCrossMatch(type);
- if(type == 0)
- {
- crossServerModel.IsMatching = false;
- matchRedPointBeh.SetActive(true);
- lookPlayerObj.SetActive(false);
- UpdateActivityState();
- }
- }
private void ClickMatchRecord()
{
--
Gitblit v1.8.0