yyl
2026-03-26 f4a702e212d1853735f8dae399da69d23bfa510e
Main/System/HappyXB/HeroCallResultWin.cs
@@ -123,6 +123,7 @@
            resultState = HeroUIManager.Instance.selectCallIndex == 0 ? ResultState.single : ResultState.ten;
            RefreshState();
            CheckWishFinishOnSkip();
        }
        else
        {
@@ -338,7 +339,11 @@
        roleLHModelTween2.SetStartState();
        roleLHModelTween2.Play();
        bgTexture.SetTexture2D("countryBG" + hero.Country);
        bgTexture.SetTexture2D(HeroUIManager.Instance.GetBGName(hero.SkinIDList[0], hero.Country));
        if (IsWishHero(heroID))
        {
            UIManager.Instance.OpenWindow<HeroCallXYFinishWin>();
        }
    }
    void RefreshHeroInfo(int heroID)
@@ -365,4 +370,45 @@
        }
        callTip.text = Language.Get("HeroCall6", needCount, string.Join(Language.Get("L1130"), qualityStrList.ToArray()));
    }
    /// <summary>
    /// 跳过动画时,检查是否抽到了心愿武将
    /// </summary>
    void CheckWishFinishOnSkip()
    {
        // 只有高级招募才有心愿
        if (HeroUIManager.Instance.selectCallType != HappXBTitle.HeroCallAdvanced) return;
        for (int i = 0; i < HappyXBModel.Instance.xbResultDict.Count; i++)
        {
            int heroID = HappyXBModel.Instance.xbResultDict[i].itemId;
            if (IsWishHero(heroID))
            {
                // 抽到了心愿武将,打开完成特效界面
                UIManager.Instance.OpenWindow<HeroCallXYFinishWin>();
                break;
            }
        }
    }
    /// <summary>
    /// 判断指定的英雄ID是否为当前选中的心愿武将
    /// </summary>
    bool IsWishHero(int heroID)
    {
        if (HeroUIManager.Instance.selectCallType != HappXBTitle.HeroCallAdvanced) return false;
        var hero = HeroConfig.Get(heroID);
        if (hero == null) return false;
        if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, hero.Quality, out int wishID, out _, out _))
        {
            var libCfg = TreasureItemLibConfig.Get(wishID);
            if (libCfg != null && libCfg.ItemID == heroID)
            {
                return true;
            }
        }
        return false;
    }
}