|
|
@@ -1,5 +1,6 @@
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
+using cfg.GfgCfg;
|
|
|
using ET;
|
|
|
|
|
|
namespace GFGGame
|
|
|
@@ -56,25 +57,25 @@ namespace GFGGame
|
|
|
for (int i = 0; i < equipDatas.Count; i++)
|
|
|
{
|
|
|
var itemId = equipDatas[i];
|
|
|
- ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
|
|
|
+ ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
|
|
|
if (itemCfg == null)
|
|
|
{
|
|
|
Log.Warning($"id为 {itemId} 的物品没有配置,请查找原因!");
|
|
|
continue;
|
|
|
}
|
|
|
- if (itemCfg.subType == ConstDressUpItemType.LIAN_YI_QUN && itemCfg.id != ConstItemID.DEFULT_LIAN_YI_QUN)
|
|
|
+ if (itemCfg.SubType == ConstDressUpItemType.LIAN_YI_QUN && itemCfg.Id != ConstItemID.DEFULT_LIAN_YI_QUN)
|
|
|
{
|
|
|
isLianYiQun = true; break;
|
|
|
}
|
|
|
- if (itemCfg.subType == ConstDressUpItemType.SHANG_YI)
|
|
|
+ if (itemCfg.SubType == ConstDressUpItemType.SHANG_YI)
|
|
|
{
|
|
|
isShangYi = true;
|
|
|
}
|
|
|
- if (itemCfg.subType == ConstDressUpItemType.NEI_DA && itemCfg.id != ConstItemID.DEFULT_NEI_DA)
|
|
|
+ if (itemCfg.SubType == ConstDressUpItemType.NEI_DA && itemCfg.Id != ConstItemID.DEFULT_NEI_DA)
|
|
|
{
|
|
|
isShangYi = true;
|
|
|
}
|
|
|
- if (itemCfg.subType == ConstDressUpItemType.XIA_ZHUANG && itemCfg.id != ConstItemID.DEFULT_XIA_ZHUANG)
|
|
|
+ if (itemCfg.SubType == ConstDressUpItemType.XIA_ZHUANG && itemCfg.Id != ConstItemID.DEFULT_XIA_ZHUANG)
|
|
|
{
|
|
|
isXiaZhuang = true;
|
|
|
}
|
|
|
@@ -84,15 +85,15 @@ namespace GFGGame
|
|
|
|
|
|
public static bool CheckEquipedFightNeeded()
|
|
|
{
|
|
|
- StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
|
|
|
- StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
|
|
|
- if (fightCfg.needItemId > 0)
|
|
|
+ StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager.currentLevelCfgId);
|
|
|
+ StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
|
|
|
+ if (fightCfg.NeedItemId > 0)
|
|
|
{
|
|
|
- return dressUpObj.CheckDressUpItemIsOn(fightCfg.needItemId);
|
|
|
+ return dressUpObj.CheckDressUpItemIsOn(fightCfg.NeedItemId);
|
|
|
}
|
|
|
- else if (fightCfg.needSuitId > 0)
|
|
|
+ else if (fightCfg.NeedSuitId > 0)
|
|
|
{
|
|
|
- return dressUpObj.CheckSuitIsOn(fightCfg.needSuitId);
|
|
|
+ return dressUpObj.CheckSuitIsOn(fightCfg.NeedSuitId);
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
@@ -126,24 +127,24 @@ namespace GFGGame
|
|
|
if (key == ConstDressUpItemType.SHANG_YI || key == ConstDressUpItemType.XIA_ZHUANG || key == ConstDressUpItemType.LIAN_YI_QUN) continue;
|
|
|
recommendList.AddRange(itemsDic[key]);
|
|
|
}
|
|
|
- StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
|
|
|
+ StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager.currentLevelCfgId);
|
|
|
//StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(id);
|
|
|
- StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
|
|
|
- SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(fightCfg.needSuitId);
|
|
|
- int[] suitParts = suitCfg == null ? new int[] { } : suitCfg.partsArr;
|
|
|
+ StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
|
|
|
+ SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(fightCfg.NeedSuitId);
|
|
|
+ int[] suitParts = suitCfg == null ? new int[] { } : suitCfg.Parts.ToArray();
|
|
|
int shangyiId = itemsDic.ContainsKey(ConstDressUpItemType.SHANG_YI) && itemsDic[ConstDressUpItemType.SHANG_YI].Count > 0 ? itemsDic[ConstDressUpItemType.SHANG_YI][0] : 0;
|
|
|
int xiazhuangId = itemsDic.ContainsKey(ConstDressUpItemType.XIA_ZHUANG) && itemsDic[ConstDressUpItemType.XIA_ZHUANG].Count > 0 ? itemsDic[ConstDressUpItemType.XIA_ZHUANG][0] : ConstItemID.DEFULT_XIA_ZHUANG;
|
|
|
int neidaId = itemsDic.ContainsKey(ConstDressUpItemType.NEI_DA) && itemsDic[ConstDressUpItemType.NEI_DA].Count > 0 ? itemsDic[ConstDressUpItemType.NEI_DA][0] : ConstItemID.DEFULT_NEI_DA;
|
|
|
int lianyiqunId = itemsDic.ContainsKey(ConstDressUpItemType.LIAN_YI_QUN) && itemsDic[ConstDressUpItemType.LIAN_YI_QUN].Count > 0 ? itemsDic[ConstDressUpItemType.LIAN_YI_QUN][0] : ConstItemID.DEFULT_LIAN_YI_QUN;
|
|
|
|
|
|
- if (fightCfg.needItemId > 0 && (shangyiId == fightCfg.needItemId || xiazhuangId == fightCfg.needItemId || neidaId == fightCfg.needItemId) ||
|
|
|
- fightCfg.needSuitId > 0 && (Array.IndexOf(suitParts, shangyiId) >= 0 || Array.IndexOf(suitParts, xiazhuangId) >= 0 || Array.IndexOf(suitParts, neidaId) >= 0))
|
|
|
+ if (fightCfg.NeedItemId > 0 && (shangyiId == fightCfg.NeedItemId || xiazhuangId == fightCfg.NeedItemId || neidaId == fightCfg.NeedItemId) ||
|
|
|
+ fightCfg.NeedSuitId > 0 && (Array.IndexOf(suitParts, shangyiId) >= 0 || Array.IndexOf(suitParts, xiazhuangId) >= 0 || Array.IndexOf(suitParts, neidaId) >= 0))
|
|
|
{
|
|
|
if (shangyiId > 0) recommendList.Add(shangyiId);
|
|
|
recommendList.Add(xiazhuangId);
|
|
|
recommendList.Add(neidaId);
|
|
|
}
|
|
|
- else if (fightCfg.needItemId > 0 && lianyiqunId == fightCfg.needItemId || fightCfg.needSuitId > 0 && Array.IndexOf(suitParts, lianyiqunId) >= 0)
|
|
|
+ else if (fightCfg.NeedItemId > 0 && lianyiqunId == fightCfg.NeedItemId || fightCfg.NeedSuitId > 0 && Array.IndexOf(suitParts, lianyiqunId) >= 0)
|
|
|
{
|
|
|
recommendList.Add(lianyiqunId);
|
|
|
}
|
|
|
@@ -170,23 +171,23 @@ namespace GFGGame
|
|
|
private static Dictionary<int, List<int>> GetRecommendItems( int id = 0)
|
|
|
{
|
|
|
GetClassifyDictionaty(out Dictionary<int, List<int>> needListBySubType, out Dictionary<int, List<int>> recommendListBySubType);
|
|
|
- DressUpMenuItemCfg1[] menuCfg1s = DressUpMenuItemCfg1Array.Instance.dataArray;
|
|
|
+ List<DressUpMenuItemCfg1> menuCfg1s = CommonDataManager.Tables.TblDressUpMenuItemCfg1.DataList ;
|
|
|
Dictionary<int, List<int>> itemsDic = new Dictionary<int, List<int>>();
|
|
|
- for (int i = 0; i < menuCfg1s.Length - 4; i++)//最后四个不处理(套装、动作、道具、背景)
|
|
|
+ for (int i = 0; i < menuCfg1s.Count - 4; i++)//最后四个不处理(套装、动作、道具、背景)
|
|
|
{
|
|
|
DressUpMenuItemCfg1 menuCfg1 = menuCfg1s[i];
|
|
|
List<int> recommendItems = new List<int>();
|
|
|
- itemsDic[menuCfg1.id] = recommendItems;
|
|
|
- if (menuCfg1.subMenusArr.Length == 0)//普通部件有必需品就用必需品,没有必需品就用推荐品
|
|
|
+ itemsDic[menuCfg1.Id] = recommendItems;
|
|
|
+ if (menuCfg1.SubMenus.Count == 0)//普通部件有必需品就用必需品,没有必需品就用推荐品
|
|
|
{
|
|
|
- if (needListBySubType.ContainsKey(menuCfg1.type) && needListBySubType[menuCfg1.type].Count > 0)
|
|
|
+ if (needListBySubType.ContainsKey(menuCfg1.Type) && needListBySubType[menuCfg1.Type].Count > 0)
|
|
|
{
|
|
|
- recommendItems.Add(needListBySubType[menuCfg1.type][0]);
|
|
|
+ recommendItems.Add(needListBySubType[menuCfg1.Type][0]);
|
|
|
continue;
|
|
|
}
|
|
|
- if (recommendListBySubType.ContainsKey(menuCfg1.type) && recommendListBySubType[menuCfg1.type].Count > 0)
|
|
|
+ if (recommendListBySubType.ContainsKey(menuCfg1.Type) && recommendListBySubType[menuCfg1.Type].Count > 0)
|
|
|
{
|
|
|
- recommendItems.Add(recommendListBySubType[menuCfg1.type][0]);
|
|
|
+ recommendItems.Add(recommendListBySubType[menuCfg1.Type][0]);
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
@@ -194,44 +195,44 @@ namespace GFGGame
|
|
|
{
|
|
|
List<int> needOrnament = new List<int>();//饰品的必需品列表
|
|
|
List<int> recommecdOrnament = new List<int>();//饰品的推荐品列表
|
|
|
- for (int j = 0; j < menuCfg1.subMenusArr.Length; j++)
|
|
|
+ for (int j = 0; j < menuCfg1.SubMenus.Count; j++)
|
|
|
{
|
|
|
- DressUpMenuItemCfg2 menuCfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(menuCfg1.subMenusArr[j]);
|
|
|
+ DressUpMenuItemCfg2 menuCfg2 = CommonDataManager.Tables.TblDressUpMenuItemCfg2.GetOrDefault(menuCfg1.SubMenus[j]);
|
|
|
|
|
|
- if (menuCfg2.type != (int)ConstDressUpItemType.TE_SHU)
|
|
|
+ if (menuCfg2.Type != (int)ConstDressUpItemType.TE_SHU)
|
|
|
{
|
|
|
- if (needListBySubType.ContainsKey(menuCfg2.type) && needListBySubType[menuCfg2.type].Count > 0)
|
|
|
+ if (needListBySubType.ContainsKey(menuCfg2.Type) && needListBySubType[menuCfg2.Type].Count > 0)
|
|
|
{
|
|
|
- needOrnament.AddRange(needListBySubType[menuCfg2.type]);
|
|
|
+ needOrnament.AddRange(needListBySubType[menuCfg2.Type]);
|
|
|
continue;
|
|
|
}
|
|
|
- if (recommendListBySubType.ContainsKey(menuCfg2.type) && recommendListBySubType[menuCfg2.type].Count > 0)
|
|
|
+ if (recommendListBySubType.ContainsKey(menuCfg2.Type) && recommendListBySubType[menuCfg2.Type].Count > 0)
|
|
|
{
|
|
|
- recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.type]);
|
|
|
+ recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.Type]);
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (needListBySubType.ContainsKey(menuCfg2.type) && needListBySubType[menuCfg2.type].Count > 0)
|
|
|
+ if (needListBySubType.ContainsKey(menuCfg2.Type) && needListBySubType[menuCfg2.Type].Count > 0)
|
|
|
{
|
|
|
- needOrnament.AddRange(needListBySubType[menuCfg2.type]);
|
|
|
+ needOrnament.AddRange(needListBySubType[menuCfg2.Type]);
|
|
|
}
|
|
|
- if (recommendListBySubType.ContainsKey(menuCfg2.type) && recommendListBySubType[menuCfg2.type].Count > 0)
|
|
|
+ if (recommendListBySubType.ContainsKey(menuCfg2.Type) && recommendListBySubType[menuCfg2.Type].Count > 0)
|
|
|
{
|
|
|
- int needCount = Math.Min(recommendListBySubType[menuCfg2.type].Count, 3 - needListBySubType[menuCfg2.type].Count);
|
|
|
+ int needCount = Math.Min(recommendListBySubType[menuCfg2.Type].Count, 3 - needListBySubType[menuCfg2.Type].Count);
|
|
|
//特殊部件必需品不足三件,从推荐品里补足
|
|
|
- recommendListBySubType[menuCfg2.type] = recommendListBySubType[menuCfg2.type].GetRange(0, needCount);
|
|
|
- recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.type]);
|
|
|
+ recommendListBySubType[menuCfg2.Type] = recommendListBySubType[menuCfg2.Type].GetRange(0, needCount);
|
|
|
+ recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.Type]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
DressUpMenuItemDataManager.SortItemListByHighScore(needOrnament);
|
|
|
- needOrnament = needOrnament.GetRange(0, Math.Min(needOrnament.Count, GlobalCfgArray.globalCfg.dressLimitCount));
|
|
|
+ needOrnament = needOrnament.GetRange(0, Math.Min(needOrnament.Count, CommonDataManager.Tables.TblGlobalCfg.DressLimitCount));
|
|
|
recommendItems.AddRange(needOrnament);
|
|
|
|
|
|
DressUpMenuItemDataManager.SortItemListByHighScore(recommecdOrnament);
|
|
|
- recommecdOrnament = recommecdOrnament.GetRange(0, Math.Min(recommecdOrnament.Count, GlobalCfgArray.globalCfg.dressLimitCount - needOrnament.Count));
|
|
|
+ recommecdOrnament = recommecdOrnament.GetRange(0, Math.Min(recommecdOrnament.Count, CommonDataManager.Tables.TblGlobalCfg.DressLimitCount - needOrnament.Count));
|
|
|
recommendItems.AddRange(recommecdOrnament);
|
|
|
|
|
|
}
|
|
|
@@ -242,8 +243,8 @@ namespace GFGGame
|
|
|
//获取本关卡所有必需品Dictionary和每个类型的最高分推荐Dictionary,两个Dictionary内部件互斥(必需品不会出现在推荐品里)
|
|
|
private static void GetClassifyDictionaty(out Dictionary<int, List<int>> needListBySubType, out Dictionary<int, List<int>> recommendListBySubType)
|
|
|
{
|
|
|
- StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
|
|
|
- StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
|
|
|
+ StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager.currentLevelCfgId);
|
|
|
+ StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
|
|
|
|
|
|
needListBySubType = new Dictionary<int, List<int>>();
|
|
|
recommendListBySubType = new Dictionary<int, List<int>>();
|
|
|
@@ -260,9 +261,9 @@ namespace GFGGame
|
|
|
List<int> itemDatas = new List<int>(itemDatasDic[subType]);
|
|
|
DressUpMenuItemDataManager.SortItemListByHighScore(itemDatas);
|
|
|
|
|
|
- if (fightCfg.needSuitId > 0)
|
|
|
+ if (fightCfg.NeedSuitId > 0)
|
|
|
{
|
|
|
- int[] suitParts = SuitCfgArray.Instance.GetCfg(fightCfg.needSuitId).partsArr;
|
|
|
+ int[] suitParts = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(fightCfg.NeedSuitId).Parts.ToArray();
|
|
|
for (int i = 0; i < suitParts.Length; i++)
|
|
|
{
|
|
|
if (itemDatas.IndexOf(suitParts[i]) >= 0)//当前类型里是否包含此部件,
|
|
|
@@ -271,11 +272,11 @@ namespace GFGGame
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (fightCfg.needItemId > 0)
|
|
|
+ if (fightCfg.NeedItemId > 0)
|
|
|
{
|
|
|
- if (itemDatas.IndexOf(fightCfg.needItemId) >= 0 && needListBySubType[subType].IndexOf(fightCfg.needItemId) < 0)
|
|
|
+ if (itemDatas.IndexOf(fightCfg.NeedItemId) >= 0 && needListBySubType[subType].IndexOf(fightCfg.NeedItemId) < 0)
|
|
|
{
|
|
|
- needListBySubType[subType].Add(fightCfg.needItemId);
|
|
|
+ needListBySubType[subType].Add(fightCfg.NeedItemId);
|
|
|
}
|
|
|
}
|
|
|
DressUpMenuItemDataManager.SortItemListByHighScore(needListBySubType[subType]);
|
|
|
@@ -303,7 +304,7 @@ namespace GFGGame
|
|
|
{
|
|
|
List<int> items = new List<int>();
|
|
|
List<int> ornamentItems = new List<int>();
|
|
|
- int[] suitParts = SuitCfgArray.Instance.GetCfg(suitId).partsArr;
|
|
|
+ int[] suitParts = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId).Parts.ToArray();
|
|
|
for (int i = 0; i < suitParts.Length; i++)
|
|
|
{
|
|
|
if (DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsType(suitParts[i]))
|
|
|
@@ -316,7 +317,7 @@ namespace GFGGame
|
|
|
}
|
|
|
}
|
|
|
DressUpMenuItemDataManager.SortItemListByHighScore(ornamentItems);
|
|
|
- int count = Math.Min(ornamentItems.Count, GlobalCfgArray.globalCfg.dressLimitCount);
|
|
|
+ int count = Math.Min(ornamentItems.Count, CommonDataManager.Tables.TblGlobalCfg.DressLimitCount);
|
|
|
ornamentItems = ornamentItems.GetRange(0, count);
|
|
|
items.AddRange(ornamentItems);
|
|
|
return items;
|