public void HandleUpgradeEvent(Tower tower, TowerProperty.Level level) { int cost = 100; if (!CanAfford(cost)) { return; } UpdateToNewLevel(tower, level); GameManager.MoneyStats.Decrease(cost); AudioManager.PlaySound("Tower Upgrade"); }
private void Awake() { var towerProperty = gameObject.AddComponent <BasicTower>(); currentLevel = towerProperty.level; possibleLevels = Enum.GetValues(typeof(TowerProperty.Level)).Cast <TowerProperty.Level>().ToList(); //Liste der Level enums shootingBehaviour = GetComponent <ShootingBehaviour>(); shootingBehaviour.SetTowerPropertyReference(towerProperty); shootingBehaviour.OnFire += Shoot; bullets = GetComponentInChildren <ParticleSystem>(); tud = GameObject.FindObjectOfType <TowerUpgradeDowngrade>(); }
private void AddNewLevelComponent(Tower tower, TowerProperty.Level level) { switch (level) { case TowerProperty.Level.BASIC: tower.gameObject.AddComponent <BasicTower>(); break; case TowerProperty.Level.ADVANCED: tower.gameObject.AddComponent <AdvancedTower>(); break; case TowerProperty.Level.EXPERT: tower.gameObject.AddComponent <ExpertTower>(); break; default: break; } TowerProperty newComponent = tower.gameObject.GetComponent <TowerProperty>(); tower.shootingBehaviour.SetTowerPropertyReference(newComponent); }
private void UpdateToNewLevel(Tower tower, TowerProperty.Level level) { tower.currentLevel = level; DestroyCurrentLevelComponent(tower); AddNewLevelComponent(tower, level); }
public void HandleDowngradeEvent(Tower tower, TowerProperty.Level level) { UpdateToNewLevel(tower, level); GameManager.MoneyStats.Increase(100); AudioManager.PlaySound("Tower Downgrade"); }