33 lines
1009 B
C++
33 lines
1009 B
C++
#ifndef CREATURELIB_ATTACKDATA_HPP
|
|
#define CREATURELIB_ATTACKDATA_HPP
|
|
|
|
#include <string>
|
|
#include <unordered_set>
|
|
#include "AttackCategory.hpp"
|
|
#include "AttackTarget.hpp"
|
|
|
|
#include "../../GenericTemplates.cpp"
|
|
|
|
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<std::string> _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<std::string> flags);
|
|
|
|
bool HasFlag(const std::string& key) const;
|
|
};
|
|
}
|
|
|
|
|
|
#endif //CREATURELIB_ATTACKDATA_HPP
|