hch
2025-12-29 0d226a53cc7a1b93ee6a494be5965c37f98310ae
Main/System/HappyXB/HeroCallHopeAddCell.cs
@@ -9,17 +9,62 @@
    [SerializeField] Image notOpenImg;
    [SerializeField] Image addImg;
    [SerializeField] Button addBtn;
    [SerializeField] Transform tipRect;
    [SerializeField] Text freeText;
    [SerializeField] Text itemCntText;
    [SerializeField] Image itemIcon;
    /// <summary>
    /// 显示心愿选择结果框
    /// </summary>
    /// <param name="quality">5 神话 4 传奇</param>
    /// <param name="addAction">默认打开心愿界面,可传入点击添加按钮事件 </param>
    /// <param name="heroAction">默认打开心愿界面,可传入点击武将头像事件</param>
    /// <param name="changeHeroID">预览英雄ID,-1取消预览</param>
    public void Display(int quality, UnityAction<int> addAction = null, UnityAction<int> heroAction = null, int changeHeroID = 0)
    {
        var data = HappyXBModel.Instance.GetXBInfoByType((int)HappXBTitle.HeroCallAdvanced);
        var config = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced);
        var needOpenCnt = config.WishOpen - data.treasureCount;
        bool headGray = false;
        int itemID = HappyXBModel.Instance.GetWishCardItemID(quality);
        //心愿抽取情况 <LIBID:已抽到次数,是否勾选自动,当前心愿ID>
        var wishData = HappyXBModel.Instance.GetWishDataByQuality(quality);
        if (wishData.wishCnt < HappyXBModel.wishMaxOutCnt)
        {
            tipRect.SetActive(true);
            freeText.SetActive(true);
            itemCntText?.SetActive(false);
            headGray = false;
        }
        else if (wishData.auto && PackManager.Instance.GetItemCountByID(PackType.Item, itemID) > 0)
        {
            if (itemCntText == null)
            {
                tipRect.SetActive(false);
            }
            else
            {
                tipRect.SetActive(true);
                freeText.SetActive(false);
                itemCntText.SetActive(true);
                itemIcon.SetItemSprite(itemID);
                itemCntText.text = UIHelper.ShowUseItem(PackType.Item, itemID, 1, bright: false);
            }
            headGray = false;
        }
        else
        {
            tipRect.SetActive(false);
            headGray = true;
        }
        int wishID = 0;
        bool auto = false;
        int wishCnt = 0;
        int heroID = 0;
        if (needOpenCnt <= 0)
@@ -27,17 +72,17 @@
            notOpenImg.SetActive(false);
            
            if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out wishID, out wishCnt))
            if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out wishID, out wishCnt, out auto))
            {
                if (heroAction == null)
                {
                    heroAction = (quality) =>
                    {
                        if (HappyXBModel.Instance.IsTodayWishFinish())
                        {
                            SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
                            return;
                        }
                        // if (HappyXBModel.Instance.IsTodayWishFinish())
                        // {
                        //     SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
                        //     return;
                        // }
                        UIManager.Instance.OpenWindow<HeroCallHopeWin>(quality == 4 ? 1 : 0);
                    };
@@ -60,7 +105,7 @@
            {
                head.SetActive(true);
                addImg.SetActive(false);
                head.Init(heroID, wishCnt >= HappyXBModel.wishMaxOutCnt, ()=> { heroAction.Invoke(quality); });
                head.Init(heroID, headGray, ()=> { heroAction.Invoke(quality); });
            }
            else
            {
@@ -84,11 +129,11 @@
            {
                if (needOpenCnt <= 0)
                {
                    if (HappyXBModel.Instance.IsTodayWishFinish())
                    {
                        SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
                        return;
                    }
                    // if (HappyXBModel.Instance.IsTodayWishFinish())
                    // {
                    //     SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
                    //     return;
                    // }
                    UIManager.Instance.OpenWindow<HeroCallHopeWin>(quality == 4 ? 1 : 0);
                    return;
                }