public bool isLevelPathDiscovered(string worldMapUid, int id) { LevelPathDefinition levelPathDefinition = getLevelPathDefinition(worldMapUid, id); LevelIconState levelA = getLevelIconState(worldMapUid, levelPathDefinition.levelIconAUid); LevelIconState levelB = getLevelIconState(worldMapUid, levelPathDefinition.levelIconBUid); if (levelA == null || levelB == null) { return(false); } return(levelA.discovered && levelB.discovered); }
// Create world map manager private static WorldMapManager createWorldMapManager() { List <WorldMapDefinition> definitions = new List <WorldMapDefinition>(); List <XElement> allWorldMapData = ResourceManager.worldMapResources; foreach (XElement worldMapData in allWorldMapData) { WorldMapDefinition worldMapDefinition = new WorldMapDefinition(worldMapData.Attribute("uid").Value, worldMapData.Attribute("texture_uid").Value, Loader.loadVector2("position", Vector2.Zero)); foreach (XElement levelIconData in worldMapData.Elements("LevelIcon")) { worldMapDefinition.levelIconDefinitions.Add( new LevelIconDefinition( worldMapDefinition, levelIconData.Attribute("uid").Value, levelIconData.Attribute("level_uid").Value, levelIconData.Attribute("finished_texture_uid").Value, levelIconData.Attribute("unfinished_texture_uid").Value, levelIconData.Attribute("title").Value, levelIconData.Attribute("description").Value, Loader.loadVector2(levelIconData.Attribute("position"), Vector2.Zero))); } foreach (XElement levelPathData in worldMapData.Elements("LevelPath")) { LevelPathDefinition levelPathDefinition = new LevelPathDefinition( worldMapDefinition, int.Parse(levelPathData.Attribute("id").Value), levelPathData.Attribute("level_icon_a_uid").Value, levelPathData.Attribute("level_icon_b_uid").Value); foreach (XElement pathKeyData in levelPathData.Elements("PathKey")) { levelPathDefinition.pathKeys.Add( new LevelPathKey( levelPathDefinition, Loader.loadVector2(pathKeyData.Attribute("p0"), Vector2.Zero), Loader.loadVector2(pathKeyData.Attribute("p1"), Vector2.Zero), Loader.loadVector2(pathKeyData.Attribute("p2"), Vector2.Zero), Loader.loadVector2(pathKeyData.Attribute("p3"), Vector2.Zero))); } worldMapDefinition.levelPathDefinitions.Add(levelPathDefinition); } definitions.Add(worldMapDefinition); } return(new WorldMapManager(definitions)); }