diff --git a/src/Battling/Library/DamageLibrary.cpp b/src/Battling/Library/DamageLibrary.cpp index d27de3d..48d7c2d 100644 --- a/src/Battling/Library/DamageLibrary.cpp +++ b/src/Battling/Library/DamageLibrary.cpp @@ -3,7 +3,7 @@ using namespace CreatureLib::Battling; int DamageLibrary::GetDamage(ExecutingAttack* attack, Creature* target, uint8_t hitIndex) const { auto levelMod = static_cast(2 * attack->GetUser()->GetLevel()); - auto hit = attack->GetAttackDataForTarget(target).GetHit(hitIndex); + auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex); auto bp = hit->GetBasePower(); auto statMod = GetStatModifier(attack, target, hitIndex); // HOOK: Modify stat modifier @@ -22,7 +22,7 @@ int DamageLibrary::GetBasePower(ExecutingAttack* attack, Creature* target, uint8 float DamageLibrary::GetStatModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex) const { auto user = attack->GetUser(); // HOOK: allow overriding for which users stat we use. - auto hit = attack->GetAttackDataForTarget(target).GetHit(hitIndex); + auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex); Core::Statistic offensiveStat; Core::Statistic defensiveStat; if (attack->GetAttack()->GetAttack()->GetCategory() == Library::AttackCategory::Physical) { @@ -57,7 +57,7 @@ float DamageLibrary::GetStatModifier(ExecutingAttack* attack, Creature* target, float DamageLibrary::GetDamageModifier(ExecutingAttack* attack, Creature* target, uint8_t hitIndex) const { float mod = 1; - auto hit = attack->GetAttackDataForTarget(target).GetHit(hitIndex); + auto hit = attack->GetAttackDataForTarget(target)->GetHit(hitIndex); mod *= hit->GetEffectiveness(); // HOOK: Modify damage modifier. return mod; diff --git a/src/Battling/Models/ExecutingAttack.hpp b/src/Battling/Models/ExecutingAttack.hpp index ed13e35..8712616 100644 --- a/src/Battling/Models/ExecutingAttack.hpp +++ b/src/Battling/Models/ExecutingAttack.hpp @@ -69,7 +69,7 @@ namespace CreatureLib::Battling { virtual ~ExecutingAttack() { delete _script; }; - TargetData& GetAttackDataForTarget(Creature* creature) { return _targets[creature]; } + TargetData* GetAttackDataForTarget(Creature* creature) { return &_targets[creature]; } bool IsCreatureTarget(Creature* creature) { return _targets.find(creature) != _targets.end(); }