/* * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license, you may redistribute it * and/or modify it under version 3 of the License, or (at your option), any later version. */ #include "PaladinTriggers.h" #include "PaladinActions.h" #include "PlayerbotAIConfig.h" #include "Playerbots.h" #include "PaladinHelper.h" bool SealTrigger::IsActive() { Unit* target = GetTarget(); return !botAI->HasAura("seal of justice", target) && !botAI->HasAura("seal of command", target) && !botAI->HasAura("seal of vengeance", target) && !botAI->HasAura("seal of corruption", target) && !botAI->HasAura("seal of righteousness", target) && !botAI->HasAura("seal of light", target) && (!botAI->HasAura("seal of wisdom", target) || AI_VALUE2(uint8, "mana", "self target") > 70); } bool CrusaderAuraTrigger::IsActive() { Unit* target = GetTarget(); return AI_VALUE2(bool, "mounted", "self target") && !botAI->HasAura("crusader aura", target); } bool BlessingTrigger::IsActive() { Unit* target = GetTarget(); return SpellTrigger::IsActive() && !botAI->HasAnyAuraOf(target, "blessing of might", "blessing of wisdom", "blessing of kings", "blessing of sanctuary", nullptr); } bool DivineShieldLowHealthTrigger::IsActive() { return botAI->HasAura("divine shield", bot) && AI_VALUE2(uint8, "health", "self target") < 80; } Unit* HandOfFreedomOnPartyTrigger::GetTarget() { bool const selfImpaired = botAI->IsMovementImpaired(bot); bool const hasSelfHand = selfImpaired && ai::paladin::HasAnyPaladinHandFromCaster(bot, bot); if (!bot->GetGroup()) { if (selfImpaired && !hasSelfHand) return bot; return nullptr; } if (selfImpaired && !hasSelfHand) return bot; return Trigger::GetTarget(); } bool HandOfFreedomOnPartyTrigger::IsActive() { Unit* target = GetTarget(); if (!target) return false; if (target != bot && bot->GetExactDist2dSq(target->GetPositionX(), target->GetPositionY()) > 30.0f * 30.0f) return false; if (!botAI->CanCastSpell("hand of freedom", target)) return false; return !ai::paladin::HasAnyPaladinHandFromCaster(target, bot) && botAI->IsMovementImpaired(target); } bool NotSensingUndeadTrigger::IsActive() { return !botAI->HasAura("sense undead", bot); }