#pragma once #include #include // NOLINTNEXTLINE(modernize-avoid-c-arrays, cppcoreguidelines-avoid-c-arrays) constexpr char SMALL_ENEMY_TAG[] = "small"; // NOLINTNEXTLINE(modernize-avoid-c-arrays, cppcoreguidelines-avoid-c-arrays) constexpr char BIG_ENEMY_TAG[] = "big"; // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class IEnemy { public: virtual ~IEnemy() noexcept = default; [[nodiscard]] virtual auto get_health() const noexcept -> int = 0; virtual void do_damage(int damage) noexcept = 0; }; using IEnemyFactory = yacppdic::Factory()>;