Initial commit
This commit is contained in:
58
src/Library/CreatureData/SpeciesVariant.cpp
Normal file
58
src/Library/CreatureData/SpeciesVariant.cpp
Normal file
@@ -0,0 +1,58 @@
|
||||
#include "SpeciesVariant.hpp"
|
||||
#include <algorithm>
|
||||
|
||||
size_t CreatureLib::Library::SpeciesVariant::GetTypeCount() const {
|
||||
return _types.size();
|
||||
}
|
||||
|
||||
std::string CreatureLib::Library::SpeciesVariant::GetType(size_t index) const {
|
||||
return _types[index];
|
||||
}
|
||||
|
||||
uint32_t CreatureLib::Library::SpeciesVariant::GetStatistic(CreatureLib::Core::Statistic stat) const {
|
||||
return _baseStatistics.GetStat(stat);
|
||||
}
|
||||
|
||||
std::string CreatureLib::Library::SpeciesVariant::GetTalent(int32_t index) const {
|
||||
if (index < 0){
|
||||
index = -index - 1;
|
||||
return _secretTalents[index];
|
||||
}
|
||||
return _talents[index];
|
||||
}
|
||||
|
||||
/*const CreatureLib::Library::CreatureMoves *CreatureLib::Library::SpeciesVariant::GetCreatureMoves() const {
|
||||
return &_moves;
|
||||
}*/
|
||||
|
||||
int8_t CreatureLib::Library::SpeciesVariant::GetTalentIndex(std::string talent) const{
|
||||
auto i = std::find(_talents.begin(), _talents.end(), talent);
|
||||
if (i != _talents.end()){
|
||||
return std::distance(_talents.begin(), i);
|
||||
}
|
||||
i = std::find(_secretTalents.begin(), _secretTalents.end(), talent);
|
||||
if (i != _secretTalents.end()){
|
||||
return std::distance(_secretTalents.begin(), i);
|
||||
}
|
||||
//TODO: implement better exception.
|
||||
throw;
|
||||
}
|
||||
|
||||
int8_t CreatureLib::Library::SpeciesVariant::GetRandomTalent(CreatureLib::Core::Random *rand) const {
|
||||
return rand->Get(_talents.size());
|
||||
}
|
||||
|
||||
CreatureLib::Library::SpeciesVariant::SpeciesVariant(std::string name, float height, float weight,
|
||||
uint32_t baseExperience, std::vector<std::string> types,
|
||||
CreatureLib::Core::StatisticSet baseStats,
|
||||
std::vector<std::string> talents,
|
||||
std::vector<std::string> secretTalents)
|
||||
: __Name(name),
|
||||
__Height(height),
|
||||
__Weight(weight),
|
||||
__BaseExperience(baseExperience),
|
||||
_types(types),
|
||||
_baseStatistics(baseStats),
|
||||
_talents(talents),
|
||||
_secretTalents(secretTalents)
|
||||
{}
|
||||
Reference in New Issue
Block a user