#ifndef CREATURELIB_TALENT_HPP #define CREATURELIB_TALENT_HPP #include #include #include #include "../EffectParameter.hpp" namespace CreatureLib::Library { class Talent { public: Talent(const ArbUt::StringView& name, const ArbUt::StringView& effect, ArbUt::List parameters) : _name(name), _effect(effect), _parameters(std::move(parameters)) {} [[nodiscard]] inline const ArbUt::StringView& GetName() const noexcept { return _name; } [[nodiscard]] inline const ArbUt::StringView& GetEffect() const noexcept { return _effect; } [[nodiscard]] inline const ArbUt::List& GetParameters() const noexcept { return _parameters; } ~Talent() noexcept { for (auto p : _parameters) { delete p; } } private: ArbUt::StringView _name; ArbUt::StringView _effect; ArbUt::List _parameters; }; } #endif // CREATURELIB_TALENT_HPP