//
// AIClientFactory Implementation
//

#include "AIClientFactory.hpp"

#include "src/main/cpp/net/eagle0/common/mcts/abstract/MCTSTypes.hpp"
#include "src/main/cpp/net/eagle0/shardok/ai/ShardokAIClient.hpp"

namespace shardok::ai_testing_common {

auto AIClientFactory::Create(
        PlayerId playerId,
        bool isDefender,
        const net::eagle0::shardok::storage::fb::HexMap* hexMap,
        const SettingsGetter& settings,
        AIAlgorithmType algorithmType,
        ScoringCalculatorType scoringType,
        bool isAllAiBattle,
        mcts::MCTSConfig mctsConfig) -> std::unique_ptr<ShardokAIClient> {
    return std::make_unique<ShardokAIClient>(
            playerId,
            isDefender,
            isAllAiBattle,
            hexMap,
            settings,
            algorithmType,
            scoringType,
            mctsConfig);
}

}  // namespace shardok::ai_testing_common
