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