diff --git a/src/Battling/ScriptHandling/Script.hpp b/src/Battling/ScriptHandling/Script.hpp index 34baddb..d9025fe 100644 --- a/src/Battling/ScriptHandling/Script.hpp +++ b/src/Battling/ScriptHandling/Script.hpp @@ -1,8 +1,8 @@ #ifndef CREATURELIB_SCRIPT_HPP #define CREATURELIB_SCRIPT_HPP +#include #include -#include #include #include #include @@ -25,6 +25,7 @@ namespace CreatureLib::Battling { virtual const ConstString& GetName() const noexcept = 0; + virtual void OnInitialize(const Arbutils::Collections::List& parameters){}; virtual void OnBeforeTurn(const BaseTurnChoice* choice){}; virtual void ChangeAttack(AttackTurnChoice* choice, ConstString* outAttack){}; diff --git a/src/Battling/TurnChoices/AttackTurnChoice.hpp b/src/Battling/TurnChoices/AttackTurnChoice.hpp index d5ddeaf..dec018c 100644 --- a/src/Battling/TurnChoices/AttackTurnChoice.hpp +++ b/src/Battling/TurnChoices/AttackTurnChoice.hpp @@ -23,8 +23,11 @@ namespace CreatureLib::Battling { if (battle != nullptr) { if (_attack->GetAttack()->HasSecondaryEffect()) { auto library = battle->GetLibrary(); - _attackScript = library->LoadScript(ScriptCategory::Attack, - _attack->GetAttack()->GetSecondaryEffect().GetEffectName()); + auto& effect = _attack->GetAttack()->GetSecondaryEffect(); + _attackScript = library->LoadScript(ScriptCategory::Attack, effect.GetEffectName()); + if (_attackScript != nullptr) { + _attackScript->OnInitialize(effect.GetParameters()); + } } } }