This pull request adds a new feature that randomizes the collect interval using a normal distribution with a mean of 30 minutes and a standard deviation of 7 minutes.
Why?
This feature resolves #18 by adding more randomness and flexibility to the collect interval. It also makes the code more efficient and readable by refactoring and simplifying some methods.
How?
This pull request implements the following changes:
Add a new option to the ASFFreeGamesOptions class called RandomizeRecheckInterval, which is a nullable bool that indicates whether to randomize the collect interval or not.
Modify the ASFFreeGamesPlugin class to use the RandomizeRecheckInterval option to determine the value of the RandomizeIntervalSwitch property, which is used to multiply the standard deviation of the normal distribution used to generate the random delay in the GetRandomizedTimerDelay method.
Extract an interface called IASFFreeGamesPlugin from the ASFFreeGamesPlugin class, which contains the members that are used by the CollectIntervalManager class.
Move the timer and random delay logic from the ASFFreeGamesPlugin class to the CollectIntervalManager class, which encapsulates the functionality of managing the collect interval.
Testing?
To test this feature, you can run the unit tests in RandomUtilsTests.cs and check if they pass. You can also run the plugin with different values of RandomizeRecheckInterval and observe how it affects the collect interval.
What?
This pull request adds a new feature that randomizes the collect interval using a normal distribution with a mean of 30 minutes and a standard deviation of 7 minutes.
Why?
This feature resolves #18 by adding more randomness and flexibility to the collect interval. It also makes the code more efficient and readable by refactoring and simplifying some methods.
How?
This pull request implements the following changes:
Testing?
To test this feature, you can run the unit tests in RandomUtilsTests.cs and check if they pass. You can also run the plugin with different values of RandomizeRecheckInterval and observe how it affects the collect interval.
Screenshots (optional)
N/A
Anything Else?
N/A