Implemented better script handling.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "TurnHandler.hpp"
|
||||
#include "../Models/Battle.hpp"
|
||||
#include "../../Core/Exceptions/NotImplementedException.hpp"
|
||||
#include "../ScriptHandling/ScriptMacros.cpp"
|
||||
|
||||
using namespace CreatureLib::Battling;
|
||||
|
||||
@@ -78,15 +79,15 @@ void TurnHandler::ExecuteAttackChoice(const AttackTurnChoice *choice) {
|
||||
|
||||
void TurnHandler::HandleAttackForTarget(ExecutingAttack &attack, Creature *target, ExecutingAttack::TargetData &targetData) {
|
||||
//HOOK: Check if attack fails on target
|
||||
target->ExecuteScripts(Hook::IncomingAttackFails, {std::any(attack), std::any(target)});
|
||||
std::array<ScriptSource*, 1> sources = {target};
|
||||
HOOK(OnIncomingAttackFails, sources, &attack, target);
|
||||
|
||||
//HOOK: Check if target is invulnerable
|
||||
target->ExecuteScripts(Hook::IsInvulnerable, {std::any(attack), std::any(target)});
|
||||
|
||||
HOOK(IsInvulnerable, sources, &attack, target);
|
||||
|
||||
if (!targetData.IsHit()){
|
||||
//HOOK: On attack miss.
|
||||
target->ExecuteScripts(Hook::AttackMiss, {std::any(attack), std::any(target)});
|
||||
HOOK(OnAttackMiss, sources, &attack, target);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user