public AIArchitect(AIController aiController) { defences = new Queue<BuildingTypes>(); avaliablePositions = new Dictionary<StructureType, List<Vector3>>(); avaliablePositions.Add(StructureType.MILITARY_BUILDING, new List<Vector3>()); avaliablePositions.Add(StructureType.RESOURCE_BUILDING, new List<Vector3>()); avaliablePositions.Add(StructureType.TOWER, new List<Vector3>()); avaliablePositions.Add(StructureType.HORIZONTALL_WALL, new List<Vector3>()); avaliablePositions.Add(StructureType.VERTICALL_WALL, new List<Vector3>()); avaliablePositions.Add(StructureType.CORNER_WALL, new List<Vector3>()); avaliablePositions.Add(StructureType.DEFENCE_ZONE, new List<Vector3>()); constructionGrid = GameObject.Find("GameController").GetComponent<ConstructionGrid>(); buildingsPlaced = 0; ai = aiController; baseCriticPoints = new List<Vector3>(); constructionGrid.reservePositionForStronghold(ai.rootBasePosition); if(constructionGrid.mode == AIController.AIMode.BATTLE) { planifyBuildingsAccordingToDifficulty(); readMapData(); } else { buildingPrefs = new List<BuildingTypes>(); } }
/// <summary> /// Конструктор - инициализация значений /// </summary> public CStorage() { modifyStatistic = new int[] { 0, 0 }; acceptedDemands = new Dictionary<int, Demand>(); // Принятые Заявки. declinedDemands = new Dictionary<int, Demand>(); // Отклонённые Заявки canceledDemands = new Dictionary<int, Demand>(); // Оменённые Заявки plan = new Queue<PlanElement>(); //очередь из элементов плана на день Materials = new MaterialCluster(); //Инициализация склада нулевыми значениями planReport = new Dictionary<DateTime, PlanReportElement>(); //Статистика производства. Пара: время окончания выполнения - элемент плана DeliveryDemands = new Dictionary<int, DeliveryDemand>(); // обработанные заявки на поставку материалов materialsPerDay = new Dictionary<int, List<int>>(); // количество материалов на каждый день моделирования for (var dayId = 1; dayId <= 12; dayId++) materialsPerDay.Add(dayId, new List<int>()); idleTimePerDay = new List<double>(); // доля времени простоя производства от рабочего времени на каждый день моделирования demandAverageDelayPerDay = new List<double>(); // среденее время задержки заказов на каждый день моделирования finishedDemandsPerDay = new List<double>(); // доля выполненных заказов на каждый день моделирования canceledDemandsPerDay = new List<double>(); // доля отменённых заказов на каждый день моделирования }