#ifndef CREATURELIB_ATTACKDATA_HPP #define CREATURELIB_ATTACKDATA_HPP #include #include #include "../../GenericTemplates.hpp" #include "AttackCategory.hpp" #include "AttackTarget.hpp" namespace CreatureLib::Library { class AttackData { GetProperty(std::string, Name); GetProperty(std::string, Type); GetProperty(AttackCategory, Category); GetProperty(uint8_t, BasePower); GetProperty(uint8_t, Accuracy); GetProperty(uint8_t, BaseUsages); GetProperty(AttackTarget, Target); GetProperty(uint8_t, Priority); private: std::unordered_set _flags; public: AttackData(std::string name, std::string type, AttackCategory category, uint8_t power, uint8_t accuracy, uint8_t baseUsage, AttackTarget target, uint8_t priority, std::unordered_set flags); bool HasFlag(const std::string& key) const; }; } #endif // CREATURELIB_ATTACKDATA_HPP