If it's the trainer bot, don't disable hack/shield buttons

This commit is contained in:
Joseph Ferano 2022-02-08 23:51:44 +07:00
parent 8f8aebd6ac
commit 7676981499
3 changed files with 10 additions and 10 deletions

View File

@ -33,16 +33,16 @@ let getShieldGif = function
| ShieldId.Cypher -> "https://s10.gifyu.com/images/Cypher-Smaller.gif" | ShieldId.Cypher -> "https://s10.gifyu.com/images/Cypher-Smaller.gif"
| _ -> shieldGif | _ -> shieldGif
let constructButtons (actionType: string) (player: PlayerData) (buttonId : string) (items: BattleItem array) = let constructButtons (actionType: string) (player: PlayerData) (buttonId : string) (items: BattleItem array) isTrainer =
items items
|> Array.map (fun item -> |> Array.map (fun item ->
match player.Actions |> Array.exists (fun i -> i.ActionId = item.Id) with match player.Actions |> Array.exists (fun i -> i.ActionId = item.Id) && not isTrainer with
| true -> DiscordButtonComponent(Game.getClassButtonColor item.Class, $"{actionType}-{item.Id}", $"{item.Name} (on cooldown)", true) | true -> DiscordButtonComponent(Game.getClassButtonColor item.Class, $"{actionType}-{item.Id}", $"{item.Name} (on cooldown)", true)
| false -> DiscordButtonComponent(Game.getClassButtonColor item.Class, $"{actionType}-{item.Id}-{buttonId}", $"{item.Name}")) | false -> DiscordButtonComponent(Game.getClassButtonColor item.Class, $"{actionType}-{item.Id}-{buttonId}", $"{item.Name}"))
let pickDefense actionId player = let pickDefense actionId player isTrainer =
let buttons = let buttons =
constructButtons actionId player (string player.DiscordId) (Player.shields player) constructButtons actionId player (string player.DiscordId) (Player.shields player) isTrainer
|> Seq.cast<DiscordComponent> |> Seq.cast<DiscordComponent>
let embed = let embed =
@ -56,10 +56,10 @@ let pickDefense actionId player =
.AddEmbed(embed) .AddEmbed(embed)
.AsEphemeral(true) .AsEphemeral(true)
let pickHack actionId attacker defender = let pickHack actionId attacker defender isTrainer =
let buttons = let buttons =
let hacks = Player.hacks attacker let hacks = Player.hacks attacker
constructButtons actionId attacker $"{defender.DiscordId}-{defender.Name}" hacks constructButtons actionId attacker $"{defender.DiscordId}-{defender.Name}" hacks isTrainer
|> Seq.cast<DiscordComponent> |> Seq.cast<DiscordComponent>
let embed = let embed =

View File

@ -119,7 +119,7 @@ let attack (target : DiscordUser) (ctx : InteractionContext) =
>>= checkPlayerIsAttackingThemselves defender >>= checkPlayerIsAttackingThemselves defender
|> function |> function
| Ok _ -> | Ok _ ->
let embed = Embeds.pickHack "Attack" attacker defender let embed = Embeds.pickHack "Attack" attacker defender false
ctx.FollowUpAsync(embed) ctx.FollowUpAsync(embed)
|> Async.AwaitTask |> Async.AwaitTask
|> Async.Ignore |> Async.Ignore
@ -157,7 +157,7 @@ let handleAttack (event : ComponentInteractionCreateEventArgs) =
let defend (ctx : InteractionContext) = let defend (ctx : InteractionContext) =
Game.executePlayerInteraction ctx (fun player -> async { Game.executePlayerInteraction ctx (fun player -> async {
if Player.shields player |> Array.length > 0 then if Player.shields player |> Array.length > 0 then
let embed = Embeds.pickDefense "Defend" player let embed = Embeds.pickDefense "Defend" player false
do! ctx.FollowUpAsync(embed) do! ctx.FollowUpAsync(embed)
|> Async.AwaitTask |> Async.AwaitTask
|> Async.Ignore |> Async.Ignore

View File

@ -60,7 +60,7 @@ let defend (ctx : InteractionContext) =
| [||] -> { player with Arsenal = [| defaultShield |] } | [||] -> { player with Arsenal = [| defaultShield |] }
| _ -> player | _ -> player
let embed = Embeds.pickDefense "Trainer-2" playerWithShields let embed = Embeds.pickDefense "Trainer-2" playerWithShields true
do! ctx.FollowUpAsync(embed) do! ctx.FollowUpAsync(embed)
|> Async.AwaitTask |> Async.AwaitTask
@ -118,7 +118,7 @@ let attack (target : DiscordUser) (ctx : InteractionContext) =
match Player.hacks player with match Player.hacks player with
| [||] -> { player with Arsenal = [| defaultHack |] } | [||] -> { player with Arsenal = [| defaultHack |] }
| _ -> player | _ -> player
let embed = Embeds.pickHack "Trainer-4" playerWithAttacks player let embed = Embeds.pickHack "Trainer-4" playerWithAttacks player true
do! ctx.FollowUpAsync(embed) do! ctx.FollowUpAsync(embed)
|> Async.AwaitTask |> Async.AwaitTask