/* * 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 "PassLeadershipToMasterAction.h" #include "Event.h" #include "PlayerbotOperations.h" #include "Playerbots.h" #include "PlayerbotWorldThreadProcessor.h" bool PassLeadershipToMasterAction::Execute(Event event) { if (Player* master = GetMaster()) if (master && master != bot && bot->GetGroup() && bot->GetGroup()->IsMember(master->GetGUID())) { auto setLeaderOp = std::make_unique(bot->GetGUID(), master->GetGUID()); sPlayerbotWorldProcessor->QueueOperation(std::move(setLeaderOp)); if (!message.empty()) botAI->TellMasterNoFacing(message); if (sRandomPlayerbotMgr->IsRandomBot(bot)) { botAI->ResetStrategies(); botAI->Reset(); } return true; } return false; } bool PassLeadershipToMasterAction::isUseful() { return botAI->IsAlt() && bot->GetGroup() && bot->GetGroup()->IsLeader(bot->GetGUID()); } bool GiveLeaderAction::isUseful() { return botAI->HasActivePlayerMaster() && bot->GetGroup() && bot->GetGroup()->IsLeader(bot->GetGUID()); }