public void OnStart(ResponseGameInfo gameInfo, ResponseData data, ResponseObservation observation, uint playerId) { if (realTime) { sw = new Stopwatch(); sw.Start(); } GameInfo = gameInfo; Data = data; Observation = observation; PlayerId = (int)playerId - 1; OppenentsPlayerId = PlayerId == 1 ? 0 : 1; Race = GameInfo.PlayerInfo[PlayerId].RaceActual; OpponentsRace = GameInfo.PlayerInfo[OppenentsPlayerId].RaceActual; Units.LoadData(); StateManager = new StateManager(); StateManager.OnFrame(); Map = new MapAnalyser(); Map.Analyse(this); Build = new RoachAllIn(); if (test) { Build = new Testzerg(); } Build.OnStart(); TaskManager = new TaskManager(); }
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; }