Update events before updating the currency
This commit is contained in:
parent
fb9c638848
commit
ff75ed15d0
@ -90,7 +90,7 @@ let runHackerBattle defender (hack : HackItem) =
|
||||
| _ -> false
|
||||
| _ -> false)
|
||||
|
||||
let updateCombatants successfulHack (attacker : PlayerData) (defender : PlayerData) (hack : HackItem) prize =
|
||||
let updateEvents successfulHack (attacker : PlayerData) (defender : PlayerData) (hack : HackItem) =
|
||||
let event isDefenderEvent =
|
||||
let hackEvent = {
|
||||
HackId = hack.Id
|
||||
@ -102,13 +102,17 @@ let updateCombatants successfulHack (attacker : PlayerData) (defender : PlayerDa
|
||||
Timestamp = DateTime.UtcNow
|
||||
Cooldown = if isDefenderEvent then int WeaponClass.SameTargetAttackCooldown.TotalMinutes * 1<mins> else hack.Cooldown }
|
||||
|
||||
[ DbService.updatePlayerCurrency prize attacker.DiscordId
|
||||
DbService.updatePlayerCurrency -prize defender.DiscordId
|
||||
DbService.addPlayerEvent attacker.DiscordId (event false)
|
||||
[ 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 defender.DiscordId ]
|
||||
|> Async.Parallel
|
||||
|> Async.Ignore
|
||||
|
||||
let hackerResult successfulHack (ctx : IDiscordContext) attacker defender (hack : HackItem) =
|
||||
async {
|
||||
let prizeAmount , bonus =
|
||||
@ -121,6 +125,8 @@ let hackerResult successfulHack (ctx : IDiscordContext) attacker defender (hack
|
||||
then gbt hack.Power , 0<GBT>
|
||||
else attacker.Bank , 0<GBT>
|
||||
|
||||
do! updateEvents successfulHack attacker defender hack
|
||||
|
||||
let! defenderMember = ctx.GetGuild().GetMemberAsync(defender.DiscordId) |> Async.AwaitTask
|
||||
// let failedMsg = $"Hack failed! {defender.Name} was able to mount a successful defense! You lost {lostAmount} 💰$GBT!"
|
||||
let embed = Embeds.responseSuccessfulHack2 successfulHack attacker defender (ctx.GetDiscordMember()) defenderMember prizeAmount bonus hack
|
||||
@ -128,7 +134,7 @@ let hackerResult successfulHack (ctx : IDiscordContext) attacker defender (hack
|
||||
|> Async.AwaitTask
|
||||
|> Async.Ignore
|
||||
|
||||
do! updateCombatants successfulHack attacker defender hack prizeAmount
|
||||
do! updatePrizes attacker defender prizeAmount
|
||||
|
||||
let builder = DiscordMessageBuilder().WithAllowedMention(UserMention(defender.DiscordId))
|
||||
if successfulHack then
|
||||
|
Loading…
x
Reference in New Issue
Block a user