Initial commit
This commit is contained in:
40
src/Library/CreatureData/SpeciesVariant.hpp
Normal file
40
src/Library/CreatureData/SpeciesVariant.hpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#ifndef CREATURELIB_SPECIESVARIANT_HPP
|
||||
#define CREATURELIB_SPECIESVARIANT_HPP
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "CreatureMoves.hpp"
|
||||
#include "../../Core/StatisticSet.hpp"
|
||||
#include "../../GenericTemplates.cpp"
|
||||
#include "../../Core/Random.hpp"
|
||||
|
||||
namespace CreatureLib::Library {
|
||||
/*!
|
||||
\brief A single species can have more than one variant. This class holds the data for those variants.
|
||||
*/
|
||||
class SpeciesVariant {
|
||||
GetProperty(std::string, Name);
|
||||
GetProperty(float, Height);
|
||||
GetProperty(float, Weight);
|
||||
GetProperty(uint32_t, BaseExperience);
|
||||
private:
|
||||
std::vector<std::string> _types;
|
||||
const Core::StatisticSet _baseStatistics;
|
||||
std::vector<std::string> _talents;
|
||||
std::vector<std::string> _secretTalents;
|
||||
//CreatureMoves _moves;
|
||||
public:
|
||||
SpeciesVariant(std::string name, float height, float weight, uint32_t baseExperience,
|
||||
std::vector<std::string> types, Core::StatisticSet baseStats, std::vector<std::string> talents,
|
||||
std::vector<std::string> secretTalents);
|
||||
[[nodiscard]] size_t GetTypeCount() const;
|
||||
[[nodiscard]] std::string GetType(size_t index) const;
|
||||
[[nodiscard]] uint32_t GetStatistic(Core::Statistic stat) const;
|
||||
[[nodiscard]] std::string GetTalent(int32_t index) const;
|
||||
//[[nodiscard]] const CreatureMoves* GetCreatureMoves() const;
|
||||
[[nodiscard]] int8_t GetTalentIndex(std::string talent) const;
|
||||
[[nodiscard]] int8_t GetRandomTalent(Core::Random* rand) const;
|
||||
};
|
||||
}
|
||||
|
||||
#endif //CREATURELIB_SPECIESVARIANT_HPP
|
||||
Reference in New Issue
Block a user