From 007fbd542c30f5fa8308128aac26ce6584b3067a Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 17 六月 2025 17:13:47 +0800
Subject: [PATCH] 117 【武将】武将系统 武将的属性部分 部分战斗的内容
---
Main/Config/PartialConfigs/HeroBreakConfig.cs | 49 +
Main/System/Hero/HeroInfo.Fetter.cs | 18
Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs.meta | 11
Main/System/Hero/HeroTalentInfo.cs | 26 +
Main/System/GeneralConfig/ItemCost.cs.meta | 11
Main/System/Hero/HeroInfo.Level.cs.meta | 11
Main/System/Hero/HeroInfo.Collection.cs | 12
Main/System/Hero/HeroInfo.Quality.cs | 12
Main/System/Hero/HeroInfo.Level.cs | 12
Main/System/Battle/BattleField/StoryBattleField.cs | 20
Main/System/Hero/HeroAttrType.cs.meta | 11
Main/Config/PartialConfigs/HeroQualityBreakConfig.cs.meta | 11
Main/System/Hero/HeroInfo.Talent.cs | 12
Main/System/Hero/HeroInfo.Awake.cs.meta | 11
Main/System/Hero/HeroInfo.Properties.cs | 124 ++++
Main/System/Battle/BattleObject/BattleObject.cs | 12
Main/System/Hero/HeroInfo.Quality.cs.meta | 11
Main/Config/PartialConfigs/HeroAwakeConfig.cs | 63 ++
Main/System/Battle/BattleField/StoryBattleField.cs.meta | 11
Main/System/Hero/HeroInfo.Star.cs.meta | 11
Main/Config/Configs/HeroConfig.cs | 17
Main/System/Hero/HeroFetterInfo.cs | 56 ++
Main/Config/PartialConfigs/HeroTalentConfig.cs | 52 ++
Main/Config/PartialConfigs/HeroFetterConfig.cs.meta | 11
Main/System/Hero/HeroInfo.Skin.cs | 5
Main/Config/ConfigBase.cs | 11
Main/Config/PartialConfigs/HeroFetterConfig.cs | 48 +
Main/System/Hero/HeroInfo.Equip.cs.meta | 11
Main/Config/PartialConfigs/HeroConfig.cs | 55 ++
Main/Config/PartialConfigs/HeroBreakConfig.cs.meta | 11
Main/System/Hero/HeroInfo.Collection.cs.meta | 11
Main/System/Hero/HeroInfo.Talent.cs.meta | 11
Main/Config/PartialConfigs/HeroTalentConfig.cs.meta | 11
Main/System/Hero/HeroInfo.Equip.cs | 12
Main/System/Hero/HeroInfo.cs | 118 +++-
Main/System/Team/TeamType.cs.meta | 11
Main/System/Hero/HeroInfo.Break.cs.meta | 11
Main/System/Hero/HeroFetterInfo.cs.meta | 11
Main/Config/Configs/HeroFetterConfig.cs | 2
Main/Config/PartialConfigs/HeroConfig.cs.meta | 11
Main/System/Hero/HeroInfo.Star.cs | 12
Main/Common/EventName.cs | 2
Main/System/Battle/BattleField/BattleField.cs | 33
Main/System/GeneralConfig/ItemCost.cs | 32 +
Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs | 60 ++
Main/System/Team/TeamBase.Properties.cs | 28 +
Main/Config/PartialConfigs/HeroAwakeConfig.cs.meta | 11
Main/System/Team/TeamManager.cs | 46 +
Main/System/Hero/HeroManager.cs | 32 +
Main/System/Team/TeamManager.cs.meta | 11
Main/System/Team/TeamBase.cs | 13
Main/System/Hero/HeroInfo.Fetter.cs.meta | 11
Main/System/Battle/BattleManager.cs | 23
Main/System/Hero/HeroInfo.Awake.cs | 12
Main/System/Hero/HeroTalentInfo.cs.meta | 11
Main/System/Team/TeamType.cs | 12
Main/System/Battle/RecordPlayer/RecordPlayer.cs | 12
Main/System/Hero/HeroInfo.Break.cs | 19
Main/System/Battle/BattleObject/BattleObjMgr.cs | 47 +
Main/Config/PartialConfigs/HeroQualityBreakConfig.cs | 49 +
Main/System/Hero/HeroAttrType.cs | 40 +
61 files changed, 1,337 insertions(+), 124 deletions(-)
diff --git a/Main/Common/EventName.cs b/Main/Common/EventName.cs
index b457b3f..b7d2d1a 100644
--- a/Main/Common/EventName.cs
+++ b/Main/Common/EventName.cs
@@ -2,6 +2,6 @@
public class EventName
{
- public const string BATTLE_ACTION_OVER = "BATTLE_ACTION_OVER"; //鎴樻枟 琛屼负缁撴潫浜�(涓�涓垬鎶ユ挱瀹�)
+
}
\ No newline at end of file
diff --git a/Main/Config/ConfigBase.cs b/Main/Config/ConfigBase.cs
index 313b9ad..3f4f3d0 100644
--- a/Main/Config/ConfigBase.cs
+++ b/Main/Config/ConfigBase.cs
@@ -98,7 +98,11 @@
Debug.LogError(typeof(T).Name + " 閲嶅鐨刱ey " + key + " " + exception.Message);
}
#endif
-
+ }
+
+ foreach (var cfg in dic.Values)
+ {
+ cfg.AllConfigLoadFinish();
}
isInit = true;
@@ -109,6 +113,11 @@
return default(U);
}
+ protected virtual void AllConfigLoadFinish()
+ {
+
+ }
+
public virtual void LoadConfig(string line)
{
diff --git a/Main/Config/Configs/HeroConfig.cs b/Main/Config/Configs/HeroConfig.cs
index 1763f4c..0d30f09 100644
--- a/Main/Config/Configs/HeroConfig.cs
+++ b/Main/Config/Configs/HeroConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�6鏈�13鏃�
+// [ Date ]: 2025骞�6鏈�16鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -23,6 +23,7 @@
public int DefInheritPer;
public int HPInheritPer;
public string BatAttrDict;
+ public int[] FetterIDList;
public override int LoadKey(string _key)
{
@@ -65,6 +66,20 @@
int.TryParse(tables[8],out HPInheritPer);
BatAttrDict = tables[9];
+
+ if (tables[10].Contains("["))
+ {
+ FetterIDList = JsonMapper.ToObject<int[]>(tables[10]);
+ }
+ else
+ {
+ string[] FetterIDListStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ FetterIDList = new int[FetterIDListStringArray.Length];
+ for (int i=0;i<FetterIDListStringArray.Length;i++)
+ {
+ int.TryParse(FetterIDListStringArray[i],out FetterIDList[i]);
+ }
+ }
}
catch (Exception exception)
{
diff --git a/Main/Config/Configs/HeroFetterConfig.cs b/Main/Config/Configs/HeroFetterConfig.cs
index 81bba9d..e1973a0 100644
--- a/Main/Config/Configs/HeroFetterConfig.cs
+++ b/Main/Config/Configs/HeroFetterConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�6鏈�13鏃�
+// [ Date ]: 2025骞�6鏈�16鏃�
//--------------------------------------------------------
using System.Collections.Generic;
diff --git a/Main/Config/PartialConfigs/HeroAwakeConfig.cs b/Main/Config/PartialConfigs/HeroAwakeConfig.cs
new file mode 100644
index 0000000..2398d6d
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroAwakeConfig.cs
@@ -0,0 +1,63 @@
+锘�//--------------------------------------------------------
+// [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 HeroID;
+ // public int AwakeLV;
+
+ // HeroID, Dictionary<AwakeLV, HeroAwakeConfig>
+ public static Dictionary<int, Dictionary<int, HeroAwakeConfig>> configDics = new Dictionary<int, Dictionary<int, HeroAwakeConfig>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ Dictionary<int, HeroAwakeConfig> tempDic = null;
+
+ if (!configDics.TryGetValue(HeroID, out tempDic))
+ {
+ tempDic = new Dictionary<int, HeroAwakeConfig>();
+ configDics.Add(HeroID, tempDic);
+ }
+
+ if (tempDic.ContainsKey(AwakeLV))
+ {
+ // 瑕嗙洊锛岄槻姝簩娆″垵濮嬪寲鍑洪敊
+ tempDic[AwakeLV] = this;
+ }
+ else
+ {
+ tempDic.Add(AwakeLV, this);
+ }
+ }
+
+ public static HeroAwakeConfig GetHeroAwakeConfig(int heroID, int awakeLv)
+ {
+ Dictionary<int, HeroAwakeConfig> tempDic = null;
+
+ if (!configDics.TryGetValue(heroID, out tempDic))
+ {
+ return null;
+ }
+
+ HeroAwakeConfig config = null;
+ tempDic.TryGetValue(awakeLv, out config);
+
+ return config;
+ }
+
+ public static bool IsReachMax(int heroID, int awakeLv)
+ {
+ return GetHeroAwakeConfig(heroID, awakeLv) == null;
+ }
+}
diff --git a/Main/Config/PartialConfigs/HeroAwakeConfig.cs.meta b/Main/Config/PartialConfigs/HeroAwakeConfig.cs.meta
new file mode 100644
index 0000000..3ddd635
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroAwakeConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e524a2adfe4b6e24dbde99544124292c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HeroBreakConfig.cs b/Main/Config/PartialConfigs/HeroBreakConfig.cs
new file mode 100644
index 0000000..683b915
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroBreakConfig.cs
@@ -0,0 +1,49 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class HeroBreakConfig : ConfigBase<int, HeroBreakConfig>
+{
+ // public int HeroID;
+ // public int BreakLV;
+
+ // HeroID, Dictionary<BreakLV, HeroBreakConfig>
+ public static Dictionary<int, Dictionary<int, HeroBreakConfig>> configDics = new Dictionary<int, Dictionary<int, HeroBreakConfig>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ Dictionary<int, HeroBreakConfig> tempDic = null;
+ if (!configDics.TryGetValue(HeroID, out tempDic))
+ {
+ tempDic = new Dictionary<int, HeroBreakConfig>();
+ configDics.Add(HeroID, tempDic);
+ }
+
+ if (tempDic.ContainsKey(BreakLV))
+ {
+ tempDic[BreakLV] = this;
+ }
+ else
+ {
+ tempDic.Add(BreakLV, this);
+ }
+ }
+
+ public static HeroBreakConfig GetHeroBreakConfig(int heroID, int breakLv)
+ {
+ Dictionary<int, HeroBreakConfig> tempDic = null;
+ if (!configDics.TryGetValue(heroID, out tempDic))
+ {
+ return null;
+ }
+ HeroBreakConfig config = null;
+ tempDic.TryGetValue(breakLv, out config);
+ return config;
+ }
+
+ public static bool IsReachMax(int heroID, int breakLv)
+ {
+ return GetHeroBreakConfig(heroID, breakLv) == null;
+ }
+}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/HeroBreakConfig.cs.meta b/Main/Config/PartialConfigs/HeroBreakConfig.cs.meta
new file mode 100644
index 0000000..0379af1
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroBreakConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a263d1f9613456e4bbea60e3fcb19d2e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HeroConfig.cs b/Main/Config/PartialConfigs/HeroConfig.cs
new file mode 100644
index 0000000..6727d54
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroConfig.cs
@@ -0,0 +1,55 @@
+using System.Collections.Generic;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroConfig : ConfigBase<int, HeroConfig>
+{
+ public Dictionary<HeroAttrType, int> inheritPropertiesDict = new Dictionary<HeroAttrType, int>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ inheritPropertiesDict.Clear();
+
+ inheritPropertiesDict.Add(HeroAttrType.attack, AtkInheritPer);
+ inheritPropertiesDict.Add(HeroAttrType.defense, DefInheritPer);
+ inheritPropertiesDict.Add(HeroAttrType.hp, HPInheritPer);
+
+
+ // json鏍煎紡
+ // {"灞炴�D":鍊�, ...}
+ // 灞炴�D瀵瑰簲灞炴�ф潯鐩〃鐨処D
+ // 鏈夊�肩殑閰嶅嵆鍙紝娌℃湁閰嶇疆鐨勫睘鎬ч粯璁�0
+ JsonData jsonData = JsonMapper.ToObject(BatAttrDict);
+
+ foreach (var attrId in jsonData.Keys)
+ {
+ if (int.TryParse(attrId.ToString(), out int attrTypeId))
+ {
+ HeroAttrType attrType = (HeroAttrType)attrTypeId;
+ if (jsonData[attrId] != null && int.TryParse(jsonData[attrId].ToString(), out int value))
+ {
+ if (inheritPropertiesDict.ContainsKey(attrType))
+ {
+ Debug.LogError($"HeroTalentConfig: 灞炴�� {attrType} 宸茬粡瀛樺湪锛屾棤娉曢噸澶嶆坊鍔犮�傝妫�鏌ラ厤缃枃浠躲��");
+ }
+ else
+ {
+ inheritPropertiesDict.Add(attrType, value);
+ }
+ }
+ }
+ }
+ }
+
+ public int GetInheritPercent(HeroAttrType attrType)
+ {
+ if (inheritPropertiesDict.TryGetValue(attrType, out int perc))
+ {
+ return perc;
+ }
+
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/HeroConfig.cs.meta b/Main/Config/PartialConfigs/HeroConfig.cs.meta
new file mode 100644
index 0000000..c03e9a5
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dd269c7c73dcf3f4f87848b25f007405
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HeroFetterConfig.cs b/Main/Config/PartialConfigs/HeroFetterConfig.cs
new file mode 100644
index 0000000..26b58b9
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroFetterConfig.cs
@@ -0,0 +1,48 @@
+锘�
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroFetterConfig : ConfigBase<int, HeroFetterConfig>
+{
+ private Dictionary<HeroAttrType, int> attrValues = new Dictionary<HeroAttrType, int>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ // public int[] AttrIDList;
+ // public int[] AttrValueList;
+
+ if (AttrIDList.Length != AttrValueList.Length)
+ {
+ Debug.LogError("HeroFetterConfig 閰嶇疆閿欒 " + FetterID);
+ return;
+ }
+
+ for (int i = 0; i < AttrIDList.Length; i++)
+ {
+ HeroAttrType attrType = (HeroAttrType)AttrIDList[i];
+ if (attrValues.ContainsKey(attrType))
+ {
+ Debug.LogError("HeroFetterConfig 閰嶇疆閿欒 " + FetterID);
+ return;
+ }
+
+ attrValues.Add((HeroAttrType)AttrIDList[i], AttrValueList[i]);
+ }
+ }
+
+ public int GetFetterAttr(HeroAttrType attrType)
+ {
+ if (attrValues.TryGetValue(attrType, out int value))
+ {
+ return value;
+ }
+
+ return 0;
+ }
+}
diff --git a/Main/Config/PartialConfigs/HeroFetterConfig.cs.meta b/Main/Config/PartialConfigs/HeroFetterConfig.cs.meta
new file mode 100644
index 0000000..d181bf2
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroFetterConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4a3ad59499e2d754d869070e775fd250
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs b/Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs
new file mode 100644
index 0000000..39f14cf
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs
@@ -0,0 +1,60 @@
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class HeroQualityAwakeConfig : ConfigBase<int, HeroQualityAwakeConfig>
+{
+
+ // Quality, Dictionary<AwakeLV, UPCostItem>
+ public static Dictionary<int, Dictionary<int, HeroQualityAwakeConfig>> costDics = new Dictionary<int, Dictionary<int, HeroQualityAwakeConfig>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ Dictionary<int, HeroQualityAwakeConfig> tempDic = null;
+
+ if (!costDics.TryGetValue(Quality, out tempDic))
+ {
+ tempDic = new Dictionary<int, HeroQualityAwakeConfig>();
+ }
+
+
+ if (tempDic.ContainsKey(AwakeLV))
+ {
+ // 瑕嗙洊 杩欓噷鎬曟湁浠g爜鍐欓敊 浜屾鍒濆鍖栭厤缃� 瀵艰嚧鍑洪棶棰�
+ // 褰撴槸闃查敊 鎬ц兘涓婁篃涓嶇畻澶�� 鍥犱负琛ㄥ氨娌″灏戞暟鎹�
+ tempDic[AwakeLV] = this;
+ }
+ else
+ {
+ tempDic.Add(AwakeLV, this);
+ }
+ }
+
+ public static HeroQualityAwakeConfig GetQualityAwakeConfig(int quality, int awakeLv)
+ {
+ Dictionary<int, HeroQualityAwakeConfig> tempDic = null;
+
+ if (!costDics.TryGetValue(quality, out tempDic))
+ {
+ return null;
+ }
+
+ HeroQualityAwakeConfig config = null;
+
+ tempDic.TryGetValue(awakeLv, out config);
+
+ return config;
+ }
+
+ public static bool IsReachMax(int quality, int awakeLv)
+ {
+ return GetQualityAwakeConfig(quality, awakeLv) == null;
+ }
+
+}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs.meta b/Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs.meta
new file mode 100644
index 0000000..a44de7c
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroQualityAwakeConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6fcabb6f5d955a048b40024428c7b510
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs b/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs
new file mode 100644
index 0000000..3026f37
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs
@@ -0,0 +1,49 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class HeroQualityBreakConfig : ConfigBase<int, HeroQualityBreakConfig>
+{
+ // public int Quality;
+ // public int BreakLV;
+
+ // Quality, Dictionary<BreakLV, HeroQualityBreakConfig>
+ public static Dictionary<int, Dictionary<int, HeroQualityBreakConfig>> configDics = new Dictionary<int, Dictionary<int, HeroQualityBreakConfig>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ Dictionary<int, HeroQualityBreakConfig> tempDic = null;
+ if (!configDics.TryGetValue(Quality, out tempDic))
+ {
+ tempDic = new Dictionary<int, HeroQualityBreakConfig>();
+ configDics.Add(Quality, tempDic);
+ }
+
+ if (tempDic.ContainsKey(BreakLV))
+ {
+ tempDic[BreakLV] = this;
+ }
+ else
+ {
+ tempDic.Add(BreakLV, this);
+ }
+ }
+
+ public static HeroQualityBreakConfig GetQualityBreakConfig(int quality, int breakLv)
+ {
+ Dictionary<int, HeroQualityBreakConfig> tempDic = null;
+ if (!configDics.TryGetValue(quality, out tempDic))
+ {
+ return null;
+ }
+ HeroQualityBreakConfig config = null;
+ tempDic.TryGetValue(breakLv, out config);
+ return config;
+ }
+
+ public static bool IsReachMax(int quality, int breakLv)
+ {
+ return GetQualityBreakConfig(quality, breakLv) == null;
+ }
+}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs.meta b/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs.meta
new file mode 100644
index 0000000..36474a0
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroQualityBreakConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4ebc71d06bf0df04d8696b6a41f1199c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/HeroTalentConfig.cs b/Main/Config/PartialConfigs/HeroTalentConfig.cs
new file mode 100644
index 0000000..f568ac8
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroTalentConfig.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class HeroTalentConfig : ConfigBase<int, HeroTalentConfig>
+{
+ // public int Quality;
+ // public int AttrID;
+
+ // Quality, List<HeroTalentConfig>
+ public static Dictionary<int, List<HeroTalentConfig>> configDics = new Dictionary<int, List<HeroTalentConfig>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ base.OnConfigParseCompleted();
+
+ List<HeroTalentConfig> list = null;
+ if (!configDics.TryGetValue(Quality, out list))
+ {
+ list = new List<HeroTalentConfig>();
+ configDics.Add(Quality, list);
+ }
+ list.Add(this);
+ }
+
+ public static List<HeroTalentConfig> GetTalentListByQuality(int quality)
+ {
+ List<HeroTalentConfig> list = null;
+ if (configDics.TryGetValue(quality, out list))
+ {
+ return list;
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 鎵�鏈夊搧璐ㄧ殑鍒楄〃鎸堿ttrID鍗囧簭鎺掑簭锛堥渶鍦ㄦ墍鏈夐厤缃姞杞藉畬鍚庤皟鐢ㄤ竴娆★級
+ /// </summary>
+ public static void SortAllByAttrID()
+ {
+ foreach (var pair in configDics)
+ {
+ pair.Value.Sort((a, b) => a.AttrID.CompareTo(b.AttrID));
+ }
+ }
+
+ protected override void AllConfigLoadFinish()
+ {
+ base.AllConfigLoadFinish();
+ // 鎺掑簭
+ SortAllByAttrID();
+ }
+}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/HeroTalentConfig.cs.meta b/Main/Config/PartialConfigs/HeroTalentConfig.cs.meta
new file mode 100644
index 0000000..7d44298
--- /dev/null
+++ b/Main/Config/PartialConfigs/HeroTalentConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a74ae0573fd8447429167015504998af
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index e503cd8..35b1bd5 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -2,8 +2,6 @@
public class BattleField
{
- protected int battleId = 0;
-
public BattleMode battleMode;
public BattleObjMgr battleObjMgr;
@@ -12,29 +10,21 @@
public int round = 0;
- public BattleField()
+ public virtual void Init(TeamBase _redTeam, TeamBase _blueTeam)
{
-
- }
-
- public void Init(int _battleId, int _levelId, BattleMode _battleMode, TeamBase _redTeam, TeamBase _blueTeam = null)
- {
- battleId = _battleId;
- battleMode = _battleMode;
-
battleObjMgr = new BattleObjMgr();
- battleObjMgr.Init(_levelId, _redTeam, _blueTeam);
+ battleObjMgr.Init(_redTeam, _blueTeam);
recordPlayer = new RecordPlayer();
recordPlayer.Init(this);
}
- public void Release()
+ public virtual void Release()
{
battleObjMgr.Release();
}
- public void Run()
+ public virtual void Run()
{
recordPlayer.Run();
battleObjMgr.Run();
@@ -45,17 +35,17 @@
battleMode = _battleMode;
}
- public void PlayRecord(RecordAction recordAction)
+ public virtual void PlayRecord(RecordAction recordAction)
{
recordPlayer.PlayRecord(recordAction);
}
- public void PlayRecord(List<RecordAction> recordList)
+ public virtual void PlayRecord(List<RecordAction> recordList)
{
recordPlayer.PlayRecord(recordList);
}
- public void OnActionOver(int attackId)
+ public virtual void OnActionOver(int attackId)
{
//
// 鎵嬪姩鎺ㄧ偣涓�涓嬪彂涓�涓寘 鏀朵竴涓寘 鎾斁涓�娆℃姤鏂� 涔嬪悗灏卞仠浣� 鐩村埌鎴樻枟缁撴潫鐨勫寘鏂�
@@ -75,8 +65,13 @@
}
}
- public void StartGame()
+ public virtual void ResumeGame()
{
- recordPlayer.StartGame();
+ battleObjMgr.ResumeGame();
+ }
+
+ public virtual void PauseGame()
+ {
+ battleObjMgr.PauseGame();
}
}
\ No newline at end of file
diff --git a/Main/System/Battle/BattleField/StoryBattleField.cs b/Main/System/Battle/BattleField/StoryBattleField.cs
new file mode 100644
index 0000000..c5434f4
--- /dev/null
+++ b/Main/System/Battle/BattleField/StoryBattleField.cs
@@ -0,0 +1,20 @@
+
+
+using System;
+
+public class StoryBattleField : BattleField
+{
+ public override void Init(TeamBase _redTeam, TeamBase _blueTeam)
+ {
+ string savedStr = LocalSave.GetString("StoryBattleFieldBattleMode");
+ if (string.IsNullOrEmpty(savedStr))
+ {
+ savedStr = "Hand";
+ }
+ battleMode = (BattleMode)Enum.Parse(typeof(BattleMode), savedStr);
+
+ base.Init(_redTeam, _blueTeam);
+
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Battle/BattleField/StoryBattleField.cs.meta b/Main/System/Battle/BattleField/StoryBattleField.cs.meta
new file mode 100644
index 0000000..3632499
--- /dev/null
+++ b/Main/System/Battle/BattleField/StoryBattleField.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6679c13aebc8e5a48afaa1001b4656f8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Battle/BattleManager.cs b/Main/System/Battle/BattleManager.cs
index 074c581..017432e 100644
--- a/Main/System/Battle/BattleManager.cs
+++ b/Main/System/Battle/BattleManager.cs
@@ -5,13 +5,13 @@
public class BattleManager : GameSystemManager<BattleManager>
{
- protected Dictionary<int, BattleField> battleFields = new Dictionary<int, BattleField>();
+ public StoryBattleField storyBattleField = new StoryBattleField();//涓荤嚎鎴樺満
+ protected Dictionary<int, BattleField> battleFields = new Dictionary<int, BattleField>();
public override void Init()
{
base.Init();
- EventBroadcast.Instance.AddListener<int, int>(EventName.BATTLE_ACTION_OVER, OnActionOver);
}
public override void Release()
@@ -19,24 +19,25 @@
base.Release();
}
- private void OnActionOver(int battleFieldId, int attackId)
+ public void StartStoryBattle()
{
- BattleField battleField = null;
- if (battleFields.TryGetValue(battleFieldId, out battleField))
+ if (null == storyBattleField)
{
- battleField.OnActionOver(attackId);
- }
- else
- {
- Debug.LogError("BattleManager OnActionOver battleFieldId:" + battleFieldId + " not find");
+ storyBattleField = new StoryBattleField();
+
}
}
public void Run()
{
+ if (null != storyBattleField)
+ {
+ storyBattleField.Run();
+ }
+
foreach (var battleField in battleFields)
{
- battleField.Value.Run();
+ battleField.Value?.Run();
}
}
diff --git a/Main/System/Battle/BattleObject/BattleObjMgr.cs b/Main/System/Battle/BattleObject/BattleObjMgr.cs
index a01879f..8a95deb 100644
--- a/Main/System/Battle/BattleObject/BattleObjMgr.cs
+++ b/Main/System/Battle/BattleObject/BattleObjMgr.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@@ -9,26 +10,8 @@
private Dictionary<int, BattleObject> redCampDict = new Dictionary<int, BattleObject>();
private Dictionary<int, BattleObject> blueCampDict = new Dictionary<int, BattleObject>();
- public void Init(int _levelId, TeamBase _redTeam, TeamBase _blueTeam = null)
+ public void Init(TeamBase _redTeam, TeamBase _blueTeam)
{
- if (_levelId == 0 && _blueTeam == null)
- {
- Debug.LogError("BattleObjMgr Init Error: _levelId == 0 && _blueTeam == null 鍏冲崱id娌℃湁(涓嶆槸PVE) 涔熸病鏈夎摑鑹查槦浼嶄俊鎭紙涔熶笉鏄疨VP锛�)");
- return;
- }
-
- if (_levelId != 0 && _blueTeam != null)
- {
- Debug.LogError("BattleObjMgr Init Error: _levelId!= 0 && _blueTeam != null 鍏冲崱id鏈�(鏄疨VE) 涔熸湁钃濊壊闃熶紞淇℃伅锛堜篃涓嶆槸PVP锛�)");
- return;
- }
-
- if (_levelId != 0)
- {
- _blueTeam = new TeamBase();
- _blueTeam.InitByLevelId(_levelId);
- }
-
CreateTeam(redCampDict, _redTeam);
CreateTeam(blueCampDict, _blueTeam);
}
@@ -80,4 +63,30 @@
item.Value.Run();
}
}
+
+ public void ResumeGame()
+ {
+ foreach (var item in redCampList)
+ {
+ item.ResumeGame();
+ }
+
+ foreach (var item in blueCampList)
+ {
+ item.ResumeGame();
+ }
+ }
+
+ public void PauseGame()
+ {
+ foreach (var item in redCampList)
+ {
+ item.PauseGame();
+ }
+
+ foreach (var item in blueCampList)
+ {
+ item.PauseGame();
+ }
+ }
}
\ No newline at end of file
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index 4d2010f..42caec7 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -150,6 +150,16 @@
{
motionBase.Run();
}
-
+
+ public virtual void PauseGame()
+ {
+
+ }
+
+ public virtual void ResumeGame()
+ {
+
+ }
+
#endregion
}
\ No newline at end of file
diff --git a/Main/System/Battle/RecordPlayer/RecordPlayer.cs b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
index be05643..54891c2 100644
--- a/Main/System/Battle/RecordPlayer/RecordPlayer.cs
+++ b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -28,17 +28,7 @@
}
}
- public void StartGame()
- {
-
- }
-
- public void PlayNext()
- {
-
- }
-
- public void Run()
+ public virtual void Run()
{
if (recordActionQueue.Count == 0)
{
diff --git a/Main/System/GeneralConfig/ItemCost.cs b/Main/System/GeneralConfig/ItemCost.cs
new file mode 100644
index 0000000..04254d7
--- /dev/null
+++ b/Main/System/GeneralConfig/ItemCost.cs
@@ -0,0 +1,32 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ItemCost
+{
+ public int itemId;
+ public int costNum;
+
+ public ItemCost(int _itemId, int _costNum)
+ {
+ itemId = _itemId;
+ costNum = _costNum;
+ }
+
+ public static List<ItemCost> GetList(int[] array)
+ {
+ List<ItemCost> retList = new List<ItemCost>();
+
+ if (array.Length % 2 != 0)
+ {
+ Debug.LogError("ItemCost.GetList Failure, because array % 2 != 0");
+ return retList;
+ }
+
+ for (int i = 0; i < array.Length; i += 2)
+ {
+ retList.Add(new ItemCost(array[i], array[i+1]));
+ }
+
+ return retList;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/GeneralConfig/ItemCost.cs.meta b/Main/System/GeneralConfig/ItemCost.cs.meta
new file mode 100644
index 0000000..f5f7a4a
--- /dev/null
+++ b/Main/System/GeneralConfig/ItemCost.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 99306ce8f2356fd488b06f7de7d2557c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroAttrType.cs b/Main/System/Hero/HeroAttrType.cs
new file mode 100644
index 0000000..9e7e2d3
--- /dev/null
+++ b/Main/System/Hero/HeroAttrType.cs
@@ -0,0 +1,40 @@
+
+
+public enum HeroAttrType
+{
+ // 鐢熷懡
+ hp,
+ // 鏀诲嚮鍔�
+ attack,
+ // 闃插尽鍔�
+ defense,
+ //鐪╂檿姒傜巼
+ stunRate,
+ //鏆村嚮姒傜巼
+ critRate,
+ //杩炲嚮姒傜巼
+ comboRate,
+ //鏍兼尅姒傜巼
+ blockRate,
+ //鍙嶅嚮姒傜巼
+ counterAttackRate,
+ //鏀诲嚮鐩爣鏃讹紝閫犳垚浼ゅ杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊兼彁鍗�
+ recoverRate,
+
+ //鎴樻枟鎶垫姉灞炴��
+ //鐪╂檿鎶垫姉
+ stunResist,
+ //鏆村嚮鎶垫姉
+ critResist,
+ //杩炲嚮鎶垫姉
+ comboResist,
+ //鏍兼尅鎶垫姉
+ blockResist,
+ //鍙嶅嚮鎶垫姉
+ counterAttackResist,
+ //鍑忓皯鏀诲嚮鏃跺惛琛�杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊�
+ recoverResist,
+
+ // 鐗规畩灞炴��(寰呰ˉ鍏�)
+
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroAttrType.cs.meta b/Main/System/Hero/HeroAttrType.cs.meta
new file mode 100644
index 0000000..47f69c9
--- /dev/null
+++ b/Main/System/Hero/HeroAttrType.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0c340f5ce4b296047a302ba21f2a65d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroFetterInfo.cs b/Main/System/Hero/HeroFetterInfo.cs
new file mode 100644
index 0000000..a5bb622
--- /dev/null
+++ b/Main/System/Hero/HeroFetterInfo.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+
+public class HeroFetterInfo
+{
+ private HeroInfo heroInfo;
+ private int fetterId;
+
+ public HeroFetterConfig fetterConfig;
+
+ protected bool isActive = false;
+
+ public HeroFetterInfo(HeroInfo _heroInfo, int _fetterId)
+ {
+ heroInfo = _heroInfo;
+ fetterId = _fetterId;
+
+ fetterConfig = HeroFetterConfig.Get(fetterId);
+ }
+
+ // 鏄惁婵�娲讳簡缇佺粖
+ public bool IsActiveFetter()
+ {
+ return isActive;
+ }
+
+ public void SetIsActiveFetter(TeamBase teamBase)
+ {
+ int fetterHeroCount = fetterConfig.HeroIDList.Length;
+
+ int count = 0;
+
+ for (int i = 0; i < teamBase.teamHeros.Length; i++)
+ {
+ TeamHero teamHero = teamBase.teamHeros[i];
+
+ if (null == teamHero)
+ continue;
+
+ if (Array.IndexOf(fetterConfig.HeroIDList, teamHero.heroInfo.heroId) >= 0)
+ {
+ count++;
+ }
+ }
+
+ isActive = (count >= fetterHeroCount);
+ }
+
+ public int GetFetterAttr(HeroAttrType attrType)
+ {
+ if (!isActive)
+ return 0;
+
+ return fetterConfig.GetFetterAttr(attrType);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroFetterInfo.cs.meta b/Main/System/Hero/HeroFetterInfo.cs.meta
new file mode 100644
index 0000000..b759df1
--- /dev/null
+++ b/Main/System/Hero/HeroFetterInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 61d40aba9c2091445ae692419d4c5ebf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Awake.cs b/Main/System/Hero/HeroInfo.Awake.cs
new file mode 100644
index 0000000..2f91343
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Awake.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class HeroInfo
+{
+
+ protected int GetIFByInheritAwakePercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroInfo.Awake.cs.meta b/Main/System/Hero/HeroInfo.Awake.cs.meta
new file mode 100644
index 0000000..e3c6e63
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Awake.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7fba5bbc8a4d5c94e8691c63207e4edb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Break.cs b/Main/System/Hero/HeroInfo.Break.cs
new file mode 100644
index 0000000..200e689
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Break.cs
@@ -0,0 +1,19 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetBreakCultivationPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+ protected int GetIFByInheritBreakPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+
+}
diff --git a/Main/System/Hero/HeroInfo.Break.cs.meta b/Main/System/Hero/HeroInfo.Break.cs.meta
new file mode 100644
index 0000000..d882d13
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Break.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6c7d00805f733194e9f54b2c3c0ecc72
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Collection.cs b/Main/System/Hero/HeroInfo.Collection.cs
new file mode 100644
index 0000000..60cf189
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Collection.cs
@@ -0,0 +1,12 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetCollectionCultivationPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Collection.cs.meta b/Main/System/Hero/HeroInfo.Collection.cs.meta
new file mode 100644
index 0000000..ea3af75
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Collection.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 14fc4e08ba34d504a936ff5d6c2b7c53
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Equip.cs b/Main/System/Hero/HeroInfo.Equip.cs
new file mode 100644
index 0000000..223adc7
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Equip.cs
@@ -0,0 +1,12 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetEquipStableProperties(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Equip.cs.meta b/Main/System/Hero/HeroInfo.Equip.cs.meta
new file mode 100644
index 0000000..72b571d
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Equip.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 27a10dfeaeacac3439ab8ecc85001796
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Fetter.cs b/Main/System/Hero/HeroInfo.Fetter.cs
new file mode 100644
index 0000000..3b47512
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Fetter.cs
@@ -0,0 +1,18 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetIFByInheritFetterPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ int total = 0;
+ for (int i = 0; i < fetterInfoList.Count; i++)
+ {
+ HeroFetterInfo fetterInfo = fetterInfoList[i];
+ total += fetterInfo.GetFetterAttr(attrType);
+ }
+ return total;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Fetter.cs.meta b/Main/System/Hero/HeroInfo.Fetter.cs.meta
new file mode 100644
index 0000000..8ea1859
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Fetter.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 54b6d26a54e84c0489aed5a95980ad78
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Level.cs b/Main/System/Hero/HeroInfo.Level.cs
new file mode 100644
index 0000000..836c749
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Level.cs
@@ -0,0 +1,12 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetLevelCultivationPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Level.cs.meta b/Main/System/Hero/HeroInfo.Level.cs.meta
new file mode 100644
index 0000000..781b376
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Level.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2a7ad855fa3dd5249a06835e88181ddd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Properties.cs b/Main/System/Hero/HeroInfo.Properties.cs
index dbb3911..3f40b99 100644
--- a/Main/System/Hero/HeroInfo.Properties.cs
+++ b/Main/System/Hero/HeroInfo.Properties.cs
@@ -15,48 +15,124 @@
public int attack = 0;
// 闃插尽鍔�
public int defense = 0;
- // 閫熷害
- public int speed = 0;
- //鎴樻枟灞炴��
- //闂伩姒傜巼
- public float dodge = 0f;
- //鏆村嚮姒傜巼
- public float crit = 0f;
- //杩炲嚮姒傜巼
- public float comboRate = 0f;
+ //鎴樻枟灞炴�� 鍑绘檿銆佹毚鍑汇�佽繛鍑汇�佹牸鎸°�佸弽鍑汇�佸惛琛�
//鐪╂檿姒傜巼
- public float stunRate = 0f;
+ public int stunRate = 0;
+ //鏆村嚮姒傜巼
+ public int critRate = 0;
+ //杩炲嚮姒傜巼
+ public int comboRate = 0;
+ //鏍兼尅姒傜巼
+ public int blockRate = 0;
//鍙嶅嚮姒傜巼
- public float counterAttack = 0f;
+ public int counterAttackRate = 0;
//鏀诲嚮鐩爣鏃讹紝閫犳垚浼ゅ杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊兼彁鍗�
- public float recoverRate = 0f;
+ public int recoverRate = 0;
//鎴樻枟鎶垫姉灞炴��
- //闂伩鎶垫姉
- public float dodgeResist = 0f;
- //鏆村嚮鎶垫姉
- public float critResist = 0f;
- //杩炲嚮鎶垫姉
- public float comboResist = 0f;
//鐪╂檿鎶垫姉
- public float stunResist = 0f;
+ public int stunResist = 0;
+ //鏆村嚮鎶垫姉
+ public int critResist = 0;
+ //杩炲嚮鎶垫姉
+ public int comboResist = 0;
+ //鏍兼尅鎶垫姉
+ public int blockResist = 0;
//鍙嶅嚮鎶垫姉
- public float counterAttackResist = 0f;
+ public int counterAttackResist = 0;
//鍑忓皯鏀诲嚮鏃跺惛琛�杞寲鎴愮敓鍛界殑鐧惧垎姣旀暟鍊�
- public float recoverResist = 0f;
+ public int recoverResist = 0;
+
+ // 鐗规畩灞炴��(寰呰ˉ鍏�)
+
//璁$畻涓汉/鑱屼笟/绉嶆棌鍏绘垚灞炴�у姞鎴�
public void CalculateProperties()
{
- //todo
+// 姝﹀皢鍗曚綋灞炴�э紝鏍规嵁缁ф壙姣斾緥锛屼粠鍏ㄤ綋灞炴�х户鎵垮緱鍒�
+// 渚嬪锛氭灏嗘敾鍑诲姏=
+// [锛堣澶囧熀纭�鍥哄畾鍊�+鍏跺畠妯″潡鐨勫浐瀹氬�硷級* 锛�1+鍒濆鍔犳垚%+姝﹀皢鍗囩骇鍔犳垚%+姝﹀皢绐佺牬鍔犳垚%+姝﹀皢鍚炲櫖鏄熺骇鍔犳垚%+鍥鹃壌鍔犳垚%锛塢
+// *
+// [ 缁ф壙姣斾緥*锛�1+缇佺粖鍔犳垚%+娼滆兘鍔犳垚%+澶╄祴鍔犳垚%+瑙夐啋鏁堟灉鍔犳垚%锛塢
+ hp = GetProperties(HeroAttrType.hp);
+ attack = GetProperties(HeroAttrType.attack);
+ defense = GetProperties(HeroAttrType.defense);
+ stunRate = GetProperties(HeroAttrType.stunRate);
+ critRate = GetProperties(HeroAttrType.critRate);
+ comboRate = GetProperties(HeroAttrType.comboRate);
+ blockRate = GetProperties(HeroAttrType.blockRate);
+ counterAttackRate = GetProperties(HeroAttrType.counterAttackRate);
+ recoverRate = GetProperties(HeroAttrType.recoverRate);
+ stunResist = GetProperties(HeroAttrType.stunResist);
+ critResist = GetProperties(HeroAttrType.critResist);
+ comboResist = GetProperties(HeroAttrType.comboResist);
+ blockResist = GetProperties(HeroAttrType.blockResist);
+ counterAttackResist = GetProperties(HeroAttrType.counterAttackResist);
+ recoverResist = GetProperties(HeroAttrType.recoverResist);
+ }
+
+ protected int GetProperties(HeroAttrType attrType)
+ {
+ return GetStableProperties(attrType)
+ * GetCultivationPercent(attrType)
+ * GetInheritRate(attrType)
+ * GetInfluenceByInheritPercent(attrType);
+ }
+
+
+ // 鍥哄畾鍊煎睘鎬�
+ public int GetStableProperties(HeroAttrType attrType)
+ {
+ int stableValue = 0;
+ stableValue += GetEquipStableProperties(attrType);
+ return stableValue;
+ }
+
+ // 鍩瑰吇鐧惧垎姣�
+ public int GetCultivationPercent(HeroAttrType attrType)
+ {
+ int cultivationPercent = 100;
+ cultivationPercent += GetQualityCultivationPercent(attrType);//鍒濆鍔犳垚鏍规嵁姝﹀皢鍝佽川鍐冲畾锛屼笉鍚屽搧璐ㄦ灏嗗垵濮嬪姞鎴愪笉鍚� HeroInfo.Quality.cs
+ cultivationPercent += GetLevelCultivationPercent(attrType);// 绛夌骇缁欑殑鐧惧垎姣� HeroInfo.Level.cs
+ cultivationPercent += GetBreakCultivationPercent(attrType);// 绐佺牬缁欑殑鐧惧垎姣� HeroInfo.Break.cs
+ cultivationPercent += GetStarCultivationPercent(attrType);// 鍚炲櫖鏄熺骇缁欑殑鐧惧垎姣� HeroInfo.Star.cs
+ cultivationPercent += GetCollectionCultivationPercent(attrType);// 鍥鹃壌缁欑殑鐧惧垎姣� HeroInfo.Collection.cs
+ return cultivationPercent;
+ }
+
+ // 琚户鎵挎瘮渚嬪奖鍝嶇殑鐧惧垎姣斿睘鎬�
+ public int GetInfluenceByInheritPercent(HeroAttrType attrType)
+ {
+ // 锛�1+缇佺粖鍔犳垚%+娼滆兘鍔犳垚%+澶╄祴鍔犳垚%+瑙夐啋鏁堟灉鍔犳垚%锛�
+
+ int IFByInheritPercent = 100;
+ IFByInheritPercent += GetIFByInheritFetterPercent(attrType); //缇佺粖鍔犳垚 HeroInfo.Fetter
+ IFByInheritPercent += GetIFByInheritBreakPercent(attrType); //娼滆兘鍔犳垚 HeroInfo.Break
+ IFByInheritPercent += GetIFByInheritTalentPercent(attrType); //澶╄祴鍔犳垚 HeroInfo.Talent
+ IFByInheritPercent += GetIFByInheritAwakePercent(attrType); //瑙夐啋鍔犳垚 HeroInfo.Awake
+ return IFByInheritPercent;
}
public int CalculatePower()
{
- //todo
- return 0;
+ // 鏆傝
+ return hp +
+ attack +
+ defense +
+ stunRate +
+ critRate +
+ comboRate +
+ blockRate +
+ counterAttackRate +
+ recoverRate +
+ stunResist +
+ critResist +
+ comboResist +
+ blockResist +
+ counterAttackResist +
+ recoverResist;
}
}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroInfo.Quality.cs b/Main/System/Hero/HeroInfo.Quality.cs
new file mode 100644
index 0000000..c35973b
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Quality.cs
@@ -0,0 +1,12 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetQualityCultivationPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Quality.cs.meta b/Main/System/Hero/HeroInfo.Quality.cs.meta
new file mode 100644
index 0000000..e37f87e
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Quality.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8540c5ed5104dfe40b0bff4aaf9a080b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Skin.cs b/Main/System/Hero/HeroInfo.Skin.cs
index 46c8faf..f3ba92f 100644
--- a/Main/System/Hero/HeroInfo.Skin.cs
+++ b/Main/System/Hero/HeroInfo.Skin.cs
@@ -11,11 +11,14 @@
{
get
{
+ if (null == heroConfig)
+ return 0;
+
if (SkinIndex > heroConfig.SkinNPCIDList.Length && SkinIndex >= 0)
{
return heroConfig.SkinNPCIDList[SkinIndex];
}
- return 0;
+ return heroConfig.SkinNPCIDList[0];
}
}
diff --git a/Main/System/Hero/HeroInfo.Star.cs b/Main/System/Hero/HeroInfo.Star.cs
new file mode 100644
index 0000000..33df4df
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Star.cs
@@ -0,0 +1,12 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetStarCultivationPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Star.cs.meta b/Main/System/Hero/HeroInfo.Star.cs.meta
new file mode 100644
index 0000000..d113b22
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Star.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 01382d3bab4b6674ba541f0704dd7037
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.Talent.cs b/Main/System/Hero/HeroInfo.Talent.cs
new file mode 100644
index 0000000..f66f6b7
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Talent.cs
@@ -0,0 +1,12 @@
+
+
+
+public partial class HeroInfo
+{
+ protected int GetIFByInheritTalentPercent(HeroAttrType attrType)
+ {
+ // YYL TODO
+ return 0;
+ }
+
+}
diff --git a/Main/System/Hero/HeroInfo.Talent.cs.meta b/Main/System/Hero/HeroInfo.Talent.cs.meta
new file mode 100644
index 0000000..900bd63
--- /dev/null
+++ b/Main/System/Hero/HeroInfo.Talent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6ca2b1a1de9030c4eaf3b2b272ec9aad
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs
index bf47961..fae1795 100644
--- a/Main/System/Hero/HeroInfo.cs
+++ b/Main/System/Hero/HeroInfo.cs
@@ -7,7 +7,13 @@
public long sid;
// 姝﹀皢閰嶇疆琛↖D
- public int heroId;
+ public int heroId
+ {
+ get
+ {
+ return itemHero.config.ID;
+ }
+ }
// 姝﹀皢绛夌骇
public int heroLevel;
@@ -17,6 +23,9 @@
// 姝﹀皢绐佺牬绛夌骇
public int breakLevel;
+
+ // 姝﹀皢瑙夐啋绛夌骇
+ public int awakeLevel;
public HeroCountry heroCountry
@@ -35,61 +44,108 @@
}
}
+ public readonly ItemModel itemHero;
-#region 閰嶇疆
+ public readonly CB122_tagSCHeroInfo.tagSCHero scHeroInfo;
+
// 姝﹀皢閰嶇疆
public HeroConfig heroConfig;
-
// 瑙夐啋閰嶇疆
public HeroAwakeConfig awakeConfig;
-
// 绐佺牬閰嶇疆
public HeroBreakConfig breakConfig;
-
// 缇佺粖閰嶇疆
public HeroFetterConfig fetterConfig;
-
// 鍝佽川瑙夐啋閰嶇疆
public HeroQualityAwakeConfig qualityAwakeConfig;
-
// 鍝佽川閰嶇疆
public HeroQualityConfig qualityConfig;
-
// 鍝佽川绐佺牬閰嶇疆
public HeroQualityBreakConfig qualityBreakConfig;
- // 澶╄祴閰嶇疆
- public HeroTalentConfig talentConfig;
-#endregion 閰嶇疆
+ public List<HeroFetterInfo> fetterInfoList = new List<HeroFetterInfo>();
+ public List<HeroTalentInfo> talentList = new List<HeroTalentInfo>();
- public HeroSkillMgr heroSkillMgr;
-
- public HeroInfo(CB122_tagSCHeroInfo.tagSCHero scHeroInfo, ItemModel itemHero)
+ public HeroInfo(CB122_tagSCHeroInfo.tagSCHero _scHeroInfo, ItemModel _itemHero)
{
- heroSkillMgr = new HeroSkillMgr(this);
+ scHeroInfo = _scHeroInfo;
+ itemHero = _itemHero;
+
+ InitConfigs();
// HeroConfigUtility
-// 71 # 鑻遍泟澶╄祴ID鍒楄〃
-// 73 # 鑻遍泟澶╄祴ID绛夌骇鍒楄〃锛屽搴�71澶╄祴ID鐨勭瓑绾�
-// 75 # 鑻遍泟澶╄祴娲楃偧閿佸畾绱㈠紩鍒楄〃锛屽搴�71澶╄祴ID绱㈠紩
+
+ // 70 # 鑻遍泟绛夌骇
+ heroLevel = itemHero.GetUseData(70)[0];
+ // 72 # 鑻遍泟鏄熺骇
+ heroStar = itemHero.GetUseData(72)[0];
+ // 74 # 鑻遍泟绐佺牬绛夌骇
+ breakLevel = itemHero.GetUseData(74)[0];
+ // 76 # 鑻遍泟瑙夐啋绛夌骇
+ awakeLevel = itemHero.GetUseData(76)[0];
+ // 78 # 鑻遍泟浣跨敤鐨勭毊鑲ょ储寮�
+ SkinIndex = itemHero.GetUseData(78)[0];
+
+ // 71 # 鑻遍泟澶╄祴ID鍒楄〃
+ List<int> talentSkillList = itemHero.GetUseData(71);
+ // 73 # 鑻遍泟澶╄祴ID绛夌骇鍒楄〃锛屽搴�71澶╄祴ID鐨勭瓑绾�
+ List<int> talentLvList = itemHero.GetUseData(73);
+ // 75 # 鑻遍泟澶╄祴娲楃偧閿佸畾绱㈠紩鍒楄〃锛屽搴�71澶╄祴ID绱㈠紩
+ List<int> talentLockList = itemHero.GetUseData(75);
+
+ if (talentLockList.Count != talentLvList.Count || talentLvList.Count != talentSkillList.Count)
+ {
+ Debug.LogError("澶╄祴ID鍒楄〃鍙婂悗缁殑鏁版嵁鏁伴噺娌″涓�");
+ }
+
+ // 澶╄祴
+ talentList.Clear();
+ for (int i = 0; i < talentSkillList.Count; i++)
+ {
+ talentList.Add(new HeroTalentInfo(this, talentSkillList[i], talentLvList[i], talentLockList[i]));
+ }
+
+ // 缇佺粖
+ fetterInfoList.Clear();
+ for (int i = 0; i < heroConfig.FetterIDList.Length; i++)
+ {
+ fetterInfoList.Add(new HeroFetterInfo(this, heroConfig.FetterIDList[i]));
+ }
+
// 77 # 鑻遍泟澶╄祴娲楃偧闅忔満ID鍒楄〃
// 79 # 鑻遍泟瑙夐啋鏃堕殢鏈哄ぉ璧嬮�夐」ID鍒楄〃
-// 70 # 鑻遍泟绛夌骇
-// 72 # 鑻遍泟鏄熺骇
-// 74 # 鑻遍泟绐佺牬绛夌骇
-// 76 # 鑻遍泟瑙夐啋绛夌骇
-// 78 # 鑻遍泟浣跨敤鐨勭毊鑲ょ储寮�
// 80 # 涓婚樀鍨嬩笂闃典綅缃�
- #region 鐨偆
- // skinConfig
- #endregion 鐨偆
-
-
- #region 澶╄祴
-
- #endregion 澶╄祴
+
}
+ protected void InitConfigs()
+ {
+ // 姝﹀皢閰嶇疆
+ heroConfig = HeroConfig.Get(heroId);
+ // 瑙夐啋閰嶇疆 (婊$骇涓虹┖)
+ awakeConfig = HeroAwakeConfig.GetHeroAwakeConfig(heroId, awakeLevel);
+
+ // 绐佺牬閰嶇疆
+ breakConfig = HeroBreakConfig.GetHeroBreakConfig(heroId, breakLevel);
+
+ // 缇佺粖閰嶇疆 鍙兘闇�瑕乫etterid 鍘绘绱㈡晥鐜囧お浣�
+ // fetterConfig;
+
+ // 鍝佽川瑙夐啋閰嶇疆
+ qualityAwakeConfig = HeroQualityAwakeConfig.GetQualityAwakeConfig(Quality, awakeLevel);
+
+ // 鍝佽川閰嶇疆
+ qualityConfig = HeroQualityConfig.Get(Quality);
+
+ // 鍝佽川绐佺牬閰嶇疆
+ qualityBreakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(Quality, awakeLevel);
+
+ }
+
+ public int GetInheritRate(HeroAttrType attrType)
+ {
+ return heroConfig.GetInheritPercent(attrType);
+ }
}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs
index 07c49f1..63268ae 100644
--- a/Main/System/Hero/HeroManager.cs
+++ b/Main/System/Hero/HeroManager.cs
@@ -24,6 +24,38 @@
}
+ public void UpdateHeroInfo()
+ {
+
+ }
+
+ public List<HeroInfo> GetPowerfulHeroList()
+ {
+ List<HeroInfo> heroList = new List<HeroInfo>(heroInfoDict.Values);
+
+ heroList.Sort((a, b) =>
+ {
+ int power1 = a.CalculatePower();
+ int power2 = b.CalculatePower();
+
+ if (power1 == power2)
+ {
+ return 0;
+ }
+
+ return power1 > power2 ? -1 : 1;
+ });
+
+ List<HeroInfo> retList = new List<HeroInfo>();
+
+ for (int i = 0; i < TeamConst.MaxTeamHeroCount && i < heroList.Count; i++)
+ {
+ retList.Add(heroList[i]);
+ }
+
+ return retList;
+ }
+
// public override bool IsNessaryDataReady()
// {
// return true;
diff --git a/Main/System/Hero/HeroTalentInfo.cs b/Main/System/Hero/HeroTalentInfo.cs
new file mode 100644
index 0000000..e16d0bf
--- /dev/null
+++ b/Main/System/Hero/HeroTalentInfo.cs
@@ -0,0 +1,26 @@
+
+
+public class HeroTalentInfo
+{
+ public HeroTalentConfig config;
+
+ public HeroInfo heroInfo;
+
+ public int talentId;
+
+ public int talentLv;
+
+ public int lockIndex;
+
+ public HeroTalentInfo(HeroInfo _heroInfo, int _talentId, int _talentLv, int _lockIndex)
+ {
+ heroInfo = _heroInfo;
+ talentId = _talentId;
+ talentLv = _talentLv;
+ lockIndex = _lockIndex;
+
+ config = HeroTalentConfig.Get(talentId);
+ }
+
+
+}
\ No newline at end of file
diff --git a/Main/System/Hero/HeroTalentInfo.cs.meta b/Main/System/Hero/HeroTalentInfo.cs.meta
new file mode 100644
index 0000000..b34a6c2
--- /dev/null
+++ b/Main/System/Hero/HeroTalentInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 262ca07cf60e33946bf5fc0a9a1007ab
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Team/TeamBase.Properties.cs b/Main/System/Team/TeamBase.Properties.cs
index e3dcbb3..65df025 100644
--- a/Main/System/Team/TeamBase.Properties.cs
+++ b/Main/System/Team/TeamBase.Properties.cs
@@ -6,10 +6,32 @@
// 闃靛瀷鍐呭崱鐗岀殑缇佺粖澧炵泭
- public void CalculateProperties(HeroInfo heroInfo)
- {
+ protected void UpdateProperties()
+ {
+ // 缇佺粖
+ for (int i = 0; i < teamHeros.Length; i++)
+ {
+ TeamHero hero = teamHeros[i];
+ if (null != hero)
+ {
+ for (int j = 0; j < hero.heroInfo.fetterInfoList.Count; j++)
+ {
+ hero.heroInfo.fetterInfoList[j].SetIsActiveFetter(this);
+ }
+ }
+ }
- }
+ // 闃靛瀷
+
+
+ // 灞炴�ц绠�
+ for (int i = 0; i < teamHeros.Length; i++)
+ {
+ TeamHero hero = teamHeros[i];
+ if (null != hero)
+ hero.heroInfo.CalculateProperties();
+ }
+ }
public void CalculatePower()
{
diff --git a/Main/System/Team/TeamBase.cs b/Main/System/Team/TeamBase.cs
index 480dc6e..65f0538 100644
--- a/Main/System/Team/TeamBase.cs
+++ b/Main/System/Team/TeamBase.cs
@@ -1,3 +1,5 @@
+using System;
+using System.Collections.Generic;
// 闃靛瀷鍩虹
@@ -35,6 +37,16 @@
return true;
}
+ public void AddTeamHeros(List<HeroInfo> heroInfos)
+ {
+ for (int i = 0; i < heroInfos.Count; i++)
+ {
+ AddTeamHero(heroInfos[i]);
+ }
+
+ UpdateProperties();
+ }
+
public bool AddTeamHero(HeroInfo heroInfo)
{
if (heroInfo == null)
@@ -49,6 +61,7 @@
teamHeros[i] = new TeamHero();
teamHeros[i].heroInfo = heroInfo;
teamHeros[i].heroIndex = i;
+ UpdateProperties();
return true;
}
}
diff --git a/Main/System/Team/TeamManager.cs b/Main/System/Team/TeamManager.cs
new file mode 100644
index 0000000..7639faf
--- /dev/null
+++ b/Main/System/Team/TeamManager.cs
@@ -0,0 +1,46 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+
+
+public class TeamManager : GameSystemManager<TeamManager>
+{
+ protected Dictionary<TeamType, TeamBase> teamDict = new Dictionary<TeamType, TeamBase>();
+
+ public override void Init()
+ {
+ base.Init();
+ }
+
+ public override void Release()
+ {
+ base.Release();
+ }
+
+ public TeamBase GetTeam(TeamType teamType)
+ {
+ TeamBase team = null;
+
+ if (!teamDict.TryGetValue(teamType, out team))
+ {
+ team = GetStoryTeam();
+ teamDict.Add(teamType, team);
+ }
+
+ return team;
+ }
+
+ public TeamBase GetStoryTeam()
+ {
+ TeamBase team = null;
+
+ if (!teamDict.TryGetValue(TeamType.Story, out team))
+ {
+ team = new TeamBase();
+ team.AddTeamHeros(HeroManager.Instance.GetPowerfulHeroList());
+ teamDict.Add(TeamType.Story, team);
+ }
+
+ return team;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/Team/TeamManager.cs.meta b/Main/System/Team/TeamManager.cs.meta
new file mode 100644
index 0000000..7caf5ac
--- /dev/null
+++ b/Main/System/Team/TeamManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b9e93ce1fa26cdf4fafced36fb2bd0de
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Team/TeamType.cs b/Main/System/Team/TeamType.cs
new file mode 100644
index 0000000..b63dd06
--- /dev/null
+++ b/Main/System/Team/TeamType.cs
@@ -0,0 +1,12 @@
+
+
+public enum TeamType
+{
+ None = 0,
+ // PVE
+ Story = 1,
+
+
+ // PVP
+ Arena = 101,
+}
\ No newline at end of file
diff --git a/Main/System/Team/TeamType.cs.meta b/Main/System/Team/TeamType.cs.meta
new file mode 100644
index 0000000..b21ce1a
--- /dev/null
+++ b/Main/System/Team/TeamType.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 097080eb83a42b54bbc2b10bc100993b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0