If it's the trainer bot, don't disable hack/shield buttons
This commit is contained in:
		
							parent
							
								
									8f8aebd6ac
								
							
						
					
					
						commit
						7676981499
					
				@ -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 =
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user