using System.Collections.Generic; namespace MoleMole { public class StigmataMetaDataReaderExtend { private static Dictionary> _evoMap; public static void LoadFromFileAndBuildMap() { StigmataMetaDataReader.LoadFromFile(); List itemList = StigmataMetaDataReader.GetItemList(); _evoMap = new Dictionary>(); foreach (StigmataMetaData item in itemList) { if (item.evoID > 0) { _evoMap[item.ID] = CalculateEvoList(item); } } } public static bool IsEvoRelation(int id1, int id2) { return CanEvo(id1, id2) || CanEvo(id2, id1); } public static bool CanEvo(int from, int to) { return _evoMap.ContainsKey(from) && _evoMap[from].Contains(to); } private static HashSet CalculateEvoList(StigmataMetaData meta) { HashSet hashSet = new HashSet(); for (int evoID = meta.evoID; evoID > 0; evoID = StigmataMetaDataReader.GetStigmataMetaDataByKey(evoID).evoID) { hashSet.Add(evoID); } return hashSet; } } }