/// <summary> /// Returns a move with the given actions. /// </summary> public static Move CreateMove( string name = "yeti", string description = "amon", int maxUses = 5, MoveSuccessCalculatorFactory successCalculatorFactory = null, params IAction[] moveActions) { if (successCalculatorFactory is null) { successCalculatorFactory = () => new AlwaysMoveSuccessCalculator(); } var builder = new MoveBuilder() .Name(name) .Describe(description) .WithMaxUses(maxUses) .WithSuccessCalculatorFactory(successCalculatorFactory); foreach (var action in moveActions) { builder = builder.WithAction(action); } return(builder.Build()); }
/// <summary> /// Sets the built move's success calculator factory. /// </summary> /// <param name="accuracy">The built move's success calculator factory.</param> public MoveBuilder WithSuccessCalculatorFactory(MoveSuccessCalculatorFactory successCalculatorFactory) { if (successCalculatorFactory is null) { throw new ArgumentNullException(nameof(successCalculatorFactory)); } _move.SuccessCalculatorFactory = successCalculatorFactory; _hasSuccessCalculatorFactory = true; return(this); }