From ad2daf1c55ff5bb9209cb9ac3048c5b613db5552 Mon Sep 17 00:00:00 2001 From: Chomper9981 Date: Mon, 13 Apr 2026 16:02:05 +0700 Subject: [PATCH 1/2] fix Item not reset after reopen dlg award --- .../Scripts/UI/DlgAward/AwardItem.cs | 28 +++++++++++++++++-- .../Scripts/UI/DlgAward/CDlgAward.cs | 10 ++++++- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs index b1e1eaed1d..8d1eacd02e 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/AwardItem.cs @@ -25,6 +25,11 @@ namespace BrewMonster.Scripts.UI public void SetImage(Sprite sprite) { + if (img == null) + { + return; + } + img.enabled = sprite != null; img.sprite = sprite; } @@ -36,7 +41,11 @@ namespace BrewMonster.Scripts.UI public void SetColor(Color color) { - // TODO : Set color to relevant UI components + if (img == null) + { + return; + } + img.color = color; } public void SetHint(string text) @@ -44,9 +53,24 @@ namespace BrewMonster.Scripts.UI txtHint = text; } + /// + /// Reset slot when this cell has no award (e.g. dialog reopened with fewer items). + /// 清空格子:再次打开奖励界面时清除上一轮的图标与点击逻辑。 + /// public void ClearCover() { - // TODO : Implement cover clearing functionality + if (img != null) + { + img.sprite = null; + img.enabled = false; + img.color = Color.white; + } + if (btn != null) + { + btn.onClick.RemoveAllListeners(); + } + txtHint = string.Empty; + isOn = false; } public void Show(bool show) diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs index 2f43f22e63..ed78151793 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs @@ -59,6 +59,14 @@ namespace BrewMonster.Scripts.UI { toggle.isOn = false; } + if (itemInfoPanel != null) + { + itemInfoPanel.SetActive(false); + } + if (descriptionOutlet != null) + { + descriptionOutlet.Set(string.Empty); + } _btnClose.onClick.AddListener(OnCloseDlgAward); } @@ -214,7 +222,7 @@ namespace BrewMonster.Scripts.UI // sprintf(out szName, "Item_%02d01", i); // pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName); // if (!pImage) break; // All done. - pImage = GetAwardItemAt(i, i); + pImage = GetAwardItemAt(i, 1); if (!pImage) break; // sprintf(out szName, "Rdo_Award%d", i); From 947e1a6100f319ef18b8d71e223ecf0762212a54 Mon Sep 17 00:00:00 2001 From: Chomper9981 Date: Mon, 13 Apr 2026 16:59:20 +0700 Subject: [PATCH 2/2] fix time format bug --- Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs b/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs index 6b78431e80..ae643353b7 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/DlgTask.cs @@ -1831,9 +1831,18 @@ namespace BrewMonster.Scripts.Task.UI public static string FormatTime(int nSec, string desc, int timeLimit) { - var ts = System.TimeSpan.FromSeconds(System.Math.Max(0, nSec)); - string label = string.IsNullOrEmpty(desc) ? string.Empty : desc; - return $"{label}{ts:hh\\:mm\\:ss}\n"; + int total = System.Math.Max(0, nSec); + int h = total / 3600; + int m = (total % 3600) / 60; + int s = total % 60; + // Matches table printf "%d:%02d:%02d" (hours, zero-padded min/sec); works for durations over 24h. + string timeStr = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}:{1:D2}:{2:D2}", h, m, s); + if (string.IsNullOrEmpty(desc)) + return timeStr; + const string kPrintfTime = "%d:%02d:%02d"; + if (desc.IndexOf(kPrintfTime, System.StringComparison.Ordinal) >= 0) + return desc.Replace(kPrintfTime, timeStr); + return desc + timeStr; } // private static string GetStringFromTable(int id)