From 9a43efd1b70bb105adcbd0ec3ae8016d49112c52 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 23 三月 2026 17:32:35 +0800
Subject: [PATCH] Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts

---
 Main/System/HappyXB/HeroCallXYFinishWin.cs      |   23 +++++++++++
 Main/System/HappyXB/HeroCallXYFinishWin.cs.meta |   11 +++++
 Main/System/HappyXB/HeroCallResultWin.cs        |   46 +++++++++++++++++++++++
 3 files changed, 80 insertions(+), 0 deletions(-)

diff --git a/Main/System/HappyXB/HeroCallResultWin.cs b/Main/System/HappyXB/HeroCallResultWin.cs
index 50c7e93..b1aeb11 100644
--- a/Main/System/HappyXB/HeroCallResultWin.cs
+++ b/Main/System/HappyXB/HeroCallResultWin.cs
@@ -123,6 +123,7 @@
             resultState = HeroUIManager.Instance.selectCallIndex == 0 ? ResultState.single : ResultState.ten;
 
             RefreshState();
+            CheckWishFinishOnSkip();
         }
         else
         {
@@ -338,6 +339,10 @@
         roleLHModelTween2.Play();
 
         bgTexture.SetTexture2D(HeroUIManager.Instance.GetBGName(hero.SkinIDList[0], hero.Country));
+        if (IsWishHero(heroID))
+        {
+            UIManager.Instance.OpenWindow<HeroCallXYFinishWin>();
+        }
     }
 
     void RefreshHeroInfo(int heroID)
@@ -364,4 +369,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>
+    /// 鍒ゆ柇鎸囧畾鐨勮嫳闆処D鏄惁涓哄綋鍓嶉�変腑鐨勫績鎰挎灏�
+    /// </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;
+    }
 }
\ No newline at end of file
diff --git a/Main/System/HappyXB/HeroCallXYFinishWin.cs b/Main/System/HappyXB/HeroCallXYFinishWin.cs
new file mode 100644
index 0000000..47423f9
--- /dev/null
+++ b/Main/System/HappyXB/HeroCallXYFinishWin.cs
@@ -0,0 +1,23 @@
+using System;
+using UnityEngine;
+
+public class HeroCallXYFinishWin : UIBase
+{
+    [SerializeField] UIEffectPlayer xyFinishUIEffect;
+    protected override void OnPreOpen()
+    {
+        xyFinishUIEffect.onComplete += OnComplete;
+        xyFinishUIEffect.Play();
+    }
+
+    protected override void OnPreClose()
+    {
+        xyFinishUIEffect.onComplete -= OnComplete;
+        xyFinishUIEffect.Stop();
+    }
+
+    private void OnComplete()
+    {
+        CloseWindow();
+    }
+}
\ No newline at end of file
diff --git a/Main/System/HappyXB/HeroCallXYFinishWin.cs.meta b/Main/System/HappyXB/HeroCallXYFinishWin.cs.meta
new file mode 100644
index 0000000..98e8b91
--- /dev/null
+++ b/Main/System/HappyXB/HeroCallXYFinishWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 52b2744981baf7b47b433b13fcf02f38
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.8.0