diff --git a/Bot/Game.fs b/Bot/Game.fs index ae6f695..8e1d0fe 100644 --- a/Bot/Game.fs +++ b/Bot/Game.fs @@ -11,8 +11,8 @@ module Game = let getClassButtonColor = function | 0 -> ButtonStyle.Danger - | 1 -> ButtonStyle.Success - | _ -> ButtonStyle.Primary + | 1 -> ButtonStyle.Primary + | _ -> ButtonStyle.Success let getClassEmbedColor = function | 0 -> DiscordColor.Red diff --git a/Bot/HackerBattle.fs b/Bot/HackerBattle.fs index 37b1182..e428f2c 100644 --- a/Bot/HackerBattle.fs +++ b/Bot/HackerBattle.fs @@ -101,13 +101,13 @@ let updateCombatants successfulHack (attacker : PlayerData) (defender : PlayerDa let successfulHack (ctx : IDiscordContext) attacker defender hack = async { - let finalAmount = max 0 (int defender.Bank - hack.Power) * 1 - do! updateCombatants true attacker defender hack finalAmount + let prizeAmount = if hack.Power < int defender.Bank then hack.Power else int defender.Bank + do! updateCombatants true attacker defender hack (prizeAmount * 1) - let embed = Embeds.responseSuccessfulHack true defender.DiscordId finalAmount hack + let embed = Embeds.responseSuccessfulHack true defender.DiscordId prizeAmount hack do! ctx.FollowUp embed |> Async.AwaitTask - let builder = Embeds.eventSuccessfulHack ctx defender finalAmount + let builder = Embeds.eventSuccessfulHack ctx defender prizeAmount let channel = ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle) do! channel.SendMessageAsync(builder) |> Async.AwaitTask @@ -116,14 +116,14 @@ let successfulHack (ctx : IDiscordContext) attacker defender hack = let failedHack (ctx : IDiscordContext) attacker defender hack = async { - let finalAmount = max 0 (int defender.Bank - hack.Power) * 1 - let msg = $"Hack failed! {defender.Name} was able to mount a successful defense! You lost {finalAmount} $GBT!" + let lostAmount = if hack.Power < int attacker.Bank then hack.Power else int attacker.Bank + let msg = $"Hack failed! {defender.Name} was able to mount a successful defense! You lost {lostAmount} $GBT!" do! sendFollowUpMessage ctx msg - do! updateCombatants false attacker defender hack -finalAmount + do! updateCombatants false attacker defender hack (-lostAmount * 1) let builder = DiscordMessageBuilder() - builder.WithContent($"Hacking attempt failed! <@{defender.DiscordId}> defended hack from {ctx.GetDiscordMember().Username} and took {finalAmount} $GBT from them! ") |> ignore + builder.WithContent($"Hacking attempt failed! <@{defender.DiscordId}> defended hack from {ctx.GetDiscordMember().Username} and took {lostAmount} $GBT from them! ") |> ignore let channel = (ctx.GetGuild().GetChannel(GuildEnvironment.channelEventsHackerBattle)) do! channel.SendMessageAsync(builder) |> Async.AwaitTask diff --git a/Bot/Store.fs b/Bot/Store.fs index 7b7010b..eae1ee4 100644 --- a/Bot/Store.fs +++ b/Bot/Store.fs @@ -52,8 +52,7 @@ let handleBuyItem (ctx : IDiscordContext) itemId = |> handleResultWithResponse ctx (fun player -> async { let newBalance = player.Bank - item.Price let p = { player with Bank = newBalance ; Inventory = Array.append [| item |] player.Inventory } - do! DbService.updatePlayer GuildEnvironment.pgDb p - |> Async.Ignore + do! DbService.updatePlayer GuildEnvironment.pgDb p |> Async.Ignore do! sendFollowUpMessage ctx $"Successfully purchased {item.Name}! You now have {newBalance} 💰$GBT remaining" }) }) diff --git a/DbService/DbService.fs b/DbService/DbService.fs index 4bdfc79..1c0621e 100644 --- a/DbService/DbService.fs +++ b/DbService/DbService.fs @@ -3,8 +3,6 @@ open Degenz.Types open System -//open MongoDB.Bson -//open MongoDB.Driver open Npgsql.FSharp type User = { @@ -21,10 +19,6 @@ let mapBack user : PlayerData = Inventory = user.Inventory |> Array.choose (fun id -> Armory.battleItems |> Array.tryFind (fun i -> i.Id = id)) Events = [||] Traits = { PlayerTraits.empty with Strength = user.Strength } -// Achievements = -// tryWithDefault bson "Achievements" [||] (fun v -> -// v.AsBsonArray |> Seq.map (fun (bv : BsonValue) -> bv.AsString) |> Seq.toArray) -// XP = tryWithDefault bson "XP" 0 (fun v -> v.AsInt32) Bank = user.Bank }