From 7ceccc591077b348613dcd1880408b82e2a183d4 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 04 十二月 2025 21:20:41 +0800
Subject: [PATCH] 0312 分包下载初版

---
 Main/System/AssetVersion/InGameDownLoadWin.cs |  357 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 183 insertions(+), 174 deletions(-)

diff --git a/Main/System/AssetVersion/InGameDownLoadWin.cs b/Main/System/AssetVersion/InGameDownLoadWin.cs
index 2725c8c..0c6fc46 100644
--- a/Main/System/AssetVersion/InGameDownLoadWin.cs
+++ b/Main/System/AssetVersion/InGameDownLoadWin.cs
@@ -10,196 +10,205 @@
 using UnityEngine.UI;
 
 
-    public class InGameDownLoadWin : UIBase
+public class InGameDownLoadWin : UIBase
+{
+    [SerializeField] RectTransform m_ContainerHint;
+    [SerializeField] ItemCell[] items;
+    [SerializeField] RectTransform[] m_RewardGotSigns;
+    [SerializeField] RichText m_Content;
+    [SerializeField] Button m_StartDownLoad;
+    [SerializeField] Button m_PauseDownLoad;
+    [SerializeField] Button m_Award;
+
+    [SerializeField] Transform m_ContainerProgress;
+    [SerializeField] SmoothSlider m_ProgressSlider;
+    [SerializeField] Text m_Progress;
+    [SerializeField] Text m_DownLoadSpeed;
+    // [SerializeField] ToggleButton downLoadGo; //鍔犻�熶笅杞�
+    float timer = 1f;
+
+    #region Built-in
+
+    protected override void InitComponent()
     {
-        [SerializeField] RectTransform m_RewardGotSign;
-        // [SerializeField] RewardPreviewGroup m_RewardGroup;
-        [SerializeField] RectTransform m_ContainerHint;
-        [SerializeField] RichText m_Content;
-        [SerializeField] Button m_StartDownLoad;
-        [SerializeField] Button m_PauseDownLoad;
-        [SerializeField] Button m_Award;
-        [SerializeField] Button m_Close;
+        m_StartDownLoad.AddListener(StartDownLoad);
+        m_PauseDownLoad.AddListener(PauseDownLoad);
+        m_Award.AddListener(Award);
+        // downLoadGo.SetListener(() => {
+        //     downLoadGo.isOn = !downLoadGo.isOn;
+        //     InGameDownLoad.Instance.downLoadGo = downLoadGo.isOn;
+        //     DownloadHotMgr.MaxDownLoadTask = InGameDownLoad.Instance.GetMaxTask();
+        // });
+    }
 
-        [SerializeField] Transform m_ContainerProgress;
-        [SerializeField] SmoothSlider m_ProgressSlider;
-        [SerializeField] Text m_Progress;
-        [SerializeField] Text m_DownLoadSpeed;
-        [SerializeField] ToggleButton downLoadGo; //鍔犻�熶笅杞�
-        float timer = 1f;
-
-        #region Built-in
-
-        protected override void InitComponent()
+    protected override void OnPreOpen()
+    {
+        InGameDownLoad.Instance.ParseRewardConfig();
+        timer = 1f;
+        for (int i = 0;  i < items.Length; i++)
         {
-            m_StartDownLoad.AddListener(StartDownLoad);
-            m_PauseDownLoad.AddListener(PauseDownLoad);
-            m_Award.AddListener(Award);
-            m_Close.AddListener(CloseWindow);
-            downLoadGo.SetListener(() => {
-                downLoadGo.isOn = !downLoadGo.isOn;
-                InGameDownLoad.Instance.downLoadGo = downLoadGo.isOn;
-                DownloadHotMgr.MaxDownLoadTask = InGameDownLoad.Instance.GetMaxTask();
-            });
-        }
-
-        protected override void OnPreOpen()
-        {
-            timer = 1f;
-            m_RewardGotSign.SetActive(InGameDownLoad.Instance.hasReward);
-
-            // var items = new List<Item>();
-            // foreach (var reward in InGameDownLoad.Instance.rewards)
-            // {
-            //     items.Add(new Item(reward.id, reward.count));
-            // }
-
-            // m_RewardGroup.Display(items);
-            OnDownLoadStepChange(InGameDownLoad.Instance.state);
-            downLoadGo.isOn = InGameDownLoad.Instance.downLoadGo;
-        }
-
-        protected override void OnOpen()
-        {
-            InGameDownLoad.Instance.downLoadStateChangeEvent += OnDownLoadStepChange;
-        }
-
-        protected override void OnPreClose()
-        {
-            InGameDownLoad.Instance.downLoadStateChangeEvent -= OnDownLoadStepChange;
-        }
-
-        protected override void OnClose()
-        {
-        }
-        #endregion
-
-        private void OnDownLoadStepChange(InGameDownLoad.State _step)
-        {
-            m_Award.SetActive(_step == InGameDownLoad.State.Award);
-            m_PauseDownLoad.SetActive(_step == InGameDownLoad.State.DownLoad);
-            m_StartDownLoad.SetActive(_step == InGameDownLoad.State.Prepared || _step == InGameDownLoad.State.Pause);
-            m_ContainerProgress.SetActive(_step == InGameDownLoad.State.DownLoad || _step == InGameDownLoad.State.Pause);
-
-            if (_step != InGameDownLoad.State.DownLoad)
+            if (i < InGameDownLoad.Instance.rewards.Length)
             {
-                m_DownLoadSpeed.text = string.Empty;
-            }
-
-            if (_step == InGameDownLoad.State.Prepared || _step == InGameDownLoad.State.Award)
-            {
-                m_ContainerHint.SetActive(true);
-                DisplayHintContent();
+                items[i].SetActive(true);
+                int itemID = InGameDownLoad.Instance.rewards[i][0];
+                items[i].Init(new ItemCellModel(InGameDownLoad.Instance.rewards[i][0], false, InGameDownLoad.Instance.rewards[i][1]));
+                items[i].button.AddListener(() => {
+                    ItemTipUtility.Show(itemID);
+                });
+                m_RewardGotSigns[i].SetActive(InGameDownLoad.Instance.hasReward);
             }
             else
             {
-                m_ContainerHint.SetActive(false);
+                items[i].SetActive(false);
             }
+
         }
 
-        protected void LateUpdate()
-        {
-            var step = InGameDownLoad.Instance.state;
-            if (step == InGameDownLoad.State.DownLoad)
-            {
-                timer += Time.deltaTime;
-                if (timer > 1f)
-                {
-                    timer -= 1f;
-                    m_ProgressSlider.value = InGameDownLoad.Instance.progress;
-                    var totalSizeString = ((float)InGameDownLoad.Instance.showTotalSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
-                    var downLoadedSize = Mathf.Clamp(InGameDownLoad.Instance.showDownLoadedSize, 0, InGameDownLoad.Instance.showTotalSize - 1);
-                    var downLoadedSizeString = ((float)downLoadedSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
-                    m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSizeString, "M", "/", totalSizeString, "M"));
+        OnDownLoadStepChange(InGameDownLoad.Instance.state);
+        // downLoadGo.isOn = InGameDownLoad.Instance.downLoadGo;
+    }
 
-                    if (InGameDownLoad.Instance.showDownLoadedSize >= InGameDownLoad.Instance.showTotalSize)
-                    {
-                        m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10), "KB/S");
-                    }
-                    else
-                    {
-                        m_DownLoadSpeed.text = DownloadHotMgr.Instance.SpeedFormat;
-                    }
+    protected override void OnOpen()
+    {
+        InGameDownLoad.Instance.downLoadStateChangeEvent += OnDownLoadStepChange;
+    }
+
+    protected override void OnPreClose()
+    {
+        InGameDownLoad.Instance.downLoadStateChangeEvent -= OnDownLoadStepChange;
+    }
+
+    protected override void OnClose()
+    {
+    }
+    #endregion
+
+    private void OnDownLoadStepChange(InGameDownLoad.State _step)
+    {
+        m_Award.SetActive(_step == InGameDownLoad.State.Award && !InGameDownLoad.Instance.hasReward);
+        m_PauseDownLoad.SetActive(_step == InGameDownLoad.State.DownLoad);
+        m_StartDownLoad.SetActive(_step == InGameDownLoad.State.Prepared || _step == InGameDownLoad.State.Pause);
+        m_ContainerProgress.SetActive(_step == InGameDownLoad.State.DownLoad || _step == InGameDownLoad.State.Pause);
+
+        if (_step != InGameDownLoad.State.DownLoad)
+        {
+            m_DownLoadSpeed.text = string.Empty;
+        }
+
+        if (_step == InGameDownLoad.State.Prepared || _step == InGameDownLoad.State.Award)
+        {
+            m_ContainerHint.SetActive(true);
+            DisplayHintContent();
+        }
+        else
+        {
+            m_ContainerHint.SetActive(false);
+        }
+    }
+
+    protected void LateUpdate()
+    {
+        var step = InGameDownLoad.Instance.state;
+        if (step == InGameDownLoad.State.DownLoad)
+        {
+            timer += Time.deltaTime;
+            if (timer > 1f)
+            {
+                timer -= 1f;
+                m_ProgressSlider.value = InGameDownLoad.Instance.progress;
+                var totalSizeString = ((float)InGameDownLoad.Instance.showTotalSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
+                var downLoadedSize = Mathf.Clamp(InGameDownLoad.Instance.showDownLoadedSize, 0, InGameDownLoad.Instance.showTotalSize - 1);
+                var downLoadedSizeString = ((float)downLoadedSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
+                m_Progress.text = Language.GetFromLocal(13, StringUtility.Contact(downLoadedSizeString, "M", "/", totalSizeString, "M"));
+
+                if (InGameDownLoad.Instance.showDownLoadedSize >= InGameDownLoad.Instance.showTotalSize)
+                {
+                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10), "KB/S");
+                }
+                else
+                {
+                    m_DownLoadSpeed.text = DownloadHotMgr.Instance.SpeedFormat;
                 }
             }
         }
-
-        private void DisplayHintContent()
-        {
-            var step = InGameDownLoad.Instance.state;
-
-            switch (step)
-            {
-                case InGameDownLoad.State.Prepared:
-                    var totalCount = InGameDownLoad.Instance.showTotalCount;
-                    var totalSize = InGameDownLoad.Instance.showTotalSize;
-                    if (totalSize > InGameDownLoad.BYTE_PER_MILLIONBYTE)
-                    {
-                        var sizeDescription = ((float)totalSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
-                        m_Content.text = Language.GetFromLocal(19, sizeDescription);
-                    }
-                    else
-                    {
-                        var sizeDescription = ((float)totalSize / InGameDownLoad.BYTE_PER_KILOBYTE).ToString("f1");
-                        m_Content.text = Language.GetFromLocal(20, sizeDescription);
-                    }
-                    break;
-                case InGameDownLoad.State.DownLoad:
-                    m_Content.text = Language.GetFromLocal(3);
-                    break;
-                case InGameDownLoad.State.Pause:
-                    m_Content.text = Language.GetFromLocal(21);
-                    break;
-                case InGameDownLoad.State.Award:
-                    m_Content.text = Language.GetFromLocal(25);
-                    break;
-            }
-        }
-
-        private void StartDownLoad()
-        {
-            timer = 1f;
-            switch (InGameDownLoad.Instance.state)
-            {
-                case InGameDownLoad.State.Prepared:
-                case InGameDownLoad.State.Pause:
-                    if (Application.internetReachability == NetworkReachability.NotReachable)
-                    {
-                        ServerTipDetails.DisplayNormalTip(Language.GetFromLocal(24));
-                    }
-                    else
-                    {
-                        InGameDownLoad.Instance.StartDownLoad();
-                        CloseWindow();
-                    }
-                    break;
-                default:
-                    CloseWindow();
-                    break;
-            }
-        }
-
-        private void PauseDownLoad()
-        {
-            timer = 1f;
-            switch (InGameDownLoad.Instance.state)
-            {
-                case InGameDownLoad.State.DownLoad:
-                    InGameDownLoad.Instance.Pause();
-                    break;
-                default:
-                    break;
-            }
-        }
-
-        private void Award()
-        {
-            InGameDownLoad.Instance.RequestDownLoadReward(true);
-            UIManager.Instance.CloseWindow<InGameDownLoadWin>();
-        }
-
     }
 
+    private void DisplayHintContent()
+    {
+        var step = InGameDownLoad.Instance.state;
+
+        switch (step)
+        {
+            case InGameDownLoad.State.Prepared:
+                var totalCount = InGameDownLoad.Instance.showTotalCount;
+                var totalSize = InGameDownLoad.Instance.showTotalSize;
+                if (totalSize > InGameDownLoad.BYTE_PER_MILLIONBYTE)
+                {
+                    var sizeDescription = ((float)totalSize / InGameDownLoad.BYTE_PER_MILLIONBYTE).ToString("f1");
+                    m_Content.text = Language.GetFromLocal(19, sizeDescription);
+                }
+                else
+                {
+                    var sizeDescription = ((float)totalSize / InGameDownLoad.BYTE_PER_KILOBYTE).ToString("f1");
+                    m_Content.text = Language.GetFromLocal(20, sizeDescription);
+                }
+                break;
+            case InGameDownLoad.State.DownLoad:
+                m_Content.text = Language.GetFromLocal(3);
+                break;
+            case InGameDownLoad.State.Pause:
+                m_Content.text = Language.GetFromLocal(21);
+                break;
+            case InGameDownLoad.State.Award:
+                m_Content.text = Language.GetFromLocal(25);
+                break;
+        }
+    }
+
+    private void StartDownLoad()
+    {
+        timer = 1f;
+        switch (InGameDownLoad.Instance.state)
+        {
+            case InGameDownLoad.State.Prepared:
+            case InGameDownLoad.State.Pause:
+                if (Application.internetReachability == NetworkReachability.NotReachable)
+                {
+                    ServerTipDetails.DisplayNormalTip(Language.GetFromLocal(24));
+                }
+                else
+                {
+                    InGameDownLoad.Instance.StartDownLoad();
+                    CloseWindow();
+                }
+                break;
+            default:
+                CloseWindow();
+                break;
+        }
+    }
+
+    private void PauseDownLoad()
+    {
+        timer = 1f;
+        switch (InGameDownLoad.Instance.state)
+        {
+            case InGameDownLoad.State.DownLoad:
+                InGameDownLoad.Instance.Pause();
+                break;
+            default:
+                break;
+        }
+    }
+
+    private void Award()
+    {
+        InGameDownLoad.Instance.RequestDownLoadReward();
+        UIManager.Instance.CloseWindow<InGameDownLoadWin>();
+    }
+
+}
+
 
 
 

--
Gitblit v1.8.0