Beispiel #1
0
        public GameForm(int numberOfPlayers, int numberOfTurns, int numberOfSpells)
        {
            InitializeComponent();
            NumberOfTurns = numberOfTurns;

            DescriptionPanel.Visible = false;
            gameboard         = new Gameboard(gamePanel, fieldName, movesLeftLabel);
            engine            = new GameEngine(numberOfPlayers, gameboard, this, numberOfTurns);
            spellboard        = new SpellBoard(spellPanel, engine.Players, engine, numberOfSpells);
            engine.spellboard = spellboard;
            engine.InitializeEngineElements();
        }
Beispiel #2
0
        public void LoadGame()
        {
            var state = LoadData();

            if (state != null)
            {
                LoadPlayers(state);
                LoadMonsters(state);

                var game       = new GameForm();
                var gameboard  = new Gameboard(game.GetGamePanel, game.GetNameField, game.GetMovesLeftLabel);
                var gameEngine = new GameEngine(LoadedPlayers.Count - 1, gameboard, game, state.TurnsAmount, false);

                gameEngine.startForm     = StartMenu;
                gameEngine.Players       = LoadedPlayers;
                gameEngine.CurrentPlayer = LoadedPlayers.ElementAt(state.currentPlayerIndex);

                var spellboard = new SpellBoard(game.GetSpellPanel, LoadedPlayers, gameEngine, 98, false);
                game.engine           = gameEngine;
                game.gameboard        = gameboard;
                game.spellboard       = spellboard;
                gameEngine.spellboard = spellboard;
                gameEngine.InitializeEngineElements(true);

                var tiles = (Tile[])gameboard.GetElementsCollection();
                foreach (var monster in LoadedMonsters)
                {
                    var mCoords = monster.coordinates;
                    foreach (var t in tiles)
                    {
                        if (t.GetCoordinates() == mCoords)
                        {
                            t.SetOccupant(monster);
                        }
                    }
                }
                game.Show();
            }
        }