CreatureLib/src/Library/CreatureData/Talent.hpp

35 lines
1.1 KiB
C++
Raw Permalink Normal View History

2021-11-15 11:04:45 +00:00
#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 * non_null> parameters)
2021-11-15 11:04:45 +00:00
: _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 * non_null>& GetParameters() const noexcept {
return _parameters;
}
2021-11-15 11:04:45 +00:00
2022-02-26 16:33:53 +00:00
~Talent() noexcept {
for (auto p : _parameters) {
delete p;
}
}
2021-11-15 11:04:45 +00:00
private:
ArbUt::StringView _name;
ArbUt::StringView _effect;
ArbUt::List<EffectParameter*> _parameters;
};
}
#endif // CREATURELIB_TALENT_HPP