public ParseResult Parse(PartialItemParserParameter parameter) { var(item, _, entity, baseItemDefinition, localSource, globalSource) = parameter; var itemTags = baseItemDefinition.Tags; var results = new List <ParseResult>(1 + item.Modifiers.Count) { ParseBuffStats(entity, itemTags, localSource, baseItemDefinition.BuffStats) }; foreach (var modifier in item.Modifiers) { if (ModifierLocalityTester.AffectsProperties(modifier, itemTags)) { results.Add(ParsePropertyModifier(localSource, entity, modifier)); } else if (ModifierLocalityTester.IsLocal(modifier, itemTags)) { results.Add(ParseLocalModifier(itemTags, localSource, entity, modifier)); } else { results.Add(ParseGlobalModifier(itemTags, globalSource, entity, modifier)); } } return(ParseResult.Aggregate(results)); }
public bool AffectsPropertiesReturnsCorrectResultForFlask(string modifier) => ModifierLocalityTester.AffectsProperties(modifier, Tags.Flask);
public bool AffectsPropertiesReturnsCorrectResultForGeneric(string modifier) => ModifierLocalityTester.AffectsProperties(modifier, Tags.Default);