public void CancelPlacingTower() { Destroy(_currentTowerGO); _currentTowerGO = null; _curTowerController = null; TowerPlacementState = TowerPlacementState.NotPlacingTower; }
public override void Initialize(TowerController towerController) { base.Initialize(towerController); TowerTargetType = TowerTargetType.NoTarget; _freezeDuration = TowerController.TowerProperties.FreezeDuration; _towerPosition = towerController.transform.position; }
public void InitializeUpgrades(TowerController controller) { var towerProperties = controller.TowerProperties; _upgrades[0] = TowerUpgrade.GetNewUpgrade(towerProperties.TowerUpgradePropertiesPath1); _upgrades[1] = TowerUpgrade.GetNewUpgrade(towerProperties.TowerUpgradePropertiesPath2); }
public override void PurchaseUpgrade(TowerController towerController) { if (towerController.TowerAttack is IUpgradeWeapon weaponUpgrade) { base.PurchaseUpgrade(towerController); weaponUpgrade.SetWeapon(Weapon); } else { Debug.LogWarning("Warning: TowerAttack does not implement IUpgradeWeapon interface.", towerController.gameObject); } }
public override void PurchaseUpgrade(TowerController towerController) { if (towerController.TowerAttack is IUpgradeRange rangeUpgrade) { rangeUpgrade.SetRange(RangeValue); base.PurchaseUpgrade(towerController); } else { Debug.LogWarning("Warning: TowerAttack does not implement IUpgradeRange interface.", towerController.gameObject); } }
public override void PurchaseUpgrade(TowerController towerController) { if (towerController.TowerAttack is IUpgradeDuration durationUpgrade) { base.PurchaseUpgrade(towerController); durationUpgrade.SetDuration(DurationValue); } else { Debug.LogWarning("Warning: TowerAttack does not implement IUpgradeDuration interface.", towerController.gameObject); } }
public override void PurchaseUpgrade(TowerController towerController) { if (towerController.TowerAttack is IUpgradeFrequency frequencyUpgrade) { base.PurchaseUpgrade(towerController); frequencyUpgrade.SetFrequency(FrequencyValue); } else { Debug.LogWarning("Warning: TowerAttack does not implement IUpgradeFrequency interface.", towerController.gameObject); } }
private void InitializeControllerValues() { if (Instance == null) { Instance = this; } else { Destroy(gameObject); return; } TowerPlacementState = TowerPlacementState.NotPlacingTower; _curTowerController = null; }
public virtual void Initialize(TowerController towerController) { TowerController = towerController; TowerPosition = TowerController.transform.position; _attackCooldownTime = new WaitForSeconds(towerController.TowerProperties.AttackCooldownTime); TowerTargetType = TowerTargetType.First; _detectionRadiusGO = TowerController.transform.Find("DetectionRadius").gameObject; _detectionCollider = _detectionRadiusGO.GetComponent <CircleCollider2D>(); _towerBloonDetector = _detectionRadiusGO.GetComponent <TowerBloonDetector>(); if (_detectionCollider == null) { Debug.LogWarning("Warning: could not get Collider2D component on the DetectionRadius GameObject.", TowerController); } SetRange(TowerController.TowerProperties.Range); }
private void Update() { if (IsPlacingTower) { _currentTowerGO.transform.position = InputController.TowerPlacementPosition; } if (TryPlaceTower) { OnTowerPlaced?.Invoke(_curTowerController); TowerPlacementState = TowerPlacementState.NotPlacingTower; _gameController.DecrementMoney(_curTowerController.TowerProperties.Cost); _curTowerController = null; _currentTowerGO = null; } }
private void OnTowerPlaced(TowerController towerController) { _collider.isTrigger = true; OnHideRangeIndicator?.Invoke(); enabled = false; }
private void SpawnTower(TowerProperties tower) { _currentTowerGO = Instantiate(_baseTowerPrefab, Vector3.zero, Quaternion.identity); _curTowerController = _currentTowerGO.GetComponent <TowerController>(); _curTowerController.InitializeTower(tower); }
public virtual void PurchaseUpgrade(TowerController towerController) { IsPurchased = true; GameController.Instance.DecrementMoney(Cost); towerController.IncreaseTotalTowerCost(Cost); }
public override void Initialize(TowerController towerController) { base.Initialize(towerController); _projectile = TowerController.TowerProperties.ProjectilePrefab; _numberProjectiles = TowerController.TowerProperties.NumberProjectiles; }