public void refreshAll() { UnitManager.refresh(); DefenceManager.refresh(); UnitBoxA.Items.Clear(); foreach (IUnit U in UnitManager.getUnitsList(TypesEnums.UnitSide.Ally)) { UnitsBoxA.Items.Add(U); } UnitBoxE.Items.Clear(); foreach (IUnit U in UnitManager.getUnitsList(TypesEnums.UnitSide.Enemy)) { UnitsBoxE.Items.Add(U); } DefenceBoxA.Items.Clear(); foreach (DefPos D in DefenceManager.getDefPosList(TypesEnums.UnitSide.Ally)) { DefenceBoxA.Items.Add(D); } DefenceBoxE.Items.Clear(); foreach (DefPos D in DefenceManager.getDefPosList(TypesEnums.UnitSide.Enemy)) { DefenceBoxE.Items.Add(D); } }
public override void Initialise() { base.Initialise(); #region Load content var background = Content.Load <Texture2D>(ContentPaths.Textures.Background); var backgroundMusic = Content.Load <Song>(ContentPaths.Sounds.Background); var buttonClickSound = Content.Load <SoundEffect>(ContentPaths.Sounds.ButtonClicked); var cannon = Content.Load <Texture2D>(ContentPaths.Textures.Cannon); var castleTexture = Content.Load <Texture2D>(ContentPaths.Textures.Castle); var itemPlacedSound = Content.Load <SoundEffect>(ContentPaths.Sounds.ItemPlaced); var map = Content.Load <TiledMap>(ContentPaths.TiledMap.Map); var spikes = Content.Load <Texture2D>(ContentPaths.Textures.SpikesTrap); var tileOverlay = Content.Load <Texture2D>(ContentPaths.Textures.TileOverlay); var wall = Content.Load <Texture2D>(ContentPaths.Textures.Wall); #endregion BackgroundImage = background; var gameMap = new GameMap(map); var hoveredTileOverlay = new HoveredTileOverlay(tileOverlay); var wallManager = new WallManager(wall); var defenceManager = new DefenceManager(); var trapManager = new TrapManager(); var enemyManager = new EnemyManager(); var projectileManager = new ProjectileManager(); var castle = new Castle(castleTexture) { Position = gameMap[map.Width / 2, map.Height / 2].Position }; Services.AddService(gameMap); Services.AddService(wallManager); Services.AddService(defenceManager); Services.AddService(trapManager); Services.AddService(enemyManager); Services.AddService(projectileManager); Services.AddService(castle); AddEntity(gameMap); AddEntity(hoveredTileOverlay); AddEntity(wallManager); AddEntity(defenceManager); AddEntity(trapManager); AddEntity(enemyManager); AddEntity(projectileManager); AddEntity(castle); this.gameMap = gameMap; this.wallManager = wallManager; this.defenceManager = defenceManager; this.trapManager = trapManager; this.enemyManager = enemyManager; this.castle = castle; this.itemPlacedSound = itemPlacedSound; // Center the camera. Camera.LookAt(Vector2.Zero); #region Initialise defence menu defenceMenu = new DefenceMenu(stats, new Vector2(200, GraphicsDevice.Viewport.Height)); defenceMenu.AddItem(DefenceTypes.Wall, wall, 20); defenceMenu.AddItem(DefenceTypes.Cannon, cannon, 80); defenceMenu.AddItem(DefenceTypes.Spikes, spikes, 40); defenceMenu.ItemClicked += () => buttonClickSound.Play(); UserInterface.AddEntity(defenceMenu); #endregion #region Initialise stats view statsView = new StatsView(stats, new Vector2(200, 50)); UserInterface.AddEntity(statsView); statsView.AddPointsButton.OnClick += (e) => { e.Disabled = true; questionStopwatch.Start(); SceneManager.PushScene(new QuestionScene(Game)); }; #endregion if (preferences.IsAudioEnabled) { MediaPlayer.Volume = 0; MediaPlayer.Play(backgroundMusic); MediaPlayer.IsRepeating = true; } spawner = new EnemySpawner(this.gameMap, this.enemyManager); spawnStopwatch.Start(); questionStopwatch.Start(); this.castle.Destroyed += Castle_Destroyed; Game.Exiting += Game_Exiting; }