From 3dcefebee75fe9a7e23400a8a6d50d1d22c8f4d1 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 19 Apr 2020 13:07:28 +0200 Subject: [PATCH] Add ChangeEffectiveness script hook. --- src/Battling/Flow/TurnHandler.cpp | 4 +++- src/Battling/ScriptHandling/Script.hpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Battling/Flow/TurnHandler.cpp b/src/Battling/Flow/TurnHandler.cpp index 3b15828..348daef 100644 --- a/src/Battling/Flow/TurnHandler.cpp +++ b/src/Battling/Flow/TurnHandler.cpp @@ -148,7 +148,9 @@ void TurnHandler::HandleAttackForTarget(ExecutingAttack* attack, Creature* targe auto hitType = hit->GetType(); HOOK(ChangeAttackType, targetSource, attack, target, hitIndex, &hitType); - hit->SetEffectiveness(library->GetTypeLibrary()->GetEffectiveness(hitType, target->GetTypes())); + auto effectiveness = library->GetTypeLibrary()->GetEffectiveness(hitType, target->GetTypes()); + HOOK(ChangeEffectiveness, attack, attack, target, hitIndex, &effectiveness) + hit->SetEffectiveness(effectiveness); hit->SetCritical(library->GetMiscLibrary()->IsCritical(attack, target, hitIndex)); hit->SetBasePower(dmgLibrary->GetBasePower(attack, target, hitIndex)); hit->SetDamage(dmgLibrary->GetDamage(attack, target, hitIndex)); diff --git a/src/Battling/ScriptHandling/Script.hpp b/src/Battling/ScriptHandling/Script.hpp index 3ba076c..c5d1f15 100644 --- a/src/Battling/ScriptHandling/Script.hpp +++ b/src/Battling/ScriptHandling/Script.hpp @@ -37,6 +37,8 @@ namespace CreatureLib::Battling { virtual void IsInvulnerable(ExecutingAttack* attack, Creature* target, bool* outResult){}; virtual void OnAttackMiss(ExecutingAttack* attack, Creature* target){}; virtual void ChangeAttackType(ExecutingAttack* attack, Creature* target, uint8_t hitNumber, uint8_t* outType){}; + virtual void ChangeEffectiveness(ExecutingAttack* attack, Creature* target, uint8_t hitNumber, + float* effectiveness){}; virtual void OverrideBasePower(ExecutingAttack* attack, Creature* target, uint8_t hitIndex, uint8_t* basePower){};