mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-13 09:07:19 +00:00
Hello everyone, I liked the channel cancel I did on mage recently, where they cancel blizzard if there is only 1 enemy left. I decided to do the same for the following classes: Druid: Hurricane Hunter: Volley Priest: Mind Sear Warlock: Rain of Fire I moved the "ChannelCancel" action to it's own file, so other classes could benefit from it. I removed it from the mageactions.
64 lines
2.0 KiB
C++
64 lines
2.0 KiB
C++
/*
|
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it
|
|
* and/or modify it under version 2 of the License, or (at your option), any later version.
|
|
*/
|
|
|
|
#include "DruidTriggers.h"
|
|
#include "Player.h"
|
|
#include "Playerbots.h"
|
|
|
|
bool MarkOfTheWildOnPartyTrigger::IsActive()
|
|
{
|
|
return BuffOnPartyTrigger::IsActive() && !botAI->HasAura("gift of the wild", GetTarget());
|
|
}
|
|
|
|
bool MarkOfTheWildTrigger::IsActive()
|
|
{
|
|
return BuffTrigger::IsActive() && !botAI->HasAura("gift of the wild", GetTarget());
|
|
}
|
|
|
|
bool ThornsOnPartyTrigger::IsActive()
|
|
{
|
|
return BuffOnPartyTrigger::IsActive() && !botAI->HasAura("thorns", GetTarget());
|
|
}
|
|
|
|
bool EntanglingRootsKiteTrigger::IsActive()
|
|
{
|
|
return DebuffTrigger::IsActive() && AI_VALUE(uint8, "attacker count") < 3 && !GetTarget()->GetPower(POWER_MANA);
|
|
}
|
|
|
|
bool ThornsTrigger::IsActive() { return BuffTrigger::IsActive() && !botAI->HasAura("thorns", GetTarget()); }
|
|
|
|
bool BearFormTrigger::IsActive() { return !botAI->HasAnyAuraOf(bot, "bear form", "dire bear form", nullptr); }
|
|
|
|
bool TreeFormTrigger::IsActive() { return !botAI->HasAura(33891, bot); }
|
|
|
|
bool CatFormTrigger::IsActive() { return !botAI->HasAura("cat form", bot); }
|
|
|
|
const std::set<uint32> HurricaneChannelCheckTrigger::HURRICANE_SPELL_IDS = {
|
|
16914, // Hurricane Rank 1
|
|
17401, // Hurricane Rank 2
|
|
17402, // Hurricane Rank 3
|
|
27012, // Hurricane Rank 4
|
|
48467 // Hurricane Rank 5
|
|
};
|
|
|
|
bool HurricaneChannelCheckTrigger::IsActive()
|
|
{
|
|
Player* bot = botAI->GetBot();
|
|
|
|
// Check if the bot is channeling a spell
|
|
if (Spell* spell = bot->GetCurrentSpell(CURRENT_CHANNELED_SPELL))
|
|
{
|
|
// Only trigger if the spell being channeled is Hurricane
|
|
if (HURRICANE_SPELL_IDS.count(spell->m_spellInfo->Id))
|
|
{
|
|
uint8 attackerCount = AI_VALUE(uint8, "attacker count");
|
|
return attackerCount < minEnemies;
|
|
}
|
|
}
|
|
|
|
// Not channeling Hurricane
|
|
return false;
|
|
}
|