Esempio n. 1
0
        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>();
            }
        }
Esempio n. 2
0
        /// <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>();
            // доля отменённых заказов на каждый день моделирования
        }