using System.Collections.Generic; using System.Linq; namespace ET { public partial class SynthesisConfigCategory { public List GetSynthesisListWithBuildingId(int buildingId) { var result = new List(); foreach (var config in this.list) { var include = config.StructureID.ToList(); if (include.Contains(buildingId)) { result.Add(config.Id); continue; } } return result; } public SynthesisConfig GetSynthesisConfigByItemId(int[] itemIds, int type) { foreach (var config in this.list) { if (config.MixtureTpye == type && compareArr(config.ItemId, itemIds)) { return config; } } return null; } public static bool compareArr(int[] arr1, int[] arr2) { var flag = true; var a1Len = arr1.Length; var a2Len = arr2.Length; for (int i = 0; i < a1Len; i++) { var a = arr1[i]; if (!arr2.Contains(a)) { if (a == 1003) { a2Len++; continue; } flag = false; } } if (a1Len != a2Len) { flag = false; } return flag; //内容相同返回true,反之返回false。 } /// /// 根据菜品ID找到对应的菜谱ID; /// /// /// public int GetSynthesisIDByMixtureID(int mixtureId) { int result = 0; if (mixtureId == 0) return result; foreach (var config in this.list) { if(config.MixtureID == mixtureId || config.QualityMixtureID == mixtureId) { result = config.Id; break; } } return result; } /// /// 获取所有对应规模等级的建筑 /// public List GetAllBuildingsWithScaleLimit(int scaleID) { var result = new List(); foreach(var config in this.list) { if(config.MixtureTpye == (int)SynthesisMixtureTpyeEnum.STRUCTURE && config.UnlockCondition == (int)SynthesisUnlockConditionEnum.SCALECONFIG && config.Parameter2 == scaleID) { result.Add(config.MixtureID); continue; } } return result; } public SynthesisConfig GetSynthesisByMixture(SynthesisMixtureTpyeEnum type, int mixtureID) { foreach (var config in this.list) { if(config.MixtureID == mixtureID && config.MixtureTpye == (int)type) { return config; } } return null; } } }