예제 #1
0
        private void OnClick(Vector2 _)
        {
            if (!_isPositionValid)
            {
                return;
            }

            _gameModel.City.Build(_buildingTemplate.Config, _currentX, _currentY);
            Built?.Invoke(_buildingTemplate, _currentX, _currentY);
            CreateRandomTemplate();
        }
예제 #2
0
        private void OnBuilt(BuildingView building, int x, int y)
        {
            for (int i = x; i < x + building.Config.Width; i++)
            {
                for (int j = y; j < y + building.Config.Length; j++)
                {
                    _cells[i, j].SetColorMode(true);
                }
            }

            _buildings.Add(building);
            Built?.Invoke(building);
        }
예제 #3
0
        public void Build(BuildingConfig buildingConfig, int x, int y)
        {
            var building = new Building(buildingConfig);
            var maxX     = x + buildingConfig.Width;
            var maxY     = y + buildingConfig.Length;

            for (int i = x; i < maxX; i++)
            {
                for (int j = y; j < maxY; j++)
                {
                    Cells[i, j].Build(building);
                }
            }

            _buildings.Add(building);

            TotalPower += building.Power;

            Built?.Invoke(building);
        }