Ejemplo n.º 1
0
        private static List <RegionConnection> ParseRegionConnections(IniParser parser)
        {
            var result = new List <RegionConnection>();

            if (parser.SageGame == SageGame.Bfme)
            {
                var regions = parser.ParseAssetReferenceArray();
                foreach (var region in regions)
                {
                    result.Add(new RegionConnection(region));
                }
                return(result);
            }

            parser.GoToNextLine(); //skip '=' and go to next line
            var token = parser.PeekNextTokenOptional();

            while (token.HasValue && token.Value.Text == "Connection")
            {
                result.Add(RegionConnection.Parse(parser));
                parser.GoToNextLine();
                token = parser.PeekNextTokenOptional();
            }
            return(result);
        }
Ejemplo n.º 2
0
        internal static ModifierUpgrade Parse(IniParser parser)
        {
            var upgrades = new List <string>();
            var token    = parser.PeekNextTokenOptional();

            while (token.HasValue && !token.Value.Text.Contains(":"))
            {
                upgrades.Add(parser.ParseAssetReference());
                token = parser.PeekNextTokenOptional();
            }

            return(new ModifierUpgrade
            {
                Upgrades = upgrades.ToArray(),
                Delay = parser.ParseAttributeInteger("Delay")
            });
        }
Ejemplo n.º 3
0
        internal static DamageScalar Parse(IniParser parser)
        {
            var result = new DamageScalar
            {
                Scalar = parser.ParsePercentage()
            };
            var token = parser.PeekNextTokenOptional();

            if (token.HasValue)
            {
                result.Targets = ObjectFilter.Parse(parser);
            }
            return(result);
        }