fix show dlgTeamList continuous

This commit is contained in:
VuNgocHaiC7
2026-03-09 15:29:21 +07:00
parent e9a909fa35
commit 564e27b6b8
3 changed files with 39 additions and 9 deletions
@@ -22,12 +22,21 @@ namespace BrewMonster.UI
[SerializeField] private Button btnClose;
private readonly List<DlgTeamMate> m_pMates = new List<DlgTeamMate>();
private bool m_bPendingShow = false;
private bool m_bHasShowOnce = false;
public override void Awake()
{
base.Awake();
SetName("Win_TeamMain");
}
public void ShowTeamDialog()
{
m_bPendingShow = true;
UpdateTeamInfo();
}
/// <summary>No-op until real implementation.</summary>
public bool UpdateTeamInfo()
{
@@ -45,11 +54,8 @@ namespace BrewMonster.UI
{
HideTeamList();
ClearAllTeamMates();
return true;
}
if (!IsShow())
{
m_bPendingShow = false;
m_bHasShowOnce = false;
return true;
}
@@ -61,7 +67,9 @@ namespace BrewMonster.UI
{
CECTeamMember member = team.GetMemberByIndex(i);
if (member == null)
{
continue;
}
int idPlayer = member.GetCharacterID();
if (idHost == idPlayer)
@@ -70,6 +78,18 @@ namespace BrewMonster.UI
displayMembers.Add(member);
}
if (displayMembers.Count > 0 && !IsShow() && (m_bPendingShow || !m_bHasShowOnce))
{
Show(true);
m_bPendingShow = false;
m_bHasShowOnce = true;
}
if (!IsShow())
{
return true;
}
int neededCount = displayMembers.Count;
AdjustTeamMateCount(neededCount);
@@ -82,7 +102,9 @@ namespace BrewMonster.UI
DlgTeamMate pDlgMate = m_pMates[i];
if (pDlgMate == null)
{
continue;
}
pDlgMate.UpdateMemberDisplay(member);
pDlgMate.SetMemberID(member.GetCharacterID());
@@ -198,6 +220,7 @@ namespace BrewMonster.UI
private void OnClickClose()
{
Show(false);
m_bPendingShow = false;
}
}
}
+2 -2
View File
@@ -23,7 +23,7 @@ namespace BrewMonster
pTeam.AddMember(pCmd.idLeader);
pTeam.SetPickupFlag(pCmd.wPickFlag);
SetTeam(pTeam);
NotifyUIUpdateTeam();
NotifyUIUpdateTeam(true);
}
private void OnMsgHstLeaveTeam(ECMSG Msg)
@@ -50,7 +50,7 @@ namespace BrewMonster
m_pTeam.AddUnknownID(cid);
if (EC_ManMessageMono.Instance?.GetECManPlayer?.GetPlayer(cid, 0) == null && UnityGameSession.Instance != null)
UnityGameSession.c2s_CmdTeamMemberPos(1, new[] { cid });
NotifyUIUpdateTeam();
NotifyUIUpdateTeam(true);
}
private void OnMsgHstTeamMemberData(ECMSG Msg)
{
+9 -2
View File
@@ -636,7 +636,7 @@ namespace BrewMonster
}
}*/
}
private void NotifyUIUpdateTeam()
private void NotifyUIUpdateTeam(bool showDialog = false)
{
//try
//{
@@ -652,7 +652,14 @@ namespace BrewMonster
var dlgTeamMain = uiMan.GetDialog("Win_TeamMain") as DlgTeamMain;
if (dlgTeamMain != null)
{
dlgTeamMain.UpdateTeamInfo();
if (showDialog)
{
dlgTeamMain.ShowTeamDialog();
}
else
{
dlgTeamMain.UpdateTeamInfo();
}
}
}