using System.Collections.Generic;
|
using System.Linq;
|
using Unity.Services.Analytics;
|
|
//分部类
|
public partial class MineAreaItemConfig : IConfigPostProcess
|
{
|
//物品ID: 物品等级 :矿物ID
|
private static Dictionary<int, Dictionary<int, int>> typeToIDDict = new Dictionary<int, Dictionary<int, int>>();
|
|
//物品ID:解锁等级
|
private static Dictionary<int, int> itemIDToLimitLVDict = new Dictionary<int, int>();
|
|
//物品ID:展示排序优先级
|
private static Dictionary<int, int> itemIDToSortDict = new Dictionary<int, int>();
|
|
//物品ID:展示排序优先级
|
private static Dictionary<int, int> itemIDToSameItemLVSortDict = new Dictionary<int, int>();
|
|
//物品ID:等级项
|
private static Dictionary<int, List<int>> itemIDToItemLVListDict = new Dictionary<int, List<int>>();
|
|
public void OnConfigParseCompleted()
|
{
|
if (!typeToIDDict.ContainsKey(ItemID))
|
typeToIDDict[ItemID] = new Dictionary<int, int>();
|
typeToIDDict[ItemID][ItemLV] = MineID;
|
|
if (!itemIDToLimitLVDict.ContainsKey(ItemID))
|
itemIDToLimitLVDict[ItemID] = LimitLV;
|
|
if (!itemIDToSortDict.ContainsKey(ItemID))
|
itemIDToSortDict[ItemID] = ItemIDSort;
|
|
if (!itemIDToSameItemLVSortDict.ContainsKey(ItemID))
|
itemIDToSameItemLVSortDict[ItemID] = SameItemLVSort;
|
}
|
|
//通过物品ID和物品等级找矿物ID
|
public static bool TryGetMineID(int itemID, int itemLV, out int mineID)
|
{
|
mineID = 0;
|
if (!typeToIDDict.TryGetValue(itemID, out var dict))
|
return false;
|
return dict.TryGetValue(itemLV, out mineID);
|
}
|
|
public static Dictionary<int, Dictionary<int, int>> GetTypeToIDDict()
|
{
|
return typeToIDDict;
|
}
|
|
public static Dictionary<int, int> GetItemIDToLimitLVDict()
|
{
|
return itemIDToLimitLVDict;
|
}
|
|
public static Dictionary<int, int> GetItemIDToSortDict()
|
{
|
return itemIDToSortDict;
|
}
|
|
public static Dictionary<int, int> GetItemIDToSameItemLVSortDict()
|
{
|
return itemIDToSameItemLVSortDict;
|
}
|
|
public static Dictionary<int, List<int>> GetItemIDToItemLVListDict()
|
{
|
if (itemIDToItemLVListDict.IsNullOrEmpty())
|
{
|
var list = GetKeys();
|
for (int i = 0; i < list.Count; i++)
|
{
|
int mineId = int.Parse(list[i]);
|
var config = Get(mineId);
|
int itemId = config.ItemID;
|
int itemIv = config.ItemLV;
|
if (!itemIDToItemLVListDict.ContainsKey(itemId))
|
itemIDToItemLVListDict[itemId] = new List<int>();
|
if (!itemIDToItemLVListDict[itemId].Contains(itemIv))
|
itemIDToItemLVListDict[itemId].Add(itemIv);
|
}
|
|
var keys = itemIDToItemLVListDict.Keys.ToList();
|
for (int i = 0; i < keys.Count; i++)
|
{
|
int itemId = keys[i];
|
itemIDToItemLVListDict[itemId].Sort();
|
}
|
}
|
return itemIDToItemLVListDict;
|
}
|
}
|