#pragma once #include #include #include constexpr yacppdic::Tag SMALL_ENEMY_TAG = "small"; constexpr yacppdic::Tag BIG_ENEMY_TAG = "big"; constexpr auto SMALL_ENEMY_HEALTH = 65; constexpr auto BIG_ENEMY_HEALTH = 130; // 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()>;