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); }
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); }