예제 #1
0
        private IValue BuildInModifierSourceJewelRadiusValue(
            BuildParameters parameters, IStatBuilder stat, Func <IValue, IValue> condition)
        {
            return(GetNodesInRadius(parameters)
                   .Select(GetValue)
                   .Aggregate((l, r) => l + r)
                   .Build(parameters));

            ValueBuilder GetValue(PassiveNodeDefinition d)
            => stat.AsPassiveNodePropertyFor(d.Id).Value
            .If(condition(NodeSkilled(d.Id).Value.Build(parameters)));
        }
예제 #2
0
 public IEnumerable <StatBuilderResult> Build(BuildParameters parameters)
 {
     foreach (var node in _getNodesInRadius(parameters))
     {
         var value = _source.AsPassiveNodePropertyFor(node.Id).ValueFor(NodeType.BaseSet);
         var stat  = _target.AsPassiveNodePropertyFor(node.Id);
         foreach (var(stats, source, valueConverter) in stat.Build(parameters))
         {
             yield return(new StatBuilderResult(stats, source, valueConverter.AndThen(v => v.Multiply(value))));
         }
     }
 }
 private IValue BuildInModifierSourceJewelRadiusValue(
     BuildParameters parameters, IStatBuilder stat, Func <IValue, IValue> condition) =>
 BuildInModifierSourceJewelRadiusValue(parameters, d => stat.AsPassiveNodePropertyFor(d.Id).Value, condition);