Added betroll bettest, fixed a bug which caused betroll to have very low payout

This commit is contained in:
Kwoth
2022-07-31 21:26:34 +02:00
parent 616f01f8b2
commit 82d89148f3
5 changed files with 9 additions and 21 deletions

View File

@@ -25,20 +25,6 @@ public class NadekoRandom : Random
_rng.GetBytes(bytes); _rng.GetBytes(bytes);
return Math.Abs(BitConverter.ToInt32(bytes, 0)) % maxValue; return Math.Abs(BitConverter.ToInt32(bytes, 0)) % maxValue;
} }
public byte Next(byte minValue, byte maxValue)
{
if (minValue > maxValue)
throw new ArgumentOutOfRangeException(nameof(maxValue));
if (minValue == maxValue)
return minValue;
var bytes = new byte[1];
_rng.GetBytes(bytes);
return (byte)((bytes[0] % (maxValue - minValue)) + minValue);
}
public override int Next(int minValue, int maxValue) public override int Next(int minValue, int maxValue)
{ {

View File

@@ -12,7 +12,7 @@ public sealed class BetflipGame
public BetflipResult Flip(byte guess, decimal amount) public BetflipResult Flip(byte guess, decimal amount)
{ {
var side = _rng.Next(0, 2); var side = (byte)_rng.Next(0, 2);
if (side == guess) if (side == guess)
{ {
return new BetflipResult() return new BetflipResult()

View File

@@ -13,7 +13,7 @@ public sealed class BetrollGame
public BetrollResult Roll(decimal amount = 0) public BetrollResult Roll(decimal amount = 0)
{ {
var roll = _rng.Next(0, 101); var roll = _rng.Next(1, 101);
for (var i = 0; i < _thresholdPairs.Length; i++) for (var i = 0; i < _thresholdPairs.Length; i++)
{ {

View File

@@ -8,9 +8,9 @@ public class SlotGame
{ {
var rolls = new[] var rolls = new[]
{ {
_rng.Next(0, 6), (byte)_rng.Next(0, 6),
_rng.Next(0, 6), (byte)_rng.Next(0, 6),
_rng.Next(0, 6) (byte)_rng.Next(0, 6)
}; };
ref var a = ref rolls[0]; ref var a = ref rolls[0];

View File

@@ -875,11 +875,12 @@ public partial class Gambling : GamblingModule<GamblingService>
public enum GambleTestTarget public enum GambleTestTarget
{ {
Slot, Slot,
Betroll,
Betflip,
BetflipT,
BetDraw, BetDraw,
BetDrawHL, BetDrawHL,
BetDrawRB, BetDrawRB,
Betflip,
BetflipT,
Lula, Lula,
Rps, Rps,
} }
@@ -920,6 +921,7 @@ public partial class Gambling : GamblingModule<GamblingService>
GambleTestTarget.BetflipT => (await _gs.BetFlipAsync(ctx.User.Id, 0, 1)).AsT0.Multiplier, GambleTestTarget.BetflipT => (await _gs.BetFlipAsync(ctx.User.Id, 0, 1)).AsT0.Multiplier,
GambleTestTarget.Lula => (await _gs.LulaAsync(ctx.User.Id, 0)).AsT0.Multiplier, GambleTestTarget.Lula => (await _gs.LulaAsync(ctx.User.Id, 0)).AsT0.Multiplier,
GambleTestTarget.Rps => (await _gs.RpsAsync(ctx.User.Id, 0, (byte)(i % 3))).AsT0.Multiplier, GambleTestTarget.Rps => (await _gs.RpsAsync(ctx.User.Id, 0, (byte)(i % 3))).AsT0.Multiplier,
GambleTestTarget.Betroll => (await _gs.BetRollAsync(ctx.User.Id, 0)).AsT0.Multiplier,
_ => throw new ArgumentOutOfRangeException(nameof(target)) _ => throw new ArgumentOutOfRangeException(nameof(target))
}; };