1 #pragma once 2 3 #include "GameSettings.h" 4 #include "GameInstance.h" 5 #include <array> 6 #include <stdint.h> 7 #include <string_theory/string> 8 9 // gets the Strategic AI policy value for the current game difficulty 10 #define saipolicy(element) ( GCM->getStrategicAIPolicy()->element[gGameOptions.ubDifficultyLevel - 1] ) 11 12 // Refer to strategic-ai-policy.json for the definition of each value 13 class StrategicAIPolicy 14 { 15 public: 16 std::array<unsigned int, NUM_DIF_LEVELS> queens_pool_of_troops; 17 std::array<unsigned int, NUM_DIF_LEVELS> initial_garrison_percentages; 18 std::array<unsigned int, NUM_DIF_LEVELS> min_enemy_group_size; 19 std::array<unsigned int, NUM_DIF_LEVELS> enemy_starting_alert_level; 20 std::array<unsigned int, NUM_DIF_LEVELS> enemy_starting_alert_decay; 21 std::array<unsigned int, NUM_DIF_LEVELS> time_evaluate_in_minutes; 22 std::array<int, NUM_DIF_LEVELS> time_evaluate_variance; 23 std::array<unsigned int, NUM_DIF_LEVELS> grace_period_in_hours; 24 std::array<unsigned int, NUM_DIF_LEVELS> patrol_grace_period_in_days; 25 std::array<unsigned int, NUM_DIF_LEVELS> num_aware_battles; 26 }; 27