#ifndef CREATURELIB_SCRIPTRESOLVER_HPP #define CREATURELIB_SCRIPTRESOLVER_HPP #include #include "../../Library/Items/Item.hpp" #include "BattleScript.hpp" #include "ItemUseScript.hpp" #include "ScriptCategory.hpp" namespace CreatureLib::Battling { class BattleLibrary; class ScriptResolver { public: ScriptResolver() {} NO_COPY_OR_MOVE(ScriptResolver); virtual ~ScriptResolver() = default; virtual void Initialize([[maybe_unused]] BattleLibrary* non_null library){}; virtual ArbUt::OptionalUniquePtr LoadScript([[maybe_unused]] const ArbUt::OptionalBorrowedPtr& owner, [[maybe_unused]] ScriptCategory category, [[maybe_unused]] const ArbUt::StringView& scriptName) { return nullptr; }; virtual ArbUt::OptionalBorrowedPtr LoadItemScript([[maybe_unused]] const CreatureLib::Library::Item* non_null item) { return nullptr; }; }; } #endif // CREATURELIB_SCRIPTRESOLVER_HPP