Probably works

This commit is contained in:
Joseph Ferano 2022-06-26 12:59:42 +07:00
parent 3d490c8754
commit 7180ccc92e

View File

@ -90,7 +90,7 @@ let runHackerBattle defender (hack : HackItem) =
| _ -> false | _ -> false
| _ -> false) | _ -> false)
let updateEvents successfulHack (attacker : PlayerData) (defender : PlayerData) (hack : HackItem) = let updateCombatants successfulHack (attacker : PlayerData) (defender : PlayerData) (hack : HackItem) prize =
let event isDefenderEvent = let event isDefenderEvent =
let hackEvent = { let hackEvent = {
HackId = hack.Id HackId = hack.Id
@ -102,14 +102,10 @@ let updateEvents successfulHack (attacker : PlayerData) (defender : PlayerData)
Timestamp = DateTime.UtcNow Timestamp = DateTime.UtcNow
Cooldown = if isDefenderEvent then int WeaponClass.SameTargetAttackCooldown.TotalMinutes * 1<mins> else hack.Cooldown } Cooldown = if isDefenderEvent then int WeaponClass.SameTargetAttackCooldown.TotalMinutes * 1<mins> else hack.Cooldown }
[ DbService.addPlayerEvent attacker.DiscordId (event false)
DbService.addPlayerEvent defender.DiscordId (event true) ]
|> Async.Parallel
|> Async.Ignore
let updatePrizes (attacker : PlayerData) (defender : PlayerData) prize =
[ DbService.updatePlayerCurrency prize attacker.DiscordId [ DbService.updatePlayerCurrency prize attacker.DiscordId
DbService.updatePlayerCurrency -prize defender.DiscordId ] DbService.updatePlayerCurrency -prize defender.DiscordId
DbService.addPlayerEvent attacker.DiscordId (event false)
DbService.addPlayerEvent defender.DiscordId (event true) ]
|> Async.Parallel |> Async.Parallel
|> Async.Ignore |> Async.Ignore
@ -125,15 +121,13 @@ let hackerResult successfulHack (ctx : IDiscordContext) attacker defender (hack
then gbt hack.Power , 0<GBT> then gbt hack.Power , 0<GBT>
else attacker.Bank , 0<GBT> else attacker.Bank , 0<GBT>
do! updateEvents successfulHack attacker defender hack
let! defenderMember = ctx.GetGuild().GetMemberAsync(defender.DiscordId) |> Async.AwaitTask let! defenderMember = ctx.GetGuild().GetMemberAsync(defender.DiscordId) |> Async.AwaitTask
let embed = Embeds.responseSuccessfulHack2 successfulHack attacker defender (ctx.GetDiscordMember()) defenderMember prizeAmount bonus hack let embed = Embeds.responseSuccessfulHack2 successfulHack attacker defender (ctx.GetDiscordMember()) defenderMember prizeAmount bonus hack
do! ctx.GetChannel().SendMessageAsync(embed) do! ctx.GetChannel().SendMessageAsync(embed)
|> Async.AwaitTask |> Async.AwaitTask
|> Async.Ignore |> Async.Ignore
do! updatePrizes attacker defender prizeAmount do! updateCombatants successfulHack attacker defender hack prizeAmount
let builder = DiscordMessageBuilder().WithAllowedMention(UserMention(defender.DiscordId)) let builder = DiscordMessageBuilder().WithAllowedMention(UserMention(defender.DiscordId))
if successfulHack then if successfulHack then