public void SellTower(TowerSlot selectedTowerSlot)
        {
            TowerSettings towerSettings = SettingsDataUtils.GetTowerSettingsByType(selectedTowerSlot.TowerType);

            _gameManager.PlayerController.ChangeCoinsAmount(towerSettings.buildPrice);
            selectedTowerSlot.SellTower();
        }
        public void BuildTower(TowerSlot selectedTowerSlot, Enumerators.TowerType towerType)
        {
            TowerSettings towerSettings = SettingsDataUtils.GetTowerSettingsByType(towerType);

            _gameManager.PlayerController.ChangeCoinsAmount(-towerSettings.buildPrice);
            selectedTowerSlot.BuildTower(towerType);
        }
예제 #3
0
        public Enemy(Enumerators.EnemyType enemyType, Transform enemySpawnPoint, Transform[] wavepoints, Transform container)
        {
            _waypoints = wavepoints;

            EnemySettings enemySettings = SettingsDataUtils.GetEnemySettingsByType(enemyType);

            SetEnemyParams(enemySettings);
            SpawnEnemy(enemySettings.prefab, enemySpawnPoint, container);
            _waypointIndex  = 0;
            _targetWaypoint = _waypoints[0];
        }
예제 #4
0
        public Tower(Enumerators.TowerType towerType, Transform spawnPoint, Transform container)
        {
            TowerType = towerType;
            _bullets  = new List <Bullet>();

            _gameManager = GameClient.Get <IGameManager>();

            TowerSettings towerSettings = SettingsDataUtils.GetTowerSettingsByType(towerType);

            SetTowerParams(towerSettings);
            SpawnTower(towerSettings.prefab, spawnPoint, container);
        }
예제 #5
0
        public void Show(object data)
        {
            if (data != null && data is TowerPopupInfo towerPopupInfo)
            {
                if (_selectedTowerSlot == towerPopupInfo.selectedTowerSlot)
                {
                    Hide();
                    return;
                }

                Vector3 targetPos = Utilites.ScreenToCanvasPoint(_uiManager.Canvas, towerPopupInfo.towerSlotScreenPosition);

                float canvasRectWidth  = _uiManager.Canvas.GetComponent <RectTransform>().rect.width;
                float canvasRectHeight = _uiManager.Canvas.GetComponent <RectTransform>().rect.height;

                if (targetPos.x + (_container.rect.width / 2f) > canvasRectWidth - _whiteSpaceToScreenBorders)
                {
                    targetPos.x = canvasRectWidth - (_container.rect.width / 2f) - _whiteSpaceToScreenBorders;
                }
                else if (targetPos.x - (_container.rect.width / 2f) < 0f + _whiteSpaceToScreenBorders)
                {
                    targetPos.x = (_container.rect.width / 2f) + _whiteSpaceToScreenBorders;
                }

                if (targetPos.y + (_container.rect.height / 2f) > canvasRectHeight - _whiteSpaceToScreenBorders)
                {
                    targetPos.y = canvasRectHeight - (_container.rect.height / 2f) - _whiteSpaceToScreenBorders;
                }
                else if (targetPos.y - (_container.rect.height / 2f) < 0f + _whiteSpaceToScreenBorders)
                {
                    targetPos.y = (_container.rect.height / 2f) + _whiteSpaceToScreenBorders;
                }

                _container.anchoredPosition    = targetPos;
                _selectedTowerSlot             = towerPopupInfo.selectedTowerSlot;
                _sellTowerButtonLabelText.text = "SELL" + "\n<b>" + SettingsDataUtils.GetTowerSettingsByType(_selectedTowerSlot.TowerType).buildPrice + "$</b>";
            }

            Show();
        }