PkmnLib/src/Battling/Library/StatCalculator.hpp

34 lines
1.4 KiB
C++
Raw Normal View History

2020-01-05 14:18:30 +00:00
#ifndef PKMNLIB_STATCALCULATOR_HPP
#define PKMNLIB_STATCALCULATOR_HPP
#include <CreatureLib/Battling/Library/BattleStatCalculator.hpp>
2020-01-05 14:18:30 +00:00
#include "../../Library/Statistic.hpp"
namespace PkmnLib::Battling {
class Pokemon;
class StatCalculator final : public CreatureLib::Battling::BattleStatCalculator {
2020-01-05 14:18:30 +00:00
protected:
virtual u32 CalculateHealthStat(const Pokemon* non_null pkmn) const;
virtual u32 CalculateOtherStat(const Pokemon* non_null pkmn, CreatureLib::Library::Statistic stat) const;
virtual float GetStatBoostModifier(const CreatureLib::Battling::Creature* non_null pkmn,
CreatureLib::Library::Statistic stat) const;
2020-01-05 14:18:30 +00:00
public:
~StatCalculator() override = default;
CreatureLib::Library::StatisticSet<u32>
CalculateFlatStats(CreatureLib::Battling::Creature* non_null creature) const override;
2020-01-05 14:18:30 +00:00
CreatureLib::Library::StatisticSet<u32>
CalculateBoostedStats(CreatureLib::Battling::Creature* non_null creature) const override;
2020-01-05 14:18:30 +00:00
u32 CalculateFlatStat(CreatureLib::Battling::Creature* non_null creature,
CreatureLib::Library::Statistic stat) const override;
2020-01-05 14:18:30 +00:00
u32 CalculateBoostedStat(CreatureLib::Battling::Creature* non_null creature,
CreatureLib::Library::Statistic stat) const override;
2020-01-05 14:18:30 +00:00
};
}
#endif // PKMNLIB_STATCALCULATOR_HPP