From 8c279427332ae2abf33df0e403736634c48258df Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 04 六月 2026 18:05:06 +0800
Subject: [PATCH] 绑定战场点位特效支持

---
 Main/Config/Configs/EffectConfig.cs              |   25 ++++++++++++++-----------
 Main/System/Battle/BattleField/BattleRootNode.cs |   10 ++++++++++
 Main/System/Battle/BattleEffectMgr.cs            |   12 +++++++++++-
 3 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/Main/Config/Configs/EffectConfig.cs b/Main/Config/Configs/EffectConfig.cs
index 713145a..aeea770 100644
--- a/Main/Config/Configs/EffectConfig.cs
+++ b/Main/Config/Configs/EffectConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�9鏈�2鏃�
+//    [  Date ]:           2026骞�6鏈�4鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -23,6 +23,7 @@
 	public int[] animIndex;
 	public int audio;
 	public string nodeName;
+	public int BindPos;
 	public int notShow;
 	public int autoDestroy;
 	public float destroyDelay;
@@ -68,25 +69,27 @@
 
 			nodeName = tables[6];
 
-			int.TryParse(tables[7],out notShow); 
+			int.TryParse(tables[7],out BindPos); 
 
-			int.TryParse(tables[8],out autoDestroy); 
+			int.TryParse(tables[8],out notShow); 
 
-			float.TryParse(tables[9],out destroyDelay); 
+			int.TryParse(tables[9],out autoDestroy); 
 
-			int.TryParse(tables[10],out isLoop); 
+			float.TryParse(tables[10],out destroyDelay); 
 
-			int.TryParse(tables[11],out frontBack); 
+			int.TryParse(tables[11],out isLoop); 
 
-			float.TryParse(tables[12],out delayPlay); 
+			int.TryParse(tables[12],out frontBack); 
 
-			if (tables[13].Contains("["))
+			float.TryParse(tables[13],out delayPlay); 
+
+			if (tables[14].Contains("["))
 			{
-				effectPos = JsonMapper.ToObject<int[]>(tables[13]);
+				effectPos = JsonMapper.ToObject<int[]>(tables[14]);
 			}
 			else
 			{
-				string[] effectPosStringArray = tables[13].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				string[] effectPosStringArray = tables[14].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
 				effectPos = new int[effectPosStringArray.Length];
 				for (int i=0;i<effectPosStringArray.Length;i++)
 				{
@@ -94,7 +97,7 @@
 				}
 			}
 
-			float.TryParse(tables[14],out effectScale); 
+			float.TryParse(tables[15],out effectScale); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/Battle/BattleEffectMgr.cs b/Main/System/Battle/BattleEffectMgr.cs
index eb29191..12f1cb8 100644
--- a/Main/System/Battle/BattleEffectMgr.cs
+++ b/Main/System/Battle/BattleEffectMgr.cs
@@ -82,12 +82,22 @@
             return null;
         }
 
+        bool isRedCamp = camp == BattleCamp.Red;
+
+        if (effectCfg.BindPos > 0 && effectCfg.BindPos <=7)
+        {
+            var go = battleField.battleRootNode.GetRootNode(camp, effectCfg.BindPos);
+            if (go != null)
+            {
+                parent = go.transform;
+            }
+        }
+
         if (!effectDict.ContainsKey(effectId))
         {
             effectDict[effectId] = new List<BattleEffectPlayer>();
         }
 
-        bool isRedCamp = camp == BattleCamp.Red;
 
         BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField, battleField.battleRootNode.transform, isRedCamp, _scaleRatio);
         // 璁剧疆鐗规晥缂╂斁鍜屾柟鍚�
diff --git a/Main/System/Battle/BattleField/BattleRootNode.cs b/Main/System/Battle/BattleField/BattleRootNode.cs
index 4adf62b..9120664 100644
--- a/Main/System/Battle/BattleField/BattleRootNode.cs
+++ b/Main/System/Battle/BattleField/BattleRootNode.cs
@@ -84,4 +84,14 @@
 	public GameObject skillMaskNode;
 
 	public GameObject battleStartNode;
+
+	public GameObject GetRootNode(BattleCamp battleCamp, int pos)
+	{
+		if (pos <= 0 || pos > 7)
+		{
+			pos = 2;
+		}
+		var rootNodeList = battleCamp == BattleCamp.Red ? redTeamNodeList : blueTeamNodeList;
+		return rootNodeList[pos - 1];
+	}
 }
\ No newline at end of file

--
Gitblit v1.8.0