From 48e726b3fa26ec116aa372c02f30455548af1520 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Mon, 24 Jan 2022 04:15:15 +0700 Subject: [PATCH] Adding the gifs --- Bot/Embeds.fs | 22 +++++++++++++++++++++- Bot/HackerBattle.fs | 6 ++++++ Bot/PlayerInteractions.fs | 2 +- Bot/Store.fs | 2 +- Bot/Trainer.fs | 3 +++ Shared/Shared.fs | 3 +-- 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Bot/Embeds.fs b/Bot/Embeds.fs index e0245da..03c08b9 100644 --- a/Bot/Embeds.fs +++ b/Bot/Embeds.fs @@ -5,6 +5,26 @@ open Degenz.Shared open DSharpPlus.Entities open AsciiTableFormatter +let getHackGif = + function + | Hack.Virus -> "https://s10.gifyu.com/images/Attack-DegenZ.gif" + | Hack.Ransom -> "https://s10.gifyu.com/images/Mind-Control-Degenz-V2.gif" + | Hack.Worm -> "https://s10.gifyu.com/images/WormBugAttack_Degenz.gif" + | Hack.DDos -> "https://s10.gifyu.com/images/Attack-DegenZ.gif" + | Hack.Crack -> "https://s10.gifyu.com/images/Attack-DegenZ.gif" + | Hack.Injection -> "https://s10.gifyu.com/images/Attack-DegenZ.gif" + | _ -> "https://s10.gifyu.com/images/Hacker-Degenz-V2.gif" + +let getShieldGif = + function + | Shield.Firewall -> "https://s10.gifyu.com/images/Defense-GIF-1-Degenz.gif" + | Shield.PortScan -> "https://s10.gifyu.com/images/PortScanDefense_Degenz.gif" + | Shield.Encryption -> "https://s10.gifyu.com/images/Anonymous-Degenz-V2.gif" + | Shield.Hardening -> "https://s10.gifyu.com/images/Encryption-Degenz-V2.gif" + | Shield.Sanitation -> "https://s10.gifyu.com/images/VPN-Degenz.gif" + | Shield.Cypher -> "https://s10.gifyu.com/images/Matrix_Degenz.gif" + | _ -> "https://s10.gifyu.com/images/Hacker-Degenz-V2.gif" + let constructEmbed message = let builder = DiscordEmbedBuilder() builder.Color <- Optional(DiscordColor.Blurple) @@ -83,7 +103,7 @@ let storeListing store = |> Array.map (fun (item : Item) -> let itemClass = if itemType = ItemType.Hack - then weaponInventory + then hackInventory |> Array.find (fun w -> item.Name = string w) |> int |> getClass diff --git a/Bot/HackerBattle.fs b/Bot/HackerBattle.fs index 33ca5a1..97374fb 100644 --- a/Bot/HackerBattle.fs +++ b/Bot/HackerBattle.fs @@ -76,8 +76,11 @@ let successfulHack (event : ComponentInteractionCreateEventArgs) attacker defend do! updateCombatants attacker defender hack prize + let embed = DiscordEmbedBuilder() + embed.ImageUrl <- Embeds.getHackGif hack let builder = DiscordInteractionResponseBuilder() builder.IsEphemeral <- true + builder.AddEmbed embed |> ignore builder.Content <- $"Successfully hacked {defender.Name} using {hack}! You just won {prize} GoodBoyTokenz!" do! event.Interaction.CreateResponseAsync(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask @@ -199,7 +202,10 @@ let handleDefense (event : ComponentInteractionCreateEventArgs) = match alreadyUsedShield , updatedDefenses.Length < 2 with | false , true -> let builder = DiscordInteractionResponseBuilder() + let embed = DiscordEmbedBuilder() + embed.ImageUrl <- Embeds.getShieldGif shield builder.IsEphemeral <- true + builder.AddEmbed embed |> ignore builder.Content <- $"Mounted a {shield} defense for 6 hours" do! event.Interaction.CreateResponseAsync(InteractionResponseType.ChannelMessageWithSource, builder) |> Async.AwaitTask diff --git a/Bot/PlayerInteractions.fs b/Bot/PlayerInteractions.fs index 3f32c2e..3ba23cb 100644 --- a/Bot/PlayerInteractions.fs +++ b/Bot/PlayerInteractions.fs @@ -21,7 +21,7 @@ module Commands = let rand = System.Random(System.Guid.NewGuid().GetHashCode()) let getRandom (actions : 'a array) = actions.[rand.Next(0, Math.Max(0, actions.Length - 1))] - let weapons = [| getRandom weaponInventory |] + let weapons = [| getRandom hackInventory |] let shields = [| getRandom shieldInventory |] { DiscordId = membr diff --git a/Bot/Store.fs b/Bot/Store.fs index 400ad5b..712ca85 100644 --- a/Bot/Store.fs +++ b/Bot/Store.fs @@ -37,7 +37,7 @@ let buyHack (ctx : InteractionContext) hackId = if newBalance >= 0 then let playerHasItem = player.Weapons |> Array.exists (fun w -> item.Name = string w) if not playerHasItem then - let weapon = weaponInventory |> Array.find (fun w -> item.Name = string w) + let weapon = hackInventory |> Array.find (fun w -> item.Name = string w) let p = { player with Bank = newBalance ; Weapons = Array.append [| weapon |] player.Weapons } do! DbService.updatePlayer p do! createSimpleResponseAsync $"Successfully purchased {item.Name}! You now have {newBalance} remaining" ctx diff --git a/Bot/Trainer.fs b/Bot/Trainer.fs index ce2ff83..413be3c 100644 --- a/Bot/Trainer.fs +++ b/Bot/Trainer.fs @@ -11,6 +11,9 @@ let sendInitialEmbed (client : DiscordClient) = async { let! channel = client.GetChannelAsync(GuildEnvironment.channelTraining) |> Async.AwaitTask let builder = DiscordMessageBuilder() + let embed = DiscordEmbedBuilder() + embed.ImageUrl <- "https://s10.gifyu.com/images/MasterTraining_Degenz.gif" + builder.AddEmbed embed |> ignore builder.Content <- "Welcome to the hacker dojo you degenerate, are you ready to get started?" let button = DiscordButtonComponent(ButtonStyle.Success, $"Trainer-1", $"Get started") :> DiscordComponent builder.AddComponents [| button |] |> ignore diff --git a/Shared/Shared.fs b/Shared/Shared.fs index ba5d66e..87c075c 100644 --- a/Shared/Shared.fs +++ b/Shared/Shared.fs @@ -38,7 +38,7 @@ type Item = { Cost : int } -let weaponInventory = [| Hack.Virus ; Hack.Ransom ; Hack.DDos ; Hack.Worm ; Hack.Crack ; Hack.Injection |] +let hackInventory = [| Hack.Virus ; Hack.Ransom ; Hack.DDos ; Hack.Worm ; Hack.Crack ; Hack.Injection |] let shieldInventory = [| Shield.Firewall ; Shield.PortScan ; Shield.Encryption ; Shield.Cypher ; Shield.Hardening ; Shield.Sanitation |] let getClass = @@ -75,7 +75,6 @@ type Player = Defenses: Defense array Bank: int } - let createSimpleResponseAsync msg (ctx: InteractionContext) = async { let builder = DiscordInteractionResponseBuilder()