34 lines
1.2 KiB
C++
34 lines
1.2 KiB
C++
#ifndef CREATURELIB_SECONDARYEFFECT_HPP
|
|
#define CREATURELIB_SECONDARYEFFECT_HPP
|
|
|
|
#include <Arbutils/Collections/List.hpp>
|
|
#include <any>
|
|
#include "../EffectParameter.hpp"
|
|
|
|
namespace CreatureLib::Library {
|
|
class SecondaryEffect {
|
|
private:
|
|
float _chance;
|
|
ArbUt::StringView _effectName;
|
|
ArbUt::List<EffectParameter * non_null> _parameters;
|
|
|
|
public:
|
|
SecondaryEffect() noexcept : _chance(0), _effectName() {}
|
|
SecondaryEffect(float chance, const ArbUt::StringView& effectName,
|
|
const ArbUt::List<EffectParameter * non_null>& parameters) noexcept
|
|
: _chance(chance), _effectName(effectName), _parameters(parameters) {}
|
|
|
|
~SecondaryEffect() noexcept {
|
|
for (auto p : _parameters) {
|
|
delete p;
|
|
}
|
|
}
|
|
|
|
constexpr inline float GetChance() const noexcept { return _chance; }
|
|
constexpr inline const ArbUt::StringView& GetEffectName() const noexcept { return _effectName; }
|
|
const inline ArbUt::List<EffectParameter * non_null>& GetParameters() const noexcept { return _parameters; }
|
|
};
|
|
}
|
|
|
|
#endif // CREATURELIB_SECONDARYEFFECT_HPP
|