From df658f77726c8f2079644fff7e7e1e1350d247f5 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 24 十一月 2025 15:36:02 +0800
Subject: [PATCH] 328 【主界面】坐骑系统  幻化

---
 Main/System/Horse/HorseManager.cs         |   22 +++++++----
 Main/System/Horse/HorseSkinGetWin.cs.meta |   11 +++++
 Main/System/Horse/HorseSkinGetWin.cs      |   55 +++++++++++++++++++++++++++
 Main/System/Horse/HorseSkinWin.cs         |    3 +
 4 files changed, 83 insertions(+), 8 deletions(-)

diff --git a/Main/System/Horse/HorseManager.cs b/Main/System/Horse/HorseManager.cs
index 59fa1a7..73ac403 100644
--- a/Main/System/Horse/HorseManager.cs
+++ b/Main/System/Horse/HorseManager.cs
@@ -147,6 +147,12 @@
         RefreshSkinAttr();
         UpdateSkinRedpoint();
         OnSkinUpdateEvent?.Invoke();
+
+        if (DTC0403_tagPlayerLoginLoadOK.finishedLogin && netPack.HorseSkinList[0].Star == 0)
+        {
+            UIManager.Instance.OpenWindow<HorseSkinGetWin>(netPack.HorseSkinList[0].HorseSkinID);
+        }
+
     }
 
     #region 绾㈢偣
@@ -469,17 +475,17 @@
 
     public Dictionary<int, long> GetAttrBySkinID(HorseSkinConfig config)
     {
-        skinAttrDic.Clear();
+        Dictionary<int, long> tmpDict = new Dictionary<int, long>();
 
         if (!config.InitAttrValueList.IsNullOrEmpty())
         {
             for (int i = 0; i < config.AttrIDList.Length; i++)
             {
-                if (!skinAttrDic.ContainsKey(config.AttrIDList[i]))
+                if (!tmpDict.ContainsKey(config.AttrIDList[i]))
                 {
-                    skinAttrDic[config.AttrIDList[i]] = 0;
+                    tmpDict[config.AttrIDList[i]] = 0;
                 }
-                skinAttrDic[config.AttrIDList[i]] += config.InitAttrValueList[i];
+                tmpDict[config.AttrIDList[i]] += config.InitAttrValueList[i];
             }
         }
 
@@ -492,14 +498,14 @@
             }
             for (int i = 0; i < config.AttrIDList.Length; i++)
             {
-                if (!skinAttrDic.ContainsKey(config.AttrIDList[i]))
+                if (!tmpDict.ContainsKey(config.AttrIDList[i]))
                 {
-                    skinAttrDic[config.AttrIDList[i]] = 0;
+                    tmpDict[config.AttrIDList[i]] = 0;
                 }
-                skinAttrDic[config.AttrIDList[i]] += config.AttrPerStarAddList[i] * star;
+                tmpDict[config.AttrIDList[i]] += config.AttrPerStarAddList[i] * star;
             }
         }
-        return skinAttrDic;
+        return tmpDict;
     }
 
     public HorseSkin GetSkinData(int skinID)
diff --git a/Main/System/Horse/HorseSkinGetWin.cs b/Main/System/Horse/HorseSkinGetWin.cs
new file mode 100644
index 0000000..51e0637
--- /dev/null
+++ b/Main/System/Horse/HorseSkinGetWin.cs
@@ -0,0 +1,55 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 鍧愰獞澶栬婵�娲�
+/// </summary>
+public class HorseSkinGetWin : UIBase
+{
+    [SerializeField] HorseController horseModel;
+    [SerializeField] Text horseName;
+    [SerializeField] Transform attrObj;
+    [SerializeField] Text attrText;
+    [SerializeField] Button okbtn;
+
+    protected override void InitComponent()
+    {
+        okbtn.AddListener(CloseWindow);
+    }
+
+    protected override void OnPreOpen()
+    {
+        Display();
+    }
+
+
+
+    void Display()
+    {
+        var skinID = functionOrder;
+        var skinConfig = HorseSkinConfig.Get(skinID);
+        horseModel.Create(skinID);
+        horseName.text = skinConfig.Name;
+
+        if (skinConfig.AttrIDList.IsNullOrEmpty())
+        {
+            attrObj.SetActive(false);
+        }
+        else
+        {
+            attrObj.SetActive(true);
+
+            var dict = HorseManager.Instance.GetAttrBySkinID(skinConfig);
+            var attrList = new List<string>();
+
+            foreach (var kv in dict)
+            {
+                attrList.Add(PlayerPropertyConfig.GetFullDescription(kv.Key, kv.Value));
+            }
+            attrText.text = string.Join(Language.Get("L1112"), attrList);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/Main/System/Horse/HorseSkinGetWin.cs.meta b/Main/System/Horse/HorseSkinGetWin.cs.meta
new file mode 100644
index 0000000..c0e7477
--- /dev/null
+++ b/Main/System/Horse/HorseSkinGetWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b522473050a9501429fc9d89198641ee
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Horse/HorseSkinWin.cs b/Main/System/Horse/HorseSkinWin.cs
index eafa6ce..e43e639 100644
--- a/Main/System/Horse/HorseSkinWin.cs
+++ b/Main/System/Horse/HorseSkinWin.cs
@@ -15,6 +15,7 @@
     [SerializeField] Text attrText;
     [SerializeField] ScrollerController scroller;
     [SerializeField] Transform changeOPObj;
+    [SerializeField] UIEffectPlayer lvUpEffect;
     [SerializeField] Button lvUpBtn;
     [SerializeField] Text lvUpText;
     [SerializeField] Text lvUpCostText;
@@ -261,6 +262,8 @@
         if (ItemLogicUtility.CheckItemCount(PackType.Item, skinConfig.UnlockValue, skinConfig.UpNeedCnt, 2))
         {
             HorseManager.Instance.SendSkinOP(3, HorseManager.Instance.selectSkinID);
+            lvUpEffect.Play();
+            SysNotifyMgr.Instance.ShowTip("Success");
         }
     }
     void OnChangeSkinBtnClick()

--
Gitblit v1.8.0