Further implementation of types.
This commit is contained in:
@@ -1,11 +1,16 @@
|
||||
#include "SpeciesVariant.hpp"
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
||||
const std::vector<uint8_t>& CreatureLib::Library::SpeciesVariant::GetTypes() const {
|
||||
return _types;
|
||||
}
|
||||
|
||||
size_t CreatureLib::Library::SpeciesVariant::GetTypeCount() const {
|
||||
return _types.size();
|
||||
}
|
||||
|
||||
std::string CreatureLib::Library::SpeciesVariant::GetType(size_t index) const {
|
||||
uint8_t CreatureLib::Library::SpeciesVariant::GetType(size_t index) const {
|
||||
return _types[index];
|
||||
}
|
||||
|
||||
@@ -25,7 +30,7 @@ const std::string& CreatureLib::Library::SpeciesVariant::GetTalent(int32_t index
|
||||
return &_moves;
|
||||
}*/
|
||||
|
||||
int8_t CreatureLib::Library::SpeciesVariant::GetTalentIndex(std::string talent) const{
|
||||
int8_t CreatureLib::Library::SpeciesVariant::GetTalentIndex(const std::string& talent) const{
|
||||
auto i = std::find(_talents.begin(), _talents.end(), talent);
|
||||
if (i != _talents.end()){
|
||||
return std::distance(_talents.begin(), i);
|
||||
@@ -46,21 +51,21 @@ const CreatureLib::Library::LearnableAttacks *CreatureLib::Library::SpeciesVaria
|
||||
}
|
||||
|
||||
CreatureLib::Library::SpeciesVariant::SpeciesVariant(std::string name, float height, float weight,
|
||||
uint32_t baseExperience, std::vector<std::string> types,
|
||||
uint32_t baseExperience, std::vector<uint8_t> types,
|
||||
CreatureLib::Core::StatisticSet<uint16_t > baseStats,
|
||||
std::vector<std::string> talents,
|
||||
std::vector<std::string> secretTalents, const LearnableAttacks* attacks)
|
||||
: __Name(name),
|
||||
: __Name(std::move(name)),
|
||||
__Height(height),
|
||||
__Weight(weight),
|
||||
__BaseExperience(baseExperience),
|
||||
_types(types),
|
||||
_types(std::move(types)),
|
||||
_baseStatistics(baseStats),
|
||||
_talents(talents),
|
||||
_secretTalents(secretTalents),
|
||||
_talents(std::move(talents)),
|
||||
_secretTalents(std::move(secretTalents)),
|
||||
_attacks(attacks)
|
||||
{}
|
||||
|
||||
CreatureLib::Library::SpeciesVariant::~SpeciesVariant() {
|
||||
delete _attacks;
|
||||
}
|
||||
}
|
||||
@@ -19,24 +19,25 @@ namespace CreatureLib::Library {
|
||||
GetProperty(float, Weight);
|
||||
GetProperty(uint32_t, BaseExperience);
|
||||
private:
|
||||
std::vector<std::string> _types;
|
||||
std::vector<uint8_t > _types;
|
||||
const Core::StatisticSet<uint16_t > _baseStatistics;
|
||||
std::vector<std::string> _talents;
|
||||
std::vector<std::string> _secretTalents;
|
||||
const LearnableAttacks* _attacks;
|
||||
public:
|
||||
SpeciesVariant(std::string name, float height, float weight, uint32_t baseExperience,
|
||||
std::vector<std::string> types, Core::StatisticSet<uint16_t > baseStats, std::vector<std::string> talents,
|
||||
std::vector<uint8_t> types, Core::StatisticSet<uint16_t > baseStats, std::vector<std::string> talents,
|
||||
std::vector<std::string> secretTalents, const LearnableAttacks* attacks);
|
||||
|
||||
~SpeciesVariant();
|
||||
|
||||
[[nodiscard]] size_t GetTypeCount() const;
|
||||
[[nodiscard]] std::string GetType(size_t index) const;
|
||||
[[nodiscard]] uint8_t GetType(size_t index) const;
|
||||
[[nodiscard]] const std::vector<uint8_t >& GetTypes() const;
|
||||
[[nodiscard]] uint32_t GetStatistic(Core::Statistic stat) const;
|
||||
[[nodiscard]] const std::string& GetTalent(int32_t index) const;
|
||||
[[nodiscard]] const LearnableAttacks* GetLearnableAttacks() const;
|
||||
[[nodiscard]] int8_t GetTalentIndex(std::string talent) const;
|
||||
[[nodiscard]] int8_t GetTalentIndex(const std::string& talent) const;
|
||||
[[nodiscard]] int8_t GetRandomTalent(Core::Random* rand) const;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user