//===================================// OBSERVER BEHAVIOUR //==================================//

        private void ObserveGame(object source, RoutedEventArgs args)
        {
            Game game;

            try { game = _manager.LoadGame(); }
            catch (Exception) { return; }

            Observing = true;
            ClearMap();

            _gameGridCreator.LoadMapIntoTheGameGrid(this, game.Map);
            _gameGridCreator.LoadGameIntoTheGameGrid(this, game);

            OpenObservedGameTab();
            DisplayGameProperties(game);
            CalculatePoints();
            RemoveButtonsBehaviour();
        }
        private void LoadGame(object sender, RoutedEventArgs args)
        {
            Game game;

            try { game = _manager.LoadGame(); }
            catch (Exception) { return; }

            LoadedMap   = game.Map;
            LoadedMapId = game.MapID;
            PrepareLoadedMap(null, null);
            CurrentCash.Text = int.MaxValue.ToString();
            _gameGridCreator.LoadGameIntoTheGameGrid(this, game);

            int cost = game.PlacedObjects.Sum(p => p.GameObject.Price);

            CurrentCash.Text = (LoadedMap.AvailableMoney - cost).ToString();
            Simulate(null, null);
        }