mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-04-30 03:22:04 -04:00
Fixed green/red colors and added support for multiple bets from the same participant
This commit is contained in:
@@ -78,8 +78,9 @@ public class KasinoKrash : IDisposable
|
||||
var multi = TheGame.CurrentMulti;
|
||||
var payout = multi * krashBet.Wager - krashBet.Wager;
|
||||
var newBalance = await Money.NewWagerAsync(krashBet.Gambler.Id, krashBet.Wager, payout, WagerGame.Krash, ct: _ct);
|
||||
var green = await SettingsProvider.GetValueAsync(BuiltIn.Keys.KiwiFarmsGreenColor);
|
||||
await _kfChatBot.SendChatMessageAsync(
|
||||
$"{krashBet.Gambler.User.FormatUsername()}, you [color=limegreen][b]won[/b][/color] {await payout.FormatKasinoCurrencyAsync()} by cashing out the krash at {multi}x!",
|
||||
$"{krashBet.Gambler.User.FormatUsername()}, you [color={green.Value}][b]won[/b][/color] {await payout.FormatKasinoCurrencyAsync()} by cashing out the krash at {multi}x!",
|
||||
true, autoDeleteAfter: TimeSpan.FromSeconds(10));
|
||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
||||
{
|
||||
@@ -97,9 +98,8 @@ public class KasinoKrash : IDisposable
|
||||
if (TheGame == null) throw new InvalidOperationException("Failed to retrieve state or no krash is in progress");
|
||||
_ = RunGame();
|
||||
}
|
||||
if (TheGame.Bets.Any(x => x.Gambler.User.KfId == gambler.User.KfId)) return;
|
||||
if (!TheGame.BetsAccepted) return;
|
||||
var bet = new KrashBet{Gambler = gambler, Wager = wager, Multi = multi};
|
||||
var bet = new KrashBet { Gambler = gambler, Wager = wager, Multi = multi };
|
||||
TheGame.Bets.Add(bet);
|
||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
||||
{
|
||||
@@ -140,7 +140,7 @@ public class KasinoKrash : IDisposable
|
||||
var bets = "";
|
||||
foreach (var bet in TheGame.Bets)
|
||||
{
|
||||
bets += $"{bet.Gambler.User.FormatUsername()} is betting {bet.Wager}";
|
||||
bets += $"{bet.Gambler.User.FormatUsername()} is betting {await bet.Wager.FormatKasinoCurrencyAsync()}";
|
||||
if (bet.Multi != -1) bets += $" on {bet.Multi}x!";
|
||||
else bets += " on freehand!";
|
||||
bets += "[br]";
|
||||
@@ -164,6 +164,8 @@ public class KasinoKrash : IDisposable
|
||||
var growthRate = 1.02m;
|
||||
var growthAcceleration = 1.00185m;
|
||||
await _kfChatBot.KfClient.DeleteMessageAsync(msg.ChatMessageUuid!);
|
||||
var green = (await SettingsProvider.GetValueAsync(BuiltIn.Keys.KiwiFarmsGreenColor)).Value;
|
||||
var red = (await SettingsProvider.GetValueAsync(BuiltIn.Keys.KiwiFarmsRedColor)).Value;
|
||||
msg = await _kfChatBot.SendChatMessageAsync($"[center][b][size=200][color=limegreen]{TheGame.CurrentMulti}x");
|
||||
var defaultGrowth = 0.01m;
|
||||
interval = TimeSpan.FromSeconds(0.1);
|
||||
@@ -171,14 +173,14 @@ public class KasinoKrash : IDisposable
|
||||
while (await timer.WaitForNextTickAsync(_ct))
|
||||
{
|
||||
TheGame.KrashAccepted = true;
|
||||
await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageUuid!, $"[center][b][size=200][color=limegreen]{Math.Truncate(TheGame.CurrentMulti*100)/100}x");
|
||||
await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageUuid!, $"[center][b][size=200][color={green}]{Math.Truncate(TheGame.CurrentMulti*100)/100}x");
|
||||
TheGame.CurrentMulti += defaultGrowth;
|
||||
defaultGrowth *= growthRate;
|
||||
growthRate *= growthAcceleration;
|
||||
if (TheGame.CurrentMulti >= TheGame.FinalMulti) break;
|
||||
}
|
||||
//at this point the game crashes and everybody who did not cash out or pre bet on a multi will have balance subtracted, winners will be paid out.
|
||||
await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageUuid!, $"[center][b][size=200][color=red]{TheGame.FinalMulti}x");
|
||||
await _kfChatBot.KfClient.EditMessageAsync(msg.ChatMessageUuid!, $"[center][b][size=200][color={red}]{TheGame.FinalMulti}x");
|
||||
foreach (var bet in TheGame.Bets)
|
||||
{
|
||||
var freshBalance = await Money.GetGamblerEntityAsync(bet.Gambler.User.Id, ct: _ct);
|
||||
@@ -195,7 +197,7 @@ public class KasinoKrash : IDisposable
|
||||
var payout = bet.Multi * bet.Wager - bet.Wager;
|
||||
var newBalance = await Money.NewWagerAsync(bet.Gambler.Id, bet.Wager, payout, WagerGame.Krash, ct: _ct);
|
||||
await _kfChatBot.SendChatMessageAsync(
|
||||
$"{bet.Gambler.User.FormatUsername()}, you [color=limegreen][b]won[/b][/color] {await payout.FormatKasinoCurrencyAsync()}!",
|
||||
$"{bet.Gambler.User.FormatUsername()}, you [color={green}][b]won[/b][/color] {await payout.FormatKasinoCurrencyAsync()}!",
|
||||
true, autoDeleteAfter: TimeSpan.FromSeconds(10));
|
||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
||||
{
|
||||
@@ -208,7 +210,7 @@ public class KasinoKrash : IDisposable
|
||||
//automatically lose, no pre entered multi or it was greater than the final multi and failed to cash out
|
||||
var newBalance = await Money.NewWagerAsync(bet.Gambler.Id, bet.Wager, -bet.Wager, WagerGame.Krash, ct: _ct);
|
||||
await _kfChatBot.SendChatMessageAsync(
|
||||
$"{bet.Gambler.User.FormatUsername()}, you [color=red][b]lost[/b][/color] {await bet.Wager.FormatKasinoCurrencyAsync()}!",
|
||||
$"{bet.Gambler.User.FormatUsername()}, you [color={red}][b]lost[/b][/color] {await bet.Wager.FormatKasinoCurrencyAsync()}!",
|
||||
true, autoDeleteAfter: TimeSpan.FromSeconds(10));
|
||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user