Implement basic type library.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-11-04 17:58:26 +01:00
parent b4e08049ce
commit 168e14d394
5 changed files with 75 additions and 4 deletions

View File

@@ -0,0 +1,32 @@
#include "TypeLibrary.hpp"
using namespace CreatureLib::Library;
float TypeLibrary::GetEffectiveness(uint8_t attacking, const std::vector<uint8_t> &defensive) const {
auto eff = 1;
for (auto def: defensive){
eff *= GetSingleEffectiveness(attacking, def);
}
return eff;
}
float TypeLibrary::GetSingleEffectiveness(uint8_t attacking, uint8_t defensive) const {
return _effectiveness[attacking][defensive];
}
uint8_t TypeLibrary::GetTypeId(const std::string &s) const {
return _types.at(s);
}
uint8_t TypeLibrary::RegisterType(const std::string& typeName) {
_types.insert({typeName, _types.size()});
_effectiveness.resize(_types.size());
for (auto & eff : _effectiveness){
eff.resize(_types.size(), 1);
}
return _types.size() - 1;
}
void TypeLibrary::SetEffectiveness(uint8_t attacking, uint8_t defensive, float effectiveness) {
_effectiveness[attacking][defensive] = effectiveness;
}