#include "BattleLibrary.hpp" using namespace CreatureLib::Battling; BattleLibrary::BattleLibrary(const CreatureLib::Library::DataLibrary* non_null staticLib, BattleStatCalculator* non_null statCalculator, DamageLibrary* non_null damageLibrary, ExperienceLibrary* non_null experienceLibrary, ScriptResolver* non_null scriptResolver, MiscLibrary* non_null miscLibrary) : _staticLib(staticLib), _statCalculator(statCalculator), _damageLibrary(damageLibrary), _experienceLibrary(experienceLibrary), _scriptResolver(scriptResolver), _miscLibrary(miscLibrary) { EnsureNotNull(_staticLib); EnsureNotNull(_statCalculator); EnsureNotNull(_damageLibrary); EnsureNotNull(_experienceLibrary); EnsureNotNull(_scriptResolver); EnsureNotNull(_miscLibrary); } const std::unique_ptr& BattleLibrary::GetSettings() const noexcept { return _staticLib->GetSettings(); } const std::unique_ptr& BattleLibrary::GetStatCalculator() const noexcept { return _statCalculator; } const std::unique_ptr& BattleLibrary::GetSpeciesLibrary() const noexcept { return _staticLib->GetSpeciesLibrary(); } const std::unique_ptr& BattleLibrary::GetItemLibrary() const noexcept { return _staticLib->GetItemLibrary(); } const std::unique_ptr& BattleLibrary::GetAttackLibrary() const noexcept { return _staticLib->GetAttackLibrary(); } const std::unique_ptr& BattleLibrary::GetTypeLibrary() const noexcept { return _staticLib->GetTypeLibrary(); } const std::unique_ptr& BattleLibrary::GetDamageLibrary() const noexcept { return _damageLibrary; } const std::unique_ptr& BattleLibrary::GetMiscLibrary() const noexcept { return _miscLibrary; } ArbUt::OptionalUniquePtr BattleLibrary::LoadScript(const ArbUt::OptionalBorrowedPtr& owner, ScriptCategory category, const ArbUt::StringView& scriptName) const { return _scriptResolver->LoadScript(owner, category, scriptName).TakeOwnership(); }