public IEnumerable <StatBuilderResult> Build(BuildParameters parameters) { var sourceResults = _source.Build(parameters).ToList(); var targetResults = _target.Build(parameters).ToList(); if (sourceResults.Count != targetResults.Count) { throw new ParseException("Source and target stats of conversion must build to same amount of mods"); } return(sourceResults.Zip(targetResults, (s, t) => Build(parameters.ModifierSource, s, t))); }
public IEnumerable <StatBuilderResult> Build(BuildParameters parameters) => _statBuilder.Build(parameters.With(_modifierSource));
public IEnumerable <StatBuilderResult> Build(BuildParameters parameters) => from r in _inner.Build(parameters) let stats = r.Stats.Select(_statConverter).ToList() select new StatBuilderResult(stats, r.ModifierSource, r.ValueConverter);
public IEnumerable <StatBuilderResult> Build(BuildParameters parameters) => from result in _inner.Build(parameters) let stats = result.Stats.SelectMany(s => _statConverter(_parameter, s)) select new StatBuilderResult(stats.ToList(), result.ModifierSource, result.ValueConverter);