Fix prize/loss numbers in hacker game
This commit is contained in:
		
							parent
							
								
									cc39bb26a0
								
							
						
					
					
						commit
						3203842249
					
				@ -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
 | 
			
		||||
 | 
			
		||||
@ -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<GBT>
 | 
			
		||||
        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<GBT>)
 | 
			
		||||
 | 
			
		||||
        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<GBT>
 | 
			
		||||
        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<GBT>)
 | 
			
		||||
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
@ -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"
 | 
			
		||||
            })
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user