コード例 #1
0
        public static void LevelTransition(Levels.LevelId newLevelId, int newXLoc, int newYLoc)
        {
            if (_currentLevel != null)
            {
                _currentLevel.RemoveActor(_player);
                _currentLevel.Dispose();
                _levels.Remove(_currentLevel.LevelId);
            }

            var newLevel = new Levels.Level(newLevelId);

            _levels[newLevelId] = newLevel;
            _currentLevel       = newLevel;

            _player.UpdatePosition(newXLoc, newYLoc);
            _currentLevel.AddActor(_player);
        }
コード例 #2
0
        public static void LoadGame(UserData.SaveGame gameState)
        {
            _topLevelRNG = new RandomNumberGenerator(gameState.TopLevelRNG);
            _combatRNG   = new RandomNumberGenerator(gameState.CombatRNG);
            _lootRNG     = new RandomNumberGenerator(gameState.LootRNG);
            _miscRNG     = new RandomNumberGenerator(gameState.MiscRNG);

            _gameData    = gameState.Summary.GameData;
            _currentTime = gameState.CurrentTime;
            _player      = gameState.Player;
            Entities.Player.Player.SetPlayer(_player);

            Entities.Furnishings.Furnishing.LoadSaveData(gameState.Furnishings);
            Entities.Monsters.Monster.LoadSaveData(gameState.Monsters);

            foreach (KeyValuePair <Levels.LevelId, Levels.LevelSaveSummary> level in gameState.Levels)
            {
                _levels[level.Key] = new Levels.Level(level.Value);
            }

            _currentLevel = _levels[gameState.CurrentLevelId];

            Quests.GameEventManager.LoadData(gameState);
        }