#ifndef CREATURELIB_SECONDARYEFFECT_HPP #define CREATURELIB_SECONDARYEFFECT_HPP #include #include #include #include "../EffectParameter.hpp" using namespace Arbutils::Collections; namespace CreatureLib::Library { class SecondaryEffect { private: float _chance; Arbutils::CaseInsensitiveConstString _effectName; List _parameters; public: SecondaryEffect() noexcept : _chance(0), _effectName() {} SecondaryEffect(float chance, const Arbutils::CaseInsensitiveConstString& effectName, const List& parameters) noexcept : _chance(chance), _effectName(effectName), _parameters(parameters) {} ~SecondaryEffect() { for (auto p : _parameters) { delete p; } } constexpr inline float GetChance() const noexcept { return _chance; } constexpr inline const Arbutils::CaseInsensitiveConstString& GetEffectName() const noexcept { return _effectName; } const inline List& GetParameters() const noexcept { return _parameters; } }; } #endif // CREATURELIB_SECONDARYEFFECT_HPP