Adding the gifs

This commit is contained in:
Joseph Ferano 2022-01-24 04:15:15 +07:00
parent 2553d789d1
commit 48e726b3fa
6 changed files with 33 additions and 5 deletions

View File

@ -5,6 +5,26 @@ open Degenz.Shared
open DSharpPlus.Entities open DSharpPlus.Entities
open AsciiTableFormatter 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 constructEmbed message =
let builder = DiscordEmbedBuilder() let builder = DiscordEmbedBuilder()
builder.Color <- Optional(DiscordColor.Blurple) builder.Color <- Optional(DiscordColor.Blurple)
@ -83,7 +103,7 @@ let storeListing store =
|> Array.map (fun (item : Item) -> |> Array.map (fun (item : Item) ->
let itemClass = let itemClass =
if itemType = ItemType.Hack if itemType = ItemType.Hack
then weaponInventory then hackInventory
|> Array.find (fun w -> item.Name = string w) |> Array.find (fun w -> item.Name = string w)
|> int |> int
|> getClass |> getClass

View File

@ -76,8 +76,11 @@ let successfulHack (event : ComponentInteractionCreateEventArgs) attacker defend
do! updateCombatants attacker defender hack prize do! updateCombatants attacker defender hack prize
let embed = DiscordEmbedBuilder()
embed.ImageUrl <- Embeds.getHackGif hack
let builder = DiscordInteractionResponseBuilder() let builder = DiscordInteractionResponseBuilder()
builder.IsEphemeral <- true builder.IsEphemeral <- true
builder.AddEmbed embed |> ignore
builder.Content <- $"Successfully hacked {defender.Name} using {hack}! You just won {prize} GoodBoyTokenz!" builder.Content <- $"Successfully hacked {defender.Name} using {hack}! You just won {prize} GoodBoyTokenz!"
do! event.Interaction.CreateResponseAsync(InteractionResponseType.ChannelMessageWithSource, builder) do! event.Interaction.CreateResponseAsync(InteractionResponseType.ChannelMessageWithSource, builder)
|> Async.AwaitTask |> Async.AwaitTask
@ -199,7 +202,10 @@ let handleDefense (event : ComponentInteractionCreateEventArgs) =
match alreadyUsedShield , updatedDefenses.Length < 2 with match alreadyUsedShield , updatedDefenses.Length < 2 with
| false , true -> | false , true ->
let builder = DiscordInteractionResponseBuilder() let builder = DiscordInteractionResponseBuilder()
let embed = DiscordEmbedBuilder()
embed.ImageUrl <- Embeds.getShieldGif shield
builder.IsEphemeral <- true builder.IsEphemeral <- true
builder.AddEmbed embed |> ignore
builder.Content <- $"Mounted a {shield} defense for 6 hours" builder.Content <- $"Mounted a {shield} defense for 6 hours"
do! event.Interaction.CreateResponseAsync(InteractionResponseType.ChannelMessageWithSource, builder) do! event.Interaction.CreateResponseAsync(InteractionResponseType.ChannelMessageWithSource, builder)
|> Async.AwaitTask |> Async.AwaitTask

View File

@ -21,7 +21,7 @@ module Commands =
let rand = System.Random(System.Guid.NewGuid().GetHashCode()) let rand = System.Random(System.Guid.NewGuid().GetHashCode())
let getRandom (actions : 'a array) = actions.[rand.Next(0, Math.Max(0, actions.Length - 1))] 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 |] let shields = [| getRandom shieldInventory |]
{ DiscordId = membr { DiscordId = membr

View File

@ -37,7 +37,7 @@ let buyHack (ctx : InteractionContext) hackId =
if newBalance >= 0 then if newBalance >= 0 then
let playerHasItem = player.Weapons |> Array.exists (fun w -> item.Name = string w) let playerHasItem = player.Weapons |> Array.exists (fun w -> item.Name = string w)
if not playerHasItem then 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 } let p = { player with Bank = newBalance ; Weapons = Array.append [| weapon |] player.Weapons }
do! DbService.updatePlayer p do! DbService.updatePlayer p
do! createSimpleResponseAsync $"Successfully purchased {item.Name}! You now have {newBalance} remaining" ctx do! createSimpleResponseAsync $"Successfully purchased {item.Name}! You now have {newBalance} remaining" ctx

View File

@ -11,6 +11,9 @@ let sendInitialEmbed (client : DiscordClient) =
async { async {
let! channel = client.GetChannelAsync(GuildEnvironment.channelTraining) |> Async.AwaitTask let! channel = client.GetChannelAsync(GuildEnvironment.channelTraining) |> Async.AwaitTask
let builder = DiscordMessageBuilder() 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?" 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 let button = DiscordButtonComponent(ButtonStyle.Success, $"Trainer-1", $"Get started") :> DiscordComponent
builder.AddComponents [| button |] |> ignore builder.AddComponents [| button |] |> ignore

View File

@ -38,7 +38,7 @@ type Item = {
Cost : int 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 shieldInventory = [| Shield.Firewall ; Shield.PortScan ; Shield.Encryption ; Shield.Cypher ; Shield.Hardening ; Shield.Sanitation |]
let getClass = let getClass =
@ -75,7 +75,6 @@ type Player =
Defenses: Defense array Defenses: Defense array
Bank: int } Bank: int }
let createSimpleResponseAsync msg (ctx: InteractionContext) = let createSimpleResponseAsync msg (ctx: InteractionContext) =
async { async {
let builder = DiscordInteractionResponseBuilder() let builder = DiscordInteractionResponseBuilder()