29 lines
861 B
C++
29 lines
861 B
C++
#ifndef CREATURELIB_LOOKUPGROWTHRATE_HPP
|
|
#define CREATURELIB_LOOKUPGROWTHRATE_HPP
|
|
|
|
#include <Arbutils/Collections/List.hpp>
|
|
#include "GrowthRate.hpp"
|
|
|
|
namespace CreatureLib::Library {
|
|
class LookupGrowthRate : public GrowthRate {
|
|
protected:
|
|
ArbUt::List<u32> _experience;
|
|
|
|
public:
|
|
LookupGrowthRate(const ArbUt::List<u32>& experience) : _experience(experience) {}
|
|
|
|
level_int_t CalculateLevel(u32 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;
|
|
}
|
|
|
|
u32 CalculateExperience(level_int_t level) const override { return _experience[level - 1]; }
|
|
};
|
|
}
|
|
|
|
#endif // CREATURELIB_LOOKUPGROWTHRATE_HPP
|