fix RangeNumberSelector to actually be inclusive (#36155)
* fix RangeNumberSelector to actually be inclusive * Convert all random number stuff to randomint and prune unused code * another heisentest??? * another heisentest after a heisentest. im going to lose it.
This commit is contained in:
@@ -20,7 +20,7 @@ public sealed partial class EntSelector : EntityTableSelector
|
|||||||
IEntityManager entMan,
|
IEntityManager entMan,
|
||||||
IPrototypeManager proto)
|
IPrototypeManager proto)
|
||||||
{
|
{
|
||||||
var num = (int) Math.Round(Amount.Get(rand, entMan, proto));
|
var num = Amount.Get(rand);
|
||||||
for (var i = 0; i < num; i++)
|
for (var i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
yield return Id;
|
yield return Id;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public abstract partial class EntityTableSelector
|
|||||||
IEntityManager entMan,
|
IEntityManager entMan,
|
||||||
IPrototypeManager proto)
|
IPrototypeManager proto)
|
||||||
{
|
{
|
||||||
var rolls = Rolls.Get(rand, entMan, proto);
|
var rolls = Rolls.Get(rand);
|
||||||
for (var i = 0; i < rolls; i++)
|
for (var i = 0; i < rolls; i++)
|
||||||
{
|
{
|
||||||
if (!rand.Prob(Prob))
|
if (!rand.Prob(Prob))
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
using Robust.Shared.Prototypes;
|
|
||||||
|
|
||||||
namespace Content.Shared.EntityTable.ValueSelector;
|
namespace Content.Shared.EntityTable.ValueSelector;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -8,14 +6,14 @@ namespace Content.Shared.EntityTable.ValueSelector;
|
|||||||
public sealed partial class ConstantNumberSelector : NumberSelector
|
public sealed partial class ConstantNumberSelector : NumberSelector
|
||||||
{
|
{
|
||||||
[DataField]
|
[DataField]
|
||||||
public float Value = 1;
|
public int Value = 1;
|
||||||
|
|
||||||
public ConstantNumberSelector(float value)
|
public ConstantNumberSelector(int value)
|
||||||
{
|
{
|
||||||
Value = value;
|
Value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override float Get(System.Random rand, IEntityManager entMan, IPrototypeManager proto)
|
public override int Get(System.Random rand)
|
||||||
{
|
{
|
||||||
return Value;
|
return Value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using Content.Shared.EntityTable.EntitySelectors;
|
using Content.Shared.EntityTable.EntitySelectors;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
|
|
||||||
namespace Content.Shared.EntityTable.ValueSelector;
|
namespace Content.Shared.EntityTable.ValueSelector;
|
||||||
|
|
||||||
@@ -10,7 +9,5 @@ namespace Content.Shared.EntityTable.ValueSelector;
|
|||||||
[ImplicitDataDefinitionForInheritors, UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)]
|
[ImplicitDataDefinitionForInheritors, UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)]
|
||||||
public abstract partial class NumberSelector
|
public abstract partial class NumberSelector
|
||||||
{
|
{
|
||||||
public abstract float Get(System.Random rand,
|
public abstract int Get(System.Random rand);
|
||||||
IEntityManager entMan,
|
|
||||||
IPrototypeManager proto);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
using System.Numerics;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
using Robust.Shared.Random;
|
|
||||||
|
|
||||||
namespace Content.Shared.EntityTable.ValueSelector;
|
namespace Content.Shared.EntityTable.ValueSelector;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -10,10 +6,12 @@ namespace Content.Shared.EntityTable.ValueSelector;
|
|||||||
public sealed partial class RangeNumberSelector : NumberSelector
|
public sealed partial class RangeNumberSelector : NumberSelector
|
||||||
{
|
{
|
||||||
[DataField]
|
[DataField]
|
||||||
public Vector2 Range = new(1, 1);
|
public Vector2i Range = new(1, 1);
|
||||||
|
|
||||||
public override float Get(System.Random rand, IEntityManager entMan, IPrototypeManager proto)
|
public override int Get(System.Random rand)
|
||||||
{
|
{
|
||||||
return rand.NextFloat(Range.X, Range.Y + 1);
|
// rand.Next() is inclusive on the first number and exclusive on the second number,
|
||||||
|
// so we add 1 to the second number.
|
||||||
|
return rand.Next(Range.X, Range.Y + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user