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(); + };