CreatureLib/src/Battling/Library/BattleLibrary.hpp
Deukhoofd d4fd7282f5
All checks were successful
continuous-integration/drone/push Build is passing
Move ScriptCategory enum outside of class scope of ScriptResolver.
2020-02-20 13:05:15 +01:00

47 lines
2.0 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(Library::DataLibrary* staticLib, BattleStatCalculator* statCalculator,
DamageLibrary* damageLibrary, ExperienceLibrary* experienceLibrary,
ScriptResolver* scriptResolver, MiscLibrary* miscLibrary);
~BattleLibrary();
inline const Library::DataLibrary* GetStaticLib() const { return _staticLib; }
[[nodiscard]] const Library::LibrarySettings* GetSettings() const;
[[nodiscard]] const Library::SpeciesLibrary* GetSpeciesLibrary() const;
[[nodiscard]] const Library::ItemLibrary* GetItemLibrary() const;
[[nodiscard]] const Library::AttackLibrary* GetAttackLibrary() const;
[[nodiscard]] const Library::TypeLibrary* GetTypeLibrary() const;
[[nodiscard]] const Library::GrowthRateLibrary* GetGrowthRateLibrary() const {
return _staticLib->GetGrowthRates();
}
[[nodiscard]] const BattleStatCalculator* GetStatCalculator() const;
[[nodiscard]] const DamageLibrary* GetDamageLibrary() const;
[[nodiscard]] const MiscLibrary* GetMiscLibrary() const;
[[nodiscard]] const ExperienceLibrary* GetExperienceLibrary() const { return _experienceLibrary; }
[[nodiscard]] Script* LoadScript(ScriptCategory category, const std::string& scriptName) const;
};
}
#endif // CREATURELIB_BATTLELIBRARY_HPP