private void GenerateColonies(StartRaw startRaw) { Colonies = MapAnalyser.GetColonies(MineralFields.Values.Cast <IUnit>().ToList(), VespeneGeysers.Values.Cast <IUnit>().ToList(), startRaw.StartLocations); // Find Primary Colony var mainBase = StructuresSelf.First(); var primary = (IntelColony)mainBase.Value.Pos.ConvertTo2D().GetClosest(Colonies); primary.Workers = WorkersSelf.Select(kvp => (IUnit)kvp.Value).ToList(); primary.Structures = new List <IUnit> { mainBase.Value }; PrimaryColony = primary; }