public override void Upgrade(IUpgradeData data) { var towerData = data as DefaultTowerUpgradeData; if (towerData != null) { _model = new DefaultTowerModel(towerData.Damage, towerData.FiringRate, towerData.DetectingDistance, towerData.Cost); base.Upgrade(data); } }
protected virtual void InitializeTowers() { var defaultTowerVisualFactory = new DefaultTowerVisual.Factory(_towerPrefab, _bulletPrefab); var towerFactory = new DefaultTower.Factory(); var model = new DefaultTowerModel(_towerSettings.Damage, _towerSettings.FiringRate, _towerSettings.DetectingDistance, _towerSettings.Cost); for (var i = 0; i < _towersPositions.Length; i++) { var towerVisualData = new DefaultTowerVisual.DefaultTowerVisualFactoryData(_towersPositions[i].position, _towersPositions[i].rotation, transform); var towerVisual = defaultTowerVisualFactory.Create(towerVisualData); var tower = towerFactory.Create(towerVisual, model); tower.Reset(); } }
public DefaultTower(DefaultTowerVisual visual, DefaultTowerModel model) : base(visual, model) { _previousTime = Time.time; }