From eb1efcaa9be0e2340fc49b38dab8df18e36526c9 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 13 六月 2025 17:57:43 +0800
Subject: [PATCH] 117 【武将】武将系统 卡牌信息&Manager初始化前移

---
 Main/Config/Configs/HeroFetterConfig.cs.meta           |    2 
 Main/Config/Configs/HeroAwakeConfig.cs                 |   80 +++++
 Main/Config/Configs/HeroBreakConfig.cs.meta            |    2 
 Main/Config/Configs/HeroQualityAwakeConfig.cs.meta     |    2 
 Main/Config/ConfigManager.cs                           |   35 +
 Main/Config/Configs/HeroTalentConfig.cs.meta           |    2 
 Main/System/Battle/BattleObject/BattleObjectFactory.cs |    2 
 Main/System/Hero.meta                                  |    2 
 Main/System/Hero/HeroManager.cs.meta                   |    2 
 Main/Config/Configs/HeroQualityConfig.cs.meta          |    2 
 Main/Config/Configs/HeroSkinConfig.cs.meta             |    2 
 Main/System/Team/TeamBase.Properties.cs                |    2 
 Main/System/Hero/HeroType.cs                           |   10 
 Main/Config/Configs/HeroAwakeConfig.cs.meta            |    2 
 Main/System/Hero/HeroInfo.Properties.cs                |    2 
 Main/System/Battle/BattleObject/BattleObject.cs        |    8 
 Main/System/Hero/HeroSkillMgr.cs                       |    8 
 Main/System/Hero/HeroManager.cs                        |   30 +
 Main/Config/Configs/HeroConfig.cs.meta                 |    2 
 Main/Main.cs                                           |   14 
 Main/System/Hero/HeroInfo.cs.meta                      |    2 
 Main/Config/Configs/HeroConfig.cs                      |   74 ++++
 Main/System/Team/TeamBase.cs                           |   46 +-
 Main/Config/Configs/HeroQualityBreakConfig.cs          |   59 +++
 Main/Config/Configs/HeroQualityConfig.cs               |   89 +++++
 Main/System/Team/TeamHero.cs.meta                      |    2 
 Main/Config/Configs/HeroTalentConfig.cs                |   44 ++
 Main/Manager/StageManager.cs                           |    2 
 Main/System/Team/TeamConst.cs                          |    2 
 Main/Config/Configs/HeroBreakConfig.cs                 |   74 ++++
 Main/System/Hero/HeroType.cs.meta                      |    2 
 Main/System/Hero/HeroInfo.cs                           |   32 ++
 /dev/null                                              |   17 -
 Main/Config/Configs/HeroQualityBreakConfig.cs.meta     |    2 
 Main/System/Hero/HeroInfo.Properties.cs.meta           |    2 
 Main/Config/Configs/HeroQualityAwakeConfig.cs          |   56 +++
 Main/System/Battle/BattleObject/BattleObjMgr.cs        |   12 
 Main/System/Hero/HeroSkillMgr.cs.meta                  |    2 
 Main/Config/Configs/HeroSkinConfig.cs                  |   95 +++++
 Main/System/Team/TeamHero.cs                           |   17 +
 Main/Config/Configs/HeroFetterConfig.cs                |   83 +++++
 41 files changed, 838 insertions(+), 87 deletions(-)

diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index bbed737..c5c53a9 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -33,7 +33,7 @@
         isLoadFinished = false;
 
         // 鍔犺浇閰嶇疆鏂囦欢
-        int totalConfigs = 41;
+        int totalConfigs = 48;
         Type[] configTypes = new Type[] {
             typeof(AppointItemConfig),
             typeof(AudioConfig),
@@ -53,8 +53,16 @@
             typeof(GetItemWaysConfig),
             typeof(GmCmdConfig),
             typeof(GuideConfig),
+            typeof(HeroAwakeConfig),
+            typeof(HeroBreakConfig),
+            typeof(HeroConfig),
+            typeof(HeroFetterConfig),
+            typeof(HeroQualityAwakeConfig),
+            typeof(HeroQualityBreakConfig),
+            typeof(HeroQualityConfig),
+            typeof(HeroSkinConfig),
+            typeof(HeroTalentConfig),
             typeof(IconConfig),
-            //typeof(InitialFunctionConfig),
             typeof(ItemConfig),
             typeof(KickOutReasonConfig),
             typeof(LanguageConfig),
@@ -68,7 +76,6 @@
             typeof(PlayerFaceStarConfig),
             typeof(PlayerLVConfig),
             typeof(priorbundleConfig),
-            //typeof(PriorLanguageConfig),
             typeof(RichTextMsgReplaceConfig),
             typeof(RuleConfig),
             typeof(SkillConfig),
@@ -208,10 +215,26 @@
         ClearConfigDictionary<GmCmdConfig>();
         // 娓呯┖ GuideConfig 瀛楀吀
         ClearConfigDictionary<GuideConfig>();
+        // 娓呯┖ HeroAwakeConfig 瀛楀吀
+        ClearConfigDictionary<HeroAwakeConfig>();
+        // 娓呯┖ HeroBreakConfig 瀛楀吀
+        ClearConfigDictionary<HeroBreakConfig>();
+        // 娓呯┖ HeroConfig 瀛楀吀
+        ClearConfigDictionary<HeroConfig>();
+        // 娓呯┖ HeroFetterConfig 瀛楀吀
+        ClearConfigDictionary<HeroFetterConfig>();
+        // 娓呯┖ HeroQualityAwakeConfig 瀛楀吀
+        ClearConfigDictionary<HeroQualityAwakeConfig>();
+        // 娓呯┖ HeroQualityBreakConfig 瀛楀吀
+        ClearConfigDictionary<HeroQualityBreakConfig>();
+        // 娓呯┖ HeroQualityConfig 瀛楀吀
+        ClearConfigDictionary<HeroQualityConfig>();
+        // 娓呯┖ HeroSkinConfig 瀛楀吀
+        ClearConfigDictionary<HeroSkinConfig>();
+        // 娓呯┖ HeroTalentConfig 瀛楀吀
+        ClearConfigDictionary<HeroTalentConfig>();
         // 娓呯┖ IconConfig 瀛楀吀
         ClearConfigDictionary<IconConfig>();
-        // 娓呯┖ InitialFunctionConfig 瀛楀吀
-        ClearConfigDictionary<InitialFunctionConfig>();
         // 娓呯┖ ItemConfig 瀛楀吀
         ClearConfigDictionary<ItemConfig>();
         // 娓呯┖ KickOutReasonConfig 瀛楀吀
@@ -238,8 +261,6 @@
         ClearConfigDictionary<PlayerLVConfig>();
         // 娓呯┖ priorbundleConfig 瀛楀吀
         ClearConfigDictionary<priorbundleConfig>();
-        // 娓呯┖ PriorLanguageConfig 瀛楀吀
-        ClearConfigDictionary<PriorLanguageConfig>();
         // 娓呯┖ RichTextMsgReplaceConfig 瀛楀吀
         ClearConfigDictionary<RichTextMsgReplaceConfig>();
         // 娓呯┖ RuleConfig 瀛楀吀
diff --git a/Main/Config/Configs/HeroAwakeConfig.cs b/Main/Config/Configs/HeroAwakeConfig.cs
new file mode 100644
index 0000000..7365411
--- /dev/null
+++ b/Main/Config/Configs/HeroAwakeConfig.cs
@@ -0,0 +1,80 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroAwakeConfig : ConfigBase<int, HeroAwakeConfig>
+{
+
+    public int TalentAwakeID;
+	public int HeroID;
+	public int AwakeLV;
+	public int[] AttrIDList;
+	public int[] AttrValueList;
+	public int SkillID;
+	public int UnlockTalentSlot;
+	public int AddStarUpper;
+
+    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 TalentAwakeID); 
+
+			int.TryParse(tables[1],out HeroID); 
+
+			int.TryParse(tables[2],out AwakeLV); 
+
+			if (tables[3].Contains("["))
+			{
+				AttrIDList = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] AttrIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AttrIDList = new int[AttrIDListStringArray.Length];
+				for (int i=0;i<AttrIDListStringArray.Length;i++)
+				{
+					 int.TryParse(AttrIDListStringArray[i],out AttrIDList[i]);
+				}
+			}
+
+			if (tables[4].Contains("["))
+			{
+				AttrValueList = JsonMapper.ToObject<int[]>(tables[4]);
+			}
+			else
+			{
+				string[] AttrValueListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AttrValueList = new int[AttrValueListStringArray.Length];
+				for (int i=0;i<AttrValueListStringArray.Length;i++)
+				{
+					 int.TryParse(AttrValueListStringArray[i],out AttrValueList[i]);
+				}
+			}
+
+			int.TryParse(tables[5],out SkillID); 
+
+			int.TryParse(tables[6],out UnlockTalentSlot); 
+
+			int.TryParse(tables[7],out AddStarUpper); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroAwakeConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroAwakeConfig.cs.meta
index c9476e8..72e08dc 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroAwakeConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: bc64cd434972f2148975822e7f4c4333
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroBreakConfig.cs b/Main/Config/Configs/HeroBreakConfig.cs
new file mode 100644
index 0000000..490388f
--- /dev/null
+++ b/Main/Config/Configs/HeroBreakConfig.cs
@@ -0,0 +1,74 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroBreakConfig : ConfigBase<int, HeroBreakConfig>
+{
+
+    public int BreakID;
+	public int HeroID;
+	public int BreakLV;
+	public int[] AttrIDList;
+	public int[] AttrValueList;
+	public int SkillID;
+
+    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 BreakID); 
+
+			int.TryParse(tables[1],out HeroID); 
+
+			int.TryParse(tables[2],out BreakLV); 
+
+			if (tables[3].Contains("["))
+			{
+				AttrIDList = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] AttrIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AttrIDList = new int[AttrIDListStringArray.Length];
+				for (int i=0;i<AttrIDListStringArray.Length;i++)
+				{
+					 int.TryParse(AttrIDListStringArray[i],out AttrIDList[i]);
+				}
+			}
+
+			if (tables[4].Contains("["))
+			{
+				AttrValueList = JsonMapper.ToObject<int[]>(tables[4]);
+			}
+			else
+			{
+				string[] AttrValueListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AttrValueList = new int[AttrValueListStringArray.Length];
+				for (int i=0;i<AttrValueListStringArray.Length;i++)
+				{
+					 int.TryParse(AttrValueListStringArray[i],out AttrValueList[i]);
+				}
+			}
+
+			int.TryParse(tables[5],out SkillID); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroBreakConfig.cs.meta
similarity index 83%
rename from Main/System/Team/TeamCard.cs.meta
rename to Main/Config/Configs/HeroBreakConfig.cs.meta
index c9476e8..b82a5ec 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroBreakConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 2151f3fe44abab34684659bcd4b5e5c7
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroConfig.cs b/Main/Config/Configs/HeroConfig.cs
new file mode 100644
index 0000000..1763f4c
--- /dev/null
+++ b/Main/Config/Configs/HeroConfig.cs
@@ -0,0 +1,74 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroConfig : ConfigBase<int, HeroConfig>
+{
+
+    public int HeroID;
+	public int Country;
+	public int Quality;
+	public int[] SkinNPCIDList;
+	public int AtkSkillID;
+	public int AngerSkillID;
+	public int AtkInheritPer;
+	public int DefInheritPer;
+	public int HPInheritPer;
+	public string BatAttrDict;
+
+    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 HeroID); 
+
+			int.TryParse(tables[1],out Country); 
+
+			int.TryParse(tables[2],out Quality); 
+
+			if (tables[3].Contains("["))
+			{
+				SkinNPCIDList = 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++)
+				{
+					 int.TryParse(SkinNPCIDListStringArray[i],out SkinNPCIDList[i]);
+				}
+			}
+
+			int.TryParse(tables[4],out AtkSkillID); 
+
+			int.TryParse(tables[5],out AngerSkillID); 
+
+			int.TryParse(tables[6],out AtkInheritPer); 
+
+			int.TryParse(tables[7],out DefInheritPer); 
+
+			int.TryParse(tables[8],out HPInheritPer); 
+
+			BatAttrDict = tables[9];
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroConfig.cs.meta
index c9476e8..197e80d 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: d7f792a1d203864478e6e74c59928218
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroFetterConfig.cs b/Main/Config/Configs/HeroFetterConfig.cs
new file mode 100644
index 0000000..81bba9d
--- /dev/null
+++ b/Main/Config/Configs/HeroFetterConfig.cs
@@ -0,0 +1,83 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroFetterConfig : ConfigBase<int, HeroFetterConfig>
+{
+
+    public int FetterID;
+	public string FetterName;
+	public int[] HeroIDList;
+	public int[] AttrIDList;
+	public int[] AttrValueList;
+
+    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 FetterID); 
+
+			FetterName = tables[1];
+
+			if (tables[2].Contains("["))
+			{
+				HeroIDList = JsonMapper.ToObject<int[]>(tables[2]);
+			}
+			else
+			{
+				string[] HeroIDListStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				HeroIDList = new int[HeroIDListStringArray.Length];
+				for (int i=0;i<HeroIDListStringArray.Length;i++)
+				{
+					 int.TryParse(HeroIDListStringArray[i],out HeroIDList[i]);
+				}
+			}
+
+			if (tables[3].Contains("["))
+			{
+				AttrIDList = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] AttrIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AttrIDList = new int[AttrIDListStringArray.Length];
+				for (int i=0;i<AttrIDListStringArray.Length;i++)
+				{
+					 int.TryParse(AttrIDListStringArray[i],out AttrIDList[i]);
+				}
+			}
+
+			if (tables[4].Contains("["))
+			{
+				AttrValueList = JsonMapper.ToObject<int[]>(tables[4]);
+			}
+			else
+			{
+				string[] AttrValueListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AttrValueList = new int[AttrValueListStringArray.Length];
+				for (int i=0;i<AttrValueListStringArray.Length;i++)
+				{
+					 int.TryParse(AttrValueListStringArray[i],out AttrValueList[i]);
+				}
+			}
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroFetterConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroFetterConfig.cs.meta
index c9476e8..bcaf5ff 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroFetterConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: b12955637f261264681bda765be07614
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroQualityAwakeConfig.cs b/Main/Config/Configs/HeroQualityAwakeConfig.cs
new file mode 100644
index 0000000..590770d
--- /dev/null
+++ b/Main/Config/Configs/HeroQualityAwakeConfig.cs
@@ -0,0 +1,56 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroQualityAwakeConfig : ConfigBase<int, HeroQualityAwakeConfig>
+{
+
+    public int QualityAwakeID;
+	public int Quality;
+	public int AwakeLV;
+	public int[] UPCostItem;
+
+    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 QualityAwakeID); 
+
+			int.TryParse(tables[1],out Quality); 
+
+			int.TryParse(tables[2],out AwakeLV); 
+
+			if (tables[3].Contains("["))
+			{
+				UPCostItem = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] UPCostItemStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				UPCostItem = new int[UPCostItemStringArray.Length];
+				for (int i=0;i<UPCostItemStringArray.Length;i++)
+				{
+					 int.TryParse(UPCostItemStringArray[i],out UPCostItem[i]);
+				}
+			}
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroQualityAwakeConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroQualityAwakeConfig.cs.meta
index c9476e8..6eeb4e3 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroQualityAwakeConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: f9b036d86edda5d4888a79b7c6d30994
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroQualityBreakConfig.cs b/Main/Config/Configs/HeroQualityBreakConfig.cs
new file mode 100644
index 0000000..c61e147
--- /dev/null
+++ b/Main/Config/Configs/HeroQualityBreakConfig.cs
@@ -0,0 +1,59 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroQualityBreakConfig : ConfigBase<int, HeroQualityBreakConfig>
+{
+
+    public int QualityBreankID;
+	public int Quality;
+	public int BreakLV;
+	public int LVMax;
+	public int[] UPCostItem;
+
+    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 QualityBreankID); 
+
+			int.TryParse(tables[1],out Quality); 
+
+			int.TryParse(tables[2],out BreakLV); 
+
+			int.TryParse(tables[3],out LVMax); 
+
+			if (tables[4].Contains("["))
+			{
+				UPCostItem = JsonMapper.ToObject<int[]>(tables[4]);
+			}
+			else
+			{
+				string[] UPCostItemStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				UPCostItem = new int[UPCostItemStringArray.Length];
+				for (int i=0;i<UPCostItemStringArray.Length;i++)
+				{
+					 int.TryParse(UPCostItemStringArray[i],out UPCostItem[i]);
+				}
+			}
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroQualityBreakConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroQualityBreakConfig.cs.meta
index c9476e8..f6979a7 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroQualityBreakConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 39b234a3a9cfa634baba0b30ed80b493
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroQualityConfig.cs b/Main/Config/Configs/HeroQualityConfig.cs
new file mode 100644
index 0000000..64ff313
--- /dev/null
+++ b/Main/Config/Configs/HeroQualityConfig.cs
@@ -0,0 +1,89 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroQualityConfig : ConfigBase<int, HeroQualityConfig>
+{
+
+    public int Quality;
+	public int[] UPCostItem;
+	public int InitStarUpper;
+	public int InitAddPer;
+	public int LVAddPer;
+	public int BreakLVAddPer;
+	public int StarAddPer;
+	public int[] BookActAwardMoney;
+	public int BookInitAddPer;
+	public int BookStarAddPer;
+	public int BookBreakLVAddPer;
+
+    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 Quality); 
+
+			if (tables[1].Contains("["))
+			{
+				UPCostItem = JsonMapper.ToObject<int[]>(tables[1]);
+			}
+			else
+			{
+				string[] UPCostItemStringArray = tables[1].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				UPCostItem = new int[UPCostItemStringArray.Length];
+				for (int i=0;i<UPCostItemStringArray.Length;i++)
+				{
+					 int.TryParse(UPCostItemStringArray[i],out UPCostItem[i]);
+				}
+			}
+
+			int.TryParse(tables[2],out InitStarUpper); 
+
+			int.TryParse(tables[3],out InitAddPer); 
+
+			int.TryParse(tables[4],out LVAddPer); 
+
+			int.TryParse(tables[5],out BreakLVAddPer); 
+
+			int.TryParse(tables[6],out StarAddPer); 
+
+			if (tables[7].Contains("["))
+			{
+				BookActAwardMoney = JsonMapper.ToObject<int[]>(tables[7]);
+			}
+			else
+			{
+				string[] BookActAwardMoneyStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				BookActAwardMoney = new int[BookActAwardMoneyStringArray.Length];
+				for (int i=0;i<BookActAwardMoneyStringArray.Length;i++)
+				{
+					 int.TryParse(BookActAwardMoneyStringArray[i],out BookActAwardMoney[i]);
+				}
+			}
+
+			int.TryParse(tables[8],out BookInitAddPer); 
+
+			int.TryParse(tables[9],out BookStarAddPer); 
+
+			int.TryParse(tables[10],out BookBreakLVAddPer); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroQualityConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroQualityConfig.cs.meta
index c9476e8..0d6f788 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroQualityConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 41b0601ec2100e54ba0e78956032bca5
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroSkinConfig.cs b/Main/Config/Configs/HeroSkinConfig.cs
new file mode 100644
index 0000000..cd19f68
--- /dev/null
+++ b/Main/Config/Configs/HeroSkinConfig.cs
@@ -0,0 +1,95 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroSkinConfig : ConfigBase<int, HeroSkinConfig>
+{
+
+    public int SkinNPCID;
+	public int[] WearAttrIDList;
+	public int[] WearAttrValueList;
+	public int[] AllBatAttrIDList;
+	public int[] AllBatAttrValueList;
+
+    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 SkinNPCID); 
+
+			if (tables[1].Contains("["))
+			{
+				WearAttrIDList = JsonMapper.ToObject<int[]>(tables[1]);
+			}
+			else
+			{
+				string[] WearAttrIDListStringArray = tables[1].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WearAttrIDList = new int[WearAttrIDListStringArray.Length];
+				for (int i=0;i<WearAttrIDListStringArray.Length;i++)
+				{
+					 int.TryParse(WearAttrIDListStringArray[i],out WearAttrIDList[i]);
+				}
+			}
+
+			if (tables[2].Contains("["))
+			{
+				WearAttrValueList = JsonMapper.ToObject<int[]>(tables[2]);
+			}
+			else
+			{
+				string[] WearAttrValueListStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				WearAttrValueList = new int[WearAttrValueListStringArray.Length];
+				for (int i=0;i<WearAttrValueListStringArray.Length;i++)
+				{
+					 int.TryParse(WearAttrValueListStringArray[i],out WearAttrValueList[i]);
+				}
+			}
+
+			if (tables[3].Contains("["))
+			{
+				AllBatAttrIDList = JsonMapper.ToObject<int[]>(tables[3]);
+			}
+			else
+			{
+				string[] AllBatAttrIDListStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AllBatAttrIDList = new int[AllBatAttrIDListStringArray.Length];
+				for (int i=0;i<AllBatAttrIDListStringArray.Length;i++)
+				{
+					 int.TryParse(AllBatAttrIDListStringArray[i],out AllBatAttrIDList[i]);
+				}
+			}
+
+			if (tables[4].Contains("["))
+			{
+				AllBatAttrValueList = JsonMapper.ToObject<int[]>(tables[4]);
+			}
+			else
+			{
+				string[] AllBatAttrValueListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				AllBatAttrValueList = new int[AllBatAttrValueListStringArray.Length];
+				for (int i=0;i<AllBatAttrValueListStringArray.Length;i++)
+				{
+					 int.TryParse(AllBatAttrValueListStringArray[i],out AllBatAttrValueList[i]);
+				}
+			}
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroSkinConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroSkinConfig.cs.meta
index c9476e8..5c5c7ce 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroSkinConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: f5658b3c824309e4993dbbb27974dc36
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Config/Configs/HeroTalentConfig.cs b/Main/Config/Configs/HeroTalentConfig.cs
new file mode 100644
index 0000000..57851e6
--- /dev/null
+++ b/Main/Config/Configs/HeroTalentConfig.cs
@@ -0,0 +1,44 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2025骞�6鏈�13鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroTalentConfig : ConfigBase<int, HeroTalentConfig>
+{
+
+    public int TalentID;
+	public int Quality;
+	public int AttrID;
+	public int AttrValue;
+
+    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 TalentID); 
+
+			int.TryParse(tables[1],out Quality); 
+
+			int.TryParse(tables[2],out AttrID); 
+
+			int.TryParse(tables[3],out AttrValue); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/Config/Configs/HeroTalentConfig.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/Config/Configs/HeroTalentConfig.cs.meta
index c9476e8..3c9cd91 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/Config/Configs/HeroTalentConfig.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 1e6be2f5d60890c489a9c8f3e9ada5cc
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/Main.cs b/Main/Main.cs
index cd2b51a..08b0d3c 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -4,7 +4,6 @@
 using UnityEngine;
 using Cysharp.Threading;
 using Cysharp.Threading.Tasks;
-using System.Threading.Tasks;
 
 /// <summary>
 /// Main绫伙紝浣滀负鐑洿鏂扮▼搴忛泦鐨勫叆鍙g偣
@@ -36,11 +35,8 @@
         StageManager.Instance.ToLoginScene();
     }
 
-    public static void OnEnterGameScene()
+    public static async UniTask InitManagers()
     {
-        // 鍒濆鍖栨父鎴忓満鏅�
-        Debug.Log("鍒濆鍖栨父鎴忓満鏅�");
-
         ReleaseMgrs();
 
         // 鍒濆鍖栨父鎴忕郴缁�
@@ -51,6 +47,14 @@
             manager.Init();
         }
 
+        await UniTask.Yield();
+    }
+
+    public static void OnEnterGameScene()
+    {
+        // 鍒濆鍖栨父鎴忓満鏅�
+        Debug.Log("鍒濆鍖栨父鎴忓満鏅�");
+
         foreach (var manager in managers)
         {
             manager.RequestNessaryData();
diff --git a/Main/Manager/StageManager.cs b/Main/Manager/StageManager.cs
index f7dbbc8..0af24c4 100644
--- a/Main/Manager/StageManager.cs
+++ b/Main/Manager/StageManager.cs
@@ -38,7 +38,7 @@
 
         AsyncOperation asyncOperation = SceneManager.LoadSceneAsync("Login");
 
-        await OnLoading(asyncOperation, ConfigManager.Instance.GetLoadingProgress);
+        await OnLoading(asyncOperation, ConfigManager.Instance.GetLoadingProgress, Main.InitManagers);
 
         Main.OnSwitchToLoginScene();
 
diff --git a/Main/System/Battle/BattleObject/BattleObjMgr.cs b/Main/System/Battle/BattleObject/BattleObjMgr.cs
index ddd3892..a01879f 100644
--- a/Main/System/Battle/BattleObject/BattleObjMgr.cs
+++ b/Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -36,14 +36,14 @@
     protected void CreateTeam(Dictionary<int, BattleObject> campDict, TeamBase teamBase)
     {
         DestroyTeam(campDict);
-        for (int i = 0; i < teamBase.teamCards.Length; i++)
+        for (int i = 0; i < teamBase.teamHeros.Length; i++)
         {
-            TeamCard teamCard = teamBase.teamCards[i];
-            if (teamCard != null)
+            TeamHero teamHero = teamBase.teamHeros[i];
+            if (teamHero != null)
             {
-                BattleObject battleObj = BattleObjectFactory.CreateBattleObject(teamCard);
-                battleObj.Init(teamCard);
-                campDict.Add(teamCard.cardIndex, battleObj);
+                BattleObject battleObj = BattleObjectFactory.CreateBattleObject(teamHero);
+                battleObj.Init(teamHero);
+                campDict.Add(teamHero.heroIndex, battleObj);
             }
         }
     }
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index 7569fcd..4d2010f 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -29,19 +29,19 @@
     
     public BattleCamp Camp { get; protected set; } = BattleCamp.Friendly;
     
-    public TeamCard teamCard { get; protected set; }
+    public TeamHero teamHero { get; protected set; }
 
     protected MotionBase motionBase;
 
     protected GameObject cardGO;
     
-    public virtual void Init(TeamCard _teamCard)
+    public virtual void Init(TeamHero _teamHero)
     {
-        this.teamCard = _teamCard;
+        this.teamHero = _teamHero;
         motionBase = new MotionBase();
     }
 
-    protected void LoadCard()
+    protected void LoadHero()
     {
         
     }
diff --git a/Main/System/Battle/BattleObject/BattleObjectFactory.cs b/Main/System/Battle/BattleObject/BattleObjectFactory.cs
index 50b8942..a42b300 100644
--- a/Main/System/Battle/BattleObject/BattleObjectFactory.cs
+++ b/Main/System/Battle/BattleObject/BattleObjectFactory.cs
@@ -5,7 +5,7 @@
 
 public class BattleObjectFactory
 {
-    public static BattleObject CreateBattleObject(TeamCard teamCard)
+    public static BattleObject CreateBattleObject(TeamHero teamHero)
     {
         BattleObject battleObject = null;
         // switch (teamCard.cardInfo.cardConfig.)
diff --git a/Main/System/Battle/BattleObject/CardObject.cs b/Main/System/Battle/BattleObject/CardObject.cs
deleted file mode 100644
index e69de29..0000000
--- a/Main/System/Battle/BattleObject/CardObject.cs
+++ /dev/null
diff --git a/Main/System/Battle/BattleObject/CardObject.cs.meta b/Main/System/Battle/BattleObject/CardObject.cs.meta
deleted file mode 100644
index dd74d90..0000000
--- a/Main/System/Battle/BattleObject/CardObject.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 7379cb2482b831b43bb037d44c4239ec
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/System/Card/CardInfo.Properties.cs.meta b/Main/System/Card/CardInfo.Properties.cs.meta
deleted file mode 100644
index db80759..0000000
--- a/Main/System/Card/CardInfo.Properties.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 8b30e11e231880d45a28598cef7b63f5
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/System/Card/CardInfo.cs b/Main/System/Card/CardInfo.cs
deleted file mode 100644
index 791f083..0000000
--- a/Main/System/Card/CardInfo.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public partial class CardInfo
-{
-    public long sid;
-
-    public int cardId;
-
-    public int cardLevel;
-
-    public int cardStar;
-
-    public int breakLevel;
-
-    // public List<int> cardEquipList;
-
-    // public List<int> cardRuneList;
-
-    // public List<int> cardMedalList;
-
-    // public CardConfig cardConfig;
-
-    public CardSkillMgr cardSkillMgr;
-
-    public CardInfo(/*TODO 绛夊緟鏈嶅姟鍣ㄦ暟鎹�*/)
-    {
-        cardSkillMgr = new CardSkillMgr(this);
-    }
-
-
-}
\ No newline at end of file
diff --git a/Main/System/Card/CardInfo.cs.meta b/Main/System/Card/CardInfo.cs.meta
deleted file mode 100644
index ca33745..0000000
--- a/Main/System/Card/CardInfo.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 1a586a3dd13cc774fadc7b2129a8c885
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/System/Card/CardSkillMgr.cs.meta b/Main/System/Card/CardSkillMgr.cs.meta
deleted file mode 100644
index 7cf1e0c..0000000
--- a/Main/System/Card/CardSkillMgr.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 97462d62c358e0a41a1ba6d83d821ad4
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/System/Card/CardType.cs b/Main/System/Card/CardType.cs
deleted file mode 100644
index 1ef4920..0000000
--- a/Main/System/Card/CardType.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-
-public enum CardType
-{
-    Wei,        // 榄�
-    Shu,        // 铚�
-    Wu,         // 鍚�
-    Shen,       // 绁�
-    Mo,         // 榄�
-}
-
-// 涓婇樀4鍚嶆寚瀹氬浗姝﹀皢鍙縺娲� 鐢熷懡+10% 鏀诲嚮+10%锛屾縺娲诲悗鐩稿簲璇嶆潯浜捣涓庡搴斿浘鏍囦慨鏀广��
-// 涓婇樀5鍚嶆寚瀹氬浗姝﹀皢鍙縺娲� 鐢熷懡+15% 鏀诲嚮+15%锛屾縺娲诲悗鐩稿簲璇嶆潯浜捣涓庡搴斿浘鏍囦慨鏀广��
-// 涓婇樀6鍚嶆寚瀹氬浗姝﹀皢鍙縺娲� 鐢熷懡+20% 鏀诲嚮+20%锛屾縺娲诲悗鐩稿簲璇嶆潯浜捣涓庡搴斿浘鏍囦慨鏀广��
-// 灞炴�ф暟鍊奸渶瑕佹敮鎸侀厤缃�
-// 闃佃惀棰滆壊锛氶瓘鍥斤細钃濄�佸惔鍥斤細绾㈣壊銆佽渶鍥斤細缁胯壊銆佺锛氶粍鑹层�侀瓟锛氭殫绱�
-// 褰撴弧瓒冲鏉¤瘝鏉℃椂锛屽彧鏈夋渶楂樺睘鎬ц瘝鏉$敓鏁堝苟淇敼鎴愬搴斿浘鏍囨樉绀�
-// 鏍规嵁涓婇樀姝﹀皢鎯呭喌鏃舵椂淇敼闃佃惀鍏夌幆鍥炬爣骞舵縺娲诲搴旇瘝鏉�
\ No newline at end of file
diff --git a/Main/System/Card/CardType.cs.meta b/Main/System/Card/CardType.cs.meta
deleted file mode 100644
index b9a6af3..0000000
--- a/Main/System/Card/CardType.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 52648f1b5c66b3b41b7654ff65f1b2b0
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/System/Card.meta b/Main/System/Hero.meta
similarity index 77%
rename from Main/System/Card.meta
rename to Main/System/Hero.meta
index 8aa4fcd..e0c6e69 100644
--- a/Main/System/Card.meta
+++ b/Main/System/Hero.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: ec4bdc5ff35cf96419554a0e46696eb6
+guid: 53979a5e5ad50a047a6f681cde2d8abf
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}
diff --git a/Main/System/Card/CardInfo.Properties.cs b/Main/System/Hero/HeroInfo.Properties.cs
similarity index 98%
rename from Main/System/Card/CardInfo.Properties.cs
rename to Main/System/Hero/HeroInfo.Properties.cs
index 6b6c357..dbb3911 100644
--- a/Main/System/Card/CardInfo.Properties.cs
+++ b/Main/System/Hero/HeroInfo.Properties.cs
@@ -1,6 +1,6 @@
 
 
-public partial class CardInfo
+public partial class HeroInfo
 {
     // 鎴樻枟灞炴�х殑瑙﹀彂鍑犵巼璁$畻鏄�1瀵�1鐨勶紝鍙悓鏃惰Е鍙戝涓睘鎬т笖澶氭瑙﹀彂锛岃Е鍙戝嚑鐜囦笉浼氶殢鐫�鐩爣鏁伴噺澶氬皯鑰屾敼鍙橈紝鍙細鏍规嵁鍚屼竴鐩爣鐨勮Е鍙戞鏁板澶氳�岄檷浣庛��
     // 鍗冲湪涓�鍥炲悎鍐咃紝鍚屼竴涓洰鏍囧弽鍑汇�佽繛鍑汇�佸嚮鏅曘�佹毚鍑汇�侀棯閬垮彲浠ュ悓鏃跺苟澶氭瑙﹀彂锛岃Е鍙戝嚑鐜囬殢鏈鸿Е鍙戞鏁扮殑澧炲姞鑰岄檷浣庯紝姣忎釜灞炴�у紑鍏紡鏉ワ紙鍙傛暟锛氳Е鍙戝嚑鐜囥�佹姷鎶楀嚑鐜囥�佸凡瑙﹀彂娆℃暟锛�
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/System/Hero/HeroInfo.Properties.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/System/Hero/HeroInfo.Properties.cs.meta
index c9476e8..9948851 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/System/Hero/HeroInfo.Properties.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 9b206aa81fca9064d86da672dec316c1
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
new file mode 100644
index 0000000..7043e73
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.cs
@@ -0,0 +1,32 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class HeroInfo
+{
+    public long sid;
+
+    public int heroId;
+
+    public int heroLevel;
+
+    public int heroStar;
+
+    public int breakLevel;
+
+    // public List<int> heroEquipList;
+
+    // public List<int> heroRuneList;
+
+    // public List<int> heroMedalList;
+
+    // public HeroConfig heroConfig;
+
+    public HeroSkillMgr heroSkillMgr;
+
+    public HeroInfo(/*TODO 绛夊緟鏈嶅姟鍣ㄦ暟鎹�*/)
+    {
+        heroSkillMgr = new HeroSkillMgr(this);
+    }
+
+
+}
\ No newline at end of file
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/System/Hero/HeroInfo.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/System/Hero/HeroInfo.cs.meta
index c9476e8..9368c80 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/System/Hero/HeroInfo.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: fa0693c6508612c4ea7685eb5edf313a
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs
new file mode 100644
index 0000000..8042bd9
--- /dev/null
+++ b/Main/System/Hero/HeroManager.cs
@@ -0,0 +1,30 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class HeroManager : GameSystemManager<HeroManager>
+{
+    protected Dictionary<long, HeroInfo> heroInfoDict = new Dictionary<long, HeroInfo>();
+
+    public override void Init()
+    {
+        base.Init();
+
+        //  娉ㄥ唽涓�鐐逛簨浠�
+    }
+
+    public override void Release()
+    {
+        base.Release();
+    }
+
+    public override void RequestNessaryData()
+    {
+        base.RequestNessaryData();
+    }
+
+    // public override bool IsNessaryDataReady()
+    // {
+    //     return true;
+    // }
+
+}
\ No newline at end of file
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/System/Hero/HeroManager.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/System/Hero/HeroManager.cs.meta
index c9476e8..7d503af 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/System/Hero/HeroManager.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 801aeaaefd9cc4a47a18e52c98031833
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Card/CardSkillMgr.cs b/Main/System/Hero/HeroSkillMgr.cs
similarity index 65%
rename from Main/System/Card/CardSkillMgr.cs
rename to Main/System/Hero/HeroSkillMgr.cs
index 8e4bd59..511cc6b 100644
--- a/Main/System/Card/CardSkillMgr.cs
+++ b/Main/System/Hero/HeroSkillMgr.cs
@@ -6,13 +6,13 @@
 /// <summary>
 /// 瑙掕壊鎶�鑳界鐞嗗櫒锛屽鐞嗘墍鏈変笌鎶�鑳界浉鍏崇殑鍔熻兘
 /// </summary>
-public class CardSkillMgr
+public class HeroSkillMgr
 {
-    public CardInfo cardInfo;
+    public HeroInfo heroInfo;
 
-    public CardSkillMgr(CardInfo _cardInfo)
+    public HeroSkillMgr(HeroInfo _heroInfo)
     {
-        this.cardInfo = _cardInfo;
+        this.heroInfo = _heroInfo;
 
         Init();
     }
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/System/Hero/HeroSkillMgr.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/System/Hero/HeroSkillMgr.cs.meta
index c9476e8..c09880f 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/System/Hero/HeroSkillMgr.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 7e7e728c294f964489fae50298e21cc3
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Hero/HeroType.cs b/Main/System/Hero/HeroType.cs
new file mode 100644
index 0000000..99c387b
--- /dev/null
+++ b/Main/System/Hero/HeroType.cs
@@ -0,0 +1,10 @@
+
+public enum HeroCountry
+{
+    Wei,        // 榄�
+    Shu,        // 铚�
+    Wu,         // 鍚�
+    Qun,        // 缇�
+}
+
+// 鍒嗕负4涓樀钀ワ細榄忋�佽渶銆佸惔銆佺兢
\ No newline at end of file
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/System/Hero/HeroType.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/System/Hero/HeroType.cs.meta
index c9476e8..cc62ce8 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/System/Hero/HeroType.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 787ce54e710b3fa4da8583fc60ce85f1
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/Main/System/Team/TeamBase.Properties.cs b/Main/System/Team/TeamBase.Properties.cs
index 3f22dcc..e3dcbb3 100644
--- a/Main/System/Team/TeamBase.Properties.cs
+++ b/Main/System/Team/TeamBase.Properties.cs
@@ -6,7 +6,7 @@
 
     //  闃靛瀷鍐呭崱鐗岀殑缇佺粖澧炵泭
 
-    public void CalculateProperties(CardInfo cardInfo)
+    public void CalculateProperties(HeroInfo heroInfo)
     {   
 
     }
diff --git a/Main/System/Team/TeamBase.cs b/Main/System/Team/TeamBase.cs
index 7fb61d9..480dc6e 100644
--- a/Main/System/Team/TeamBase.cs
+++ b/Main/System/Team/TeamBase.cs
@@ -3,14 +3,14 @@
 
 public partial class TeamBase
 {
-    public TeamCard[] teamCards = new TeamCard[TeamConst.MaxTeamCardCount];
+    public TeamHero[] teamHeros = new TeamHero[TeamConst.MaxTeamHeroCount];
 
-    public int GetTeamCardCount()
+    public int GetTeamHeroCount()
     {
         int count = 0;
-        for (int i = 0; i < teamCards.Length; i++)
+        for (int i = 0; i < teamHeros.Length; i++)
         {
-            if (teamCards[i] != null)
+            if (teamHeros[i] != null)
             {
                 count++;
             }
@@ -19,61 +19,61 @@
         return count;
     } 
 
-    public bool SwapTeamCard(int index1, int index2)
+    public bool SwapTeamHero(int index1, int index2)
     {
-        if (index1 < 0 || index1 >= teamCards.Length || index2 < 0 || index2 >= teamCards.Length)
+        if (index1 < 0 || index1 >= teamHeros.Length || index2 < 0 || index2 >= teamHeros.Length)
         {
             return false;
         }
 
-        TeamCard temp = teamCards[index1];
-        teamCards[index1] = teamCards[index2];
-        teamCards[index2] = temp;
-        temp.cardIndex = index2;
-        teamCards[index1].cardIndex = index1;
+        TeamHero temp = teamHeros[index1];
+        teamHeros[index1] = teamHeros[index2];
+        teamHeros[index2] = temp;
+        temp.heroIndex = index2;
+        teamHeros[index1].heroIndex = index1;
 
         return true;
     }
 
-    public bool AddTeamCard(CardInfo cardInfo)
+    public bool AddTeamHero(HeroInfo heroInfo)
     {
-        if (cardInfo == null)
+        if (heroInfo == null)
         {
             return false;
         }
 
-        for (int i = 0; i < teamCards.Length; i++)
+        for (int i = 0; i < teamHeros.Length; i++)
         {
-            if (teamCards[i] == null)
+            if (teamHeros[i] == null)
             {
-                teamCards[i] = new TeamCard();
-                teamCards[i].cardInfo = cardInfo;
-                teamCards[i].cardIndex = i;
+                teamHeros[i] = new TeamHero();
+                teamHeros[i].heroInfo = heroInfo;
+                teamHeros[i].heroIndex = i;
                 return true;    
             }
         }
         return false;
     }
 
-    public bool RemoveTeamCard(int index)
+    public bool RemoveTeamHero(int index)
     {
-        if (index < 0 || index >= teamCards.Length)
+        if (index < 0 || index >= teamHeros.Length)
         {
             return false;
         }
 
-        teamCards[index] = null;
+        teamHeros[index] = null;
         return true;
     }
 
     public bool IsFull()
     {
-        return GetTeamCardCount() >= teamCards.Length;
+        return GetTeamHeroCount() >= teamHeros.Length;
     }
 
     public bool IsEmpty()
     {
-        return GetTeamCardCount() == 0;
+        return GetTeamHeroCount() == 0;
     }
 
     public void InitByLevelId(int levelId)
diff --git a/Main/System/Team/TeamCard.cs b/Main/System/Team/TeamCard.cs
deleted file mode 100644
index d639932..0000000
--- a/Main/System/Team/TeamCard.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-public class TeamCard
-{
-    public CardInfo cardInfo;
-    public TeamBase teamBase;
-    public int cardIndex;
-
-    public void MergeProperties()
-    {
-        if (cardInfo == null)
-        {
-            return;
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/Main/System/Team/TeamConst.cs b/Main/System/Team/TeamConst.cs
index 79a3a7d..b2835ea 100644
--- a/Main/System/Team/TeamConst.cs
+++ b/Main/System/Team/TeamConst.cs
@@ -2,5 +2,5 @@
 
 public class TeamConst
 {
-    public const int MaxTeamCardCount = 6;
+    public const int MaxTeamHeroCount = 6;
 }
\ No newline at end of file
diff --git a/Main/System/Team/TeamHero.cs b/Main/System/Team/TeamHero.cs
new file mode 100644
index 0000000..91cf827
--- /dev/null
+++ b/Main/System/Team/TeamHero.cs
@@ -0,0 +1,17 @@
+
+
+public class TeamHero
+{
+    public HeroInfo heroInfo;
+    public TeamBase teamBase;
+    public int heroIndex;
+
+    public void MergeProperties()
+    {
+        if (heroInfo == null)
+        {
+            return;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/Main/System/Team/TeamCard.cs.meta b/Main/System/Team/TeamHero.cs.meta
similarity index 83%
copy from Main/System/Team/TeamCard.cs.meta
copy to Main/System/Team/TeamHero.cs.meta
index c9476e8..b93f12d 100644
--- a/Main/System/Team/TeamCard.cs.meta
+++ b/Main/System/Team/TeamHero.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 87558c063506d4345a5d8b2e4496f85c
+guid: 11b9ad3c2e2945145b0dd88e0e58b1a1
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

--
Gitblit v1.8.0