492 武将登场-客户端 武将图鉴支持显示活动标识和按开服天显示图鉴
4个文件已修改
82 ■■■■■ 已修改文件
Main/Config/Configs/HeroConfig.cs 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroCollectionCardCell.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroCollectionWin.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.Collect.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/Configs/HeroConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           YYL
//    [  Date ]:           Tuesday, December 16, 2025
//    [  Date ]:           Friday, March 6, 2026
//--------------------------------------------------------
using System.Collections.Generic;
@@ -19,6 +19,8 @@
    public int HeroID;
    public string Name;
    public int PlayerCanUse;
    public int OpenCollectionDay;
    public int IsActLimit;
    public int Country;
    public int Quality;
    public int Class;
@@ -57,21 +59,25 @@
            int.TryParse(tables[2],out PlayerCanUse); 
            int.TryParse(tables[3],out Country);
            int.TryParse(tables[3],out OpenCollectionDay);
            int.TryParse(tables[4],out Quality);
            int.TryParse(tables[4],out IsActLimit);
            int.TryParse(tables[5],out Class);
            int.TryParse(tables[5],out Country);
            int.TryParse(tables[6],out Position);
            int.TryParse(tables[6],out Quality);
            if (tables[7].Contains("["))
            int.TryParse(tables[7],out Class);
            int.TryParse(tables[8],out Position);
            if (tables[9].Contains("["))
            {
                SkinIDList = JsonMapper.ToObject<int[]>(tables[7]);
                SkinIDList = JsonMapper.ToObject<int[]>(tables[9]);
            }
            else
            {
                string[] SkinIDListStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] SkinIDListStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                SkinIDList = new int[SkinIDListStringArray.Length];
                for (int i=0;i<SkinIDListStringArray.Length;i++)
                {
@@ -79,29 +85,29 @@
                }
            }
            int.TryParse(tables[8],out AtkSkillID);
            int.TryParse(tables[10],out AtkSkillID);
            int.TryParse(tables[9],out AngerSkillID);
            int.TryParse(tables[11],out AngerSkillID);
            int.TryParse(tables[10],out DeathSFX);
            int.TryParse(tables[12],out DeathSFX);
            int.TryParse(tables[11],out HitSFX);
            int.TryParse(tables[13],out HitSFX);
            int.TryParse(tables[12],out AtkInheritPer);
            int.TryParse(tables[14],out AtkInheritPer);
            int.TryParse(tables[13],out DefInheritPer);
            int.TryParse(tables[15],out DefInheritPer);
            int.TryParse(tables[14],out HPInheritPer);
            int.TryParse(tables[16],out HPInheritPer);
            BatAttrDict = ConfigParse.ParseIntDict(tables[15]);
            BatAttrDict = ConfigParse.ParseIntDict(tables[17]);
            if (tables[16].Contains("["))
            if (tables[18].Contains("["))
            {
                FetterIDList = JsonMapper.ToObject<int[]>(tables[16]);
                FetterIDList = JsonMapper.ToObject<int[]>(tables[18]);
            }
            else
            {
                string[] FetterIDListStringArray = tables[16].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] FetterIDListStringArray = tables[18].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                FetterIDList = new int[FetterIDListStringArray.Length];
                for (int i=0;i<FetterIDListStringArray.Length;i++)
                {
@@ -109,23 +115,23 @@
                }
            }
            float.TryParse(tables[17],out UIScale);
            float.TryParse(tables[19],out UIScale);
            Desc = tables[18];
            Desc = tables[20];
            int.TryParse(tables[19],out RecruitBySelf);
            int.TryParse(tables[21],out RecruitBySelf);
            int.TryParse(tables[20],out Specialty);
            int.TryParse(tables[22],out Specialty);
            int.TryParse(tables[21],out HurtType);
            int.TryParse(tables[23],out HurtType);
            if (tables[22].Contains("["))
            if (tables[24].Contains("["))
            {
                Specialty2 = JsonMapper.ToObject<int[]>(tables[22]);
                Specialty2 = JsonMapper.ToObject<int[]>(tables[24]);
            }
            else
            {
                string[] Specialty2StringArray = tables[22].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] Specialty2StringArray = tables[24].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                Specialty2 = new int[Specialty2StringArray.Length];
                for (int i=0;i<Specialty2StringArray.Length;i++)
                {
@@ -133,13 +139,13 @@
                }
            }
            if (tables[23].Contains("["))
            if (tables[25].Contains("["))
            {
                TalentList = JsonMapper.ToObject<int[]>(tables[23]);
                TalentList = JsonMapper.ToObject<int[]>(tables[25]);
            }
            else
            {
                string[] TalentListStringArray = tables[23].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] TalentListStringArray = tables[25].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                TalentList = new int[TalentListStringArray.Length];
                for (int i=0;i<TalentListStringArray.Length;i++)
                {
Main/System/HeroUI/HeroCollectionCardCell.cs
@@ -16,7 +16,7 @@
    // [SerializeField] Button bookLVBtn;
    [SerializeField] GameObject unGetObj;
    [SerializeField] GameObject activeObj; // 可激活带流光效果材质
    [SerializeField] GameObject actLimitObj; // 活动限定
    public void Display(int index, int quality)
    {
        var heroID = HeroUIManager.Instance.heroCollectDict[quality][index];
@@ -34,6 +34,7 @@
        activeObj.SetActive(funcState == 1);
        // bookLVBtn.SetActive(funcState > 1);
        unGetObj.SetActive(funcState == 0);
        actLimitObj.SetActive(heroConfig.IsActLimit == 1);
        countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
        jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
Main/System/HeroUI/HeroCollectionWin.cs
@@ -44,24 +44,30 @@
        PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
        HeroUIManager.Instance.OnHeroCollectEvent += OnHeroCollectEvent;
        heroListScroller.OnRefreshCell += OnRefreshCell;
        TimeMgr.Instance.OnDayEvent += OnDayEvent;
        HeroUIManager.Instance.SortHeroCollectList();
        Display();
    }
    protected override void OnPreClose()
    {
        PackManager.Instance.gridRefreshEvent -= GridRefreshEvent;
        PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
        HeroUIManager.Instance.OnHeroCollectEvent -= OnHeroCollectEvent;
        heroListScroller.OnRefreshCell -= OnRefreshCell;
        TimeMgr.Instance.OnDayEvent -= OnDayEvent;
    }
    private void OnDayEvent()
    {
        HeroUIManager.Instance.SortHeroCollectList();
        CreateScroller();
    }
    void Display()
    {
        fiterManager.Display(0, SelectJobCountry);
        // CreateScroller();
        // RefreshTotalAttr();
        RefreshPackCount();
Main/System/HeroUI/HeroUIManager.Collect.cs
@@ -87,6 +87,9 @@
            HeroConfig heroConfig = HeroConfig.Get(heroID);
            if (heroConfig.PlayerCanUse == 0)
                continue;
            // 新增:开服第x天显示图鉴,0表示不限制开服天
            if (heroConfig.OpenCollectionDay > 0 && TimeUtility.OpenDay + 1 < heroConfig.OpenCollectionDay)
                continue;
            if (!heroCollectDict.ContainsKey(heroConfig.Quality))
            {
                heroCollectDict[heroConfig.Quality] = new List<int>();