2020-01-05 14:18:30 +00:00
|
|
|
#ifndef PKMNLIB_STATCALCULATOR_HPP
|
|
|
|
#define PKMNLIB_STATCALCULATOR_HPP
|
|
|
|
|
2020-02-08 18:22:29 +00:00
|
|
|
#include <CreatureLib/Battling/Library/BattleStatCalculator.hpp>
|
2020-01-05 14:18:30 +00:00
|
|
|
#include "../../Library/Statistic.hpp"
|
|
|
|
|
|
|
|
namespace PkmnLib::Battling {
|
|
|
|
class Pokemon;
|
|
|
|
|
2020-10-15 16:13:00 +00:00
|
|
|
class StatCalculator final : public CreatureLib::Battling::BattleStatCalculator {
|
2020-01-05 14:18:30 +00:00
|
|
|
protected:
|
2022-03-25 18:08:42 +00:00
|
|
|
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,
|
2020-04-06 18:03:44 +00:00
|
|
|
CreatureLib::Library::Statistic stat) const;
|
2020-01-05 14:18:30 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
~StatCalculator() override = default;
|
2022-03-25 18:08:42 +00:00
|
|
|
CreatureLib::Library::StatisticSet<u32>
|
|
|
|
CalculateFlatStats(CreatureLib::Battling::Creature* non_null creature) const override;
|
2020-01-05 14:18:30 +00:00
|
|
|
|
2022-03-25 18:08:42 +00:00
|
|
|
CreatureLib::Library::StatisticSet<u32>
|
|
|
|
CalculateBoostedStats(CreatureLib::Battling::Creature* non_null creature) const override;
|
2020-01-05 14:18:30 +00:00
|
|
|
|
2022-03-25 18:08:42 +00:00
|
|
|
u32 CalculateFlatStat(CreatureLib::Battling::Creature* non_null creature,
|
|
|
|
CreatureLib::Library::Statistic stat) const override;
|
2020-01-05 14:18:30 +00:00
|
|
|
|
2022-03-25 18:08:42 +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
|