#ifndef GEN7TESTS_GROWTHRATESBUILDER_HPP #define GEN7TESTS_GROWTHRATESBUILDER_HPP #define LEVEL_U8 1 #include #include #include #include class LookupGrowthRate : public CreatureLib::Library::GrowthRate { std::vector _experience; public: LookupGrowthRate(std::vector experience) : _experience(std::move(experience)) {} [[nodiscard]] uint8_t CalculateLevel(uint32_t experience) const override { for (size_t i = 0; i < _experience.size(); i++) { if (_experience[i] > experience) { return i; } } return _experience[_experience.size() - 1]; } [[nodiscard]] uint32_t CalculateExperience(uint8_t level) const override { return _experience[level - 1]; } }; class GrowthRatesBuilder { public: static CreatureLib::Library::GrowthRateLibrary* Build(const std::string& file); }; #endif // GEN7TESTS_GROWTHRATESBUILDER_HPP