diff --git a/src/Ai/Base/Strategy/PullStrategy.cpp b/src/Ai/Base/Strategy/PullStrategy.cpp index 3d5e3e94a..31351c571 100644 --- a/src/Ai/Base/Strategy/PullStrategy.cpp +++ b/src/Ai/Base/Strategy/PullStrategy.cpp @@ -170,6 +170,9 @@ float PullMultiplier::GetValue(Action* action) if (!strategy || !strategy->HasTarget() || !action) return 1.0f; + if (!strategy->IsPullPendingToStart() && !strategy->HasPullStarted()) + return 1.0f; + std::string const actionName = action->getName(); if (actionName == "pull my target" || actionName == "pull rti target" || diff --git a/src/Ai/Base/Trigger/PullTriggers.cpp b/src/Ai/Base/Trigger/PullTriggers.cpp index 84c550faf..4d23b3896 100644 --- a/src/Ai/Base/Trigger/PullTriggers.cpp +++ b/src/Ai/Base/Trigger/PullTriggers.cpp @@ -20,15 +20,12 @@ bool PullStartTrigger::IsActive() bool PullEndTrigger::IsActive() { PullStrategy const* strategy = PullStrategy::Get(botAI); - Player* bot = botAI->GetBot(); - if (!bot) - return false; if (!strategy || !strategy->HasPullStarted()) return false; Unit* target = strategy->GetTarget(); - if (!target || !target->IsInWorld()) + if (!target || !target->IsInWorld() || !target->IsAlive()) return true; time_t const secondsSincePullStarted = time(nullptr) - strategy->GetPullStartTime(); @@ -53,9 +50,6 @@ bool PullEndTrigger::IsActive() bool ReturnToPullPositionTrigger::IsActive() { PullStrategy const* strategy = PullStrategy::Get(botAI); - Player* bot = botAI->GetBot(); - if (!bot) - return false; Unit* target = strategy ? strategy->GetTarget() : nullptr; if (!strategy || !strategy->HasPullStarted() || !target || !target->IsInCombat() ||