public TestScreen() { camera = new Camera(new Vector2(0, 0)) { Scale = new Vector2(0.8f) }; enemyManager = new EnemyManager(); towerManager = new TowerManager(enemyManager); bulletManager = new BulletManager(enemyManager); particleManager = new ParticleManager(); towerPlacer = new TowerPlacer(towerManager); selectTowerController = new SelectTowerController(towerManager, towerPlacer, camera); spawnerController = new EnemySpawnerController(enemyManager); TowerSelectorController towerSelector = new TowerSelectorController(camera, towerPlacer, bulletManager, enemyManager, particleManager); // Create Tower prefabs. TowerFactory.Add("Tower1", new TestTower(bulletManager, enemyManager, particleManager)); TowerFactory.Add("Tower2", new MachineGunPlaneTower(bulletManager, enemyManager, particleManager)); enemyManager.OnEnemyReachedLastPoint += OnEnemyReachedGoal; // Controllers. controllers.Add(selectTowerController); controllers.Add(new MapMoverController(camera)); controllers.Add(spawnerController); controllers.Add(enemyManager); controllers.Add(towerManager); controllers.Add(bulletManager); controllers.Add(particleManager); controllers.Add(towerSelector); //controllers.Add(new TestTowerPlacerScript(towerPlacer, TowerFactory.GetTower("Tower2"))); // TEST! // Views. views.Add(new SelectedTowerView(selectTowerController)); views.Add(new MapView()); views.Add(enemyManager); views.Add(towerManager); views.Add(bulletManager); views.Add(particleManager); AvailableTowersUiView availableTowersUi = new AvailableTowersUiView(new ButtonManager(), towerSelector, new Rectangle(700, 0, 300, 550)); MouseOverlapsUI.AvailableTowersUi = availableTowersUi; // UI. uiViews.Add(availableTowersUi); spawnerController.Enabled = false; }