From b0d2f41126f4abd4e8524262a53f2f4515977135 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 26 十一月 2025 10:59:53 +0800
Subject: [PATCH] 16 【主界面】坐骑系统测试记录

---
 Main/System/Horse/HorseWin.cs       |   33 +++++++++++++++++++++++++++++++--
 Main/System/Horse/HorseRankUPWin.cs |   14 ++++++++++++++
 2 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/Main/System/Horse/HorseRankUPWin.cs b/Main/System/Horse/HorseRankUPWin.cs
index 80dddfa..0ad3fe1 100644
--- a/Main/System/Horse/HorseRankUPWin.cs
+++ b/Main/System/Horse/HorseRankUPWin.cs
@@ -32,7 +32,13 @@
 
     protected override void OnPreOpen()
     {
+        PackManager.Instance.RefreshItemEvent += OnRefreshItemEvent;
         Display();
+    }
+    
+    protected override void OnPreClose()
+    {
+        PackManager.Instance.RefreshItemEvent -= OnRefreshItemEvent;
     }
 
     void Display()
@@ -100,4 +106,12 @@
         GameNetSystem.Instance.SendInfo(pack);
         CloseWindow();
     }
+
+    void OnRefreshItemEvent(PackType type, int index, int itemID)
+    {
+        if (type == PackType.Item && itemID == HorseManager.Instance.rankUPItemID)
+        {
+            costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.rankUPItemID, HorseClassConfig.Get(HorseManager.Instance.classLV).ClassUPItemCnt);
+        }
+    }
 }
\ No newline at end of file
diff --git a/Main/System/Horse/HorseWin.cs b/Main/System/Horse/HorseWin.cs
index 6d0a280..fb7e609 100644
--- a/Main/System/Horse/HorseWin.cs
+++ b/Main/System/Horse/HorseWin.cs
@@ -1,3 +1,4 @@
+using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
@@ -51,6 +52,8 @@
         quickUpToggle.isOn = !LocalSave.GetBool("HorseQuickUp" + PlayerDatas.Instance.baseData.PlayerID);
         HorseManager.Instance.OnHorseUpdateEvent += OnHorseUpdateEvent;
         PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
+        PackManager.Instance.RefreshItemEvent += OnRefreshItemEvent;
+
         Display();
     }
 
@@ -58,6 +61,7 @@
     {
         HorseManager.Instance.OnHorseUpdateEvent -= OnHorseUpdateEvent;
         PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
+        PackManager.Instance.RefreshItemEvent -= OnRefreshItemEvent;
     }
 
     void OnHorseUpdateEvent()
@@ -114,7 +118,7 @@
         processImg.fillAmount = HorseManager.Instance.exp / (float)config.LVUPItemCnt;
         processText.text = HorseManager.Instance.exp + "/" + config.LVUPItemCnt;
 
-        needUPText.text = Language.Get("Horse7", config.MaxLV - HorseManager.Instance.horseLV);
+        needUPText.text = Language.Get("Horse7", Math.Max(0, config.MaxLV - HorseManager.Instance.horseLV));
         var state = HorseManager.Instance.GetHorseState();
         if (state == 0)
         {
@@ -214,7 +218,7 @@
 
 
     }
-    
+
     void PlayerDataRefresh(PlayerDataType type)
     {
         switch (type)
@@ -227,4 +231,29 @@
 
 
     }
+    
+
+    void OnRefreshItemEvent(PackType type, int index, int itemID)
+    {
+        if (type == PackType.Item && (itemID == HorseManager.Instance.rankUPItemID ||
+        itemID == HorseManager.Instance.lvUPItemID))
+        {
+            var config = HorseClassConfig.Get(HorseManager.Instance.classLV);
+            var state = HorseManager.Instance.GetHorseState();
+            if (state == 0)
+            {
+                int useCnt = 1;
+                if (HorseManager.Instance.classLV >= HorseManager.Instance.quickRankLV && quickUpToggle.isOn)
+                {
+                    useCnt = config.LVUPItemCnt - HorseManager.Instance.exp;
+                }
+                costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.lvUPItemID, useCnt);
+            }
+            else if (state == 1)
+            {
+                costText.text = UIHelper.ShowUseItem(PackType.Item, HorseManager.Instance.rankUPItemID, config.ClassUPItemCnt);
+            }
+
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0