#ifndef CREATURELIB_LIBRARYSETTINGS_HPP #define CREATURELIB_LIBRARYSETTINGS_HPP namespace CreatureLib::Library { /// @brief Hold the different runtime settings for a given library. class LibrarySettings { struct impl; std::unique_ptr _impl; public: /// @brief Initialises LibrarySettings. /// @param maximalLevel The maximal level a creature can be. /// @param maximalAttacks The maximal number of attacks a creature can have. LibrarySettings(level_int_t maximalLevel, uint8_t maximalAttacks); virtual ~LibrarySettings(); /// @brief Returns the maximal level a creature can be in the current library. /// @return The maximal level a creature can be in the current library. [[nodiscard]] level_int_t GetMaximalLevel() const noexcept; /// @brief Returns the maximal number of attacks a creature can have. /// @return The maximal number of attacks a creature can have. [[nodiscard]] uint8_t GetMaximalAttacks() const noexcept; }; } #endif // CREATURELIB_LIBRARYSETTINGS_HPP