OSK.Petra.Probabilities 0.1.0

dotnet add package OSK.Petra.Probabilities --version 0.1.0
                    
NuGet\Install-Package OSK.Petra.Probabilities -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OSK.Petra.Probabilities" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OSK.Petra.Probabilities" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="OSK.Petra.Probabilities" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OSK.Petra.Probabilities --version 0.1.0
                    
#r "nuget: OSK.Petra.Probabilities, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OSK.Petra.Probabilities@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OSK.Petra.Probabilities&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=OSK.Petra.Probabilities&version=0.1.0
                    
Install as a Cake Tool

OSK.Petra.Probabilities

This library provides a mechanism for adding and utilizing random probabilities in an application. This can be for normal random usage or for use with a probability roller to simulate dice rolls, chance checks, and similar random requirements for an application or game.

Usage

The central point is the IProbabilityRoller to handle probability and random checks. To setup and configure a roller with the dependency container, use AddProbabilities. Additionally, a static factory class is available through Probability to create rollers independent of any DI containers or where such use cases are not viable for an application.

RNG support

Random generators can be created and used for a roller by implementing the IRandomNumberGenerator interface and injecting it into the dependency injection before calling AddProbabilities or by utilizing the IProbabilityBuilder to inject the custom generator that way. Additionally, custom generators can be injected via the static factory for probability rollers as well. The library currently supports the following random number generators:

  • Seeded: a basic RNG that utilizes a seed to generate random numbers. The caveat is that it can not easily be restored other than simply reseeding the generator. In some cases, this is undesired since the sequence of generation can become lost in a game replay -i.e. a turn that is saved and reloaded can then have a different outcome than if it was simply played through
  • PCG32: an RNG that utilizes a state value that can be restored and utilized for random generation. This allows continuing a sequence directly from where it was left off
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 120 7/7/2026