6f1ef9c84f
* Fixed dependency * Updates to NeoDictionary * Changes to NeoDictionary * Started working on a Git implementation to integrate into Game Engines in the future * Added commit functionality to the git library * New changes * Added select for NeoDictionary.cs * Fixed issue with previous new method * Added a Benchmarking Tool to be used mostly in game engines * Added IndexOf to NeoDictionary.cs * Added new method for BenchmarkUtility.cs * added an instacedobject class * Added a new shuffle method for lists * fixed return type * Added new Changelog generator * Added new Game logic library to assist with game projects * Added Web Project * Added Nuget package configs * Add workflow for publishing game library NuGet package * Add README for OmegaLeo's Helper Library * Updated Website to reflect all libraries * Fixed missing library in Changelog * Added Contributing and Code of Conduct
35 lines
850 B
C#
35 lines
850 B
C#
using System;
|
|
|
|
namespace OmegaLeo.HelperLib.Game.Models
|
|
{
|
|
public class RandomNumberGenerator
|
|
{
|
|
private readonly Random _random;
|
|
|
|
public int Seed { get; }
|
|
|
|
public RandomNumberGenerator(int? seed = null)
|
|
{
|
|
Seed = seed ?? Environment.TickCount;
|
|
_random = new Random(Seed);
|
|
}
|
|
|
|
public float NextFloat() =>
|
|
(float)_random.NextDouble();
|
|
|
|
public float Range(float min, float max) =>
|
|
min + NextFloat() * (max - min);
|
|
|
|
public int Range(int min, int max) =>
|
|
_random.Next(min, max);
|
|
|
|
public bool Chance(float probability) =>
|
|
NextFloat() <= probability;
|
|
|
|
public bool Percent(float percent) =>
|
|
Chance(percent / 100f);
|
|
|
|
public bool OneIn(int x) =>
|
|
Range(0, x) == 0;
|
|
}
|
|
} |