|
@@ -0,0 +1,97 @@
|
|
|
+using System.Collections.Generic;
|
|
|
+namespace GFGGame
|
|
|
+{
|
|
|
+ public class SuitCfgManager : SingletonBase<SuitCfgManager>
|
|
|
+ {
|
|
|
+
|
|
|
+ private Dictionary<int, int> _suitIDDicByItemID;
|
|
|
+ private Dictionary<int, int> _totalCountDic = new Dictionary<int, int>();
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取所有套装中部件的总个数
|
|
|
+ /// </summary>
|
|
|
+ public int totalItemCount
|
|
|
+ {
|
|
|
+ get;
|
|
|
+ private set;
|
|
|
+ }
|
|
|
+
|
|
|
+ public SuitCfgManager()
|
|
|
+ {
|
|
|
+ InitDic();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取物品所属套装id
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="itemId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public int GetItemSuitId(int itemId)
|
|
|
+ {
|
|
|
+ if (_suitIDDicByItemID.ContainsKey(itemId))
|
|
|
+ {
|
|
|
+ return _suitIDDicByItemID[itemId];
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取指定套装中部件的总数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="suitId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public int GetTotalCountOfOneSuit(int suitId)
|
|
|
+ {
|
|
|
+ return _totalCountDic[suitId];
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取指定套装中部件的id数组
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="suitId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public int[] GetSuitItems(int suitId, bool checkScene = false)
|
|
|
+ {
|
|
|
+
|
|
|
+ SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
|
|
|
+ if (checkScene)
|
|
|
+ {
|
|
|
+ List<int> parts = new List<int>();
|
|
|
+ for (int i = 0; i < suitCfg.partsArr.Length; i++)
|
|
|
+ {
|
|
|
+ if (!DressUpMenuItemDataManager.CheckIsSceneType(suitCfg.partsArr[i]))
|
|
|
+ {
|
|
|
+ parts.Add(suitCfg.partsArr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return parts.ToArray();
|
|
|
+ }
|
|
|
+ return suitCfg.partsArr;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void InitDic()
|
|
|
+ {
|
|
|
+ _suitIDDicByItemID = new Dictionary<int, int>();
|
|
|
+ SuitCfg[] dataArray = SuitCfgArray.Instance.dataArray;
|
|
|
+ foreach (SuitCfg suitCfg in dataArray)
|
|
|
+ {
|
|
|
+ parseSuitItems(suitCfg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void parseSuitItems(SuitCfg suitCfg)
|
|
|
+ {
|
|
|
+ int[] items = suitCfg.partsArr;
|
|
|
+ int len = items.Length;
|
|
|
+ for (int i = 0; i < len; i++)
|
|
|
+ {
|
|
|
+ int itemID = items[i];
|
|
|
+ _suitIDDicByItemID.Add(itemID, suitCfg.id);
|
|
|
+ }
|
|
|
+ int itemCount = items.Length;
|
|
|
+ _totalCountDic[suitCfg.id] = itemCount;
|
|
|
+ totalItemCount += itemCount;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|