コード例 #1
0
ファイル: TestSaveGameService.cs プロジェクト: vankos/UURRPG
        public void TestRestore_ParserVers1_0()
        {
            GameSession gameSession = SaveGameService.LoadSavedOrCreateNewSession(@".\TestFiles\SavedGames\GameSaveParseerVer1.0.json");

            gameSession.StartTheGameRef.Invoke();

            Assert.AreEqual("1.0", gameSession.ParserVersion);
            Assert.AreEqual(0, gameSession.CurrentLocation.XCoordinate);
            Assert.AreEqual(-1, gameSession.CurrentLocation.YCoordinate);

            Assert.AreEqual("Scientist", gameSession.CurrentPlayer.CharacterClass);
            Assert.AreEqual("John Doe", gameSession.CurrentPlayer.Name);
            Assert.AreEqual(10, gameSession.CurrentPlayer.Dexterity);
            Assert.AreEqual(6, gameSession.CurrentPlayer.Health);
            Assert.AreEqual(10, gameSession.CurrentPlayer.MaxHealth);
            Assert.AreEqual(45, gameSession.CurrentPlayer.Experience);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Level);
            Assert.AreEqual(112, gameSession.CurrentPlayer.Credits);

            Assert.AreEqual(1, gameSession.CurrentPlayer.Quests.Count);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Quests[0].PlayerQuest.ID);
            Assert.IsTrue(gameSession.CurrentPlayer.Quests[0].IsComplete);

            Assert.AreEqual(1, gameSession.CurrentPlayer.Schemes.Count);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Schemes[0].ID);

            Assert.AreEqual(7, gameSession.CurrentPlayer.Inventory.Items.Count);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.Id == 1));
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.Id == 2));
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.Id == 6));
            Assert.AreEqual(4, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.Id == 4));
        }
コード例 #2
0
 public MainWindow()
 {
     InitializeComponent();
     InitializeUserInputActions();
     _messageBroker.OnMessageRaised += OnGameMessageRaised;
     _gameSession = SaveGameService.LoadLastSaveOrCreateNew();
     DataContext  = _gameSession;
 }
コード例 #3
0
        public MainForm()
        {
            InitializeComponent();
            Text += $" v{Application.ProductVersion}";

            StalkMarketSeries = stalkMarketChart.Series["stalkMarketSeries"];
            StalkMarketSeries.Points.Clear(); // cleaning test data

            SaveGameService = new SaveGameService();
        }
コード例 #4
0
        public override void Execute()
        {
            SaveGameService.Choose(SelectedSave);

            var lastIndex = Storyboard.FindIndexForId(SelectedSave.LastSceneId);

            if (lastIndex < 0)
            {
                throw new Exception("Could not find storyboard scene by id " + SelectedSave.LastSceneId);
            }
            Storyboard.StoryboardIndex = lastIndex;
            NextStoryboardSceneSignal.Dispatch(Context);
        }
コード例 #5
0
        private void SaveGame()
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog
            {
                InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
                Filter           = "Saved games (*.json)|*.josn"
            };

            if (saveFileDialog.ShowDialog() == true)
            {
                SaveGameService.Save(_gameSession, saveFileDialog.FileName);
            }
        }
コード例 #6
0
        private void LoadGame_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
                Filter           = "Saved games (*.json)|*.josn"
            };

            if (openFileDialog.ShowDialog() == true)
            {
                SetActiveGameSessionTo(SaveGameService.LoadSavedOrCreateNewSession(openFileDialog.FileName));
            }
        }
コード例 #7
0
        private void LoadGame_OnClick(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
                Filter           = $"Saved games (*.{SAVE_GAME_FILE_EXTENSION})|*.{SAVE_GAME_FILE_EXTENSION}"
            };

            if (openFileDialog.ShowDialog() == true)
            {
                SetActiveGameSessionTo(SaveGameService.LoadLastSaveOrCreateNew(openFileDialog.FileName));
            }
        }
コード例 #8
0
        public void SaveGame()
        {
            SaveFileDialog saveFileDialog =
                new SaveFileDialog
            {
                InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
                Filter           = $"Saved games (*.{SAVE_GAME_FILE_EXTENSION})|*.{SAVE_GAME_FILE_EXTENSION}"
            };

            if (saveFileDialog.ShowDialog() == true)
            {
                SaveGameService.Save(_gameSession, saveFileDialog.FileName);
            }
        }
コード例 #9
0
        private void LoadGameBtn_MouseUp(object sender, MouseButtonEventArgs e)
        {
            openFileDialog = new OpenFileDialog
            {
                InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
                Filter           = $"Saved games (*.{SAVE_GAME_FILE_EXTENSION})|*.{SAVE_GAME_FILE_EXTENSION}"
            };

            if (openFileDialog.ShowDialog() == true)
            {
                mainWindow = new MainWindow(SaveGameService.LoadLastSaveOrCreateNew(openFileDialog.FileName));
            }

            if (mainWindow != null)
            {
                mainWindow.Show();
                this.Hide();
            }
        }
コード例 #10
0
        private void LoadSavedGame_OnClick(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog =
                new OpenFileDialog
            {
                InitialDirectory = AppDomain.CurrentDomain.BaseDirectory,
                Filter           = $"Saved games (*.{SAVE_GAME_FILE_EXTENSION})|*.{SAVE_GAME_FILE_EXTENSION}"
            };

            if (openFileDialog.ShowDialog() == true)
            {
                GameSession gameSession =
                    SaveGameService.LoadLastSaveOrCreateNew(openFileDialog.FileName);

                MainWindow mainWindow =
                    new MainWindow(gameSession);

                mainWindow.Show();
                Close();
            }
        }
コード例 #11
0
        public void Test_Restore_0_1_000()
        {
            GameSession gameSession =
                SaveGameService
                .LoadLastSaveOrCreateNew(@".\TestFiles\SavedGames\Game_0_1_000.soscsrpg");

            // Game session data
            Assert.AreEqual("0.1.000", gameSession.Version);
            Assert.AreEqual(0, gameSession.CurrentLocation.XCoordinate);
            Assert.AreEqual(1, gameSession.CurrentLocation.YCoordinate);

            // Player data
            Assert.AreEqual("Fighter", gameSession.CurrentPlayer.CharacterClass);
            Assert.AreEqual("Scott", gameSession.CurrentPlayer.Name);
            Assert.AreEqual(18, gameSession.CurrentPlayer.Dexterity);
            Assert.AreEqual(8, gameSession.CurrentPlayer.CurrentHitPoints);
            Assert.AreEqual(10, gameSession.CurrentPlayer.MaximumHitPoints);
            Assert.AreEqual(20, gameSession.CurrentPlayer.ExperiencePoints);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Level);
            Assert.AreEqual(1000000, gameSession.CurrentPlayer.Gold);

            // Player quest data
            Assert.AreEqual(1, gameSession.CurrentPlayer.Quests.Count);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Quests[0].PlayerQuest.ID);
            Assert.IsFalse(gameSession.CurrentPlayer.Quests[0].IsCompleted);

            // Player recipe data
            Assert.AreEqual(1, gameSession.CurrentPlayer.Recipes.Count);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Recipes[0].ID);

            // Player inventory data
            Assert.AreEqual(5, gameSession.CurrentPlayer.Inventory.Items.Count);
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.ItemTypeID.Equals(1001)));
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.ItemTypeID.Equals(2001)));
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.ItemTypeID.Equals(3001)));
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.ItemTypeID.Equals(3002)));
            Assert.AreEqual(1, gameSession.CurrentPlayer.Inventory.Items.Count(i => i.ItemTypeID.Equals(3003)));
        }
コード例 #12
0
 private void MainWindow_OnClosing(object sender, CancelEventArgs e)
 {
     SaveGameService.Save(_gameSession);
 }
コード例 #13
0
 private void MainWindow_OnClosing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     SaveGameService.Save(_gameSession);
 }
コード例 #14
0
 public override void Execute()
 {
     SaveGameService.CreateNewGame();
     NextStoryboardSceneSignal.Dispatch(Context);
 }
コード例 #15
0
 public override void Execute(INotification notification)
 {
     SaveGameService.DataUpdated();
     //DataCenter.dataUpdated();
 }