From f555b2f95ada9cdf6ee5e4f71c6daa81c0647c62 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Wed, 1 Jun 2022 10:04:14 +0700 Subject: [PATCH] Strength bonus --- Bot/Bot.fs | 6 +++--- Bot/Games/HackerBattle.fs | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Bot/Bot.fs b/Bot/Bot.fs index e756c8a..a2c5c87 100644 --- a/Bot/Bot.fs +++ b/Bot/Bot.fs @@ -102,6 +102,9 @@ let asdf _ (event : DSharpPlus.EventArgs.InteractionCreateEventArgs) = :> Task //hackerBattleBot.add_InteractionCreated(AsyncEventHandler(asdf)) +hackerBattleBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously +GuildEnvironment.botClientHacker <- Some hackerBattleBot + adminBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously inviterBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously @@ -113,9 +116,6 @@ GuildEnvironment.botClientStore <- Some storeBot jpegBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously GuildEnvironment.botClientJpeg <- Some jpegBot -hackerBattleBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously -GuildEnvironment.botClientHacker <- Some hackerBattleBot - slotsBot.ConnectAsync() |> Async.AwaitTask |> Async.RunSynchronously GuildEnvironment.botClientSlots <- Some slotsBot diff --git a/Bot/Games/HackerBattle.fs b/Bot/Games/HackerBattle.fs index 7797192..eb19b6b 100644 --- a/Bot/Games/HackerBattle.fs +++ b/Bot/Games/HackerBattle.fs @@ -83,8 +83,6 @@ let runHackerBattle defender (hack : HackItem) = | _ -> false) let updateCombatants successfulHack (attacker : PlayerData) (defender : PlayerData) (hack : HackItem) prize = - let updatePlayer amount attack p = - { p with Events = attack::p.Events ; Bank = max (p.Bank + amount) 0 } let event isDefenderEvent = let hackEvent = { HackId = hack.Id @@ -104,8 +102,16 @@ let updateCombatants successfulHack (attacker : PlayerData) (defender : PlayerDa |> Async.Ignore let successfulHack (ctx : IDiscordContext) attacker defender (hack : HackItem) = + let strengthBonus attacker defender = + attacker - defender + |> max 0 + |> float + |> (*) 0.01 + |> (*) 200.0 // Bonus + |> int async { - let prizeAmount = if hack.Power < int defender.Bank then hack.Power else int defender.Bank + let bonus = strengthBonus attacker.Stats.Strength.Amount defender.Stats.Strength.Amount + let prizeAmount = if hack.Power + bonus < int defender.Bank then hack.Power + bonus else int defender.Bank do! updateCombatants true attacker defender hack (prizeAmount * 1) let embed = Embeds.responseSuccessfulHack true defender.DiscordId prizeAmount hack