From 1537a5f316c3f7308228bd778bfefa92a1d7dd6c Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Fri, 10 Apr 2020 17:18:19 +0200 Subject: [PATCH] Initialize script with move effect parameters. --- src/Battling/ScriptHandling/Script.hpp | 3 ++- src/Battling/TurnChoices/AttackTurnChoice.hpp | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) 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()); + } } } }