]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
fix RangeNumberSelector to actually be inclusive (#36155)
authorArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Mon, 14 Apr 2025 21:02:49 +0000 (14:02 -0700)
committerGitHub <noreply@github.com>
Mon, 14 Apr 2025 21:02:49 +0000 (17:02 -0400)
* 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.

Content.Shared/EntityTable/EntitySelectors/EntSelector.cs
Content.Shared/EntityTable/EntitySelectors/EntityTableSelector.cs
Content.Shared/EntityTable/ValueSelector/ConstantNumberSelector.cs
Content.Shared/EntityTable/ValueSelector/NumberSelector.cs
Content.Shared/EntityTable/ValueSelector/RangeNumberSelector.cs

index eea4dd85a77570b5d311bfc21564b828bb9f56ec..8443ec2c06d14bdab312f36da38c4d8c9445761d 100644 (file)
@@ -20,7 +20,7 @@ public sealed partial class EntSelector : EntityTableSelector
         IEntityManager entMan,
         IPrototypeManager proto)
     {
-        var num = (int) Math.Round(Amount.Get(rand, entMan, proto));
+        var num = Amount.Get(rand);
         for (var i = 0; i < num; i++)
         {
             yield return Id;
index 2533f17dc51c9589465344da1be86e39a64949c0..d0a7a4d57898695117ab5c98b0b45e7aee227b0b 100644 (file)
@@ -30,7 +30,7 @@ public abstract partial class EntityTableSelector
         IEntityManager entMan,
         IPrototypeManager proto)
     {
-        var rolls = Rolls.Get(rand, entMan, proto);
+        var rolls = Rolls.Get(rand);
         for (var i = 0; i < rolls; i++)
         {
             if (!rand.Prob(Prob))
index 0baf6785f4f26967a0a5238a070fbcef79d4e744..a1a7e4ac582b5d8e2864df719a383cdf9c331a68 100644 (file)
@@ -1,5 +1,3 @@
-using Robust.Shared.Prototypes;
-
 namespace Content.Shared.EntityTable.ValueSelector;
 
 /// <summary>
@@ -8,14 +6,14 @@ namespace Content.Shared.EntityTable.ValueSelector;
 public sealed partial class ConstantNumberSelector : NumberSelector
 {
     [DataField]
-    public float Value = 1;
+    public int Value = 1;
 
-    public ConstantNumberSelector(float value)
+    public ConstantNumberSelector(int value)
     {
         Value = value;
     }
 
-    public override float Get(System.Random rand, IEntityManager entMan, IPrototypeManager proto)
+    public override int Get(System.Random rand)
     {
         return Value;
     }
index 8a7743c9dd81d846d33206a1bd27a1378198ff40..763578a38412fcf15d0f86474ac1ca1966f28bfa 100644 (file)
@@ -1,6 +1,5 @@
 using Content.Shared.EntityTable.EntitySelectors;
 using JetBrains.Annotations;
-using Robust.Shared.Prototypes;
 
 namespace Content.Shared.EntityTable.ValueSelector;
 
@@ -10,7 +9,5 @@ namespace Content.Shared.EntityTable.ValueSelector;
 [ImplicitDataDefinitionForInheritors, UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)]
 public abstract partial class NumberSelector
 {
-    public abstract float Get(System.Random rand,
-        IEntityManager entMan,
-        IPrototypeManager proto);
+    public abstract int Get(System.Random rand);
 }
index e8356fcbb72943a9b4a2d6569bf42f861ec7faec..b84736d1ee933007dfc4d5f3755f1f628d4ac878 100644 (file)
@@ -1,7 +1,3 @@
-using System.Numerics;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Random;
-
 namespace Content.Shared.EntityTable.ValueSelector;
 
 /// <summary>
@@ -10,10 +6,12 @@ namespace Content.Shared.EntityTable.ValueSelector;
 public sealed partial class RangeNumberSelector : NumberSelector
 {
     [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);
     }
 }