From ec057454c339800a7f1f8c601f662f9ea760458e Mon Sep 17 00:00:00 2001 From: Louis Hobbs Date: Thu, 17 Aug 2023 22:28:11 +0100 Subject: [PATCH] Create Request, Release and Reset Token methods in AIAttackTokenManager --- .../Nakatomi/NakatomiAIAttackTokenManager.cpp | 23 +++++++++++++++++++ .../Nakatomi/NakatomiAIAttackTokenManager.h | 15 ++++++++++++ 2 files changed, 38 insertions(+) diff --git a/Source/Nakatomi/NakatomiAIAttackTokenManager.cpp b/Source/Nakatomi/NakatomiAIAttackTokenManager.cpp index 64fc017..c95b9ca 100644 --- a/Source/Nakatomi/NakatomiAIAttackTokenManager.cpp +++ b/Source/Nakatomi/NakatomiAIAttackTokenManager.cpp @@ -3,3 +3,26 @@ #include "NakatomiAIAttackTokenManager.h" +bool UNakatomiAIAttackTokenManager::RequestToken() +{ + if (attackTokensUsed == MAX_ATTACK_TOKEN) + { + return false; + } + attackTokensUsed++; + + return true; +} + +void UNakatomiAIAttackTokenManager::ReleaseToken() +{ + if (attackTokensUsed > 0) + { + attackTokensUsed--; + } +} + +void UNakatomiAIAttackTokenManager::Reset() +{ + attackTokensUsed = 0; +} diff --git a/Source/Nakatomi/NakatomiAIAttackTokenManager.h b/Source/Nakatomi/NakatomiAIAttackTokenManager.h index 374a7b6..86d524e 100644 --- a/Source/Nakatomi/NakatomiAIAttackTokenManager.h +++ b/Source/Nakatomi/NakatomiAIAttackTokenManager.h @@ -14,4 +14,19 @@ class NAKATOMI_API UNakatomiAIAttackTokenManager : public UObject { GENERATED_BODY() +private: + + // TODO: This should really be set by the current difficulty setting. + static const int MAX_ATTACK_TOKEN = 5; + + int attackTokensUsed = 0; + +public: + + bool RequestToken(); + + void ReleaseToken(); + + void Reset(); + };