From cc349a454d938e4046151233d6639d2c3807da9b Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 04 十一月 2025 14:48:47 +0800
Subject: [PATCH] 143 演武场-客户端 接入挑战凭证用货币购买

---
 Main/Utility/UIHelper.cs                   |   14 +++++++
 Main/System/ItemTip/ItemTipWayWin.cs       |   39 +++++++++++++++++--
 Main/System/Arena/ArenaChallengeVoucher.cs |    4 +
 Main/System/Store/StoreModel.cs            |   11 +++++
 Main/Config/Configs/GetItemWaysConfig.cs   |   15 ++++++-
 5 files changed, 75 insertions(+), 8 deletions(-)

diff --git a/Main/Config/Configs/GetItemWaysConfig.cs b/Main/Config/Configs/GetItemWaysConfig.cs
index 41cd2d4..89dce2d 100644
--- a/Main/Config/Configs/GetItemWaysConfig.cs
+++ b/Main/Config/Configs/GetItemWaysConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�8鏈�10鏃�
+//    [  Date ]:           2025骞�11鏈�4鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -17,9 +17,12 @@
     }
 
     public int ID;
-	public string name;
+	public string Name;
 	public string Text;
 	public int WinJumpID;
+	public int FuncID;
+	public int Type;
+	public string CustomValue;
 
     public override int LoadKey(string _key)
     {
@@ -33,11 +36,17 @@
         string[] tables = input.Split('\t');
         int.TryParse(tables[0],out ID); 
 
-			name = tables[1];
+			Name = tables[1];
 
 			Text = tables[2];
 
 			int.TryParse(tables[3],out WinJumpID); 
+
+			int.TryParse(tables[4],out FuncID); 
+
+			int.TryParse(tables[5],out Type); 
+
+			CustomValue = tables[6];
         }
         catch (Exception exception)
         {
diff --git a/Main/System/Arena/ArenaChallengeVoucher.cs b/Main/System/Arena/ArenaChallengeVoucher.cs
index f2abeec..409326c 100644
--- a/Main/System/Arena/ArenaChallengeVoucher.cs
+++ b/Main/System/Arena/ArenaChallengeVoucher.cs
@@ -10,7 +10,9 @@
     {
         btnBuy.SetListener(() =>
         {
-
+            int type = ArenaManager.Instance.ChallengeMoneyType;
+            int itemID = UIHelper.GetItemIDWithMoneyType(type);
+            ItemTipUtility.Show(itemID, true);
         });
     }
 
diff --git a/Main/System/ItemTip/ItemTipWayWin.cs b/Main/System/ItemTip/ItemTipWayWin.cs
index d4b982e..9b4c8bd 100644
--- a/Main/System/ItemTip/ItemTipWayWin.cs
+++ b/Main/System/ItemTip/ItemTipWayWin.cs
@@ -47,18 +47,49 @@
     {
         var way = GetItemWaysConfig.Get(cell.index);
         var nameText = cell.FindComponent("Text", "name") as Text;
-        nameText.text = way.name;
+        nameText.text = way.Name;
 
         var descText = cell.FindComponent("Text", "way") as Text;
         descText.text = way.Text;
 
-        cell.GetComponent<Button>().AddListener(()=>
-        { 
-            UIJumpManager.Instance.OpenWindow(way.WinJumpID);
+        cell.GetComponent<Button>().AddListener(() =>
+        {
+            Run(way);
         });
     }
 
+    void Run(GetItemWaysConfig way)
+    {
+        if (way == null)
+            return;
+        int funcID = way.FuncID;
+        if (FuncOpenLVConfig.HasKey(funcID) && !FuncOpen.Instance.IsFuncOpen(funcID))
+            return;
+        switch (way.Type)
+        {
+            case 0:
+                if (WindowSearchConfig.HasKey(way.WinJumpID))
+                {
+                    UIJumpManager.Instance.OpenWindow(way.WinJumpID);
+                }
+                break;
+            case 1:
+                int shopID = int.Parse(way.CustomValue);
+                if (StoreModel.Instance.CheckPopBuyWin(shopID))
+                {
+                    StoreModel.Instance.buyShopID = shopID;
+                    UIManager.Instance.OpenWindow<BuyItemWin>();
+                }
+                break;
+            default:
+                if (WindowSearchConfig.HasKey(way.WinJumpID))
+                {
+                    UIJumpManager.Instance.OpenWindow(way.WinJumpID);
+                }
+                break;
+        }
 
+    }
 }
 
 
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index cc788fa..8310ac8 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -541,6 +541,17 @@
         
         return 0;
     }
+
+    public bool CheckPopBuyWin(int shopID)
+    {
+        int state = GetShopIDState(shopID);
+        if (state == 1 || state == 3)
+        {
+            SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("StoreTip", state));
+            return false;
+        }
+        return true;
+    }
 }
 
 public enum StoreFunc
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index 025b3ef..8767f39 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -100,6 +100,20 @@
         }
     }
 
+    // 閫氳繃璐у竵绫诲瀷鑾峰彇鐗╁搧ID
+    public static int GetItemIDWithMoneyType(int moneyType)
+    {
+        if (GeneralDefine.MoneyDisplayModel.ContainsKey(moneyType))
+        {
+            return GeneralDefine.MoneyDisplayModel[moneyType];
+        }
+        else
+        {
+            Debug.LogError("MoneyDisplayModel 鏈厤缃揣甯佺被鍨嬶細" + moneyType);
+            return 0;
+        }
+    }
+
     /// <summary>
     /// 鍒嗙瀛楃涓叉彃鍏ョ┖鏍�
     /// </summary>

--
Gitblit v1.8.0