public static TowerController CreateTower(TowerType type, Tower model, TowerSpawnerController spawnerController, out GameObject gameObject) { GameObject towerInstance = null; GameObject prefab = null; switch (type) { case TowerType.EARTH_TOWER: prefab = instance.earthTowerPrefab; break; case TowerType.FIRE_TOWER: prefab = instance.fireTowerPrefab; break; } towerInstance = Instantiate(prefab, instance.spawner.transform.position, instance.spawner.transform.rotation); TowerView view = towerInstance.GetComponent <TowerView>(); TowerController controller = new TowerController(model, view, spawnerController); view.Controller = controller; controller.UpdateView(); gameObject = towerInstance; return(controller); }
void Start() { GoldManager goldManager = new GoldManager(150, new RegularPriceList()); goldManagerController = new GoldManagerController(goldManager, goldManagerView); WaveService waveService = new WaveService(goldManager); spawnerController = new MonsterSpawnerController(spawnerView, goldManagerController, waveService); TowerSpawner towerSpawner = new TowerSpawner(); towerSpawnerController = new TowerSpawnerController(towerSpawner, towerSpawnerView, goldManagerController); towerSpawnerView.Controller = towerSpawnerController; towerSpawnerController.SelectTower(TowerType.EARTH_TOWER); }
public static TowerController CreateTower(TowerType type, Tower model, TowerSpawnerController spawnerController) { GameObject dummy; return(CreateTower(type, model, spawnerController, out dummy)); }
public TowerController(Tower model, TowerView view, TowerSpawnerController spawnerController) : base(model, view) { fireCooldownCounter = new Cooldown(Model.Projectile.AttackComp.Speed.Points); this.spawnerController = spawnerController; }