hch
2025-11-24 df658f77726c8f2079644fff7e7e1e1350d247f5
328 【主界面】坐骑系统  幻化
2个文件已修改
2个文件已添加
91 ■■■■■ 已修改文件
Main/System/Horse/HorseManager.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Horse/HorseSkinGetWin.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Horse/HorseSkinGetWin.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Horse/HorseSkinWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
Main/System/Horse/HorseSkinGetWin.cs
New file
@@ -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);
        }
    }
}
Main/System/Horse/HorseSkinGetWin.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b522473050a9501429fc9d89198641ee
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
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()