CatStation/Content.Shared/EntityTable/ValueSelector/NumberSelector.cs
Whatstone f339f58945
Replace all uses of System.Random with IRobustRandom, resolve all System.Random warnings. (#32)
* Remove all uses of System.Random

* Use IRobustRandom in BinomialNumberSelector.Get

* Remove remaining ToolRefinableSystem S.Random inst
2026-06-16 23:38:37 +00:00

26 lines
814 B
C#

using Content.Shared.EntityTable.EntitySelectors;
using JetBrains.Annotations;
using Robust.Shared.Random;
namespace Content.Shared.EntityTable.ValueSelector;
/// <summary>
/// Used for implementing custom value selection for <see cref="EntityTableSelector"/>
/// </summary>
[ImplicitDataDefinitionForInheritors, UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)]
public abstract partial class NumberSelector
{
public abstract int Get(IRobustRandom rand);
/// <summary>
/// Odds of occurrence
/// </summary>
/// <returns>An odds multiplier of at least one occurrence</returns>
public abstract float Odds();
/// <summary>
/// Average number of occurrences
/// </summary>
/// <returns>The average amount of occurrences</returns>
public abstract float Average();
}