#ifndef PKMNLIB_MOVELIBRARY_HPP #define PKMNLIB_MOVELIBRARY_HPP #include #include "MoveData.hpp" namespace PkmnLib::Library { class MoveLibrary : public CreatureLib::Library::AttackLibrary { public: MoveLibrary(size_t initialCapacity = 32) : CreatureLib::Library::AttackLibrary(initialCapacity) {} virtual const MoveData* operator[](const Arbutils::CaseInsensitiveConstString& name) const { return Get(name); } inline bool TryGet(const Arbutils::CaseInsensitiveConstString& name, const MoveData*& move) const { return CreatureLib::Library::AttackLibrary::TryGet(name, (const CreatureLib::Library::AttackData*&)move); } const MoveData* Get(const Arbutils::CaseInsensitiveConstString& name) const { return dynamic_cast(CreatureLib::Library::AttackLibrary::Get(name)); } }; } #endif // PKMNLIB_MOVELIBRARY_HPP