48 lines
2.2 KiB
C++
48 lines
2.2 KiB
C++
#ifndef CREATURELIB_BATTLELIBRARY_HPP
|
|
#define CREATURELIB_BATTLELIBRARY_HPP
|
|
|
|
#include "../../Library/DataLibrary.hpp"
|
|
#include "../ScriptHandling/ScriptResolver.hpp"
|
|
#include "BattleStatCalculator.hpp"
|
|
#include "DamageLibrary.hpp"
|
|
#include "ExperienceLibrary.hpp"
|
|
#include "MiscLibrary.hpp"
|
|
|
|
namespace CreatureLib::Battling {
|
|
class BattleLibrary {
|
|
protected:
|
|
const Library::DataLibrary* _staticLib = nullptr;
|
|
BattleStatCalculator* _statCalculator = nullptr;
|
|
DamageLibrary* _damageLibrary = nullptr;
|
|
ExperienceLibrary* _experienceLibrary = nullptr;
|
|
ScriptResolver* _scriptResolver = nullptr;
|
|
MiscLibrary* _miscLibrary = nullptr;
|
|
|
|
public:
|
|
BattleLibrary(const Library::DataLibrary* staticLib, BattleStatCalculator* statCalculator,
|
|
DamageLibrary* damageLibrary, ExperienceLibrary* experienceLibrary,
|
|
ScriptResolver* scriptResolver, MiscLibrary* miscLibrary);
|
|
~BattleLibrary();
|
|
inline const Library::DataLibrary* GetStaticLib() const noexcept { return _staticLib; }
|
|
|
|
[[nodiscard]] const Library::LibrarySettings* GetSettings() const noexcept;
|
|
[[nodiscard]] const Library::SpeciesLibrary* GetSpeciesLibrary() const noexcept;
|
|
[[nodiscard]] const Library::ItemLibrary* GetItemLibrary() const noexcept;
|
|
[[nodiscard]] const Library::AttackLibrary* GetAttackLibrary() const noexcept;
|
|
[[nodiscard]] const Library::TypeLibrary* GetTypeLibrary() const noexcept;
|
|
[[nodiscard]] const Library::GrowthRateLibrary* GetGrowthRateLibrary() const noexcept {
|
|
return _staticLib->GetGrowthRates();
|
|
}
|
|
|
|
[[nodiscard]] const BattleStatCalculator* GetStatCalculator() const noexcept;
|
|
[[nodiscard]] const DamageLibrary* GetDamageLibrary() const noexcept;
|
|
[[nodiscard]] const MiscLibrary* GetMiscLibrary() const noexcept;
|
|
[[nodiscard]] const ExperienceLibrary* GetExperienceLibrary() const noexcept { return _experienceLibrary; }
|
|
|
|
[[nodiscard]] Script* LoadScript(ScriptCategory category,
|
|
const Arbutils::CaseInsensitiveConstString& scriptName) const;
|
|
};
|
|
}
|
|
|
|
#endif // CREATURELIB_BATTLELIBRARY_HPP
|