public override ISolver CreateSolver(SolverSettings settings) { var attributeConstraints = AttributeConstraints.ToDictionary( constraint => constraint.Data, constraint => new Tuple <float, double>(constraint.TargetValue, constraint.Weight / 100.0)); var pseudoConstraints = PseudoAttributeConstraints.ToDictionary( constraint => constraint.Data, constraint => new Tuple <float, double>(constraint.TargetValue, constraint.Weight / 100.0)); return(new AdvancedSolver(Tree, new AdvancedSolverSettings(settings, CreateInitialAttributes(), attributeConstraints, pseudoConstraints, WeaponClass, Tags, OffHand))); }
protected override Task <ISolver> CreateSolverAsync(SolverSettings settings) { var attributeConstraints = AttributeConstraints.ToDictionary( constraint => constraint.Data, constraint => new Tuple <float, double>(constraint.TargetValue, constraint.Weight / 100.0)); var pseudoConstraints = PseudoAttributeConstraints.ToDictionary( constraint => constraint.Data, constraint => new Tuple <float, double>(constraint.TargetValue, constraint.Weight / 100.0)); var solver = new AdvancedSolver(Tree, new AdvancedSolverSettings(settings, TotalPoints, CreateInitialAttributes(), attributeConstraints, pseudoConstraints, WeaponClass.Value, Tags.Value, OffHand.Value)); return(Task.FromResult <ISolver>(solver)); }