Esempio n. 1
0
        public MainWindow()
        {
            // Génère la carte
            game = GameGenerator.GenerateDefaultMap();

            // Sauvegarde la nouvelle partie dans un fichier
            GameFileManager.SaveGame(game, "game1");

            // Lit le fichier
            game = GameFileManager.ReadGame("game1");

            manager = new GameManager(game);

            manager.PopulationChanged    += OnPopulationChanged;
            manager.MaxPopulationChanged += OnMaxPopulationChanged;
            manager.BuildingCreated      += OnBuildingCreated;

            foreach (var carry in game.Carries)
            {
                carry.CarryStockChanged += OnCarryResourceCollected;
            }

            InitializeComponent();
            this.DataContext = this;
            InitializeUIFromGame(game);
        }
Esempio n. 2
0
        public void SaveGame_ThrowArgumentNullException_IfGameIsNull()
        {
            IGameDescriptor gameDescriptor = null;
            string          fileName       = "newGame";

            GameFileManagerStatic.SaveGame(gameDescriptor, fileName);
        }
Esempio n. 3
0
        public IActionResult Create(GameDescriptorModel gameModel)
        {
            IGameDescriptor newGameDescriptor = GameGenerator.GenerateMapFromOptions(gameModel.Workers, gameModel.Farms, gameModel.Resources);

            gameFileManager.SaveGame(newGameDescriptor, gameModel.Name);

            return(Redirect($"/{configuration.GetValue<string>("GameEngine")}?name={gameModel.Name}"));
        }
Esempio n. 4
0
        // GET: /<controller>/
        public IActionResult Game(string fileName)
        {
            // initialise la classe qui contient tous le messages de l'UI
            uiMessages = new UIMessages();

            // Lit le fichier
            game = gameFileManager.ReadGame(fileName);

            manager = new GameManager(game);

            return(View(manager));
        }
        public void azSaveGame_ThrowArgumentNullException_IfGameIsNull()
        {
            //Arrange
            var mockConfiguration = GetMockConfiguration();

            var             azGameFileManager = new AzureGameFileManager(mockConfiguration);
            IGameDescriptor gameDescriptor    = null;
            string          fileName          = "newGame";

            //Act && Assert
            Assert.ThrowsException <ArgumentNullException>(() => azGameFileManager.SaveGame(gameDescriptor, fileName));
        }
Esempio n. 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="game"></param>
        /// <param name="fileName"></param>
        public static string SaveGame(IGameDescriptor game, string fileName)
        {
            if (game == null)
            {
                throw new ArgumentNullException("SaveGame: GameDescriptor cannot be null");
            }
            if (string.IsNullOrWhiteSpace(fileName))
            {
                throw new ArgumentNullException("SaveGame: File name cannot be null");
            }

            var extension = FileSystemDI.Path.GetExtension(fileName);

            if (extension != GAMEFILE_EXTENSION)
            {
                if (string.IsNullOrEmpty(extension))
                {
                    fileName += GAMEFILE_EXTENSION;
                }
                else
                {
                    throw new FormatException($"SaveGame: file extension {extension} is incorrect. Use xml");
                }
            }

            // Initialise le Serializer
            System.Xml.Serialization.XmlSerializer writer =
                new System.Xml.Serialization.XmlSerializer(typeof(GameDescriptor));

            // Créé le chemin du fichier de sauvegarde
            string path = GetFullPath(fileName);

            try
            {
                using (Stream file = FileSystemDI.FileStream.Create(path, FileMode.Create))
                {
                    writer.Serialize(file, game);
                    file.Close();
                }
            }
            catch (Exception ex)
            {
                throw new IOException("SaveGame: Unable to save the game file. Check your write access?", ex);
            }

            return(path);
        }
Esempio n. 7
0
        /// <summary>
        /// Initialise l'interface à partir d'un GameDescriptor
        /// </summary>
        /// <param name="game"></param>
        private void InitializeUIFromGame(IGameDescriptor game)
        {
            foreach (var townhall in game.TownHalls)
            {
                AddTownHallToUI(townhall);
            }

            foreach (var farm in game.Farms)
            {
                AddFarmToUI(farm);
            }

            foreach (var worker in game.Workers)
            {
                AddWorkerToUI(worker);
            }
        }
Esempio n. 8
0
        public static Stream GetGameDescriptorStream(this IGameDescriptor game)
        {
            Stream ReturnValue = new MemoryStream(); // MemoryStream();

            // Initialise le Serializer
            System.Xml.Serialization.XmlSerializer writer =
                new System.Xml.Serialization.XmlSerializer(typeof(GameDescriptor));

            try
            {
                writer.Serialize(ReturnValue, game);
                ReturnValue.Seek(0, SeekOrigin.Begin);
            }
            catch (Exception ex)
            {
                throw new Exception("GetGameDescriptorStream: Unable to 'Serialize' the game file.", ex);
            }

            return(ReturnValue);
        }
Esempio n. 9
0
        /// <summary>
        /// Process l'initialisation d'un nouveau GameDescriptor,
        /// et l'enregistrement du fichier
        /// </summary>
        /// <param name="dynamic"></param>
        /// <returns></returns>
        private MMessageModel ProcessFileSaveLastPart()
        {
            MMessageModel returnedResult = null;

            try
            {
                IGameDescriptor gameDescriptor = InitializeEachGameItem(_partialMessage, _gameDescriptor);
                gameFileManager.SaveGame(gameDescriptor, _gameName);
                // La partie est correctement initialisée
                _gameManager = new GameManager(_gameDescriptor);
                AttachNotificationsToGameManager();
            }
            catch (Exception ex)
            {
                returnedResult = new MMessageModel(MessageTypes.FILESAVE_ERROR_CORRUPTED, $"{{\"status\" : \"error : {ex.Message}\"}}");
            }
            finally
            {
                _partialMessage.Clear();
            }
            return(returnedResult);
        }
Esempio n. 10
0
        public string SaveGame(IGameDescriptor game, string fileName)
        {
            string ReturnValue = string.Empty;

            if (game.IsGameDescriptorValidWithThrow() && fileName.IsGameFileNameValidWithThrow())
            {
                // Create the blob client.
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

                // Get reference to the blob container by passing the name by reading the value from the configuration (appsettings.json)
                CloudBlobContainer container = blobClient.GetContainerReference(containerName);

                // Get the reference to the block blob from the container
                CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);

                ReturnValue = blockBlob.Uri.ToString();

                // Upload the file
                blockBlob.UploadFromStream(game.GetGameDescriptorStream());
                //Task.Run( async () => await blockBlob.UploadFromStreamAsync(game.GetGameDescriptorStream()));  //TODO Assync
            }
            return(ReturnValue);
        }
Esempio n. 11
0
        public static string SaveGame(IGameDescriptor game, string fileName)
        {
            var azFileManager = new AzureGameFileManager(Config);

            return(azFileManager.SaveGame(game, fileName));
        }
Esempio n. 12
0
 public GameDetected(IGameDescriptor game, IMetaEngine engine)
 {
     Game = game;
     Engine = engine;
 }
Esempio n. 13
0
 public static bool IsGameDescriptorValidWithThrow(this IGameDescriptor game)
 => (game != null) ? true : throw new ArgumentNullException("SaveGame: GameDescriptor cannot be null");
Esempio n. 14
0
 public GameDetected(IGameDescriptor game, IMetaEngine engine)
 {
     Game   = game;
     Engine = engine;
 }
Esempio n. 15
0
 public GameSettings(IGameDescriptor game, IMetaEngine engine)
 {
     Game        = game;
     AudioDevice = "adlib";
     MetaEngine  = engine;
 }
Esempio n. 16
0
 public GameSettings(IGameDescriptor game, IMetaEngine engine)
 {
     Game = game;
     AudioDevice = "adlib";
     MetaEngine = engine;
 }