CreatureLib/src/Library/GrowthRates/LookupGrowthRate.hpp

28 lines
840 B
C++

#ifndef CREATURELIB_LOOKUPGROWTHRATE_HPP
#define CREATURELIB_LOOKUPGROWTHRATE_HPP
#include "GrowthRate.hpp"
namespace CreatureLib::Library {
class LookupGrowthRate : public GrowthRate {
protected:
ArbUt::List<uint32_t> _experience;
public:
LookupGrowthRate(const ArbUt::List<uint32_t>& experience) : _experience(experience) {}
level_int_t CalculateLevel(uint32_t experience) const override {
for (level_int_t i = 0; i < (level_int_t)_experience.Count(); i++) {
if (_experience[i] > experience) {
return i;
}
}
return _experience.Count() - 1;
}
uint32_t CalculateExperience(level_int_t level) const override { return _experience[level - 1]; }
};
}
#endif // CREATURELIB_LOOKUPGROWTHRATE_HPP