CreatureLib/src/Library/CreatureData/Talent.hpp

32 lines
1.1 KiB
C++

#ifndef CREATURELIB_TALENT_HPP
#define CREATURELIB_TALENT_HPP
#include <Arbutils/Collections/List.hpp>
#include <Arbutils/StringView.hpp>
#include <utility>
#include "../EffectParameter.hpp"
namespace CreatureLib::Library {
class Talent {
public:
Talent(const ArbUt::StringView& name, const ArbUt::StringView& effect, ArbUt::List<EffectParameter*> 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<EffectParameter*>& GetParameters() const noexcept { return _parameters; }
~Talent() noexcept {
for (auto p : _parameters) {
delete p;
}
}
private:
ArbUt::StringView _name;
ArbUt::StringView _effect;
ArbUt::List<EffectParameter*> _parameters;
};
}
#endif // CREATURELIB_TALENT_HPP