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