0312 遣散-快速选择 只选符合条件中当前最低品质的;优化武将多选根据星数计算,显示按武将个数计算
2个文件已修改
45 ■■■■■ 已修改文件
Main/System/HeroUI/HeroDeleteWin.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroGiftRoleListCell.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroDeleteWin.cs
@@ -115,14 +115,36 @@
    void QuickSelect()
    {
        //只选精英
        //先遍历一遍找出品质最低的
        int minQuality = 100;
        for (int i = 0; i < HeroUIManager.Instance.heroDeleteSortList.Count; i++)
        {
            HeroInfo hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.heroDeleteSortList[i]);
            if (hero == null)
                continue;
            if (hero.Quality < minQuality)
            {
                minQuality = hero.Quality;
            }
            if (minQuality == 1)
            {
                //已经找到了最低品质的,就不用再找了
                break;
            }
        }
        if (minQuality == 100 || minQuality > 2)
        {
            //只有低品质的才有快速选择
            minQuality = 1;
        }
        //只选精英以下
        for (int i = 0; i < HeroUIManager.Instance.heroDeleteSortList.Count; i++)
        {
            HeroInfo hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.heroDeleteSortList[i]);
            if (hero == null)
                continue;
            if (hero.Quality > 2)
            if (hero.Quality != minQuality)
                continue;
            if (hero.awakeLevel > 0)
                    continue;
Main/System/HeroUI/HeroGiftRoleListCell.cs
@@ -75,7 +75,7 @@
        int maxStarCnt = HeroUIManager.Instance.GetMaxStarCount(hero.heroId, hero.Quality);
        int girdIndex = hero.itemHero.gridIndex;
        if (hero.heroStar > 0)
        if (hero.heroStar > 0 && !selectToggle.isOn)
        {
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
            Language.Get("HeroGift13"), (bool isOK) =>
@@ -96,7 +96,22 @@
    {
        if (!selectToggle.isOn)
        {
            if (HeroUIManager.Instance.selectEatHeroIndexList.Count >= maxStarCnt)
            //需要统计被吞噬的武将星数
            int eatStar = 0;
            for (int i = 0; i < HeroUIManager.Instance.selectEatHeroIndexList.Count; i++)
            {
                var hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.heroEatList[i]);
                if (hero == null)
                    continue;
                eatStar += hero.heroStar + 1;  //本体也算可增加1星
            }
            // 需增加待选这只的星级
            var selectStar = HeroManager.Instance.GetHeroByIndex(girdIndex).heroStar + 1; //本体也算可增加1星
            // 主武将星级
            var star = HeroManager.Instance.GetHero(HeroUIManager.Instance.selectHeroGuidForGiftFunc)?.heroStar;
            if (eatStar + selectStar + star > maxStarCnt)
            {
                SysNotifyMgr.Instance.ShowTip("HeroGiftEat1");
                return;