Files
mod-playerbots/src/strategy/values/HasTotemValue.cpp
2024-08-04 10:23:36 +08:00

70 lines
1.8 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 "HasTotemValue.h"
#include "Playerbots.h"
char* strstri(char const* str1, char const* str2);
bool HasTotemValue::Calculate()
{
for (uint8 i = 0; i < MAX_SUMMON_SLOT; ++i)
{
if (!bot->m_SummonSlot[i])
{
continue;
}
if (Creature* OldTotem = bot->GetMap()->GetCreature(bot->m_SummonSlot[i]))
{
if (OldTotem->IsSummon() && OldTotem->GetDistance(bot) <= 30.0f)
{
if (strstri(OldTotem->GetName().c_str(), qualifier.c_str()))
return true;
}
}
}
return false;
}
// bool HasTotemValue::Calculate()
// {
// for (uint8 i = 0; i < MAX_SUMMON_SLOT; ++i)
// {
// if (!bot->m_SummonSlot[i])
// {
// continue;
// }
// if (Creature* OldTotem = bot->GetMap()->GetCreature(bot->m_SummonSlot[i]))
// {
// if (OldTotem->IsSummon())
// {
// if (strstri(creature->GetName().c_str(), qualifier.c_str()))
// return true;
// }
// }
// }
// GuidVector units = *context->GetValue<GuidVector>("nearest totems");
// for (ObjectGuid const guid : units)
// {
// Unit* unit = botAI->GetUnit(guid);
// if (!unit)
// continue;
// Creature* creature = dynamic_cast<Creature*>(unit);
// if (creature->GetOwner() != bot) {
// continue;
// }
// if (strstri(creature->GetName().c_str(), qualifier.c_str()))
// return true;
// }
// return false;
// }