CreatureLib/src/Library/Creature.hpp

40 lines
1.4 KiB
C++

#ifndef CREATURELIB_CREATURE_HPP
#define CREATURELIB_CREATURE_HPP
#include "DataLibrary.hpp"
#include "Gender.hpp"
#include "../GenericTemplates.cpp"
#include "../Core/StatisticSet.hpp"
namespace CreatureLib::Library{
class Creature {
GetProperty(const DataLibrary*, Library);
GetProperty(const CreatureSpecies*, Species);
GetProperty(const SpeciesVariant*, Variant);
GetProperty(uint8_t, Level);
GetProperty(uint32_t, Experience);
GetProperty(Core::StatisticSet, StatExperience);
GetProperty(Core::StatisticSet, StatPotential);
GetProperty(uint32_t, UniqueIdentifier);
GetProperty(Gender, Gender);
GetProperty(uint8_t, Coloring);
GetProperty(const Item*, HeldItem);
GetProperty(uint32_t, CurrentHealth);
private:
std::string _nickname = "";
int8_t _talentIndex;
public:
Creature(const DataLibrary* library, const CreatureSpecies* species, const SpeciesVariant* variant,
uint8_t level, std::string nickname, int8_t talentIndex, Core::StatisticSet statExperience,
Core::StatisticSet statPotential, uint32_t identifier, Gender gender,
uint8_t coloring, const Item* heldItem);
std::string GetTalent() const;
std::string GetNickname() const;
};
}
#endif //CREATURELIB_CREATURE_HPP