Esempio n. 1
0
            public static DirectMaps Parse(WZProperty prop)
            {
                if (prop == null)
                {
                    return(null);
                }

                DirectMaps result = new DirectMaps();

                result.Spot = prop.ResolveFor <Point>("spot");
                if (result.Spot == null)
                {
                    string[] childrenNames = prop.Children.Select(c => c.NameWithoutExtension).ToArray();
                    if (childrenNames.Contains("x") && childrenNames.Contains("y"))
                    {
                        result.Spot = new Point(prop.ResolveFor <int>("x").Value, prop.ResolveFor <int>("y").Value);
                    }
                }
                result.Type        = prop.ResolveFor <int>("type");
                result.Title       = prop.ResolveForOrNull <string>("desc");
                result.Description = prop.ResolveForOrNull <string>("title");
                result.NoTooltip   = prop.ResolveFor <bool>("noToolTip");
                result.MapNumbers  = prop.Resolve("mapNo").Children.Select(c => c.ResolveFor <int>()).Where(c => c.HasValue).Select(c => c.Value).ToArray();

                return(result);
            }
Esempio n. 2
0
        public static WorldMap Parse(WZProperty worldMapNode)
        {
            if (worldMapNode == null)
            {
                return(null);
            }

            WorldMap result = new WorldMap();

            result.BaseImage    = worldMapNode.Resolve("BaseImg").Children.Select(c => Frame.Parse(c)).ToArray();
            result.WorldMapName = worldMapNode.ResolveForOrNull <string>("info/WorldMap");
            result.ParentWorld  = worldMapNode.ResolveForOrNull <string>("info/parentMap");
            result.Links        = worldMapNode.Resolve("MapLink")?.Children.Select(c => WorldMapLink.Parse(c)).Where(c => c != null).ToArray();
            result.Maps         = worldMapNode.Resolve("MapList")?.Children.Select(c => DirectMaps.Parse(c)).Where(c => c != null).ToArray();

            return(result);
        }