hch
2025-11-24 22362d43bbd9fbd67d08150d741fb479b05261ba
328 【主界面】坐骑系统  幻化 去掉活动激活的坐骑幻化 缺物品
4个文件已修改
110 ■■■■■ 已修改文件
Main/Config/PartialConfigs/HorseSkinConfig.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Horse/HorseManager.cs 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Horse/HorseSkinCell.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Horse/HorseSkinWin.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/PartialConfigs/HorseSkinConfig.cs
@@ -1,18 +1,11 @@
using System.Collections.Generic;
public partial class HorseSkinConfig : ConfigBase<int, HorseSkinConfig>
{
    public static List<int> rankLVList = new List<int>();  //升阶解锁
    public static List<int> itemsList = new List<int>(); //皮肤道具解锁/升星
    protected override void OnConfigParseCompleted()
    {
        if (UnlockWay == 1)
        {
            if (UnlockValue != 0 && !rankLVList.Contains(UnlockValue))
            {
                rankLVList.Add(UnlockValue);
            }
        }
        else if (UnlockWay == 2)
        if (UnlockWay == 2)
        {
            if (UnlockValue != 0 && !itemsList.Contains(UnlockValue))
            {
Main/System/Horse/HorseManager.cs
@@ -11,7 +11,6 @@
    public int exp;    //当前阶等级经验,每级从0开始
    public event Action OnHorseUpdateEvent;
    public int lastClassLV;  //皮肤界面点击后红点刷新
    Dictionary<int, HorseSkin> skinDic = new Dictionary<int, HorseSkin>();
    public event Action OnSkinUpdateEvent;
@@ -67,7 +66,6 @@
        horseLV = 0;
        exp = 0;
        skinDic.Clear();
        lastClassLV = 0;
    }
    void OnPlayerLoginOk()
@@ -131,10 +129,6 @@
            UIManager.Instance.OpenWindow<HorseSuccessWin>();
        }
        if (!DTC0403_tagPlayerLoginLoadOK.finishedLogin)
        {
            lastClassLV = classLV;
        }
    }
@@ -189,7 +183,7 @@
    }
    //皮肤红点
    public void UpdateSkinRedpoint()
    void UpdateSkinRedpoint()
    {
        skinRedpoint.state = RedPointState.None;
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse))
@@ -202,22 +196,10 @@
            return;
        }
        //升阶解锁红点
        foreach (var lv in HorseSkinConfig.rankLVList)
        {
            if (classLV >= lv && lastClassLV < lv)
            {
                skinRedpoint.state = RedPointState.Simple;
                return;
            }
        }
        //升星解锁红点
        //升星/解锁红点
        foreach (var skin in HorseSkinConfig.GetValues())
        {
            if (skin.UnlockWay != 2)
                continue;
            if (IsSkinActive(skin.SkinID))
            {
                if (skin.StarMax > 0)
@@ -234,13 +216,25 @@
            }
            else
            {
                //皮肤解锁红点
                int itemID = skin.UnlockValue;
                var count = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
                if (count >= skin.UnlockNeedCnt)
                if (skin.UnlockWay == 1)
                {
                    skinRedpoint.state = RedPointState.Simple;
                    return;
                    if (classLV >= skin.UnlockValue &&  skin.UnlockValue > 0)
                    {
                        skinRedpoint.state = RedPointState.Simple;
                        return;
                    }
                }
                else
                {
                    //皮肤解锁红点
                    int itemID = skin.UnlockValue;
                    var count = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
                    if (count >= skin.UnlockNeedCnt)
                    {
                        skinRedpoint.state = RedPointState.Simple;
                        return;
                    }
                }
            }
@@ -260,27 +254,18 @@
                return true;
            }
        }
        var skinConfig = HorseSkinConfig.Get(id);
        if (skinConfig.UnlockWay == 1)
        var config = HorseSkinConfig.Get(id);
        if (config.UnlockWay == 1 && config.UnlockValue == 0)
        {
            return classLV >= skinConfig.UnlockValue;
            return true;
        }
        return false;
    }
    public bool IsShowTheHorseRedImg(int skinID)
    {
        var skin = HorseSkinConfig.Get(skinID);
        int lv = skin.UnlockWay == 1 ? skin.UnlockValue : 0;
        //升阶解锁红点
        if (classLV >= lv && lastClassLV < lv)
        {
            return true;
        }
        //升星解锁红点
        if (skin.UnlockWay != 2)
            return false;
        if (IsSkinActive(skin.SkinID))
        {
@@ -297,13 +282,24 @@
        }
        else
        {
            //皮肤解锁红点
            int itemID = skin.UnlockValue;
            var count = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
            if (count >= skin.UnlockNeedCnt)
            if (skin.UnlockWay == 1)
            {
                return true;
                if (classLV >= skin.UnlockValue && skin.UnlockValue > 0)
                {
                    return true;
                }
            }
            else
            {
                //皮肤解锁红点
                int itemID = skin.UnlockValue;
                var count = PackManager.Instance.GetItemCountByID(PackType.Item, itemID);
                if (count >= skin.UnlockNeedCnt)
                {
                    return true;
                }
            }
        }
        return false;
    }
Main/System/Horse/HorseSkinCell.cs
@@ -25,13 +25,6 @@
    {
        HorseManager.Instance.selectSkinID = skinID;
        var skinConfig = HorseSkinConfig.Get(skinID);
        if (skinConfig.UnlockWay == 1 && HorseManager.Instance.lastClassLV != HorseManager.Instance.classLV)
        {
            HorseManager.Instance.lastClassLV = HorseManager.Instance.classLV;
            HorseManager.Instance.UpdateSkinRedpoint();
        }
    }
    public void Display(int _skinID)
Main/System/Horse/HorseSkinWin.cs
@@ -51,8 +51,6 @@
    protected override void OnPreClose()
    {
        HorseManager.Instance.lastClassLV = HorseManager.Instance.classLV;
        HorseManager.Instance.UpdateSkinRedpoint();
        HorseManager.Instance.OnSkinUpdateEvent -= OnSkinUpdateEvent;
        HorseManager.Instance.OnSelectEvent -= OnSelectEvent;
        scroller.OnRefreshCell -= OnRefreshCell;
@@ -103,7 +101,7 @@
        bool isActive = HorseManager.Instance.IsSkinActive(HorseManager.Instance.selectSkinID);
        var skinData = HorseManager.Instance.GetSkinData(HorseManager.Instance.selectSkinID);
        if (skinConfig.StarMax > 0 && skinData.Star > 0)
        if (skinConfig.StarMax > 0 && skinData != null && skinData.Star > 0)
        {
            horseName.text = skinConfig.Name + "+" + skinData.Star;
        }
@@ -154,13 +152,13 @@
        else
        {
            changeOPObj.SetActive(false);
            unlockBtn.SetActive(true);
            if (skinConfig.UnlockWay == 1)
            {
                unlockBtn.SetActive(false);
                unlockCostText.SetActive(false);
            }
            else
            {
                unlockBtn.SetActive(true);
                unlockCostText.SetActive(true);
                unlockCostText.text = UIHelper.ShowUseItem(PackType.Item, skinConfig.UnlockValue, skinConfig.UnlockNeedCnt);
                unlockItemImg.SetItemSprite(skinConfig.UnlockValue);