load("//tools:copts.bzl", "COPTS")

cc_library(
    name = "ai_battle_config",
    srcs = ["AiBattleConfig.cpp"],
    hdrs = ["AiBattleConfig.hpp"],
    copts = COPTS,
    visibility = ["//visibility:public"],
    deps = [
        "//src/main/protobuf/net/eagle0/shardok/ai_battle_simulator:ai_battle_config_cc_proto",
        "@com_google_protobuf//:protobuf",
    ],
)

cc_library(
    name = "ai_battle_simulator",
    srcs = ["AiBattleSimulator.cpp"],
    hdrs = ["AiBattleSimulator.hpp"],
    copts = COPTS,
    visibility = ["//visibility:public"],
    deps = [
        ":ai_battle_config",
        "//src/main/cpp/net/eagle0/common:filesystem_utils",
        "//src/main/cpp/net/eagle0/common:tsv_parser",
        "//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/fb_helpers:game_state_helpers",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/util:battalion_type_registrar",
        "//src/main/cpp/net/eagle0/shardok/util:map_loader",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:unit_cc_fbs",
        "//src/main/protobuf/net/eagle0/shardok/ai_battle_simulator:ai_battle_config_cc_proto",
        "//src/main/protobuf/net/eagle0/shardok/common:player_info_cc_proto",
    ],
)

cc_binary(
    name = "ai_battle_simulator_main",
    srcs = ["ai_battle_simulator_main.cpp"],
    copts = COPTS,
    data = [
        "//src/main/resources/net/eagle0/shardok:battalion_types",
        "//src/main/resources/net/eagle0/shardok:settings",
        "//src/main/resources/net/eagle0/shardok/maps",
    ],
    deps = [
        ":ai_battle_config",
        ":ai_battle_simulator",
        "//src/main/cpp/net/eagle0/common:filesystem_utils",
        "//src/main/cpp/net/eagle0/shardok/library/action_point_distances:fixed_action_point_distances",
    ],
)
