private static GaBSettings DefaultConfig() { var ret = new GaBSettings { ConfigVersion = new ModuleVersion(), TimeMinBetweenRun = 60, MailItems = new List<MailItem>(), BuildingsSettings = new List<BuildingSettings>() }; // Buildings generation, Ugly... but dynamic // ReSharper disable once LoopCanBePartlyConvertedToQuery foreach (var building in (Buildings[]) Enum.GetValues((typeof (Buildings)))) { var nameCurrent = BuildingSettings.NameFromBuildingId((int) building); if (ret.BuildingsSettings.Any(b => b.Name == nameCurrent)) continue; var ids = ((Buildings[]) Enum.GetValues((typeof (Buildings)))).Where( b => BuildingSettings.NameFromBuildingId((int) b) == nameCurrent) .Select(x => (int) x) .ToList(); ret.BuildingsSettings.Add(new BuildingSettings(ids.ToList())); } // General settings // No need, already set by default // Profession ret.DailySettings = DailyProfession.AllDailies; // Trading post / mission rewards ret.PopulateMissingSettings(); // Pigments for milling ret.Pigments = Pigment.AllPigments; return ret; }