From eac8aeed7cea1f7ac5e08a4e231281a6a77b522d Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 22 十月 2025 20:09:50 +0800
Subject: [PATCH] 143 演武场-客户端 只在“没有战斗”和“主线战斗道中”时弹结算界面
---
Main/Component/UI/Common/PopupWindowsProcessor.cs | 49 +++++++++++++++----------------------------------
1 files changed, 15 insertions(+), 34 deletions(-)
diff --git a/Main/Component/UI/Common/PopupWindowsProcessor.cs b/Main/Component/UI/Common/PopupWindowsProcessor.cs
index 8e65e67..dd730d9 100644
--- a/Main/Component/UI/Common/PopupWindowsProcessor.cs
+++ b/Main/Component/UI/Common/PopupWindowsProcessor.cs
@@ -27,11 +27,12 @@
/// </summary>
/// <param name="name">绐楀彛鍚嶇О</param>
/// <param name="functionId">鍔熻兘ID锛岀敤浜庢寚瀹氱獥鍙g殑鍏蜂綋鍔熻兘鎴栨樉绀烘ā寮�</param>
- public void Add(string name, int functionId = 0)
+ public void Add(string name, bool isNeedHomeWin = true, int functionId = 0)
{
var popupWindow = new PopupWindow()
{
window = name,
+ isNeedHomeWin = isNeedHomeWin,
functionId = functionId,
};
@@ -41,6 +42,7 @@
}
popupWindowQueue.Add(popupWindow);
+ popupWindowQueue.Sort((x, y) => y.isNeedHomeWin.CompareTo(x.isNeedHomeWin));
}
/// <summary>
@@ -48,11 +50,12 @@
/// </summary>
/// <param name="name">绐楀彛鍚嶇О</param>
/// <param name="functionId">鍔熻兘ID</param>
- public void Remove(string name, int functionId = 0)
+ public void Remove(string name, bool isNeedHomeWin = true, int functionId = 0)
{
var popupWindow = new PopupWindow()
{
window = name,
+ isNeedHomeWin = isNeedHomeWin,
functionId = functionId,
};
@@ -97,10 +100,10 @@
if (UIManager.Instance.IsOpened<LoadingWin>())
return;
- if (!UIManager.Instance.IsOpened<HomeWin>())
+ if (!UIManager.Instance.IsOpened<HomeWin>() && popupWindowQueue[0].isNeedHomeWin)
return;
- // 绗竴娆℃墦寮�HomeWin鏃惰褰曟椂闂�
+ // 杩涘叆娓告垙绗竴娆℃帹閫佸仛寤惰繜澶勭悊
if (!homeWinFirstOpened)
{
firstTime = Time.realtimeSinceStartup;
@@ -110,6 +113,11 @@
}
// 绛夊緟x绉�
if (Time.realtimeSinceStartup - firstTime < stayTime)
+ return;
+
+ // 鍙湪鈥滄病鏈夋垬鏂椻�濆拰鈥滀富绾挎垬鏂椻�濇椂鍏佽寮圭獥
+ string activeBattleName = BattleManager.Instance.GetActiveBattleName();
+ if (activeBattleName != "" && activeBattleName != "StoryBattleField")
return;
if (UIManager.Instance.IsOpened(popupWindowQueue[0].window))
@@ -121,15 +129,12 @@
if (UIManager.Instance.ExistAnyFullScreenOrMaskWin(popupWindowQueue[0].window))
return;
-
-
- if (currentWindow.window != null)
+ if (currentWindow != null && currentWindow.window != null)
{
//鍒ゆ柇涓婁竴涓帹閫佹槸鍚﹀叧闂�
UIBase ui = UIManager.Instance.GetUI(currentWindow.window);
if (ui != null && ui.IsActive())
return;
-
}
currentWindow = popupWindowQueue[0];
@@ -144,7 +149,7 @@
/// 寮圭獥缁撴瀯浣擄紝鐢ㄤ簬琛ㄧず涓�涓緟澶勭悊鐨勫脊绐楄姹�
/// 鍖呭惈绐楀彛鍚嶇О鍜屽姛鑳絀D锛岄�氳繃杩欎袱涓瓧娈靛彲浠ュ敮涓�鏍囪瘑涓�涓脊绐楄姹�
/// </summary>
- public struct PopupWindow
+ public class PopupWindow
{
// 绐楀彛鍚嶇О
public string window;
@@ -152,31 +157,7 @@
// 鍔熻兘ID锛岀敤浜庢寚瀹氱獥鍙g殑鍏蜂綋鍔熻兘鎴栨樉绀烘ā寮�
public int functionId;
- public static bool operator ==(PopupWindow lhs, PopupWindow rhs)
- {
- return lhs.window == rhs.window && lhs.functionId == rhs.functionId;
- }
-
- public static bool operator !=(PopupWindow lhs, PopupWindow rhs)
- {
- return lhs.window != rhs.window || lhs.functionId != rhs.functionId;
- }
-
- // 娣诲姞GetHashCode鍜孍quals鏂规硶浠ョ‘淇濈粨鏋勪綋鍙互姝g‘姣旇緝
- public override bool Equals(object obj)
- {
- if (obj is PopupWindow)
- {
- PopupWindow other = (PopupWindow)obj;
- return this.window == other.window && this.functionId == other.functionId;
- }
- return false;
- }
-
- public override int GetHashCode()
- {
- return window.GetHashCode() ^ functionId.GetHashCode();
- }
+ public bool isNeedHomeWin;
}
}
\ No newline at end of file
--
Gitblit v1.8.0