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

cc_library(
    name = "fire_out_action_factory",
    srcs = ["FireOutActionFactory.cpp"],
    hdrs = ["FireOutActionFactory.hpp"],
    copts = COPTS,
    visibility = [
        "//src/main/cpp/net/eagle0/shardok/library:__subpackages__",
        "//src/test/cpp/net/eagle0/shardok/library:__subpackages__",
    ],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/library:fire_utils",
        "//src/main/cpp/net/eagle0/shardok/library:shardok_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:fire_out_action",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/library/util:hex_map_utils",
    ],
)

cc_library(
    name = "fire_spread_action_factory",
    srcs = ["FireSpreadActionFactory.cpp"],
    hdrs = ["FireSpreadActionFactory.hpp"],
    copts = COPTS,
    visibility = [
        "//src/main/cpp/net/eagle0/shardok/library:__subpackages__",
        "//src/test/cpp/net/eagle0/shardok/library:__subpackages__",
    ],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/library:fire_utils",
        "//src/main/cpp/net/eagle0/shardok/library:shardok_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:fire_spread_action",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/library/util:hex_map_utils",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:hex_map_cc_fbs",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:hex_map_direction_cc_fbs",
        "//src/main/protobuf/net/eagle0/shardok/common:hex_map_direction_cc_proto",
    ],
)

cc_library(
    name = "ice_adjustment_action_factory",
    srcs = ["IceAndSnowAdjustmentActionFactory.cpp"],
    hdrs = ["IceAndSnowAdjustmentActionFactory.hpp"],
    copts = COPTS,
    visibility = [
        "//src/main/cpp/net/eagle0/shardok/library:__subpackages__",
        "//src/test/cpp/net/eagle0/shardok/library:__subpackages__",
    ],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/library:shardok_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:fall_into_water_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:ice_adjustment_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:snow_adjustment_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:undead_frozen_action",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/library/util:hex_map_utils",
        "//src/main/cpp/net/eagle0/shardok/library/util:weather_helpers",
    ],
)

cc_library(
    name = "meteor_cast_action_factory",
    srcs = ["MeteorCastActionFactory.cpp"],
    hdrs = ["MeteorCastActionFactory.hpp"],
    copts = COPTS,
    visibility = [
        "//src/main/cpp/net/eagle0/shardok/library:__subpackages__",
        "//src/test/cpp/net/eagle0/shardok/library:__subpackages__",
    ],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/library:shardok_action",
        "//src/main/cpp/net/eagle0/shardok/library/actions:meteor_cast_action",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
    ],
)

cc_library(
    name = "player_setup_command_factory",
    srcs = ["PlayerSetupCommandFactory.cpp"],
    hdrs = ["PlayerSetupCommandFactory.hpp"],
    copts = COPTS,
    visibility = [
        "//src/main/cpp/net/eagle0/shardok/library:__subpackages__",
        "//src/test/cpp/net/eagle0/shardok/library:__subpackages__",
    ],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/library:shardok_command",
        "//src/main/cpp/net/eagle0/shardok/library/actions:end_player_setup_command",
        "//src/main/cpp/net/eagle0/shardok/library/actions:place_hidden_unit_command",
        "//src/main/cpp/net/eagle0/shardok/library/actions:place_unit_command",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/cpp/net/eagle0/shardok/library/util:hex_map_utils",
        "//src/main/cpp/net/eagle0/shardok/library/util:player_utils",
    ],
)

cc_library(
    name = "undead_change_action_factory",
    srcs = ["UndeadChangeActionFactory.cpp"],
    hdrs = ["UndeadChangeActionFactory.hpp"],
    copts = COPTS,
    visibility = [
        "//src/main/cpp/net/eagle0/shardok/library:__subpackages__",
        "//src/test/cpp/net/eagle0/shardok/library:__subpackages__",
    ],
    deps = [
        "//src/main/cpp/net/eagle0/shardok/library/actions:undead_change_action",
        "//src/main/cpp/net/eagle0/shardok/library/fb_helpers:flatbuffer_wrapper",
        "//src/main/cpp/net/eagle0/shardok/library/settings:game_settings",
        "//src/main/flatbuffer/net/eagle0/shardok/storage:game_state_cc_fbs",
    ],
)
