/* * Copyright (C) 2016+ AzerothCore , 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 "PartyMemberWithoutAuraValue.h" #include "Playerbots.h" extern std::vector split(std::string const s, char delim); class PlayerWithoutAuraPredicate : public FindPlayerPredicate, public PlayerbotAIAware { public: PlayerWithoutAuraPredicate(PlayerbotAI* botAI, std::string const aura) : PlayerbotAIAware(botAI), FindPlayerPredicate(), auras(split(aura, ',')) { } public: bool Check(Unit* unit) override { if (!unit->IsAlive()) return false; for (std::vector::iterator i = auras.begin(); i != auras.end(); ++i) { if (botAI->HasAura(*i, unit)) return false; } return true; } private: std::vector auras; }; Unit* PartyMemberWithoutAuraValue::Calculate() { PlayerWithoutAuraPredicate predicate(botAI, qualifier); return FindPartyMember(predicate); }