From ad14e2586cd13c52b30e1cc481724a1e09407f6a Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 07 七月 2025 18:07:57 +0800
Subject: [PATCH] 125 【战斗】战斗系统

---
 Main/Config/ConfigManager.cs                                                              |   62 +--
 Main/Config/Configs/MainChapterConfig.cs.meta                                             |   11 
 Main/Config/Configs/TreeLVConfig.cs                                                       |   59 +++
 Main/System/Team/TeamManager.cs                                                           |    2 
 Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB424_tagSCTurnFightInit.cs |   63 ++++
 Main/System/GeneralConfig/GeneralDefine.cs                                                |    4 
 Main/System/Battle/BattleObject/BattleObject.cs                                           |    2 
 Main/System/Battle/BattleField/OperationAgent/RecordModeOperationAgent.cs                 |   11 
 Main/Config/Configs/FaceConfig.cs.meta                                                    |   11 
 Main/Config/Configs/HeroConfig.cs                                                         |   14 
 Main/System/Team/TeamBase.cs                                                              |   94 +++++
 Main/Config/Configs/MainLevelConfig.cs.meta                                               |   11 
 Main/System/Hero/HeroInfo.Skin.cs                                                         |   15 
 Main/Config/Configs/MainLevelConfig.cs                                                    |  149 +++++++++
 Main/Config/Configs/NPCLineupConfig.cs                                                    |   59 +++
 Main/Config/Configs/NPCLineupConfig.cs.meta                                               |   11 
 Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB424_tagSCTurnFightInit.cs           |    8 
 Main/System/Team/TeamHero.Properties.cs                                                   |   46 --
 Main/Config/Configs/TreeLVConfig.cs.meta                                                  |   11 
 Main/System/Hero/HeroInfo.cs                                                              |   43 +-
 Main/Config/Configs/FaceConfig.cs                                                         |   50 +++
 Main/Config/Configs/MainChapterConfig.cs                                                  |   50 +++
 Main/System/Battle/BattleObject/BattleObjMgr.cs                                           |   14 
 Main/Config/Configs/HeroSkinConfig.cs                                                     |   21 +
 Main/System/Team/TeamHero.cs                                                              |   54 +++
 25 files changed, 709 insertions(+), 166 deletions(-)

diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index 441b5eb..0ab1ebe 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -33,23 +33,19 @@
         isLoadFinished = false;
 
         // 鍔犺浇閰嶇疆鏂囦欢
-        int totalConfigs = 15;
+        int totalConfigs = 11;
         List<Type> configTypes = new List<Type>() {
-            typeof(ChestsAwardConfig),
-            typeof(CTGConfig),
             typeof(DirtyWordConfig),
             typeof(EquipGSParamConfig),
-            typeof(ItemConfig),
-            typeof(NPCConfig),
-            typeof(NPCExConfig),
-            typeof(OrderInfoConfig),
-            typeof(PlayerFaceConfig),
-            typeof(StoreConfig),
-            typeof(SuccessConfig),
-            typeof(SysInfoConfig),
+            typeof(EquipPlaceMapConfig),
+            typeof(FaceConfig),
+            typeof(HeroConfig),
+            typeof(MainChapterConfig),
+            typeof(MainLevelConfig),
+            typeof(NPCLineupConfig),
+            typeof(PlayerLVConfig),
             typeof(TitleStarUpConfig),
-            typeof(TreasureSetConfig),
-            typeof(XBGetItemConfig)
+            typeof(TreeLVConfig)
         };
 
 #if UNITY_EDITOR
@@ -187,35 +183,27 @@
 
     public override void Release()
     {
-        // 娓呯┖ ChestsAwardConfig 瀛楀吀
-        ClearConfigDictionary<ChestsAwardConfig>();
-        // 娓呯┖ CTGConfig 瀛楀吀
-        ClearConfigDictionary<CTGConfig>();
         // 娓呯┖ DirtyWordConfig 瀛楀吀
         ClearConfigDictionary<DirtyWordConfig>();
         // 娓呯┖ EquipGSParamConfig 瀛楀吀
         ClearConfigDictionary<EquipGSParamConfig>();
-        // 娓呯┖ ItemConfig 瀛楀吀
-        ClearConfigDictionary<ItemConfig>();
-        // 娓呯┖ NPCConfig 瀛楀吀
-        ClearConfigDictionary<NPCConfig>();
-        // 娓呯┖ NPCExConfig 瀛楀吀
-        ClearConfigDictionary<NPCExConfig>();
-        // 娓呯┖ OrderInfoConfig 瀛楀吀
-        ClearConfigDictionary<OrderInfoConfig>();
-        // 娓呯┖ PlayerFaceConfig 瀛楀吀
-        ClearConfigDictionary<PlayerFaceConfig>();
-        // 娓呯┖ StoreConfig 瀛楀吀
-        ClearConfigDictionary<StoreConfig>();
-        // 娓呯┖ SuccessConfig 瀛楀吀
-        ClearConfigDictionary<SuccessConfig>();
-        // 娓呯┖ SysInfoConfig 瀛楀吀
-        ClearConfigDictionary<SysInfoConfig>();
+        // 娓呯┖ EquipPlaceMapConfig 瀛楀吀
+        ClearConfigDictionary<EquipPlaceMapConfig>();
+        // 娓呯┖ FaceConfig 瀛楀吀
+        ClearConfigDictionary<FaceConfig>();
+        // 娓呯┖ HeroConfig 瀛楀吀
+        ClearConfigDictionary<HeroConfig>();
+        // 娓呯┖ MainChapterConfig 瀛楀吀
+        ClearConfigDictionary<MainChapterConfig>();
+        // 娓呯┖ MainLevelConfig 瀛楀吀
+        ClearConfigDictionary<MainLevelConfig>();
+        // 娓呯┖ NPCLineupConfig 瀛楀吀
+        ClearConfigDictionary<NPCLineupConfig>();
+        // 娓呯┖ PlayerLVConfig 瀛楀吀
+        ClearConfigDictionary<PlayerLVConfig>();
         // 娓呯┖ TitleStarUpConfig 瀛楀吀
         ClearConfigDictionary<TitleStarUpConfig>();
-        // 娓呯┖ TreasureSetConfig 瀛楀吀
-        ClearConfigDictionary<TreasureSetConfig>();
-        // 娓呯┖ XBGetItemConfig 瀛楀吀
-        ClearConfigDictionary<XBGetItemConfig>();
+        // 娓呯┖ TreeLVConfig 瀛楀吀
+        ClearConfigDictionary<TreeLVConfig>();
     }
 }
diff --git a/Main/Config/Configs/FaceConfig.cs b/Main/Config/Configs/FaceConfig.cs
new file mode 100644
index 0000000..8b25161
--- /dev/null
+++ b/Main/Config/Configs/FaceConfig.cs
@@ -0,0 +1,50 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�7鏈�7鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class FaceConfig : ConfigBase<string, FaceConfig>
+{
+
+    public string name;
+	public int frameCnt;
+	public int speed;
+	public int frameType;
+	public int EmojiPackID;
+	public string folder;
+
+    public override string LoadKey(string _key)
+    {
+        string key = GetKey(_key);
+        return key;
+    }
+
+    public override void LoadConfig(string input)
+    {
+        try {
+        string[] tables = input.Split('\t');
+        name = tables[0];
+
+			int.TryParse(tables[1],out frameCnt); 
+
+			int.TryParse(tables[2],out speed); 
+
+			int.TryParse(tables[3],out frameType); 
+
+			int.TryParse(tables[4],out EmojiPackID); 
+
+			folder = tables[5];
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/Config/Configs/FaceConfig.cs.meta b/Main/Config/Configs/FaceConfig.cs.meta
new file mode 100644
index 0000000..f39dd41
--- /dev/null
+++ b/Main/Config/Configs/FaceConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2de14c27ba9038a44ae61b13813ae151
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Config/Configs/HeroConfig.cs b/Main/Config/Configs/HeroConfig.cs
index ebc43bf..59fd4f9 100644
--- a/Main/Config/Configs/HeroConfig.cs
+++ b/Main/Config/Configs/HeroConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Friday, June 27, 2025
+//    [  Date ]:           2025骞�7鏈�7鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -16,7 +16,7 @@
     public int HeroID;
 	public int Country;
 	public int Quality;
-	public int[] SkinNPCIDList;
+	public int[] SkinIDList;
 	public int AtkSkillID;
 	public int AngerSkillID;
 	public int AtkInheritPer;
@@ -48,15 +48,15 @@
 
 			if (tables[3].Contains("["))
 			{
-				SkinNPCIDList = JsonMapper.ToObject<int[]>(tables[3]);
+				SkinIDList = JsonMapper.ToObject<int[]>(tables[3]);
 			}
 			else
 			{
-				string[] SkinNPCIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
-				SkinNPCIDList = new int[SkinNPCIDListStringArray.Length];
-				for (int i=0;i<SkinNPCIDListStringArray.Length;i++)
+				string[] SkinIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				SkinIDList = new int[SkinIDListStringArray.Length];
+				for (int i=0;i<SkinIDListStringArray.Length;i++)
 				{
-					 int.TryParse(SkinNPCIDListStringArray[i],out SkinNPCIDList[i]);
+					 int.TryParse(SkinIDListStringArray[i],out SkinIDList[i]);
 				}
 			}
 
diff --git a/Main/Config/Configs/HeroSkinConfig.cs b/Main/Config/Configs/HeroSkinConfig.cs
index a46d967..b9c6ef2 100644
--- a/Main/Config/Configs/HeroSkinConfig.cs
+++ b/Main/Config/Configs/HeroSkinConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Friday, June 27, 2025
+//    [  Date ]:           2025骞�7鏈�7鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -13,11 +13,16 @@
 public partial class HeroSkinConfig : ConfigBase<int, HeroSkinConfig>
 {
 
-    public int SkinNPCID;
+    public int SkinID;
 	public int[] WearAttrIDList;
 	public int[] WearAttrValueList;
 	public int[] AllBatAttrIDList;
 	public int[] AllBatAttrValueList;
+	public string Tachie;
+	public string SquareIcon;
+	public string RectangleIcon;
+	public string SpineRes;
+	public string BigSizeSpine;
 
     public override int LoadKey(string _key)
     {
@@ -29,7 +34,7 @@
     {
         try {
         string[] tables = input.Split('\t');
-        int.TryParse(tables[0],out SkinNPCID); 
+        int.TryParse(tables[0],out SkinID); 
 
 			if (tables[1].Contains("["))
 			{
@@ -86,6 +91,16 @@
 					 int.TryParse(AllBatAttrValueListStringArray[i],out AllBatAttrValueList[i]);
 				}
 			}
+
+			Tachie = tables[5];
+
+			SquareIcon = tables[6];
+
+			RectangleIcon = tables[7];
+
+			SpineRes = tables[8];
+
+			BigSizeSpine = tables[9];
         }
         catch (Exception exception)
         {
diff --git a/Main/Config/Configs/MainChapterConfig.cs b/Main/Config/Configs/MainChapterConfig.cs
new file mode 100644
index 0000000..3a87bcd
--- /dev/null
+++ b/Main/Config/Configs/MainChapterConfig.cs
@@ -0,0 +1,50 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�7鏈�7鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class MainChapterConfig : ConfigBase<int, MainChapterConfig>
+{
+
+    public int ChapterID;
+	public string ChapterName;
+	public string Level;
+	public string MapBG;
+	public int[][] DailyBootyUpperList;
+	public string BootyWeightList;
+
+    public override int LoadKey(string _key)
+    {
+        int key = GetKey(_key);
+        return key;
+    }
+
+    public override void LoadConfig(string input)
+    {
+        try {
+        string[] tables = input.Split('\t');
+        int.TryParse(tables[0],out ChapterID); 
+
+			ChapterName = tables[1];
+
+			Level = tables[2];
+
+			MapBG = tables[3];
+
+			DailyBootyUpperList = JsonMapper.ToObject<int[][]>(tables[4].Replace("(", "[").Replace(")", "]")); 
+
+			BootyWeightList = tables[5];
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/Config/Configs/MainChapterConfig.cs.meta b/Main/Config/Configs/MainChapterConfig.cs.meta
new file mode 100644
index 0000000..221b32a
--- /dev/null
+++ b/Main/Config/Configs/MainChapterConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b8a28ea2370eac443bd9c94299bab990
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Config/Configs/MainLevelConfig.cs b/Main/Config/Configs/MainLevelConfig.cs
new file mode 100644
index 0000000..105fbbc
--- /dev/null
+++ b/Main/Config/Configs/MainLevelConfig.cs
@@ -0,0 +1,149 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�7鏈�7鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class MainLevelConfig : ConfigBase<int, MainLevelConfig>
+{
+
+    public int LevelID;
+	public int ChapterID;
+	public int LevelNum;
+	public int[] WaveLineupIDList1;
+	public int[] WaveLineupIDList2;
+	public int[] WaveLineupIDList3;
+	public int[] WaveLineupIDList4;
+	public int[] WaveLineupIDList5;
+	public int[] WaveLineupIDList6;
+	public int[] BossLineupIDList;
+	public int[][] AwardItemList;
+
+    public override int LoadKey(string _key)
+    {
+        int key = GetKey(_key);
+        return key;
+    }
+
+    public override void LoadConfig(string input)
+    {
+        try {
+        string[] tables = input.Split('\t');
+        int.TryParse(tables[0],out LevelID); 
+
+			int.TryParse(tables[1],out ChapterID); 
+
+			int.TryParse(tables[2],out LevelNum); 
+
+			if (tables[3].Contains("["))
+			{
+				WaveLineupIDList1 = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] WaveLineupIDList1StringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WaveLineupIDList1 = new int[WaveLineupIDList1StringArray.Length];
+				for (int i=0;i<WaveLineupIDList1StringArray.Length;i++)
+				{
+					 int.TryParse(WaveLineupIDList1StringArray[i],out WaveLineupIDList1[i]);
+				}
+			}
+
+			if (tables[4].Contains("["))
+			{
+				WaveLineupIDList2 = JsonMapper.ToObject<int[]>(tables[4]);
+			}
+			else
+			{
+				string[] WaveLineupIDList2StringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WaveLineupIDList2 = new int[WaveLineupIDList2StringArray.Length];
+				for (int i=0;i<WaveLineupIDList2StringArray.Length;i++)
+				{
+					 int.TryParse(WaveLineupIDList2StringArray[i],out WaveLineupIDList2[i]);
+				}
+			}
+
+			if (tables[5].Contains("["))
+			{
+				WaveLineupIDList3 = JsonMapper.ToObject<int[]>(tables[5]);
+			}
+			else
+			{
+				string[] WaveLineupIDList3StringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WaveLineupIDList3 = new int[WaveLineupIDList3StringArray.Length];
+				for (int i=0;i<WaveLineupIDList3StringArray.Length;i++)
+				{
+					 int.TryParse(WaveLineupIDList3StringArray[i],out WaveLineupIDList3[i]);
+				}
+			}
+
+			if (tables[6].Contains("["))
+			{
+				WaveLineupIDList4 = JsonMapper.ToObject<int[]>(tables[6]);
+			}
+			else
+			{
+				string[] WaveLineupIDList4StringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WaveLineupIDList4 = new int[WaveLineupIDList4StringArray.Length];
+				for (int i=0;i<WaveLineupIDList4StringArray.Length;i++)
+				{
+					 int.TryParse(WaveLineupIDList4StringArray[i],out WaveLineupIDList4[i]);
+				}
+			}
+
+			if (tables[7].Contains("["))
+			{
+				WaveLineupIDList5 = JsonMapper.ToObject<int[]>(tables[7]);
+			}
+			else
+			{
+				string[] WaveLineupIDList5StringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WaveLineupIDList5 = new int[WaveLineupIDList5StringArray.Length];
+				for (int i=0;i<WaveLineupIDList5StringArray.Length;i++)
+				{
+					 int.TryParse(WaveLineupIDList5StringArray[i],out WaveLineupIDList5[i]);
+				}
+			}
+
+			if (tables[8].Contains("["))
+			{
+				WaveLineupIDList6 = JsonMapper.ToObject<int[]>(tables[8]);
+			}
+			else
+			{
+				string[] WaveLineupIDList6StringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WaveLineupIDList6 = new int[WaveLineupIDList6StringArray.Length];
+				for (int i=0;i<WaveLineupIDList6StringArray.Length;i++)
+				{
+					 int.TryParse(WaveLineupIDList6StringArray[i],out WaveLineupIDList6[i]);
+				}
+			}
+
+			if (tables[9].Contains("["))
+			{
+				BossLineupIDList = JsonMapper.ToObject<int[]>(tables[9]);
+			}
+			else
+			{
+				string[] BossLineupIDListStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				BossLineupIDList = new int[BossLineupIDListStringArray.Length];
+				for (int i=0;i<BossLineupIDListStringArray.Length;i++)
+				{
+					 int.TryParse(BossLineupIDListStringArray[i],out BossLineupIDList[i]);
+				}
+			}
+
+			AwardItemList = JsonMapper.ToObject<int[][]>(tables[10].Replace("(", "[").Replace(")", "]")); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/Config/Configs/MainLevelConfig.cs.meta b/Main/Config/Configs/MainLevelConfig.cs.meta
new file mode 100644
index 0000000..2ca5e4c
--- /dev/null
+++ b/Main/Config/Configs/MainLevelConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aa5d3f0253beb4f4aa4e9ae8ed5c4d25
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Config/Configs/NPCLineupConfig.cs b/Main/Config/Configs/NPCLineupConfig.cs
new file mode 100644
index 0000000..51241cd
--- /dev/null
+++ b/Main/Config/Configs/NPCLineupConfig.cs
@@ -0,0 +1,59 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�7鏈�7鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class NPCLineupConfig : ConfigBase<int, NPCLineupConfig>
+{
+
+    public int LineupID;
+	public int PosNPCID1;
+	public int PosNPCID2;
+	public int PosNPCID3;
+	public int PosNPCID4;
+	public int PosNPCID5;
+	public int PosNPCID6;
+	public int PosNPCID7;
+	public int BossID;
+
+    public override int LoadKey(string _key)
+    {
+        int key = GetKey(_key);
+        return key;
+    }
+
+    public override void LoadConfig(string input)
+    {
+        try {
+        string[] tables = input.Split('\t');
+        int.TryParse(tables[0],out LineupID); 
+
+			int.TryParse(tables[1],out PosNPCID1); 
+
+			int.TryParse(tables[2],out PosNPCID2); 
+
+			int.TryParse(tables[3],out PosNPCID3); 
+
+			int.TryParse(tables[4],out PosNPCID4); 
+
+			int.TryParse(tables[5],out PosNPCID5); 
+
+			int.TryParse(tables[6],out PosNPCID6); 
+
+			int.TryParse(tables[7],out PosNPCID7); 
+
+			int.TryParse(tables[8],out BossID); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/Config/Configs/NPCLineupConfig.cs.meta b/Main/Config/Configs/NPCLineupConfig.cs.meta
new file mode 100644
index 0000000..0d900a3
--- /dev/null
+++ b/Main/Config/Configs/NPCLineupConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cd54c8c6c3a65fe489caa3c17fbe2297
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Config/Configs/TreeLVConfig.cs b/Main/Config/Configs/TreeLVConfig.cs
new file mode 100644
index 0000000..052e8d4
--- /dev/null
+++ b/Main/Config/Configs/TreeLVConfig.cs
@@ -0,0 +1,59 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�7鏈�7鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class TreeLVConfig : ConfigBase<int, TreeLVConfig>
+{
+
+    public int TreeLV;
+	public int LVUPNeedMoney;
+	public int LVUPNeedTime;
+	public int[] EquipColorRateList;
+	public string ExAwardItemRateList;
+
+    public override int LoadKey(string _key)
+    {
+        int key = GetKey(_key);
+        return key;
+    }
+
+    public override void LoadConfig(string input)
+    {
+        try {
+        string[] tables = input.Split('\t');
+        int.TryParse(tables[0],out TreeLV); 
+
+			int.TryParse(tables[1],out LVUPNeedMoney); 
+
+			int.TryParse(tables[2],out LVUPNeedTime); 
+
+			if (tables[3].Contains("["))
+			{
+				EquipColorRateList = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] EquipColorRateListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				EquipColorRateList = new int[EquipColorRateListStringArray.Length];
+				for (int i=0;i<EquipColorRateListStringArray.Length;i++)
+				{
+					 int.TryParse(EquipColorRateListStringArray[i],out EquipColorRateList[i]);
+				}
+			}
+
+			ExAwardItemRateList = tables[4];
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/Config/Configs/TreeLVConfig.cs.meta b/Main/Config/Configs/TreeLVConfig.cs.meta
new file mode 100644
index 0000000..e9bd0cd
--- /dev/null
+++ b/Main/Config/Configs/TreeLVConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5443aed733119144aa28ba3bc83b225c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB424_tagSCTurnFightInit.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB424_tagSCTurnFightInit.cs
index 79d6535..eb4b282 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB424_tagSCTurnFightInit.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB4_FightDefine/DTCB424_tagSCTurnFightInit.cs
@@ -1,11 +1,68 @@
 using UnityEngine;
 using System.Collections;
+using LitJson;
+using System.Collections.Generic;
 
 // B4 24 鍥炲悎鎴樻枟鍒濆鍖� #tagSCTurnFightInit
 
 public class DTCB424_tagSCTurnFightInit : DtcBasic {
-    public override void Done(GameNetPackBasic vNetPack) {
-        base.Done(vNetPack);
-        HB424_tagSCTurnFightInit vNetData = vNetPack as HB424_tagSCTurnFightInit;
+	public override void Done(GameNetPackBasic vNetPack)
+	{
+		base.Done(vNetPack);
+		HB424_tagSCTurnFightInit vNetData = vNetPack as HB424_tagSCTurnFightInit;
+
+		// 銆愭垬鏂楀湴鍥惧畾涔夈��
+		// 鍓嶅悗绔崗璁�氳鏃讹紝濡傛灉鏈塎apID銆丗uncLineID淇℃伅锛屼竴鑸唬琛ㄧ殑鏄煇涓垬鏂楀姛鑳斤紝
+		// 骞跺彲缁戝畾鏌愪釜鎴樻枟鍦烘櫙锛堢浉褰撲簬MMO涓殑涓嶅悓鍔熻兘鍙婃垬鏂楀満鏅湴鍥撅級
+		// 鍗$墝涓篃鍙悊瑙d负涓嶅悓鐨勬垬鏂楀姛鑳藉強缁戝畾涓嶅悓鐨勬垬鏂楄儗鏅浘涔嬬被
+		// 鐩墠鍑犱釜鍥哄畾MapID瀹氫箟
+		// 涓荤嚎灏忔�垬鏂� MapID = 1
+		// FuncLineID = 绔犺妭*10000+鍏冲崱缂栧彿*100+绗瑇娉紝濡傜涓�绔狅紝绗�10鍏冲崱锛岀5娉㈡椂鍊� = 11005锛�
+		// 鍗曠珷鏈�澶ф敮鎸�99灏忓叧锛屽崟鍏虫渶澶ф敮鎸�99娉㈡��
+		// 涓荤嚎boss鎴樻枟 MapID = 2
+		// FuncLineID = 绔犺妭*10000+鍏冲崱缂栧彿*100+绗瑇娉紝濡傜涓�绔狅紝绗�10鍏冲崱鐨刡oss鍊� = 11001锛�
+		// 娉細鍏冲崱boss娉㈡暟鍥哄畾涓哄彧鏈�1娉�
+		// 鍓嶇鍙�氳繃MapID鍙婂搴旂殑FuncLineID鍔犺浇涓嶅悓鐨勬垬鏂楀満鏅儗鏅�佽儗鏅煶涔愮瓑
+
+		// HB424_tagSCTurnFightInit
+		// MapID;    // 鑷畾涔夊湴鍥綢D锛屽彲鐢ㄤ簬缁戝畾鎴樻枟鍦板浘鍦烘櫙鍔熻兘锛堝涓荤嚎鍏冲崱銆佷富绾縝oss銆佺埇濉斻�佺珵鎶�鍦虹瓑锛�
+		// FuncLineID;    // MapID瀵瑰簲鐨勬墿灞曞�硷紝濡傚叿浣撴煇涓叧鍗$瓑
+		// TurnMax;    // 鏈�澶ц疆娆�
+		// Len;
+		// Msg;    // 鏈満鎴樻枟鎵╁睍淇℃伅锛屼竴鑸负json鏍煎紡锛屽叿浣撳唴瀹圭敱MapID鍐冲畾
+		// FactionCnt;
+		// FactionList;    // 闃佃惀鍒楄〃锛岄�氬父鍥哄畾鍙湁涓や釜闃佃惀
+
+
+
+		uint chapter = vNetData.FuncLineID / 10000;
+		uint wave = vNetData.MapID == 1 ? vNetData.FuncLineID % 100 : 1;//绗嚑娉㈡��
+		uint level = (vNetData.FuncLineID % 10000) / 100;
+		JsonData extendData = JsonMapper.ToObject(vNetData.Msg);
+
+		List<TeamBase> redTeamList = new List<TeamBase>();
+		List<TeamBase> blueTeamList = new List<TeamBase>();
+
+		if (null != vNetData.FactionList)
+		{
+			foreach (var vFaction in vNetData.FactionList)
+			{
+				if (vFaction.Faction == 1)
+				{
+					foreach (var lineUp in vFaction.LineupList)
+					{
+						redTeamList.Add(new TeamBase(lineUp));
+					}
+				}
+				else if (vFaction.Faction == 2)
+				{
+					foreach (var lineUp in vFaction.LineupList)
+					{
+						blueTeamList.Add(new TeamBase(lineUp));
+					}
+				}
+			}
+		}
+
     }
 }
diff --git a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB424_tagSCTurnFightInit.cs b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB424_tagSCTurnFightInit.cs
index 200466c..f24ef65 100644
--- a/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB424_tagSCTurnFightInit.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HB4_FightDefine/HB424_tagSCTurnFightInit.cs
@@ -40,6 +40,8 @@
                     FactionList[i].LineupList[j].ObjList[k] = new tagSCTurnFightObj();
                     TransBytes (out FactionList[i].LineupList[j].ObjList[k].ObjID, vBytes, NetDataType.DWORD);
                     TransBytes (out FactionList[i].LineupList[j].ObjList[k].NPCID, vBytes, NetDataType.DWORD);
+                    TransBytes (out FactionList[i].LineupList[j].ObjList[k].HeroID, vBytes, NetDataType.DWORD);
+                    TransBytes (out FactionList[i].LineupList[j].ObjList[k].SkinID, vBytes, NetDataType.DWORD);
                     TransBytes (out FactionList[i].LineupList[j].ObjList[k].HP, vBytes, NetDataType.DWORD);
                     TransBytes (out FactionList[i].LineupList[j].ObjList[k].HPEx, vBytes, NetDataType.DWORD);
                     TransBytes (out FactionList[i].LineupList[j].ObjList[k].MaxHP, vBytes, NetDataType.DWORD);
@@ -59,8 +61,10 @@
     }
 
     public struct tagSCTurnFightObj {
-        public uint ObjID;        // 瀹炰緥鍞竴ID
-        public uint NPCID;        // 缁戝畾鐨凬PCID锛屼笉鍚岀殑瀹炰緥ID瀵瑰簲鐨凬PCID鍙兘涓�鏍�
+        public uint ObjID;        // 鎴樻枟鍗曚綅鍞竴ID
+        public uint NPCID;        // 鎴樻枟NPCID锛屼笉鍚岀殑瀹炰緥ID瀵瑰簲鐨凬PCID鍙兘涓�鏍�
+        public uint HeroID;        // 鐜╁姝﹀皢ID锛屼粎鐜╁闃靛鏈�
+        public uint SkinID;        // 鐜╁姝﹀皢鐨偆ID锛屼粎鐜╁闃靛鏈�
         public uint HP;        // 褰撳墠琛�閲忥紝姹備綑20浜块儴鍒�
         public uint HPEx;        // 褰撳墠琛�閲忥紝鏁撮櫎20浜块儴鍒�
         public uint MaxHP;        // 鏈�澶ц閲忥紝姹備綑20浜块儴鍒�
diff --git a/Main/System/Battle/BattleField/OperationAgent/RecordModeOperationAgent.cs b/Main/System/Battle/BattleField/OperationAgent/RecordModeOperationAgent.cs
index e1e325e..99193c5 100644
--- a/Main/System/Battle/BattleField/OperationAgent/RecordModeOperationAgent.cs
+++ b/Main/System/Battle/BattleField/OperationAgent/RecordModeOperationAgent.cs
@@ -4,6 +4,11 @@
 
 public class RecordModeOperationAgent : IOperationAgent
 {
+	//	GameNetPackage[] packs
+
+
+
+
 	public RecordModeOperationAgent(BattleField battleField) : base(battleField)
 	{
 		
@@ -17,5 +22,11 @@
 	public override void DoNext()
 	{
 		base.DoNext();
+	
+		// if (!playing())
+		// 	packs.Dequeue();
+		// 	actions = pack.Distribute();
+
+		// recordPlayer.Play(actions);
 	}
 }
\ No newline at end of file
diff --git a/Main/System/Battle/BattleObject/BattleObjMgr.cs b/Main/System/Battle/BattleObject/BattleObjMgr.cs
index ec938e1..2baac38 100644
--- a/Main/System/Battle/BattleObject/BattleObjMgr.cs
+++ b/Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -198,18 +198,8 @@
             case SkillTargetRangeType.HighestAttack:
                 returnList = new List<BattleObject>(from BO in returnList where !BO.IsDead() select BO);
                 BattleObject mostHighestAttckObj = null;
-                for (int i = 0; i < returnList.Count; i++)
-                {
-                    if (mostHighestAttckObj == null)
-                    {
-                        mostHighestAttckObj = returnList[i];
-                        continue;
-                    }
-                    if (returnList[i].teamHero.attack > mostHighestAttckObj.teamHero.attack)
-                    {
-                        mostHighestAttckObj = returnList[i];
-                    }
-                }
+                //  瀹㈡埛绔笉鍖呭惈鏁版嵁 杩欓噷鍙栫涓�涓�
+                mostHighestAttckObj = returnList[0];
                 returnList.Clear();
                 if (mostHighestAttckObj != null)
                     returnList.Add(mostHighestAttckObj);
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index cb3a713..6c28854 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -384,7 +384,7 @@
     {
         List<int> damageList = new List<int>();
 
-        int totalDamage = teamHero.attack - obj.teamHero.defense;
+        int totalDamage = 100;
 
         int damage1 = (int)((float)totalDamage * 0.3f);
 
diff --git a/Main/System/GeneralConfig/GeneralDefine.cs b/Main/System/GeneralConfig/GeneralDefine.cs
index 5051e0d..5c87124 100644
--- a/Main/System/GeneralConfig/GeneralDefine.cs
+++ b/Main/System/GeneralConfig/GeneralDefine.cs
@@ -241,6 +241,8 @@
     public static int[] flashOpenArr; //寮�鍚浄璇涘眰 [澶╂槦濉旓紝澧冪晫濉旓紝绗﹀嵃濉旓紙鎸夌鍑犱釜濉旂畻锛塢
     public static int[] flashCntMoreArr; //闆疯瘺鏇村娆℃暟灞傞渶姹� [澶╂槦濉旓紝澧冪晫濉旓紝绗﹀嵃濉旓紙鎸夌鍑犱釜濉旂畻锛塢
     public static int flashKillMaxCount; //闆疯瘺鏈�澶ф鏁�
+    
+    public static readonly int HundredMillion = 100000000;//1浜�
 
     public static void Init()
     {
@@ -383,7 +385,7 @@
             //     }
 
             // }
-            
+
             // var BossAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 1));
             // BossAssistAward = new Dictionary<int, List<int>>();
             // foreach (var key in BossAssistAwardJson.Keys)
diff --git a/Main/System/Hero/HeroInfo.Skin.cs b/Main/System/Hero/HeroInfo.Skin.cs
index f3ba92f..2654979 100644
--- a/Main/System/Hero/HeroInfo.Skin.cs
+++ b/Main/System/Hero/HeroInfo.Skin.cs
@@ -7,20 +7,7 @@
     public int SkinIndex = 0;
 
     //  鏈嶅姟鍣ㄦ暟鎹� 鐨偆ID
-    public int SkinID
-    {
-        get
-        {
-            if (null == heroConfig)
-                return 0;
-
-            if (SkinIndex > heroConfig.SkinNPCIDList.Length && SkinIndex >= 0)
-            {
-                return heroConfig.SkinNPCIDList[SkinIndex];
-            }
-            return heroConfig.SkinNPCIDList[0];
-        }
-    }
+    public int SkinID;
 
     //  鐨偆閰嶇疆
     public HeroSkinConfig skinConfig;
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
index 9e36344..3232ec2 100644
--- a/Main/System/Hero/HeroInfo.cs
+++ b/Main/System/Hero/HeroInfo.cs
@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using UnityEngine;
 using LitJson;
+using log4net.Core;
 
 public partial class HeroInfo
 {
@@ -8,20 +9,7 @@
     public long sid;
 
     //  姝﹀皢閰嶇疆琛↖D
-    public int heroId
-    {
-        get
-        {
-            #if UNITY_EDITOR
-            if (null == itemHero)
-            {
-                return 520001;
-            }
-            #endif
-
-            return itemHero.config.ID;
-        }
-    }
+    public int heroId;
 
     //  姝﹀皢绛夌骇
     public int heroLevel;
@@ -51,9 +39,6 @@
             return heroConfig.Quality;
         }
     }
-
-    public ItemModel itemHero;
-
     // public readonly CB122_tagSCHeroInfo.tagSCHero scHeroInfo;
 
     //  姝﹀皢閰嶇疆
@@ -80,13 +65,25 @@
         // scHeroInfo = _scHeroInfo;
         UpdateHero(_itemHero);
         
-
         
+        
+    }
+
+    public HeroInfo(HB424_tagSCTurnFightInit.tagSCTurnFightObj fightObj)
+    {
+        //  鎴樻枟琛ㄧ幇闇�瑕佽繖浜涘熀鏈氨澶� 涓嶅杩橀渶瑕佹湇鍔″櫒鍔�
+
+        heroId = (int)fightObj.HeroID;
+        heroConfig = HeroConfig.Get(heroId);
+        SkinID = (int)fightObj.SkinID;
+        skinConfig = HeroSkinConfig.Get(SkinID);
+        heroLevel = (int)fightObj.LV;
     }
 
     #if UNITY_EDITOR
     public HeroInfo()
     {
+        heroId = 520001; // 榛樿鑻遍泟ID
         heroLevel = 1;
         heroStar = 1;
         breakLevel = 1;
@@ -104,17 +101,11 @@
 
     // public HeroInfo Clone() => JsonMapper.ToObject<HeroInfo>(JsonMapper.ToJson(this));
 
-    //  鍥鹃壌淇℃伅
-    public void UpdateSCHero(CB122_tagSCHeroInfo.tagSCHero _scHeroInfo)
-    {
 
-    }
-
-    public void UpdateHero(ItemModel _itemHero)
+    public void UpdateHero(ItemModel itemHero)
     {
-        itemHero = _itemHero;
         // HeroConfigUtility
-
+        heroId = itemHero.config.ID;
         // 70 # 鑻遍泟绛夌骇
         heroLevel = itemHero.GetUseData(70)[0];
         // 72 # 鑻遍泟鏄熺骇
diff --git a/Main/System/Team/TeamBase.cs b/Main/System/Team/TeamBase.cs
index 8060149..6315779 100644
--- a/Main/System/Team/TeamBase.cs
+++ b/Main/System/Team/TeamBase.cs
@@ -5,7 +5,74 @@
 
 public partial class TeamBase
 {
+
+    // 鍖哄垎涓�涓嬮樀钀ヨ窡闃靛 闃佃惀涓轰竴涓猅eamBase鍒楄〃 鍙兘鏄涓帺瀹剁粍鍚堣�屾垚
+    // 闃靛涓轰竴涓猅eamBase 鏄帺瀹剁殑涓�涓槦浼�
+    private int teamIndex = 0;//璇ラ樀钀ョ殑绗嚑涓槦浼�
+
+    private uint playerId = 0; //璇ラ樀瀹圭殑鐜╁id
+
+    private int ShapeType; //鏈樀瀹归樀鍨嬶紝0涓洪粯璁ら樀鍨嬶紝鍙墿灞曚笉鍚岀殑闃靛瀷锛屽boss鐗规畩鎴樻枟闃靛瀷锛屾垨鑰呭叾浠栦笉鍚岀珯浣嶇殑闃靛瀷
+
+    public bool IsPlayer
+    {
+        get
+        {
+            return playerId == 0;
+        }
+    }
+
     public TeamHero[] teamHeros = new TeamHero[TeamConst.MaxTeamSlotCount];
+
+    public TeamBase()
+    {
+
+    }
+
+    public TeamBase(HB424_tagSCTurnFightInit.tagSCTurnFightLineup lineUp)
+    {
+        teamIndex = lineUp.Num;
+        playerId = lineUp.OwnerID;
+        ShapeType = lineUp.ShapeType;
+
+        for (int i = 0; i < lineUp.ObjCnt; i++)
+        {
+            if (i < teamHeros.Length)
+            {
+                TeamHero hero = new TeamHero(lineUp.ObjList[i], this);
+                AddTeamHero(hero);
+            }
+        }
+
+        Update();
+
+
+    }
+
+    protected void Update()
+    {
+        //  妫�鏌ュ浗绫�
+
+        //  妫�鏌ョ緛缁�
+
+        //  妫�鏌ラ樀鍨�
+
+        //  鏇存柊闃熶紞鑻遍泟灞炴��
+        foreach (var teamHero in teamHeros)
+        {
+            teamHero.Update();
+        }
+
+        //  鏇存柊闃熶紞灞炴��
+        // UpdateProperties();
+
+        // CalculatePower();
+    }
+
+    public void SetShapeType(int shapeType)
+    {
+        ShapeType = shapeType;
+    }
 
     public int GetTeamHeroCount()
     {
@@ -37,17 +104,18 @@
         return true;
     }
 
-    public void AddTeamHeros(List<HeroInfo> heroInfos)
+    public void AddHeroInfos(List<HeroInfo> heroInfos)
     {
         for (int i = 0; i < heroInfos.Count; i++)
         {
-            AddTeamHero(heroInfos[i]);
+            AddHeroInfo(heroInfos[i]);
         }
 
         UpdateProperties();
     }
 
-    public bool AddTeamHero(HeroInfo heroInfo)
+
+    public bool AddHeroInfo(HeroInfo heroInfo)
     {
         if (heroInfo == null)
         {
@@ -62,11 +130,23 @@
                 teamHeros[i].heroInfo = heroInfo;
                 teamHeros[i].heroIndex = i;
                 UpdateProperties();
-                return true;    
+                return true;
             }
         }
         return false;
     }
+
+
+    public void AddTeamHero(TeamHero teamHero)
+    {
+        if (null == teamHero)
+        {
+            return;
+        }
+
+        teamHeros[teamHero.heroIndex] = teamHero;
+    }
+
 
     public bool RemoveTeamHero(int index)
     {
@@ -89,10 +169,6 @@
         return GetTeamHeroCount() == 0;
     }
 
-    public void InitByLevelId(int levelId)
-    {
-        
-    }
 
 #if UNITY_EDITOR
     public void FillWithFakeData()
@@ -101,8 +177,6 @@
         {
             TeamHero hero = new TeamHero();
             hero.curHp = 100;
-            hero.attack = UnityEngine.Random.Range(300, 500);
-            hero.defense = UnityEngine.Random.Range(80, 100);
             hero.heroInfo = new HeroInfo();
             hero.teamBase = this;
             hero.heroIndex = i;
diff --git a/Main/System/Team/TeamHero.Properties.cs b/Main/System/Team/TeamHero.Properties.cs
index 231e31e..acf7871 100644
--- a/Main/System/Team/TeamHero.Properties.cs
+++ b/Main/System/Team/TeamHero.Properties.cs
@@ -2,56 +2,14 @@
 
 public partial class TeamHero
 {
-	// 鍩虹灞炴��
-    // 鐢熷懡
-    public int hp = 0;
-    // 鏀诲嚮鍔�
-    public int attack = 0;
-    // 闃插尽鍔�
-    public int defense = 0;
-
-
-    //鎴樻枟灞炴�� 鍑绘檿銆佹毚鍑汇�佽繛鍑汇�佹牸鎸°�佸弽鍑汇�佸惛琛�
-    //鐪╂檿姒傜巼
-    public int stunRate = 0;
-    //鏆村嚮姒傜巼
-    public int critRate = 0;
-    //杩炲嚮姒傜巼
-    public int comboRate = 0;
-    //鏍兼尅姒傜巼
-    public int blockRate = 0;
-    //鍙嶅嚮姒傜巼
-    public int counterAttackRate = 0;
-    //鏀诲嚮鐩爣鏃讹紝閫犳垚浼ゅ杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊兼彁鍗�
-    public int recoverRate = 0;
-
-    //鎴樻枟鎶垫姉灞炴��
-    //鐪╂檿鎶垫姉
-    public int stunResist = 0;
-    //鏆村嚮鎶垫姉
-    public int critResist = 0;
-    //杩炲嚮鎶垫姉
-    public int comboResist = 0;
-    //鏍兼尅鎶垫姉
-    public int blockResist = 0;
-    //鍙嶅嚮鎶垫姉
-    public int counterAttackResist = 0;
-    //鍑忓皯鏀诲嚮鏃跺惛琛�杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊�
-    public int recoverResist = 0;
-
-
-    
-   
-    //  褰撳墠灞炴��
-
     // 鎬掓皵鍊�
     public int rage = 0;
 
     //  褰撳墠琛�閲�
-    public int curHp;
+    public long curHp;
 
     //  鏈�澶ц閲�
-    public int maxHp;
+    public long maxHp;
 
     
 }
\ No newline at end of file
diff --git a/Main/System/Team/TeamHero.cs b/Main/System/Team/TeamHero.cs
index e545671..ad3dfe2 100644
--- a/Main/System/Team/TeamHero.cs
+++ b/Main/System/Team/TeamHero.cs
@@ -1,4 +1,5 @@
-
+using UnityEngine;
+using UnityEngine.PlayerLoop;
 
 public partial class TeamHero
 {
@@ -6,10 +7,53 @@
     public TeamBase teamBase;
     public int heroIndex;
 
+//  鎴樺満鏁版嵁
+    public uint ObjID = 0;// 鎴樻枟鍗曚綅鍞竴ID
+
+    public uint NPCID = 0;// 鎴樻枟NPCID锛屼笉鍚岀殑瀹炰緥ID瀵瑰簲鐨凬PCID鍙兘涓�鏍�
+
+
+    public TeamHero()
+    {
+
+    }
+
+    public TeamHero(HB424_tagSCTurnFightInit.tagSCTurnFightObj fightObj, TeamBase _teamBase)
+    {
+        heroInfo = new HeroInfo(fightObj);
+        teamBase = _teamBase;
+        if (fightObj.PosNum < 0 || fightObj.PosNum >= TeamConst.MaxTeamSlotCount)
+        {
+            Debug.LogError("Invalid PosNum: " + fightObj.PosNum);
+        }
+        else
+        {
+            teamBase.teamHeros[fightObj.PosNum] = this; // 灏嗗綋鍓嶅璞℃坊鍔犲埌瀵瑰簲浣嶇疆
+        }
+
+        ObjID = fightObj.ObjID;
+        NPCID = fightObj.NPCID;
+
+        // HPEx * 1浜� + HP
+
+        curHp = (long)fightObj.HPEx * GeneralDefine.HundredMillion +(long)fightObj.HP;
+        maxHp = (long)fightObj.MaxHPEx * GeneralDefine.HundredMillion +(long)fightObj.MaxHP;
+        rage = (int)fightObj.AngreXP;
+
+        heroIndex = fightObj.PosNum;
+
+        Update();
+    }
+
+    public void Update()
+    {
+        
+    }
+
     //  鏈�缁堝睘鎬� 褰撳墠灞炴�у簲璇ユ槸瑕佸湪杩欎竴灞傜殑
 
-	public int GetPower()
-	{
-		return heroInfo.CalculatePower();
-	}    
+    public int GetPower()
+    {
+        return heroInfo.CalculatePower();
+    }    
 }
\ No newline at end of file
diff --git a/Main/System/Team/TeamManager.cs b/Main/System/Team/TeamManager.cs
index 4bf5ce6..980c7e9 100644
--- a/Main/System/Team/TeamManager.cs
+++ b/Main/System/Team/TeamManager.cs
@@ -24,7 +24,7 @@
 		if (!teamDict.TryGetValue(teamType, out team))
 		{
 			team = new TeamBase();
-			team.AddTeamHeros(HeroManager.Instance.GetPowerfulHeroList());
+			team.AddHeroInfos(HeroManager.Instance.GetPowerfulHeroList());
 			teamDict.Add(teamType, team);
 		}
 

--
Gitblit v1.8.0