yyl
2026-03-26 f4a702e212d1853735f8dae399da69d23bfa510e
Main/System/HeroUI/HeroDeleteWin.cs
@@ -261,9 +261,72 @@
            allItemDict[key] = Math.Max((long)(allItemDict[key] * HeroUIManager.Instance.deletePayBackPer / 100.0), 1);
        }
        List<Item> items = new List<Item>();
        foreach (var data in allItemDict)
        {
            items.Add(new Item(data.Key, data.Value, _dataEx:$"( {HeroUIManager.Instance.deletePayBackPer}% )"));
        }
        Dictionary<int, long> moreMMItemDict = new Dictionary<int, long>();
        Dictionary<int, long> moreTitleItemDict = new Dictionary<int, long>();
        int beautyEffectPer = BeautyMMManager.Instance.GetTalentEffectByType(TalentEffectType.HeroDelete);
        int titleEffect = PhantasmPavilionManager.Instance.GetTotalTalentValue(PhantasmPavilionType.Title, 3);
        //红颜和称号额外获得
        if (beautyEffectPer > 0)
        {
            for (int i = 0; i < HeroUIManager.Instance.selectDeleteHeroList.Count; i++)
            {
                HeroInfo hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.selectDeleteHeroList[i]);
                if (hero == null)
                    continue;
        List<Item> items = CommonFunc.ChangeToItemList(allItemDict);
                foreach (var tmp in hero.qualityConfig.TitleReturnItems)
                {
                    if (!moreMMItemDict.ContainsKey(tmp[0]))
                    {
                        moreMMItemDict.Add(tmp[0], (long)Math.Ceiling(tmp[1] * beautyEffectPer / 100.0f));
                    }
                    else
                    {
                        moreMMItemDict[tmp[0]] += (long)Math.Ceiling(tmp[1] * beautyEffectPer / 100.0f);
                    }
                }
            }
            foreach (var key in moreMMItemDict.Keys)
            {
                items.Add(new Item(key, moreMMItemDict[key], 20, _dataEx: $"( {beautyEffectPer}% )"));
            }
        }
        if (titleEffect > 0)
        {
            for (int i = 0; i < HeroUIManager.Instance.selectDeleteHeroList.Count; i++)
            {
                HeroInfo hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.selectDeleteHeroList[i]);
                if (hero == null)
                    continue;
                foreach (var tmp in hero.qualityConfig.TitleReturnItems)
                {
                    if (!moreTitleItemDict.ContainsKey(tmp[0]))
                    {
                        moreTitleItemDict.Add(tmp[0], (long)Math.Ceiling(tmp[1] * titleEffect / 100.0f));
                    }
                    else
                    {
                        moreTitleItemDict[tmp[0]] += (long)Math.Ceiling(tmp[1] * titleEffect / 100.0f);
                    }
                }
            }
            foreach (var key in moreTitleItemDict.Keys)
            {
                items.Add(new Item(key, moreTitleItemDict[key], 30, _dataEx: $"( {titleEffect}% )"));
            }
        }
        ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard25"), Language.Get("herocard26"), (bool isOk) =>
        {
            if (isOk)
@@ -280,7 +343,7 @@
                GameNetSystem.Instance.SendInfo(pack);
                HeroUIManager.Instance.selectDeleteHeroList.Clear();
            }
        }, itemName:$"( {HeroUIManager.Instance.deletePayBackPer}% )");
        });
    }