Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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;
        }