From ed26f235a0f41c5676a9ce3c898d6bef18623fbe Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 30 一月 2026 10:34:37 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/Battle/BattleField/BattleField.cs       |   10 +++++
 Main/System/Equip/EquipModel.cs                     |    2 
 Main/System/Mingge/MinggeWin.cs                     |    2 
 Main/System/Hero/UIHeroController.cs                |   11 +++++
 Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs  |    2 
 Main/System/Mingge/MinggeManager.cs                 |   44 ++++++++++++++++++++--
 Main/Component/UI/Effect/EffectPlayer.cs            |   16 ++++++-
 Main/System/OtherPlayerDetail/OtherEquipCardItem.cs |    2 
 Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs |    2 
 9 files changed, 79 insertions(+), 12 deletions(-)

diff --git a/Main/Component/UI/Effect/EffectPlayer.cs b/Main/Component/UI/Effect/EffectPlayer.cs
index 661b4e5..e12dbe3 100644
--- a/Main/Component/UI/Effect/EffectPlayer.cs
+++ b/Main/Component/UI/Effect/EffectPlayer.cs
@@ -35,7 +35,7 @@
 
     public EffectConfig effectConfig;
 
-    public float speedRate = 1f;
+    public float speedRate = 1f;    //鍒濆鍖栫殑鏃跺�欑敤 淇敼浣跨敤SetSpeed
 
     [Header("鏄惁寰幆鎾斁spine鐗规晥")]
     public bool isPlaySpineLoop = false;
@@ -249,7 +249,17 @@
     //     return;
     // }
 
-
+	//瓒婂ぇ瓒婂揩
+	public void SetSpeed(float speed)
+    {
+        speedRate = speed;
+        if (spineAnimationState == null)
+        {
+            Debug.LogError("spineAnimationState is null 鍙互鍏堣皟鐢╬lay");
+            return;
+        }
+		spineAnimationState.TimeScale = speed;
+	}
 
     protected void PlaySpineEffect(bool closePMA = false)
     {
@@ -268,7 +278,6 @@
             spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA;   
             spineComp.raycastTarget = false;
             spineComp.Initialize(true);
-            spineComp.timeScale = speedRate;
             // 妫�鏌ュ姩鐢绘槸鍚︽湁鐩稿姞妯″紡
             // bool hasAdditiveBlend = CheckForAdditiveBlend(spineComp.Skeleton);
             // if (hasAdditiveBlend)
@@ -282,6 +291,7 @@
             spineComp.material = ResManager.Instance.LoadAsset<Material>("Materials", "SkeletonGraphicDefault-Straight");
 
             spineAnimationState = spineComp.AnimationState;
+            spineAnimationState.TimeScale = speedRate;
             spineAnimationState.Data.DefaultMix = 0f;
             spineAnimationState.Complete -= OnSpineAnimationComplete;
             spineAnimationState.Complete += OnSpineAnimationComplete;
diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index 9ef715c..e6a8219 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -657,6 +657,11 @@
 
         foreach (var obj in blueTeam)
         {
+            if (obj is MinggeBattleObject)
+            {
+                continue;
+            }
+
             obj.SetActive(true);
             obj.PlayAnimation(MotionName.run, true);
             RectTransform trans = obj.GetRectTransform();
@@ -669,6 +674,11 @@
         {
             foreach (var obj in blueTeam)
             {
+                if (obj is MinggeBattleObject)
+                {
+                    continue;
+                }
+
                 obj.PlayAnimation(MotionName.idle, true);
             }
 
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
index 7a50cdb..548cb93 100644
--- a/Main/System/Equip/EquipModel.cs
+++ b/Main/System/Equip/EquipModel.cs
@@ -273,7 +273,7 @@
     }
 
     /// <summary>
-    /// 瑁呭鎿嶄綔, // 0 - 鎷惧彇闈炶澶囩墿鍝侊紱1 - 鍒嗚В锛�2 - 绌挎埓/鏇挎崲
+    /// 瑁呭鎿嶄綔, // 0 - 鎷惧彇闈炶澶囩墿鍝侊紱1 - 鍒嗚В锛�2 - 绌挎埓/鏇挎崲 3 璇锋眰鏇村鍗′綇鐨勮澶�
     /// </summary>
     /// <param name="itemIndexList"> 鏆傚畾閮芥槸鍗曚欢澶勭悊濡傛灉瑕佹壒閲忓鐞� 娉ㄦ剰鎴樺姏鐨勮绠楁秷鑰�</param>
     /// <param name="opType"></param>
diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index 6119e98..dd7ae75 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -126,14 +126,25 @@
 			Debug.LogError("鏈厤缃畇pine");
 			return;
 		}
+		skeletonGraphic.initialSkinName = skinConfig.InitialSkinName;
 		skeletonGraphic.Initialize(true);
+		// 鍒濆鍖栧畬鎴愬悗璁剧疆鐨偆
+		if (!string.IsNullOrEmpty(skinConfig.InitialSkinName))
+		{
+			var skeleton = skeletonGraphic.Skeleton;
+			skeleton.SetSkin(skinConfig.InitialSkinName);
+			skeleton.SetSlotsToSetupPose();
+			skeletonGraphic.Update(0);
+		}
 
 		skeletonGraphic.enabled = true;
 		SetMaterialNone();
+
 		spineAnimationState = skeletonGraphic.AnimationState;
 		spineAnimationState.Data.DefaultMix = 0f;
 		if (motionName == "")
 			motionName = GetFistSpineAnim();
+
 		PlayAnimation(motionName, true);
 		spineAnimationState.Complete -= OnAnimationComplete;
 		spineAnimationState.Complete += OnAnimationComplete;
diff --git a/Main/System/Mingge/MinggeManager.cs b/Main/System/Mingge/MinggeManager.cs
index c48f44e..2376158 100644
--- a/Main/System/Mingge/MinggeManager.cs
+++ b/Main/System/Mingge/MinggeManager.cs
@@ -44,6 +44,7 @@
         DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOK;
         FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent;
         GlobalTimeEvent.Instance.MSEvent += OnMSEvent;
+        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
         ParseConfig();
     }
 
@@ -56,6 +57,7 @@
         DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOK;
         FuncPresetManager.Instance.OnFuncPresetUseDataEvent -= OnFuncPresetUseDataEvent;
         GlobalTimeEvent.Instance.MSEvent -= OnMSEvent;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
     }
 
 
@@ -94,11 +96,20 @@
         isStartAuto = false;
         isPauseAuto = false;
         qlNotNotify = false;
+        decomposeMGList.Clear();
     }
 
     private void OnBeforePlayerDataInitialize()
     {
         waitTYOPPack = false;
+    }
+
+    void OnFuncStateChangeEvent(int id)
+    {
+        if (id == (int)FuncOpenEnum.Mingge)
+        {
+            InitAutoSet();
+        }
     }
 
     void OnPlayerLoginOK()
@@ -155,10 +166,22 @@
             if (OpenMinggeEquipWin(item))
             {
                 //闇�瑕佺帺瀹跺鐞嗚澶�
+                if (!decomposeMGList.IsNullOrEmpty())
+                {
+                    SendDecompose(decomposeMGList.ToArray());
+                    decomposeMGList.Clear();
+                }
+
                 return true;
             }
         }
 
+        //闇�瑕佺帺瀹跺鐞嗚澶�
+        if (!decomposeMGList.IsNullOrEmpty())
+        {
+            SendDecompose(decomposeMGList.ToArray());
+            decomposeMGList.Clear();
+        }
         return false;
     }
 
@@ -534,6 +557,7 @@
         {
             m_IsStartAuto = value;
             isPauseAuto = false;
+            decomposeMGList.Clear();
             UpdateRedPoint();
             ChangeAutoEvent?.Invoke();
         }
@@ -668,9 +692,21 @@
             }
         }
 
-        SendDecompose(new byte[] { (byte)mgEquip.gridIndex });
+        // SendDecompose(new byte[] { (byte)mgEquip.gridIndex });
+        AddDecomposeMG((byte)mgEquip.gridIndex);
         return false;
     }
+
+    List<byte> decomposeMGList = new List<byte>();
+    void AddDecomposeMG(byte index)
+    {
+        if (decomposeMGList.Contains(index))
+        {
+            return;
+        }
+        decomposeMGList.Add(index);
+    }
+
 
     //鍗曟柟妗堝垽鏂紝鏈紑鍚殑涔熷綋浣滃彲鍒嗚В锛屽灞傚濂楀垽鏂湁涓�濂楅渶瑕佸氨鏄渶瑕佺┛鎴�
     bool CanDecomposeMG(ItemModel mgEquip, MinggeAutoSet autoSet)
@@ -864,15 +900,15 @@
                     if (!ui.tyEffect.isPlaying)
                     {
                         ui.tyEffect.onComplete = null;
+                        ui.tyEffect.Play();
                         if (autoSpeedUP)
                         {
-                            ui.tyEffect.speedRate = autoTYCDs[0] / autoTYCDs[1];
+                            ui.tyEffect.SetSpeed(autoTYCDs[0] / autoTYCDs[1]);
                         }
                         else
                         {
-                            ui.tyEffect.speedRate = 1;
+                            ui.tyEffect.SetSpeed(1);
                         }
-                        ui.tyEffect.Play();
                     }
                 }
 
diff --git a/Main/System/Mingge/MinggeWin.cs b/Main/System/Mingge/MinggeWin.cs
index b5e2336..4666102 100644
--- a/Main/System/Mingge/MinggeWin.cs
+++ b/Main/System/Mingge/MinggeWin.cs
@@ -297,12 +297,12 @@
         {
             MinggeManager.Instance.StartAuto(false);
         }
-        tyEffect.speedRate = 1;
         tyEffect.onComplete = () =>
         {
             MinggeManager.Instance.SendTY(1);
         };
         tyEffect.Play();
+        tyEffect.SetSpeed(1);
     }
 
 
diff --git a/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs b/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs
index 29d8b36..7d2b9b0 100644
--- a/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs
+++ b/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs
@@ -34,7 +34,7 @@
         {
             uiEffect.effectId = 1026;
 
-            uiEffect.PlayByArrIndex(config.ItemColor - 7, true, true);
+            uiEffect.PlayByArrIndex(config.ItemColor - 7, true, false);
         }
         else
         {
diff --git a/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs b/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
index cb5a780..dcd9aed 100644
--- a/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
@@ -288,7 +288,7 @@
             potential.SetActive(false);
             return;
         }
-
+        potential.SetActive(true);
 
         var list = HeroBreakConfig.configDics[heroID].Keys.ToList();
 
diff --git a/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs b/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs
index 12f4602..f335b27 100644
--- a/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs
@@ -178,7 +178,7 @@
             potential.SetActive(false);
             return;
         }
-
+        potential.SetActive(true);
 
         var list = HeroBreakConfig.configDics[heroID].Keys.ToList();
 

--
Gitblit v1.8.0