load("@rules_cc//cc:defs.bzl", "cc_library")

cc_library(
    name = "game_settings_factory",
    srcs = ["GameSettingsFactory.cpp"],
    hdrs = ["GameSettingsFactory.hpp"],
    visibility = ["//visibility:public"],
    deps = [
        "//src/main/cpp/net/eagle0/common:filesystem_utils",
        "//src/main/cpp/net/eagle0/common:tsv_parser",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/util:battalion_type_registrar",
    ],
)

cc_library(
    name = "ai_client_factory",
    srcs = ["AIClientFactory.cpp"],
    hdrs = ["AIClientFactory.hpp"],
    visibility = ["//visibility:public"],
    deps = [
        "//src/main/cpp/net/eagle0/common/mcts/abstract:mcts_types",
        "//src/main/cpp/net/eagle0/shardok/ai:shardok_ai_client",
        "//src/main/cpp/net/eagle0/shardok/library:shardok_c_types",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:hex_map_cc_fbs",
    ],
)

cc_library(
    name = "test_game_state_builder",
    srcs = ["TestGameStateBuilder.cpp"],
    hdrs = ["TestGameStateBuilder.hpp"],
    visibility = ["//visibility:public"],
    deps = [
        "//src/main/cpp/net/eagle0/common:filesystem_utils",
        "//src/main/cpp/net/eagle0/shardok/library:game_state_w",
        "//src/main/cpp/net/eagle0/shardok/library:shardok_c_types",
        "//src/main/cpp/net/eagle0/shardok/library/fb_helpers:game_state_helpers",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/util:map_loader",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:unit_fbs",
        "//src/main/protobuf/net/eagle0/shardok/common:player_info_proto",
    ],
)

cc_library(
    name = "game_phase_runner",
    srcs = ["GamePhaseRunner.cpp"],
    hdrs = ["GamePhaseRunner.hpp"],
    visibility = ["//visibility:public"],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/ai:shardok_ai_client",
        "//src/main/cpp/net/eagle0/shardok/library:engine",
        "//src/main/cpp/net/eagle0/shardok/library:game_state_w",
        "//src/main/cpp/net/eagle0/shardok/library:shardok_c_types",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:game_state_cc_fbs",
    ],
)
