50 lines
2.3 KiB
C++
50 lines
2.3 KiB
C++
#ifndef PKMNLIB_BATTLELIBRARY_HPP
|
|
#define PKMNLIB_BATTLELIBRARY_HPP
|
|
|
|
#include <CreatureLib/Battling/Library/BattleLibrary.hpp>
|
|
#include "../../Library/PokemonLibrary.hpp"
|
|
#include "DamageLibrary.hpp"
|
|
#include "ExperienceLibrary.hpp"
|
|
#include "MiscLibrary.hpp"
|
|
#include "StatCalculator.hpp"
|
|
|
|
namespace PkmnLib::Battling {
|
|
class BattleLibrary final : public CreatureLib::Battling::BattleLibrary {
|
|
public:
|
|
BattleLibrary(Library::PokemonLibrary* staticLib, StatCalculator* statCalculator, DamageLibrary* damageLibrary,
|
|
PkmnLib::Battling::ExperienceLibrary* experienceLibrary,
|
|
CreatureLib::Battling::ScriptResolver* scriptResolver,
|
|
PkmnLib::Battling::MiscLibrary* miscLibrary)
|
|
: CreatureLib::Battling::BattleLibrary(staticLib, statCalculator, damageLibrary, experienceLibrary,
|
|
scriptResolver, miscLibrary) {}
|
|
|
|
const std::unique_ptr<const Library::LibrarySettings>& GetSettings() const {
|
|
return reinterpret_cast<const std::unique_ptr<const Library::LibrarySettings>&>(_staticLib->GetSettings());
|
|
}
|
|
|
|
const std::unique_ptr<const Library::PokemonLibrary>& GetStaticLib() const {
|
|
return reinterpret_cast<const std::unique_ptr<const Library::PokemonLibrary>&>(_staticLib);
|
|
}
|
|
|
|
const std::unique_ptr<const Library::SpeciesLibrary>& GetSpeciesLibrary() const {
|
|
return reinterpret_cast<const std::unique_ptr<const Library::SpeciesLibrary>&>(
|
|
_staticLib->GetSpeciesLibrary());
|
|
}
|
|
|
|
const std::unique_ptr<const Library::MoveLibrary>& GetMoveLibrary() const {
|
|
return reinterpret_cast<const std::unique_ptr<const Library::MoveLibrary>&>(_staticLib->GetAttackLibrary());
|
|
}
|
|
|
|
const std::unique_ptr<const Library::ItemLibrary>& GetItemLibrary() const {
|
|
return reinterpret_cast<const std::unique_ptr<const Library::ItemLibrary>&>(_staticLib->GetItemLibrary());
|
|
}
|
|
|
|
const ArbUt::BorrowedPtr<const Library::NatureLibrary> GetNatureLibrary() const {
|
|
return GetStaticLib()->GetNatureLibrary();
|
|
}
|
|
|
|
static CreatureLib::Battling::ScriptResolver* CreateScriptResolver();
|
|
};
|
|
}
|
|
#endif // PKMNLIB_BATTLELIBRARY_HPP
|