Replace void* for script parameter with EffectParameter class.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-04-10 17:54:45 +02:00
parent 1537a5f316
commit e934e13950
4 changed files with 70 additions and 10 deletions

View File

@@ -4,6 +4,7 @@
#include <Arbutils/Collections/List.hpp>
#include <Arbutils/ConstString.hpp>
#include <any>
#include "../EffectParameter.hpp"
using namespace Arbutils::Collections;
namespace CreatureLib::Library {
@@ -11,17 +12,23 @@ namespace CreatureLib::Library {
private:
float _chance;
Arbutils::CaseInsensitiveConstString _effectName;
List<void*> _parameters;
List<EffectParameter*> _parameters;
public:
SecondaryEffect() noexcept : _chance(0), _effectName(Arbutils::CaseInsensitiveConstString("")) {}
SecondaryEffect(float chance, const Arbutils::CaseInsensitiveConstString& effectName,
const List<void*>& parameters) noexcept
const List<EffectParameter*>& parameters) noexcept
: _chance(chance), _effectName(effectName), _parameters(parameters) {}
~SecondaryEffect() {
for (auto p : _parameters) {
delete p;
}
}
constexpr float GetChance() const noexcept { return _chance; }
constexpr const Arbutils::CaseInsensitiveConstString& GetEffectName() const noexcept { return _effectName; }
const List<void*>& GetParameters() const noexcept { return _parameters; }
const List<EffectParameter*>& GetParameters() const noexcept { return _parameters; }
};
}