hch
2025-10-22 af6e207c6d185ed66125e85e18c02c63bea597f9
Main/System/HeroUI/HeroUIManager.cs
@@ -24,6 +24,10 @@
    //使用方法:其他功能界面设置该值即可
    public KeyValuePair<string, long> lastFightPower = new KeyValuePair<string, long>();
    public bool isCustonHeroFormation = false;
    public List<TeamHero> custonTeamHeroes = new List<TeamHero>();
    public override void Init()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
@@ -32,6 +36,7 @@
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
        TeamManager.Instance.OnTeamChange += OnTeamChangeEvent;
        QuickSetting.Instance.onQuickSettingUpdate += OnQuickSettingUpdate;
        ParseConfig();
        InitHeroOnTeamRedpointList();
        InitHeroBookRedpointList();
@@ -45,6 +50,7 @@
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
        TeamManager.Instance.OnTeamChange -= OnTeamChangeEvent;
        QuickSetting.Instance.onQuickSettingUpdate -= OnQuickSettingUpdate;
    }
    void ParseConfig()
@@ -60,6 +66,13 @@
        config = FuncConfigConfig.Get("HeroRedpoint");
        heroRedpointItemList = JsonMapper.ToObject<int[]>(config.Numerical1);
        config = FuncConfigConfig.Get("HeroOnTeam");
        lockHeroCountLimit = JsonMapper.ToObject<int[][]>(config.Numerical1);
        teamSortByJob = JsonMapper.ToObject<int[]>(config.Numerical2);
        onekeyGuideID = int.Parse(config.Numerical3);
        onekeyGuideFirstPos = int.Parse(config.Numerical4);
    }
    public void OnBeforePlayerDataInitialize()
@@ -163,21 +176,22 @@
        return hero.heroLevel >= GetMaxLV(hero.Quality);
    }
    //突破限制的最高等级; 存在突破等级可能更多的情况,不一定提供等级上限
    //突破限制的最高等级; 如果存在突破等级后不能再升级是策划配置问题
    public int GetMaxLVByBreakLV(int quality, int breakLevel)
    {
        for (int i = breakLevel; i >= 0; i--)
        {
            var config = HeroQualityBreakConfig.GetQualityBreakConfig(quality, i);
            if (config == null)
            {
                continue;
            }
            return config.LVMax;
        }
        return 0;
        // for (int i = breakLevel; i >= 0; i--)
        // {
        //     var config = HeroQualityBreakConfig.GetQualityBreakConfig(quality, i);
        //     if (config == null)
        //     {
        //         continue;
        //     }
        //     return config.LVMax;
        // }
        return HeroQualityBreakConfig.GetQualityBreakConfig(quality, breakLevel).LVMax;
    }
    //是否达到因突破限制的最高级
    public bool IsLVMaxByBreakLevel(HeroInfo hero)
    {
        return hero.heroLevel == GetMaxLVByBreakLV(hero.Quality, hero.breakLevel);
@@ -416,6 +430,7 @@
                {
                    return 3;
                }
                return 0;
            }
        }
@@ -442,11 +457,11 @@
    {
        heroOnTeamRedpointList.Clear();
        for (int i = 0; i < TeamConst.MaxTeamHeroCount; i++)
        {
        {
            heroOnTeamRedpointList.Add(new Redpoint(MainRedDot.HeroCardRedpoint, MainRedDot.HeroCardRedpoint * 10 + i));
        }
    }
    //武将卡的红点:只给上阵武将刷红点(含新标识),非上阵武将的新图标按图片处理不归类为红点
    void UpdateHeroCardRedpoint()
@@ -483,7 +498,7 @@
    {
        heroBookRedpointList.Clear();
        foreach (var key in HeroConfig.GetKeys())
        {
        {
            var config = HeroConfig.Get(key);
            if (config.PlayerCanUse == 0)
                continue;
@@ -553,7 +568,7 @@
{
    None = 0,   //无功能
    Break = 1,  //突破
    Gift  = 2,  //天赋吞噬
    Gift = 2,  //天赋吞噬
    Awake = 3,  //觉醒
}
#endregion