mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-05-02 04: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 multi = TheGame.CurrentMulti;
|
||||||
var payout = multi * krashBet.Wager - krashBet.Wager;
|
var payout = multi * krashBet.Wager - krashBet.Wager;
|
||||||
var newBalance = await Money.NewWagerAsync(krashBet.Gambler.Id, krashBet.Wager, payout, WagerGame.Krash, ct: _ct);
|
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(
|
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));
|
true, autoDeleteAfter: TimeSpan.FromSeconds(10));
|
||||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
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");
|
if (TheGame == null) throw new InvalidOperationException("Failed to retrieve state or no krash is in progress");
|
||||||
_ = RunGame();
|
_ = RunGame();
|
||||||
}
|
}
|
||||||
if (TheGame.Bets.Any(x => x.Gambler.User.KfId == gambler.User.KfId)) return;
|
|
||||||
if (!TheGame.BetsAccepted) 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);
|
TheGame.Bets.Add(bet);
|
||||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
if (_kfChatBot.BotServices.KasinoShop != null)
|
||||||
{
|
{
|
||||||
@@ -140,7 +140,7 @@ public class KasinoKrash : IDisposable
|
|||||||
var bets = "";
|
var bets = "";
|
||||||
foreach (var bet in TheGame.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!";
|
if (bet.Multi != -1) bets += $" on {bet.Multi}x!";
|
||||||
else bets += " on freehand!";
|
else bets += " on freehand!";
|
||||||
bets += "[br]";
|
bets += "[br]";
|
||||||
@@ -164,6 +164,8 @@ public class KasinoKrash : IDisposable
|
|||||||
var growthRate = 1.02m;
|
var growthRate = 1.02m;
|
||||||
var growthAcceleration = 1.00185m;
|
var growthAcceleration = 1.00185m;
|
||||||
await _kfChatBot.KfClient.DeleteMessageAsync(msg.ChatMessageUuid!);
|
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");
|
msg = await _kfChatBot.SendChatMessageAsync($"[center][b][size=200][color=limegreen]{TheGame.CurrentMulti}x");
|
||||||
var defaultGrowth = 0.01m;
|
var defaultGrowth = 0.01m;
|
||||||
interval = TimeSpan.FromSeconds(0.1);
|
interval = TimeSpan.FromSeconds(0.1);
|
||||||
@@ -171,14 +173,14 @@ public class KasinoKrash : IDisposable
|
|||||||
while (await timer.WaitForNextTickAsync(_ct))
|
while (await timer.WaitForNextTickAsync(_ct))
|
||||||
{
|
{
|
||||||
TheGame.KrashAccepted = true;
|
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;
|
TheGame.CurrentMulti += defaultGrowth;
|
||||||
defaultGrowth *= growthRate;
|
defaultGrowth *= growthRate;
|
||||||
growthRate *= growthAcceleration;
|
growthRate *= growthAcceleration;
|
||||||
if (TheGame.CurrentMulti >= TheGame.FinalMulti) break;
|
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.
|
//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)
|
foreach (var bet in TheGame.Bets)
|
||||||
{
|
{
|
||||||
var freshBalance = await Money.GetGamblerEntityAsync(bet.Gambler.User.Id, ct: _ct);
|
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 payout = bet.Multi * bet.Wager - bet.Wager;
|
||||||
var newBalance = await Money.NewWagerAsync(bet.Gambler.Id, bet.Wager, payout, WagerGame.Krash, ct: _ct);
|
var newBalance = await Money.NewWagerAsync(bet.Gambler.Id, bet.Wager, payout, WagerGame.Krash, ct: _ct);
|
||||||
await _kfChatBot.SendChatMessageAsync(
|
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));
|
true, autoDeleteAfter: TimeSpan.FromSeconds(10));
|
||||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
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
|
//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);
|
var newBalance = await Money.NewWagerAsync(bet.Gambler.Id, bet.Wager, -bet.Wager, WagerGame.Krash, ct: _ct);
|
||||||
await _kfChatBot.SendChatMessageAsync(
|
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));
|
true, autoDeleteAfter: TimeSpan.FromSeconds(10));
|
||||||
if (_kfChatBot.BotServices.KasinoShop != null)
|
if (_kfChatBot.BotServices.KasinoShop != null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user