diff --git a/KfChatDotNetBot/Commands/Kasino/SlotsCommand.cs b/KfChatDotNetBot/Commands/Kasino/SlotsCommand.cs index 86f521b..090b24d 100644 --- a/KfChatDotNetBot/Commands/Kasino/SlotsCommand.cs +++ b/KfChatDotNetBot/Commands/Kasino/SlotsCommand.cs @@ -186,7 +186,7 @@ public class SlotsCommand : ICommand public decimal RunningTotalDisplay = 0; private int _activeFeatureTier = 0, _currentFeatureSpin = 0; private bool _showGoldCircle = false; - + private bool _currentlyInFeature = false; private readonly RandomShim _rand = RandomShim.Create(StandardRng.Create()); private static readonly List ExpanderWild = @@ -323,7 +323,7 @@ public class SlotsCommand : ICommand DrawAutoScaledText($"BET: ${_userBet.FormatKasinoCurrencyAsync(wrapInPlainBbCode: false).Result}", largeFont, Color.White, new RectangleF(20, 700, 180, 100)); DrawAutoScaledText($"WIN: ${RunningTotalDisplay.FormatKasinoCurrencyAsync(wrapInPlainBbCode: false).Result}", largeFont, Color.Gold, new RectangleF(380, 700, 200, 100)); - if (_currentFeatureSpin > 0) { + if (_currentFeatureSpin > 0 && _currentlyInFeature) { var total = _activeFeatureTier switch { 3 => 3, 4 => 5, 5 => 10, _ => 0 }; DrawAutoScaledText($"SPIN {_currentFeatureSpin}/{total}", largeFont, Color.SkyBlue, new RectangleF(210, 700, 160, 100)); } @@ -378,8 +378,9 @@ public class SlotsCommand : ICommand if (featureSpins == 0) { _activeFeatureTier = fCount >= 5 ? 5 : (fCount >= 3 ? fCount : 0); _showGoldCircle = _activeFeatureTier >= 3; _currentFeatureSpin = 0; + _currentlyInFeature = false; } else { - _showGoldCircle = true; _currentFeatureSpin = featureSpins; + _showGoldCircle = true; _currentFeatureSpin = featureSpins; _currentlyInFeature = true; } ProcessReelsAndWins(); diff --git a/KfChatDotNetBot/Services/KasinoMines.cs b/KfChatDotNetBot/Services/KasinoMines.cs index 268d185..2f262bf 100644 --- a/KfChatDotNetBot/Services/KasinoMines.cs +++ b/KfChatDotNetBot/Services/KasinoMines.cs @@ -68,7 +68,7 @@ public class KasinoMines } public async Task Explode((int r, int c) mineLocation, SentMessageTrackerModel msg) { - if (LastMessageId != msg.ChatMessageId) + if (LastMessageId != msg.ChatMessageId.Value) { await ResetMessage(msg); } @@ -128,7 +128,7 @@ public class KasinoMines } } - await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageId!.Value, $"{str}[br]{Creator.User.FormatUsername()}"); + await _kfChatBot.KfClient.EditMessageAsync(LastMessageId, $"{str}[br]{Creator.User.FormatUsername()}"); } await Task.Delay(TimeSpan.FromSeconds(10)); @@ -291,7 +291,7 @@ public class KasinoMines await GetSavedGames(); var game = ActiveGames[gamblerId]; game.LastInteracted = DateTimeOffset.UtcNow; - if (game.LastMessageId != msg.ChatMessageId) + if (game.LastMessageId != msg.ChatMessageId.Value) { await game.ResetMessage(msg); } @@ -299,7 +299,7 @@ public class KasinoMines (int r, int c) coord; while (betCoords.Count != count)//creates a list of coordinates to bet on using the coordinate bet function { - coord = (Money.GetRandomNumber(game.Creator, 0, game.Size), Money.GetRandomNumber(game.Creator, 0, game.Size)); + coord = (Money.GetRandomNumber(game.Creator, 0, game.Size-1), Money.GetRandomNumber(game.Creator, 0, game.Size-1)); if (!betCoords.Contains(coord) && !game.BetsPlaced.Contains(coord)) betCoords.Add(coord); } @@ -311,7 +311,7 @@ public class KasinoMines await GetSavedGames(); var game = ActiveGames[gamblerId]; game.LastInteracted = DateTimeOffset.UtcNow; - if (game.LastMessageId != msg.ChatMessageId) + if (game.LastMessageId != msg.ChatMessageId.Value) { await game.ResetMessage(msg); } @@ -322,7 +322,7 @@ public class KasinoMines { game.BetsPlaced.Add(coord); await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageId!.Value, game.ToString()); - await game.Explode((coord.r, coord.c), msg); + game.Explode((coord.r, coord.c), msg); var newBalance = await Money.NewWagerAsync(game.Creator.Id, game.Wager, -game.Wager, WagerGame.Mines); await _kfChatBot.SendChatMessageAsync( $"{game.Creator.User.FormatUsername()}, you lost your {game.Wager.FormatKasinoCurrencyAsync()} bet on mines, collecting {game.BetsPlaced.Count} gems until you hit one of {game.Mines} mines. Net: {(-game.Wager).FormatKasinoCurrencyAsync()}. Balance: {newBalance.FormatKasinoCurrencyAsync()}", @@ -338,7 +338,7 @@ public class KasinoMines await game.RigBoard(coord); await Task.Delay(50); await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageId!.Value, game.ToString()); - await game.Explode(coord, msg); + game.Explode(coord, msg); var newBalance = await Money.NewWagerAsync(game.Creator.Id, game.Wager, -game.Wager, WagerGame.Mines); await _kfChatBot.SendChatMessageAsync( $"{game.Creator.User.FormatUsername()}, you lost your {game.Wager.FormatKasinoCurrencyAsync()} bet on mines, collecting {game.BetsPlaced.Count} gems until you hit one of {game.Mines} mines. Net: {(-game.Wager).FormatKasinoCurrencyAsync()}. Balance: {newBalance.FormatKasinoCurrencyAsync()}",