Update to the latest CreatureLib version.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include "DamageLibrary.hpp"
|
||||
#include "../Pokemon/Pokemon.hpp"
|
||||
int PkmnLib::Battling::DamageLibrary::GetDamage(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
uint32_t PkmnLib::Battling::DamageLibrary::GetDamage(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, uint8_t hitIndex) const {
|
||||
auto levelMod = static_cast<float>(2 * attack->GetUser()->GetLevel());
|
||||
auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex);
|
||||
@@ -12,7 +12,7 @@ int PkmnLib::Battling::DamageLibrary::GetDamage(CreatureLib::Battling::Executing
|
||||
// HOOK: Override damage
|
||||
return damage;
|
||||
}
|
||||
int PkmnLib::Battling::DamageLibrary::GetBasePower(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
uint8_t PkmnLib::Battling::DamageLibrary::GetBasePower(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, uint8_t hitIndex) const {
|
||||
auto bp = attack->GetAttack()->GetAttack()->GetBasePower();
|
||||
// HOOK: modify base power.
|
||||
@@ -24,8 +24,8 @@ float PkmnLib::Battling::DamageLibrary::GetStatModifier(CreatureLib::Battling::E
|
||||
auto user = attack->GetUser();
|
||||
// HOOK: allow overriding for which users stat we use.
|
||||
auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex);
|
||||
CreatureLib::Core::Statistic offensiveStat;
|
||||
CreatureLib::Core::Statistic defensiveStat;
|
||||
CreatureLib::Library::Statistic offensiveStat;
|
||||
CreatureLib::Library::Statistic defensiveStat;
|
||||
auto learnedMove = dynamic_cast<LearnedMove*>(attack->GetAttack());
|
||||
auto moveData = learnedMove->GetMoveData();
|
||||
if (moveData->GetCategory() == Library::MoveCategory::Physical) {
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
namespace PkmnLib::Battling {
|
||||
class DamageLibrary : public CreatureLib::Battling::DamageLibrary {
|
||||
public:
|
||||
int GetDamage(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint32_t GetDamage(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex) const override;
|
||||
|
||||
int GetBasePower(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t GetBasePower(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex) const override;
|
||||
float GetStatModifier(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hitIndex) const override;
|
||||
|
||||
@@ -9,7 +9,7 @@ uint32_t PkmnLib::Battling::StatCalculator::CalculateHealthStat(const Pokemon* p
|
||||
return static_cast<uint32_t>(((2 * base + iv + static_cast<uint32_t>(ev / 4)) * level) / 100) + level + 10;
|
||||
}
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateOtherStat(const Pokemon* pkmn,
|
||||
CreatureLib::Core::Statistic stat) const {
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
uint32_t base = pkmn->GetBaseStat(stat);
|
||||
uint32_t iv = pkmn->GetIndividualValue(stat);
|
||||
uint32_t ev = pkmn->GetEffortValue(stat);
|
||||
@@ -19,7 +19,7 @@ uint32_t PkmnLib::Battling::StatCalculator::CalculateOtherStat(const Pokemon* pk
|
||||
return static_cast<uint32_t>(unmodified * pkmn->GetNature().GetStatModifier(stat));
|
||||
}
|
||||
float PkmnLib::Battling::StatCalculator::GetStatBoostModifier(const CreatureLib::Battling::Creature* pkmn,
|
||||
CreatureLib::Core::Statistic stat) const {
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
int8_t boost = pkmn->GetStatBoost(stat);
|
||||
switch (boost) {
|
||||
case -6: return 2.0 / 8;
|
||||
@@ -38,19 +38,19 @@ float PkmnLib::Battling::StatCalculator::GetStatBoostModifier(const CreatureLib:
|
||||
default: throw CreatureException("Stat boost was out of expected range of -6 till 6.");
|
||||
}
|
||||
}
|
||||
CreatureLib::Core::StatisticSet<uint32_t>
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
PkmnLib::Battling::StatCalculator::CalculateFlatStats(CreatureLib::Battling::Creature* creature) const {
|
||||
auto pkmn = dynamic_cast<Pokemon*>(creature);
|
||||
return CreatureLib::Core::StatisticSet<uint32_t>(
|
||||
return CreatureLib::Library::StatisticSet<uint32_t>(
|
||||
CalculateHealthStat(pkmn), CalculateOtherStat(pkmn, Library::Statistic::PhysicalAttack),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::PhysicalDefense),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::SpecialAttack),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::SpecialDefense),
|
||||
CalculateOtherStat(pkmn, Library::Statistic::Speed));
|
||||
}
|
||||
CreatureLib::Core::StatisticSet<uint32_t>
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
PkmnLib::Battling::StatCalculator::CalculateBoostedStats(CreatureLib::Battling::Creature* creature) const {
|
||||
return CreatureLib::Core::StatisticSet<uint32_t>(
|
||||
return CreatureLib::Library::StatisticSet<uint32_t>(
|
||||
CalculateBoostedStat(creature, Library::Statistic::HealthPoints),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalAttack),
|
||||
CalculateBoostedStat(creature, Library::Statistic::PhysicalDefense),
|
||||
@@ -59,12 +59,12 @@ PkmnLib::Battling::StatCalculator::CalculateBoostedStats(CreatureLib::Battling::
|
||||
CalculateBoostedStat(creature, Library::Statistic::Speed));
|
||||
}
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateFlatStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Core::Statistic stat) const {
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
if (stat == Library::Statistic::HealthPoints)
|
||||
return CalculateHealthStat(dynamic_cast<Pokemon*>(creature));
|
||||
return CalculateOtherStat(dynamic_cast<Pokemon*>(creature), stat);
|
||||
}
|
||||
uint32_t PkmnLib::Battling::StatCalculator::CalculateBoostedStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Core::Statistic stat) const {
|
||||
CreatureLib::Library::Statistic stat) const {
|
||||
return creature->GetFlatStat(stat) * GetStatBoostModifier(creature, stat);
|
||||
}
|
||||
|
||||
@@ -10,23 +10,23 @@ namespace PkmnLib::Battling {
|
||||
class StatCalculator : public CreatureLib::Battling::BattleStatCalculator {
|
||||
protected:
|
||||
virtual uint32_t CalculateHealthStat(const Pokemon* pkmn) const;
|
||||
virtual uint32_t CalculateOtherStat(const Pokemon* pkmn, CreatureLib::Core::Statistic stat) const;
|
||||
virtual uint32_t CalculateOtherStat(const Pokemon* pkmn, CreatureLib::Library::Statistic stat) const;
|
||||
virtual float GetStatBoostModifier(const CreatureLib::Battling::Creature* pkmn,
|
||||
CreatureLib::Core::Statistic stat) const;
|
||||
CreatureLib::Library::Statistic stat) const;
|
||||
|
||||
public:
|
||||
~StatCalculator() override = default;
|
||||
CreatureLib::Core::StatisticSet<uint32_t>
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
CalculateFlatStats(CreatureLib::Battling::Creature* creature) const override;
|
||||
|
||||
CreatureLib::Core::StatisticSet<uint32_t>
|
||||
CreatureLib::Library::StatisticSet<uint32_t>
|
||||
CalculateBoostedStats(CreatureLib::Battling::Creature* creature) const override;
|
||||
|
||||
uint32_t CalculateFlatStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Core::Statistic stat) const override;
|
||||
CreatureLib::Library::Statistic stat) const override;
|
||||
|
||||
uint32_t CalculateBoostedStat(CreatureLib::Battling::Creature* creature,
|
||||
CreatureLib::Core::Statistic stat) const override;
|
||||
CreatureLib::Library::Statistic stat) const override;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user