Initial commit

This commit is contained in:
2019-10-06 13:50:52 +02:00
commit 265923231f
44 changed files with 16258 additions and 0 deletions

View 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)
{}