Esempio n. 1
0
        public void LoadGame()
        {
            var(game, data) = saveService.LoadGame();

            GameData.Initialize(data);
            CurrentGame.Load(game);

            if (game == null)
            {
                return;
            }

            game.Player.Inventory.ItemAdded += (sender, args) =>
            {
                game.Journal.Write(new ItemReceivedMessage(args.Item));
            };
            game.Player.Inventory.ItemRemoved += (sender, args) =>
            {
                game.Journal.Write(new ItemLostMessage(args.Item));
            };

            game.TurnEnded += game_TurnEnded;

            turnsSinceLastSaving = 0;
        }
Esempio n. 2
0
    IEnumerator Load(int index)
    {
        yield return(SceneManager.LoadSceneAsync(index));

        ui.StartGame();
        CurrentGame?.Load();
        if (CurrentGame != null)
        {
            CurrentGame.enabled = true;
        }
    }
Esempio n. 3
0
        private void game_TurnEnded(object sender, EventArgs args)
        {
            turnsSinceLastSaving++;

            if (turnsSinceLastSaving >= savingInterval)
            {
                saveGameTask?.Wait();
                saveGameTask         = saveService.SaveGameAsync();
                turnsSinceLastSaving = 0;
            }

            if (CurrentGame.Player.Health <= 0)
            {
                saveGameTask?.Wait();
                ((GameCore <Player>)CurrentGame.Game).TurnEnded -= game_TurnEnded;
                CurrentGame.Load(null);
                saveService.DeleteSave();
            }
        }
Esempio n. 4
0
        internal static void Main()
        {
            try
            {
                GameConfigurator.Configure();

                log = LogManager.GetLog(nameof(Program));

                var gameWidth  = FontProvider.GetScreenWidth(FontTarget.Game);
                var gameHeight = FontProvider.GetScreenHeight(FontTarget.Game) / 2;
                SadConsole.Game.Create(gameWidth, gameHeight);

                SadConsole.Game.OnInitialize = Init;

                SadConsole.Game.Instance.Run();

                SadConsole.Game.Instance.Dispose();

                log.Info("Closing game");

                CurrentGame.Load(null);

                GC.Collect();

                //throw new GameExitException();
            }
            catch (GameExitException)
            {
                throw;
            }
            catch (Exception e)
            {
                log.Fatal(e);
                throw;
            }
        }