hch
2025-12-08 8abae5507079d754f081edd94d52ae5816d4a03c
0312 武将生效未上阵的增加吞噬红点; 遣散过滤未满星 生效的
7个文件已修改
124 ■■■■■ 已修改文件
Main/System/Hero/HeroManager.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroCardCell.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroListWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.Reborn.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroUIManager.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Redpoint/MainRedDot.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Utility/EnumHelper.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Hero/HeroManager.cs
@@ -83,6 +83,11 @@
        return heroInfoDict.Values.ToList();
    }
    public List<string> GetHeroGuidList()
    {
        return heroInfoDict.Keys.ToList();
    }
    /// 参数: 职业,国家,伤害类型,6大战斗属性,特殊属性
    public List<string> GetHeroGuidList(List<int> selectList = null)
    {
Main/System/HeroUI/HeroCardCell.cs
@@ -14,6 +14,7 @@
    [SerializeField] RedpointBehaviour redpoint;
    [SerializeField] Image newImage;    //新标识和红点互斥
    [SerializeField] Image trainStateImg;
    [SerializeField] Image starRedImg;
    [SerializeField] Text nameText;
    [SerializeField] Image awakeImg;
    [SerializeField] Text awakeLVText;
@@ -62,6 +63,9 @@
        {
            trainStateImg.SetActive(false);
        }
        starRedImg.SetActive(funcState == 2);
        nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel);
        awakeImg.SetActive(hero.awakeLevel > 0);
        awakeLVText.text = hero.awakeLevel.ToString();
Main/System/HeroUI/HeroListWin.cs
@@ -160,6 +160,7 @@
        HeroUIManager.Instance.SortHeroList();
        RefreshEmptyTip();
        CreateScroller();
        heroListScroller.JumpIndex(0);
    }
    //上阵加成
@@ -227,6 +228,8 @@
            }
        }
        heroListScroller.Restart();
        heroListScroller.lockType = EnhanceLockType.KeepVertical;
    }
    int GetAttrActiveHeroCount()
Main/System/HeroUI/HeroUIManager.Reborn.cs
@@ -100,9 +100,76 @@
    }
    //遣散获取符合条件的武将列表
    /// 参数: 职业,国家,伤害类型,6大战斗属性,特殊属性
    public List<string> GetHeroGuidListDelectFunc(List<int> selectList = null)
    {
        var _list = HeroManager.Instance.GetHeroList();
        if (selectList.IsNullOrEmpty())
            return HeroManager.Instance.GetHeroGuidList();
        int job = selectList[0];
        int country = selectList[1];
        int hurtType = selectList[2];
        int fightAttrType = selectList[3];
        int specialAttrType = selectList[4];
        List<string> retGuidList = new List<string>();
        foreach (var heroInfo in _list)
        {
            if (heroInfo.isAttrActive)
                continue;
            if (heroInfo.heroStar < heroInfo.GetCurMaxStar())
            {
                continue;
            }
            //0代表全部, 同级别是可复选,不同级别为且的关系
            bool isMatch = true;
            if (job != 0)
            {
                isMatch = isMatch && (job & (1 << heroInfo.heroConfig.Class)) > 0;
            }
            if (country != 0)
            {
                isMatch = isMatch && (country & (1 << heroInfo.heroConfig.Country)) > 0;
            }
            if (hurtType != 0)
            {
                isMatch = isMatch && (hurtType & (1 << heroInfo.heroConfig.HurtType)) > 0;
            }
            if (fightAttrType != 0)
            {
                isMatch = isMatch && (fightAttrType & (1 << heroInfo.heroConfig.Specialty)) > 0;
            }
            if (specialAttrType != 0)
            {
                bool isMatch2 = false;
                for (int i = 0; i < heroInfo.heroConfig.Specialty2.Length; i++)
                {
                    isMatch2 = (specialAttrType & (1 << heroInfo.heroConfig.Specialty2[i])) > 0;
                    if (isMatch2)
                        break;
                }
                isMatch = isMatch && isMatch2;
            }
            if (isMatch)
            {
                retGuidList.Add(heroInfo.itemHero.guid);
            }
        }
        return retGuidList;
    }
    public void SortHeroDeleteList()
    {
        heroDeleteSortList = HeroManager.Instance.GetHeroGuidList(selectHeroDeleteList);
        heroDeleteSortList = GetHeroGuidListDelectFunc(selectHeroDeleteList);
        heroDeleteSortList.Sort(CmpDeleteHero);
    }
Main/System/HeroUI/HeroUIManager.cs
@@ -467,12 +467,19 @@
    // 主线上阵武将才需要提醒  觉醒>升星>突破>升级
    public int GetFuncState(HeroInfo hero)
    {
        if (!hero.isAttrActive)
            return 0;
        var heroCnt = PackManager.Instance.GetItemCountByID(PackType.Hero, hero.heroId);
        if (!hero.IsInTeamByTeamType(TeamType.Story))
        {
            if (hero.heroStar < hero.GetCurMaxStar() && heroCnt > 1)
            {
                return 2;
            }
            return 0;
        }
        var heroCnt = PackManager.Instance.GetItemCountByID(PackType.Hero, hero.heroId);
        var itemPack = PackManager.Instance.GetSinglePack(PackType.Item);
        //5星后才能觉醒
        if (hero.heroStar < starLevelCanAwake)
@@ -493,7 +500,10 @@
            }
        }
        if (heroCnt > 1) return 2;
        if (hero.heroStar < hero.GetCurMaxStar() && heroCnt > 1)
        {
            return 2;
        }
        var maxBreakLV = HeroBreakConfig.GetMaxBreakLv(hero.heroId);
        if (hero.breakLevel < maxBreakLV)
@@ -526,6 +536,8 @@
    List<Redpoint> heroOnTeamRedpointList = new List<Redpoint>();   //上阵的武将红点
    List<Redpoint> heroBookRedpointList = new List<Redpoint>(); //图鉴所有武将红点
    //生效未上阵的 可吞噬的共用一个红点
    Redpoint heroEatRedPoint = new Redpoint(MainRedDot.HeroCardRedpoint, MainRedDot.HeroCardRedpoint * 10 + 8);
    //新标识的红点 所有武将统一个
    Redpoint newMarkRedPoint = new Redpoint(MainRedDot.HeroCardRedpoint, MainRedDot.HeroCardRedpoint * 10 + 9);
    void InitHeroOnTeamRedpointList()
@@ -566,6 +578,27 @@
        }
        newMarkRedPoint.state = newHeroIDList.Count > 0 ? RedPointState.New : RedPointState.None;
        heroEatRedPoint.state = RedPointState.None;
        var _list = HeroManager.Instance.GetHeroList();
        foreach (var hero in _list)
        {
            if (!hero.isAttrActive)
            {
                continue;
            }
            if (hero.heroStar >= hero.GetCurMaxStar())
            {
                continue;
            }
            if (HeroManager.Instance.GetHeroCountByID(hero.heroId) > 1)
            {
                heroEatRedPoint.state = RedPointState.Simple;
                break;
            }
        }
    }
Main/System/Redpoint/MainRedDot.cs
@@ -70,7 +70,8 @@
    //自动战斗
    public const int RedPoint_AutoBattleKey = 110;
    Redpoint autoBattleRedpoint = new Redpoint(RedPoint_AutoBattleKey);
    public const int RedPoint_OSMainLevel = 111;
    public const int RedPoint_OSHeroCard = 112;
    public const int RedPoint_Download = 116;
    //武将卡
Main/Utility/EnumHelper.cs
@@ -837,8 +837,9 @@
    Horse = 37,  //坐骑
    BattlePass = 40, //基金(战令)
    LLMJ = 41,  //历练秘笈
    OSMainLevl = 45, //开服关卡榜活动
    OSHeroCall = 46, //开服武将召唤榜活动
    FunctionPreview = 48, //功能预览
}