refactor(Core/Misc): acore to Acore (#6043)
This commit is contained in:
parent
7eeae6866e
commit
897a02bb75
224 changed files with 942 additions and 942 deletions
|
|
@ -83,7 +83,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
auto token = acore::StringTo<uint32>(args);
|
||||
auto token = Acore::StringTo<uint32>(args);
|
||||
|
||||
auto const& masterKey = sSecretMgr->GetSecret(SECRET_TOTP_MASTER_KEY);
|
||||
if (!masterKey.IsAvailable())
|
||||
|
|
@ -117,18 +117,18 @@ public:
|
|||
}
|
||||
|
||||
// store random suggested secrets
|
||||
static std::unordered_map<uint32, acore::Crypto::TOTP::Secret> suggestions;
|
||||
auto pair = suggestions.emplace(std::piecewise_construct, std::make_tuple(accountId), std::make_tuple(acore::Crypto::TOTP::RECOMMENDED_SECRET_LENGTH)); // std::vector 1-argument size_t constructor invokes resize
|
||||
static std::unordered_map<uint32, Acore::Crypto::TOTP::Secret> suggestions;
|
||||
auto pair = suggestions.emplace(std::piecewise_construct, std::make_tuple(accountId), std::make_tuple(Acore::Crypto::TOTP::RECOMMENDED_SECRET_LENGTH)); // std::vector 1-argument size_t constructor invokes resize
|
||||
|
||||
if (pair.second) // no suggestion yet, generate random secret
|
||||
acore::Crypto::GetRandomBytes(pair.first->second);
|
||||
Acore::Crypto::GetRandomBytes(pair.first->second);
|
||||
|
||||
if (!pair.second && token) // suggestion already existed and token specified - validate
|
||||
{
|
||||
if (acore::Crypto::TOTP::ValidateToken(pair.first->second, *token))
|
||||
if (Acore::Crypto::TOTP::ValidateToken(pair.first->second, *token))
|
||||
{
|
||||
if (masterKey)
|
||||
acore::Crypto::AEEncryptWithRandomIV<acore::Crypto::AES>(pair.first->second, *masterKey);
|
||||
Acore::Crypto::AEEncryptWithRandomIV<Acore::Crypto::AES>(pair.first->second, *masterKey);
|
||||
|
||||
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
|
||||
stmt->setBinary(0, pair.first->second);
|
||||
|
|
@ -144,7 +144,7 @@ public:
|
|||
}
|
||||
|
||||
// new suggestion, or no token specified, output TOTP parameters
|
||||
handler->PSendSysMessage(LANG_2FA_SECRET_SUGGESTION, acore::Encoding::Base32::Encode(pair.first->second).c_str());
|
||||
handler->PSendSysMessage(LANG_2FA_SECRET_SUGGESTION, Acore::Encoding::Base32::Encode(pair.first->second).c_str());
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -158,7 +158,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
auto token = acore::StringTo<uint32>(args);
|
||||
auto token = Acore::StringTo<uint32>(args);
|
||||
|
||||
auto const& masterKey = sSecretMgr->GetSecret(SECRET_TOTP_MASTER_KEY);
|
||||
if (!masterKey.IsAvailable())
|
||||
|
|
@ -169,7 +169,7 @@ public:
|
|||
}
|
||||
|
||||
uint32 const accountId = handler->GetSession()->GetAccountId();
|
||||
acore::Crypto::TOTP::Secret secret;
|
||||
Acore::Crypto::TOTP::Secret secret;
|
||||
{ // get current TOTP secret
|
||||
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_TOTP_SECRET);
|
||||
stmt->setUInt32(0, accountId);
|
||||
|
|
@ -198,7 +198,7 @@ public:
|
|||
{
|
||||
if (masterKey)
|
||||
{
|
||||
bool success = acore::Crypto::AEDecrypt<acore::Crypto::AES>(secret, *masterKey);
|
||||
bool success = Acore::Crypto::AEDecrypt<Acore::Crypto::AES>(secret, *masterKey);
|
||||
if (!success)
|
||||
{
|
||||
LOG_ERROR("misc", "Account %u has invalid ciphertext in TOTP token.", accountId);
|
||||
|
|
@ -208,7 +208,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
if (acore::Crypto::TOTP::ValidateToken(secret, *token))
|
||||
if (Acore::Crypto::TOTP::ValidateToken(secret, *token))
|
||||
{
|
||||
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
|
||||
stmt->setNull(0);
|
||||
|
|
@ -616,7 +616,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
Optional<std::vector<uint8>> decoded = acore::Encoding::Base32::Decode(secret);
|
||||
Optional<std::vector<uint8>> decoded = Acore::Encoding::Base32::Decode(secret);
|
||||
if (!decoded)
|
||||
{
|
||||
handler->SendSysMessage(LANG_2FA_SECRET_INVALID);
|
||||
|
|
@ -624,7 +624,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
if (128 < (decoded->size() + acore::Crypto::AES::IV_SIZE_BYTES + acore::Crypto::AES::TAG_SIZE_BYTES))
|
||||
if (128 < (decoded->size() + Acore::Crypto::AES::IV_SIZE_BYTES + Acore::Crypto::AES::TAG_SIZE_BYTES))
|
||||
{
|
||||
handler->SendSysMessage(LANG_2FA_SECRET_TOO_LONG);
|
||||
handler->SetSentErrorMessage(true);
|
||||
|
|
@ -632,7 +632,7 @@ public:
|
|||
}
|
||||
|
||||
if (masterKey)
|
||||
acore::Crypto::AEEncryptWithRandomIV<acore::Crypto::AES>(*decoded, *masterKey);
|
||||
Acore::Crypto::AEEncryptWithRandomIV<Acore::Crypto::AES>(*decoded, *masterKey);
|
||||
|
||||
auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_TOTP_SECRET);
|
||||
stmt->setBinary(0, *decoded);
|
||||
|
|
|
|||
|
|
@ -916,8 +916,8 @@ public:
|
|||
else
|
||||
{
|
||||
Creature* passenger = nullptr;
|
||||
acore::AllCreaturesOfEntryInRange check(handler->GetSession()->GetPlayer(), entry, 20.0f);
|
||||
acore::CreatureSearcher<acore::AllCreaturesOfEntryInRange> searcher(handler->GetSession()->GetPlayer(), passenger, check);
|
||||
Acore::AllCreaturesOfEntryInRange check(handler->GetSession()->GetPlayer(), entry, 20.0f);
|
||||
Acore::CreatureSearcher<Acore::AllCreaturesOfEntryInRange> searcher(handler->GetSession()->GetPlayer(), passenger, check);
|
||||
handler->GetSession()->GetPlayer()->VisitNearbyObject(30.0f, searcher);
|
||||
if (!passenger || passenger == target)
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ public:
|
|||
}
|
||||
}
|
||||
ASSERT(!allowedArenas.empty());
|
||||
BattlegroundTypeId randomizedArenaBgTypeId = acore::Containers::SelectRandomContainerElement(allowedArenas);
|
||||
BattlegroundTypeId randomizedArenaBgTypeId = Acore::Containers::SelectRandomContainerElement(allowedArenas);
|
||||
|
||||
uint8 count = 0;
|
||||
if (i != tokens.end())
|
||||
|
|
@ -424,7 +424,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
CellCoord cellCoord = acore::ComputeCellCoord(object->GetPositionX(), object->GetPositionY());
|
||||
CellCoord cellCoord = Acore::ComputeCellCoord(object->GetPositionX(), object->GetPositionY());
|
||||
Cell cell(cellCoord);
|
||||
|
||||
uint32 zoneId, areaId;
|
||||
|
|
@ -443,7 +443,7 @@ public:
|
|||
float groundZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), MAX_HEIGHT);
|
||||
float floorZ = map->GetHeight(object->GetPhaseMask(), object->GetPositionX(), object->GetPositionY(), object->GetPositionZ());
|
||||
|
||||
GridCoord gridCoord = acore::ComputeGridCoord(object->GetPositionX(), object->GetPositionY());
|
||||
GridCoord gridCoord = Acore::ComputeGridCoord(object->GetPositionX(), object->GetPositionY());
|
||||
|
||||
// 63? WHY?
|
||||
int gridX = 63 - gridCoord.x_coord;
|
||||
|
|
@ -2227,14 +2227,14 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
CellCoord p(acore::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()));
|
||||
CellCoord p(Acore::ComputeCellCoord(player->GetPositionX(), player->GetPositionY()));
|
||||
Cell cell(p);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::RespawnDo u_do;
|
||||
acore::WorldObjectWorker<acore::RespawnDo> worker(player, u_do);
|
||||
Acore::RespawnDo u_do;
|
||||
Acore::WorldObjectWorker<Acore::RespawnDo> worker(player, u_do);
|
||||
|
||||
TypeContainerVisitor<acore::WorldObjectWorker<acore::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
|
||||
TypeContainerVisitor<Acore::WorldObjectWorker<Acore::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
|
||||
cell.Visit(p, obj_worker, *player->GetMap(), *player, player->GetGridActivationRange());
|
||||
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -263,15 +263,15 @@ public:
|
|||
float radius = 40.0f;
|
||||
WorldObject* object = handler->GetSession()->GetPlayer();
|
||||
|
||||
CellCoord pair(acore::ComputeCellCoord(object->GetPositionX(), object->GetPositionY()));
|
||||
CellCoord pair(Acore::ComputeCellCoord(object->GetPositionX(), object->GetPositionY()));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
std::list<Creature*> creatureList;
|
||||
|
||||
acore::AnyUnitInObjectRangeCheck go_check(object, radius);
|
||||
acore::CreatureListSearcher<acore::AnyUnitInObjectRangeCheck> go_search(object, creatureList, go_check);
|
||||
TypeContainerVisitor<acore::CreatureListSearcher<acore::AnyUnitInObjectRangeCheck>, GridTypeMapContainer> go_visit(go_search);
|
||||
Acore::AnyUnitInObjectRangeCheck go_check(object, radius);
|
||||
Acore::CreatureListSearcher<Acore::AnyUnitInObjectRangeCheck> go_search(object, creatureList, go_check);
|
||||
TypeContainerVisitor<Acore::CreatureListSearcher<Acore::AnyUnitInObjectRangeCheck>, GridTypeMapContainer> go_visit(go_search);
|
||||
|
||||
// Get Creatures
|
||||
cell.Visit(pair, go_visit, *(object->GetMap()), *object, radius);
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ public:
|
|||
if (!type || !name || !level || *name == '\0' || *level == '\0' || (*type != 'a' && *type != 'l'))
|
||||
return false;
|
||||
|
||||
sLog->SetLogLevel(name, *acore::StringTo<uint32>(level), *type == 'l');
|
||||
sLog->SetLogLevel(name, *Acore::StringTo<uint32>(level), *type == 'l');
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ public:
|
|||
if (targets.empty())
|
||||
return;
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public:
|
|||
{
|
||||
std::list<Creature*> healers = DoFindFriendlyMissingBuff(45.0f, SPELL_INSPIRE);
|
||||
if (!healers.empty())
|
||||
DoCast(acore::Containers::SelectRandomContainerElement(healers), SPELL_INSPIRE);
|
||||
DoCast(Acore::Containers::SelectRandomContainerElement(healers), SPELL_INSPIRE);
|
||||
|
||||
DoCast(me, SPELL_INSPIRE);
|
||||
events.ScheduleEvent(EVENT_INSPIRE, urand(20000, 26000));
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ public:
|
|||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *i))
|
||||
guestList.push_back(summon);
|
||||
|
||||
return acore::Containers::SelectRandomContainerElement(guestList);
|
||||
return Acore::Containers::SelectRandomContainerElement(guestList);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
point = acore::Containers::SelectRandomContainerElement(positions);
|
||||
point = Acore::Containers::SelectRandomContainerElement(positions);
|
||||
pos.Relocate(point->x, point->y, INFERNAL_Z, frand(0.0f, float(M_PI * 2)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ public:
|
|||
std::list<uint32> helpersList;
|
||||
for (uint8 i = 0; i < MAX_HELPERS_COUNT; ++i)
|
||||
helpersList.push_back(helpersEntries[i]);
|
||||
acore::Containers::RandomResize(helpersList, MAX_ACTIVE_HELPERS);
|
||||
Acore::Containers::RandomResize(helpersList, MAX_ACTIVE_HELPERS);
|
||||
|
||||
uint8 j = 0;
|
||||
for (std::list<uint32>::const_iterator itr = helpersList.begin(); itr != helpersList.end(); ++itr, ++j)
|
||||
|
|
@ -199,7 +199,7 @@ public:
|
|||
case EVENT_SPELL_PW_SHIELD:
|
||||
{
|
||||
std::list<Creature*> cList = DoFindFriendlyMissingBuff(40.0f, DUNGEON_MODE(SPELL_POWER_WORD_SHIELD_N, SPELL_POWER_WORD_SHIELD_H));
|
||||
if (Unit* target = acore::Containers::SelectRandomContainerElement(cList))
|
||||
if (Unit* target = Acore::Containers::SelectRandomContainerElement(cList))
|
||||
me->CastSpell(target, DUNGEON_MODE(SPELL_POWER_WORD_SHIELD_N, SPELL_POWER_WORD_SHIELD_H), false);
|
||||
events.ScheduleEvent(EVENT_SPELL_PW_SHIELD, 10000);
|
||||
break;
|
||||
|
|
@ -216,7 +216,7 @@ public:
|
|||
target = me;
|
||||
break;
|
||||
case 2:
|
||||
target = ObjectAccessor::GetCreature(*me, acore::Containers::SelectRandomContainerElement(summons));
|
||||
target = ObjectAccessor::GetCreature(*me, Acore::Containers::SelectRandomContainerElement(summons));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -626,7 +626,7 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(SpectralBlastCheck(GetCaster()->GetVictim()));
|
||||
acore::Containers::RandomResize(targets, 1);
|
||||
Acore::Containers::RandomResize(targets, 1);
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -1052,7 +1052,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT));
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||
|
|
@ -1089,7 +1089,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.sort(acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
targets.sort(Acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
WorldObject* target = targets.front();
|
||||
|
||||
targets.clear();
|
||||
|
|
@ -1299,7 +1299,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_VENGEANCE_OF_THE_BLUE_FLIGHT));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -394,7 +394,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
acore::Containers::RandomResize(targets, GetCaster()->GetAI()->GetData(DATA_NEGATIVE_ENERGY_TARGETS));
|
||||
Acore::Containers::RandomResize(targets, GetCaster()->GetAI()->GetData(DATA_NEGATIVE_ENERGY_TARGETS));
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -149,18 +149,18 @@ public:
|
|||
for (uint8 i = 2; i < StormCount; ++i)
|
||||
bp0 *= 2;
|
||||
|
||||
CellCoord p(acore::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
|
||||
CellCoord p(Acore::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
|
||||
Cell cell(p);
|
||||
cell.SetNoCreate();
|
||||
|
||||
std::list<Unit*> tempUnitMap;
|
||||
|
||||
{
|
||||
acore::AnyAoETargetUnitInObjectRangeCheck u_check(me, me, SIZE_OF_GRIDS);
|
||||
acore::UnitListSearcher<acore::AnyAoETargetUnitInObjectRangeCheck> searcher(me, tempUnitMap, u_check);
|
||||
Acore::AnyAoETargetUnitInObjectRangeCheck u_check(me, me, SIZE_OF_GRIDS);
|
||||
Acore::UnitListSearcher<Acore::AnyAoETargetUnitInObjectRangeCheck> searcher(me, tempUnitMap, u_check);
|
||||
|
||||
TypeContainerVisitor<acore::UnitListSearcher<acore::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
|
||||
TypeContainerVisitor<acore::UnitListSearcher<acore::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer > grid_unit_searcher(searcher);
|
||||
TypeContainerVisitor<Acore::UnitListSearcher<Acore::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
|
||||
TypeContainerVisitor<Acore::UnitListSearcher<Acore::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer > grid_unit_searcher(searcher);
|
||||
|
||||
cell.Visit(p, world_unit_searcher, *me->GetMap(), *me, SIZE_OF_GRIDS);
|
||||
cell.Visit(p, grid_unit_searcher, *me->GetMap(), *me, SIZE_OF_GRIDS);
|
||||
|
|
|
|||
|
|
@ -224,14 +224,14 @@ public:
|
|||
me->GetPosition(x, y, z);
|
||||
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(x, y));
|
||||
CellCoord pair(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::AllCreaturesOfEntryInRange check(me, NPC_EGG, 100);
|
||||
acore::CreatureListSearcher<acore::AllCreaturesOfEntryInRange> searcher(me, templist, check);
|
||||
Acore::AllCreaturesOfEntryInRange check(me, NPC_EGG, 100);
|
||||
Acore::CreatureListSearcher<Acore::AllCreaturesOfEntryInRange> searcher(me, templist, check);
|
||||
|
||||
TypeContainerVisitor<acore::CreatureListSearcher<acore::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
TypeContainerVisitor<Acore::CreatureListSearcher<Acore::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
cell.Visit(pair, cSearcher, *me->GetMap(), *me, me->GetGridActivationRange());
|
||||
}
|
||||
|
|
@ -257,14 +257,14 @@ public:
|
|||
me->GetPosition(x, y, z);
|
||||
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(x, y));
|
||||
CellCoord pair(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::AllCreaturesOfEntryInRange check(me, NPC_FIRE_BOMB, 100);
|
||||
acore::CreatureListSearcher<acore::AllCreaturesOfEntryInRange> searcher(me, templist, check);
|
||||
Acore::AllCreaturesOfEntryInRange check(me, NPC_FIRE_BOMB, 100);
|
||||
Acore::CreatureListSearcher<Acore::AllCreaturesOfEntryInRange> searcher(me, templist, check);
|
||||
|
||||
TypeContainerVisitor<acore::CreatureListSearcher<acore::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
TypeContainerVisitor<Acore::CreatureListSearcher<Acore::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
cell.Visit(pair, cSearcher, *me->GetMap(), *me, me->GetGridActivationRange());
|
||||
}
|
||||
|
|
@ -518,14 +518,14 @@ public:
|
|||
me->GetPosition(x, y, z);
|
||||
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(x, y));
|
||||
CellCoord pair(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::AllCreaturesOfEntryInRange check(me, 23817, 50);
|
||||
acore::CreatureListSearcher<acore::AllCreaturesOfEntryInRange> searcher(me, templist, check);
|
||||
Acore::AllCreaturesOfEntryInRange check(me, 23817, 50);
|
||||
Acore::CreatureListSearcher<Acore::AllCreaturesOfEntryInRange> searcher(me, templist, check);
|
||||
|
||||
TypeContainerVisitor<acore::CreatureListSearcher<acore::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
TypeContainerVisitor<Acore::CreatureListSearcher<Acore::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,14 +141,14 @@ public:
|
|||
me->GetPosition(x, y, z);
|
||||
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(x, y));
|
||||
CellCoord pair(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::AllFriendlyCreaturesInGrid check(me);
|
||||
acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid> searcher(me, templist, check);
|
||||
Acore::AllFriendlyCreaturesInGrid check(me);
|
||||
Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid> searcher(me, templist, check);
|
||||
|
||||
TypeContainerVisitor<acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> cSearcher(searcher);
|
||||
TypeContainerVisitor<Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||
}
|
||||
|
|
@ -168,14 +168,14 @@ public:
|
|||
me->GetPosition(x, y, z);
|
||||
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(x, y));
|
||||
CellCoord pair(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::AllFriendlyCreaturesInGrid check(me);
|
||||
acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid> searcher(me, templist, check);
|
||||
Acore::AllFriendlyCreaturesInGrid check(me);
|
||||
Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid> searcher(me, templist, check);
|
||||
|
||||
TypeContainerVisitor<acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> cSearcher(searcher);
|
||||
TypeContainerVisitor<Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> cSearcher(searcher);
|
||||
|
||||
cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1107,8 +1107,8 @@ public:
|
|||
{
|
||||
timer = 0;
|
||||
Player* player = nullptr;
|
||||
acore::AnyPlayerInObjectRangeCheck checker(me, 2.0f);
|
||||
acore::PlayerSearcher<acore::AnyPlayerInObjectRangeCheck> searcher(me, player, checker);
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, 2.0f);
|
||||
Acore::PlayerSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, player, checker);
|
||||
me->VisitNearbyWorldObject(2.0f, searcher);
|
||||
if (player)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -810,8 +810,8 @@ public:
|
|||
{
|
||||
float radius = 100.0f;
|
||||
std::list<Player*> players;
|
||||
acore::AnyPlayerInObjectRangeCheck checker(me, radius);
|
||||
acore::PlayerListSearcher<acore::AnyPlayerInObjectRangeCheck> searcher(me, players, checker);
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, radius);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, players, checker);
|
||||
me->VisitNearbyWorldObject(radius, searcher);
|
||||
|
||||
for (std::list<Player*>::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
|
|
|
|||
|
|
@ -725,8 +725,8 @@ public:
|
|||
// For nearby players, check if they have the same aura. If so, cast Romantic Picnic (45123)
|
||||
// required by achievement and "hearts" visual
|
||||
std::list<Player*> playerList;
|
||||
acore::AnyPlayerInObjectRangeCheck checker(target, INTERACTION_DISTANCE * 2);
|
||||
acore::PlayerListSearcher<acore::AnyPlayerInObjectRangeCheck> searcher(target, playerList, checker);
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(target, INTERACTION_DISTANCE * 2);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(target, playerList, checker);
|
||||
target->VisitNearbyWorldObject(INTERACTION_DISTANCE * 2, searcher);
|
||||
for (std::list<Player*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::PowerCheck(POWER_MANA, false));
|
||||
targets.remove_if(Acore::PowerCheck(POWER_MANA, false));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -888,16 +888,16 @@ void hyjalAI::JustDied(Unit* /*killer*/)
|
|||
|
||||
void hyjalAI::HideNearPos(float x, float y)
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(x, y));
|
||||
CellCoord pair(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
// First get all creatures.
|
||||
std::list<Creature*> creatures;
|
||||
acore::AllFriendlyCreaturesInGrid creature_check(me);
|
||||
acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check);
|
||||
Acore::AllFriendlyCreaturesInGrid creature_check(me);
|
||||
Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check);
|
||||
|
||||
TypeContainerVisitor <acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
TypeContainerVisitor <Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
cell.Visit(pair, creature_visitor, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||
|
||||
if (!creatures.empty())
|
||||
|
|
@ -912,13 +912,13 @@ void hyjalAI::HideNearPos(float x, float y)
|
|||
|
||||
void hyjalAI::RespawnNearPos(float x, float y)
|
||||
{
|
||||
CellCoord p(acore::ComputeCellCoord(x, y));
|
||||
CellCoord p(Acore::ComputeCellCoord(x, y));
|
||||
Cell cell(p);
|
||||
cell.SetNoCreate();
|
||||
|
||||
acore::RespawnDo u_do;
|
||||
acore::WorldObjectWorker<acore::RespawnDo> worker(me, u_do);
|
||||
TypeContainerVisitor<acore::WorldObjectWorker<acore::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
|
||||
Acore::RespawnDo u_do;
|
||||
Acore::WorldObjectWorker<Acore::RespawnDo> worker(me, u_do);
|
||||
TypeContainerVisitor<Acore::WorldObjectWorker<Acore::RespawnDo>, GridTypeMapContainer > obj_worker(worker);
|
||||
cell.Visit(p, obj_worker, *me->GetMap(), *me, me->GetGridActivationRange());
|
||||
}
|
||||
|
||||
|
|
@ -943,16 +943,16 @@ void hyjalAI::WaypointReached(uint32 waypointId)
|
|||
}
|
||||
//do some talking
|
||||
//all alive guards walk near here
|
||||
CellCoord pair(acore::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
|
||||
CellCoord pair(Acore::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
// First get all creatures.
|
||||
std::list<Creature*> creatures;
|
||||
acore::AllFriendlyCreaturesInGrid creature_check(me);
|
||||
acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check);
|
||||
Acore::AllFriendlyCreaturesInGrid creature_check(me);
|
||||
Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check);
|
||||
TypeContainerVisitor
|
||||
<acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid>,
|
||||
<Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid>,
|
||||
GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
|
||||
cell.Visit(pair, creature_visitor, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||
|
|
@ -984,15 +984,15 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff)
|
|||
{
|
||||
if (TeleportTimer <= diff)
|
||||
{
|
||||
CellCoord pair(acore::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
|
||||
CellCoord pair(Acore::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
|
||||
Cell cell(pair);
|
||||
cell.SetNoCreate();
|
||||
|
||||
std::list<Creature*> creatures;
|
||||
acore::AllFriendlyCreaturesInGrid creature_check(me);
|
||||
acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check);
|
||||
Acore::AllFriendlyCreaturesInGrid creature_check(me);
|
||||
Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check);
|
||||
TypeContainerVisitor
|
||||
<acore::CreatureListSearcher<acore::AllFriendlyCreaturesInGrid>,
|
||||
<Acore::CreatureListSearcher<Acore::AllFriendlyCreaturesInGrid>,
|
||||
GridTypeMapContainer> creature_visitor(creature_searcher);
|
||||
|
||||
cell.Visit(pair, creature_visitor, *(me->GetMap()), *me, me->GetGridActivationRange());
|
||||
|
|
|
|||
|
|
@ -180,8 +180,8 @@ public:
|
|||
DoCast(me, SPELL_IDOM_ROOM_CAMERA_SHAKE);
|
||||
me->SummonGameObject(GO_BELNISTRASZS_BRAZIER, 2577.196f, 947.0781f, 53.16757f, 2.356195f, 0, 0, 0.9238796f, 0.3826832f, 3600);
|
||||
std::list<WorldObject*> ClusterList;
|
||||
acore::AllWorldObjectsInRange objects(me, 50.0f);
|
||||
acore::WorldObjectListSearcher<acore::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
|
||||
Acore::AllWorldObjectsInRange objects(me, 50.0f);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
|
||||
me->VisitNearbyObject(50.0f, searcher);
|
||||
for (std::list<WorldObject*>::const_iterator itr = ClusterList.begin(); itr != ClusterList.end(); ++itr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ public:
|
|||
targetList.push_back((*itr)->getTarget());
|
||||
}
|
||||
|
||||
acore::Containers::RandomResize(targetList, 5);
|
||||
Acore::Containers::RandomResize(targetList, 5);
|
||||
|
||||
for (std::list<Unit*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
|
||||
DoCast(*itr, SPELL_DRAIN_MANA);
|
||||
|
|
|
|||
|
|
@ -139,8 +139,8 @@ public:
|
|||
{
|
||||
GameObject* cage = GetHitGObj();
|
||||
std::list<WorldObject*> cagesList;
|
||||
acore::AllWorldObjectsInRange objects(GetCaster(), 15.0f);
|
||||
acore::WorldObjectListSearcher<acore::AllWorldObjectsInRange> searcher(GetCaster(), cagesList, objects);
|
||||
Acore::AllWorldObjectsInRange objects(GetCaster(), 15.0f);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(GetCaster(), cagesList, objects);
|
||||
GetCaster()->VisitNearbyObject(15.0f, searcher);
|
||||
for (std::list<WorldObject*>::const_iterator itr = cagesList.begin(); itr != cagesList.end(); ++itr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -311,8 +311,8 @@ public:
|
|||
void IsSummonedBy(Unit* /*summoner*/) override
|
||||
{
|
||||
std::list<Player*> playerOnQuestList;
|
||||
acore::AnyPlayerInObjectRangeCheck checker(me, 5.0f);
|
||||
acore::PlayerListSearcher<acore::AnyPlayerInObjectRangeCheck> searcher(me, playerOnQuestList, checker);
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, 5.0f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, playerOnQuestList, checker);
|
||||
me->VisitNearbyWorldObject(5.0f, searcher);
|
||||
for (std::list<Player*>::const_iterator itr = playerOnQuestList.begin(); itr != playerOnQuestList.end(); ++itr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ public:
|
|||
PlayerList.push_back(player);
|
||||
|
||||
if (!PlayerList.empty())
|
||||
caster->CastSpell(acore::Containers::SelectRandomContainerElement(PlayerList), caster->GetMap()->IsHeroic() ? SPELL_SHADOW_SICKLE_H : SPELL_SHADOW_SICKLE, true);
|
||||
caster->CastSpell(Acore::Containers::SelectRandomContainerElement(PlayerList), caster->GetMap()->IsHeroic() ? SPELL_SHADOW_SICKLE_H : SPELL_SHADOW_SICKLE, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -474,12 +474,12 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
// get a list of players with mana
|
||||
targets.remove_if(acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(acore::PowerCheck(POWER_MANA, false));
|
||||
targets.remove_if(Acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(Acore::PowerCheck(POWER_MANA, false));
|
||||
if (targets.empty())
|
||||
return;
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), 10.0f, false));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), 10.0f, false));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ public:
|
|||
myList.push_back(p);
|
||||
if (!myList.empty())
|
||||
{
|
||||
myList.sort(acore::ObjectDistanceOrderPred(me->GetVictim()));
|
||||
myList.sort(Acore::ObjectDistanceOrderPred(me->GetVictim()));
|
||||
Player* target = myList.front();
|
||||
if (me->GetVictim()->GetGUID() != _tankGUID || target->GetGUID() != _offtankGUID)
|
||||
{
|
||||
|
|
@ -420,7 +420,7 @@ public:
|
|||
if (Player* p = itr->GetSource())
|
||||
if (p->IsAlive() && p != me->GetVictim() && p->GetGUID() != _offtankGUID && !p->IsGameMaster() && p->GetDistance(me) < 100.0f && !p->HasAura(SPELL_UNCONTROLLABLE_FRENZY))
|
||||
myList.push_back(p);
|
||||
acore::Containers::RandomResize(myList, Is25ManRaid() ? 3 : 2);
|
||||
Acore::Containers::RandomResize(myList, Is25ManRaid() ? 3 : 2);
|
||||
if (myList.size() > 1)
|
||||
{
|
||||
Talk(SAY_PACT_OF_THE_DARKFALLEN);
|
||||
|
|
@ -446,7 +446,7 @@ public:
|
|||
|
||||
if (!myList.empty())
|
||||
{
|
||||
acore::Containers::RandomResize(myList, 1);
|
||||
Acore::Containers::RandomResize(myList, 1);
|
||||
Player* target = myList.front();
|
||||
Talk(EMOTE_SWARMING_SHADOWS, target);
|
||||
Talk(SAY_SWARMING_SHADOWS);
|
||||
|
|
@ -468,7 +468,7 @@ public:
|
|||
if (p->IsAlive() && p != me->GetVictim() && p->GetGUID() != _offtankGUID && !p->IsGameMaster() && !p->HasAura(SPELL_PACT_OF_THE_DARKFALLEN) && !p->HasAura(SPELL_UNCONTROLLABLE_FRENZY))
|
||||
myList.push_back(p);
|
||||
|
||||
acore::Containers::RandomResize(myList, uint32(Is25ManRaid() ? 4 : 2));
|
||||
Acore::Containers::RandomResize(myList, uint32(Is25ManRaid() ? 4 : 2));
|
||||
for (std::list<Player*>::iterator itr = myList.begin(); itr != myList.end(); ++itr)
|
||||
me->CastSpell(*itr, SPELL_TWILIGHT_BLOODBOLT, false);
|
||||
me->CastSpell(me, SPELL_TWILIGHT_BLOODBOLT_TARGET, false);
|
||||
|
|
@ -625,7 +625,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(false, SPELL_PACT_OF_THE_DARKFALLEN));
|
||||
targets.remove_if(Acore::UnitAuraCheck(false, SPELL_PACT_OF_THE_DARKFALLEN));
|
||||
|
||||
bool remove = true;
|
||||
std::list<WorldObject*>::const_iterator itr, itr2, itrEnd = targets.end();
|
||||
|
|
@ -670,7 +670,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
unitList.remove_if(acore::UnitAuraCheck(true, SPELL_PACT_OF_THE_DARKFALLEN));
|
||||
unitList.remove_if(Acore::UnitAuraCheck(true, SPELL_PACT_OF_THE_DARKFALLEN));
|
||||
unitList.push_back(GetCaster());
|
||||
}
|
||||
|
||||
|
|
@ -723,7 +723,7 @@ public:
|
|||
{
|
||||
uint32 targetCount = (targets.size() + 2) / 3;
|
||||
targets.remove_if(BloodboltHitCheck(static_cast<LanaThelAI*>(GetCaster()->GetAI())));
|
||||
acore::Containers::RandomResize(targets, targetCount);
|
||||
Acore::Containers::RandomResize(targets, targetCount);
|
||||
// mark targets now, effect hook has missile travel time delay (might cast next in that time)
|
||||
for (std::list<WorldObject*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr)
|
||||
GetCaster()->GetAI()->SetGUID((*itr)->GetGUID(), GUID_BLOODBOLT);
|
||||
|
|
@ -921,7 +921,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), GetSpellInfo()->Effects[0].CalcRadius(), true));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), GetSpellInfo()->Effects[0].CalcRadius(), true));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -539,7 +539,7 @@ public:
|
|||
if (_guardList.empty())
|
||||
{
|
||||
GetCreatureListWithEntryInGrid(_guardList, me, NPC_SE_KOR_KRON_REAVER, 20.0f);
|
||||
_guardList.sort(acore::ObjectDistanceOrderPred(me));
|
||||
_guardList.sort(Acore::ObjectDistanceOrderPred(me));
|
||||
}
|
||||
uint32 x = 1;
|
||||
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
|
||||
|
|
@ -800,7 +800,7 @@ public:
|
|||
if (_guardList.empty())
|
||||
{
|
||||
GetCreatureListWithEntryInGrid(_guardList, me, NPC_SE_SKYBREAKER_MARINE, 20.0f);
|
||||
_guardList.sort(acore::ObjectDistanceOrderPred(me));
|
||||
_guardList.sort(Acore::ObjectDistanceOrderPred(me));
|
||||
}
|
||||
uint32 x = 1;
|
||||
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
|
||||
|
|
@ -1242,7 +1242,7 @@ public:
|
|||
// select one random target, with preference of ranged targets
|
||||
uint32 targetsAtRange = 0;
|
||||
uint32 const minTargets = uint32(GetCaster()->GetMap()->GetSpawnMode() & 1 ? 10 : 4);
|
||||
targets.sort(acore::ObjectDistanceOrderPred(GetCaster(), false));
|
||||
targets.sort(Acore::ObjectDistanceOrderPred(GetCaster(), false));
|
||||
|
||||
// get target count at range
|
||||
for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr, ++targetsAtRange)
|
||||
|
|
@ -1310,12 +1310,12 @@ public:
|
|||
|
||||
if (GetSpellInfo()->Id == 72385 || GetSpellInfo()->Id == 72442) // 10n, 10h
|
||||
{
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
else
|
||||
acore::Containers::RandomResize(targets, 3);
|
||||
Acore::Containers::RandomResize(targets, 3);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -2208,7 +2208,7 @@ public:
|
|||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(IgbExplosionCheck(GetCaster()));
|
||||
acore::Containers::RandomResize(targets, 1);
|
||||
Acore::Containers::RandomResize(targets, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
@ -2477,7 +2477,7 @@ public:
|
|||
targets.remove_if(BurningPitchFilterCheck(teamId == TEAM_HORDE ? GO_ORGRIMS_HAMMER_H : GO_THE_SKYBREAKER_A));
|
||||
if (!targets.empty())
|
||||
{
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
@ -2563,7 +2563,7 @@ public:
|
|||
|
||||
if (!targets.empty())
|
||||
{
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -618,7 +618,7 @@ public:
|
|||
return;
|
||||
|
||||
// select random cultist
|
||||
Creature* cultist = acore::Containers::SelectRandomContainerElement(temp);
|
||||
Creature* cultist = Acore::Containers::SelectRandomContainerElement(temp);
|
||||
if (!cultist)
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ enum Events
|
|||
|
||||
uint32 const boneSpikeSummonId[3] = {69062, 72669, 72670};
|
||||
|
||||
struct BoneStormMoveTargetSelector : public acore::unary_function<Unit*, bool>
|
||||
struct BoneStormMoveTargetSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
BoneStormMoveTargetSelector(Creature* source) : _source(source) { }
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ private:
|
|||
};
|
||||
|
||||
// xinef: malleable goo selector, check for target validity
|
||||
struct MalleableGooSelector : public acore::unary_function<Unit*, bool>
|
||||
struct MalleableGooSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
const Unit* me;
|
||||
MalleableGooSelector(Unit const* unit) : me(unit) {}
|
||||
|
|
@ -874,7 +874,7 @@ public:
|
|||
|
||||
void ScaleRange(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), 2.5f * GetCaster()->GetFloatValue(OBJECT_FIELD_SCALE_X), true));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), 2.5f * GetCaster()->GetFloatValue(OBJECT_FIELD_SCALE_X), true));
|
||||
}
|
||||
|
||||
// big hax to unlock Abomination Eat Ooze ability, requires caster aura spell from difficulty X, but unlocks clientside when got base aura
|
||||
|
|
@ -1024,10 +1024,10 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
// vanish rank 1-3, mage invisibility
|
||||
targets.remove_if(acore::UnitAuraCheck(true, 11327));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, 11329));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, 26888));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, 32612));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, 11327));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, 11329));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, 26888));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, 32612));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
@ -1098,8 +1098,8 @@ public:
|
|||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
// dbc has only 1 field for excluding, this will prevent anyone from getting both at the same time
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_VOLATILE_OOZE_PROTECTION));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_GASEOUS_BLOAT_PROTECTION));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_VOLATILE_OOZE_PROTECTION));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_GASEOUS_BLOAT_PROTECTION));
|
||||
|
||||
if (targets.empty())
|
||||
{
|
||||
|
|
@ -1108,7 +1108,7 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
_target = target;
|
||||
|
|
@ -1256,8 +1256,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
targets.remove_if(acore::UnitAuraCheck(true, sSpellMgr->GetSpellIdForDifficulty(SPELL_UNBOUND_PLAGUE, GetCaster())));
|
||||
acore::Containers::RandomResize(targets, 1);
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, sSpellMgr->GetSpellIdForDifficulty(SPELL_UNBOUND_PLAGUE, GetCaster())));
|
||||
Acore::Containers::RandomResize(targets, 1);
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
|
|
@ -1627,7 +1627,7 @@ public:
|
|||
if (targets.empty())
|
||||
return;
|
||||
|
||||
targets.sort(acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
targets.sort(Acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
WorldObject* target = targets.front();
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
|
|
|
|||
|
|
@ -510,12 +510,12 @@ public:
|
|||
{
|
||||
// remove targets with this aura already
|
||||
// tank is not on this list
|
||||
targets.remove_if(acore::UnitAuraCheck(true, GetSpellInfo()->Id));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, GetSpellInfo()->Id));
|
||||
targets.remove(GetCaster()->GetVictim());
|
||||
if (targets.empty())
|
||||
return;
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
_target = target;
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ private:
|
|||
ObjectGuid _sindragosaGUID;
|
||||
};
|
||||
|
||||
struct LastPhaseIceTombTargetSelector : public acore::unary_function<Unit*, bool>
|
||||
struct LastPhaseIceTombTargetSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
LastPhaseIceTombTargetSelector(Creature* source) : _source(source) { }
|
||||
|
|
@ -908,10 +908,10 @@ public:
|
|||
uint32 maxSize = uint32(GetCaster()->GetMap()->GetSpawnMode() & 1 ? 3 : 1);
|
||||
healList.remove_if(UnchainedMagicTargetSelector(false));
|
||||
if (healList.size() > maxSize)
|
||||
acore::Containers::RandomResize(healList, maxSize);
|
||||
Acore::Containers::RandomResize(healList, maxSize);
|
||||
dpsList.remove_if(UnchainedMagicTargetSelector(true));
|
||||
if (dpsList.size() > maxSize)
|
||||
acore::Containers::RandomResize(dpsList, maxSize);
|
||||
Acore::Containers::RandomResize(dpsList, maxSize);
|
||||
unitList.splice(unitList.begin(), healList);
|
||||
unitList.splice(unitList.begin(), dpsList);
|
||||
}
|
||||
|
|
@ -1202,7 +1202,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
unitList.remove_if(acore::UnitAuraCheck(true, GetSpellInfo()->Id));
|
||||
unitList.remove_if(Acore::UnitAuraCheck(true, GetSpellInfo()->Id));
|
||||
targetList.clear();
|
||||
targetList = unitList;
|
||||
}
|
||||
|
|
@ -1906,11 +1906,11 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(Acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
if (targets.empty())
|
||||
return;
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
@ -1927,7 +1927,7 @@ public:
|
|||
if (unitList.empty())
|
||||
return;
|
||||
|
||||
acore::Containers::SelectRandomContainerElement(unitList)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
|
||||
Acore::Containers::SelectRandomContainerElement(unitList)->CastSpell(GetHitUnit(), uint32(GetEffectValue()), true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ void SendPacketToPlayers(WorldPacket const* data, Unit* source)
|
|||
player->GetSession()->SendPacket(data);
|
||||
}
|
||||
|
||||
struct ShadowTrapLKTargetSelector : public acore::unary_function<Unit*, bool>
|
||||
struct ShadowTrapLKTargetSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
ShadowTrapLKTargetSelector(Creature* source, bool playerOnly = true, bool reqLOS = false, float maxDist = 0.0f) : _source(source), _playerOnly(playerOnly), _reqLOS(reqLOS), _maxDist(maxDist) { }
|
||||
|
|
@ -383,7 +383,7 @@ private:
|
|||
float _maxDist;
|
||||
};
|
||||
|
||||
struct NonTankLKTargetSelector : public acore::unary_function<Unit*, bool>
|
||||
struct NonTankLKTargetSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
NonTankLKTargetSelector(Creature* source, bool playerOnly = true, bool reqLOS = false, float maxDist = 0.0f, uint32 exclude1 = 0, uint32 exclude2 = 0) : _source(source), _playerOnly(playerOnly), _reqLOS(reqLOS), _maxDist(maxDist), _exclude1(exclude1), _exclude2(exclude2) { }
|
||||
|
|
@ -417,7 +417,7 @@ private:
|
|||
uint32 _exclude2;
|
||||
};
|
||||
|
||||
struct DefileTargetSelector : public acore::unary_function<Unit*, bool>
|
||||
struct DefileTargetSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
DefileTargetSelector(Creature* source) : _source(source) { }
|
||||
|
|
@ -574,7 +574,7 @@ private:
|
|||
Creature& _owner;
|
||||
};
|
||||
|
||||
class NecroticPlagueTargetCheck : public acore::unary_function<Unit*, bool>
|
||||
class NecroticPlagueTargetCheck : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
NecroticPlagueTargetCheck(Unit const* obj, uint32 notAura1, uint32 notAura2) : _sourceObj(obj), _notAura1(notAura1), _notAura2(notAura2) {}
|
||||
|
|
@ -686,7 +686,7 @@ public:
|
|||
|
||||
// Reset The Frozen Throne gameobjects
|
||||
FrozenThroneResetWorker reset;
|
||||
acore::GameObjectWorker<FrozenThroneResetWorker> worker(me, reset);
|
||||
Acore::GameObjectWorker<FrozenThroneResetWorker> worker(me, reset);
|
||||
me->VisitNearbyGridObject(333.0f, worker);
|
||||
|
||||
me->AddAura(SPELL_EMOTE_SIT_NO_SHEATH, me);
|
||||
|
|
@ -1966,7 +1966,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.sort(acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
targets.sort(Acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
if (targets.size() <= 1)
|
||||
return;
|
||||
|
||||
|
|
@ -2431,9 +2431,9 @@ public:
|
|||
void CorrectRange(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(VehicleCheck());
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), 10.0f * GetCaster()->GetFloatValue(OBJECT_FIELD_SCALE_X), true));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), 10.0f * GetCaster()->GetFloatValue(OBJECT_FIELD_SCALE_X), true));
|
||||
uint32 strangulatedAura[4] = {68980, 74325, 74296, 74297};
|
||||
targets.remove_if(acore::UnitAuraCheck(true, strangulatedAura[GetCaster()->GetMap()->GetDifficulty()]));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, strangulatedAura[GetCaster()->GetMap()->GetDifficulty()]));
|
||||
}
|
||||
|
||||
void ChangeDamageAndGrow()
|
||||
|
|
@ -2573,7 +2573,7 @@ public:
|
|||
if (!triggers.empty())
|
||||
{
|
||||
valid = true;
|
||||
triggers.sort(acore::ObjectDistanceOrderPred(me));
|
||||
triggers.sort(Acore::ObjectDistanceOrderPred(me));
|
||||
|
||||
target->GetMotionMaster()->Clear();
|
||||
target->UpdatePosition(*me, true);
|
||||
|
|
@ -2800,9 +2800,9 @@ public:
|
|||
targets.clear();
|
||||
return;
|
||||
}
|
||||
targets.remove_if(acore::UnitAuraCheck(true, GetSpellInfo()->Id));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_BOSS_HITTIN_YA_AURA)); // done in dbc, but just to be sure xd
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_HARVEST_SOUL_VALKYR));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, GetSpellInfo()->Id));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_BOSS_HITTIN_YA_AURA)); // done in dbc, but just to be sure xd
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_HARVEST_SOUL_VALKYR));
|
||||
if (InstanceScript* _instance = caster->GetInstanceScript())
|
||||
if (Creature* lichKing = ObjectAccessor::GetCreature(*caster, _instance->GetGuidData(DATA_THE_LICH_KING)))
|
||||
if (Spell* s = lichKing->GetCurrentSpell(CURRENT_GENERIC_SPELL))
|
||||
|
|
@ -2812,7 +2812,7 @@ public:
|
|||
if (targets.empty())
|
||||
return;
|
||||
|
||||
_target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
_target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(_target);
|
||||
if (Creature* caster = GetCaster()->ToCreature())
|
||||
|
|
@ -2989,7 +2989,7 @@ public:
|
|||
if (targets.empty())
|
||||
return;
|
||||
|
||||
_target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
_target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
struct ManaVoidSelector : public acore::unary_function<Unit*, bool>
|
||||
struct ManaVoidSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
explicit ManaVoidSelector(WorldObject const* source) : _source(source) { }
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ public:
|
|||
|
||||
bool Execute(uint64 /*currTime*/, uint32 /*diff*/) override
|
||||
{
|
||||
acore::CreatureWorker<ValithriaDespawner> worker(_creature, *this);
|
||||
Acore::CreatureWorker<ValithriaDespawner> worker(_creature, *this);
|
||||
_creature->VisitNearbyGridObject(333.0f, worker);
|
||||
_creature->AI()->Reset();
|
||||
_creature->setActive(false);
|
||||
|
|
@ -525,7 +525,7 @@ public:
|
|||
|
||||
std::list<Creature*> archmages;
|
||||
RisenArchmageCheck check;
|
||||
acore::CreatureListSearcher<RisenArchmageCheck> searcher(me, archmages, check);
|
||||
Acore::CreatureListSearcher<RisenArchmageCheck> searcher(me, archmages, check);
|
||||
me->VisitNearbyGridObject(100.0f, searcher);
|
||||
for (std::list<Creature*>::iterator itr = archmages.begin(); itr != archmages.end(); ++itr)
|
||||
(*itr)->AI()->DoAction(ACTION_ENTER_COMBAT);
|
||||
|
|
@ -1305,9 +1305,9 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), 250.0f, true));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), 250.0f, true));
|
||||
std::list<WorldObject*> list_copy = targets;
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_RECENTLY_SPAWNED));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_RECENTLY_SPAWNED));
|
||||
if (targets.empty())
|
||||
{
|
||||
if (list_copy.empty())
|
||||
|
|
@ -1315,7 +1315,7 @@ public:
|
|||
targets = list_copy;
|
||||
}
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
@ -1361,14 +1361,14 @@ public:
|
|||
std::list<Creature*> summoners;
|
||||
caster->GetCreaturesWithEntryInRange(summoners, 200.0f, NPC_WORLD_TRIGGER);
|
||||
std::list<Creature*> list_copy = summoners;
|
||||
summoners.remove_if(acore::UnitAuraCheck(true, SPELL_RECENTLY_SPAWNED));
|
||||
summoners.remove_if(Acore::UnitAuraCheck(true, SPELL_RECENTLY_SPAWNED));
|
||||
if (summoners.empty())
|
||||
{
|
||||
if (list_copy.empty())
|
||||
return;
|
||||
summoners = list_copy;
|
||||
}
|
||||
acore::Containers::RandomResize(summoners, 2);
|
||||
Acore::Containers::RandomResize(summoners, 2);
|
||||
|
||||
for (uint32 i = 0; i < 3; ++i)
|
||||
caster->CastSpell(summoners.front(), SPELL_SUMMON_SUPPRESSER, true);
|
||||
|
|
|
|||
|
|
@ -840,7 +840,7 @@ public:
|
|||
// get all nearby vrykul
|
||||
std::list<Creature*> temp;
|
||||
FrostwingVrykulSearcher check(me, 150.0f);
|
||||
acore::CreatureListSearcher<FrostwingVrykulSearcher> searcher(me, temp, check);
|
||||
Acore::CreatureListSearcher<FrostwingVrykulSearcher> searcher(me, temp, check);
|
||||
me->VisitNearbyGridObject(150.0f, searcher);
|
||||
|
||||
_aliveTrash.clear();
|
||||
|
|
@ -884,15 +884,15 @@ public:
|
|||
_wipeCheckTimer = 3000;
|
||||
|
||||
Player* player = nullptr;
|
||||
acore::AnyPlayerInObjectRangeCheck check(me, 140.0f);
|
||||
acore::PlayerSearcher<acore::AnyPlayerInObjectRangeCheck> searcher(me, player, check);
|
||||
Acore::AnyPlayerInObjectRangeCheck check(me, 140.0f);
|
||||
Acore::PlayerSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, player, check);
|
||||
me->VisitNearbyWorldObject(140.0f, searcher);
|
||||
// wipe
|
||||
if (!player || me->GetExactDist(4357.0f, 2606.0f, 350.0f) > 125.0f)
|
||||
{
|
||||
//Talk(SAY_CROK_DEATH);
|
||||
FrostwingGauntletRespawner respawner;
|
||||
acore::CreatureWorker<FrostwingGauntletRespawner> worker(me, respawner);
|
||||
Acore::CreatureWorker<FrostwingGauntletRespawner> worker(me, respawner);
|
||||
me->VisitNearbyGridObject(333.0f, worker);
|
||||
return;
|
||||
}
|
||||
|
|
@ -1337,7 +1337,7 @@ public:
|
|||
{
|
||||
std::list<Creature*> targets = DoFindFriendlyMissingBuff(40.0f, SPELL_POWER_WORD_SHIELD);
|
||||
if (!targets.empty())
|
||||
DoCast(acore::Containers::SelectRandomContainerElement(targets), SPELL_POWER_WORD_SHIELD);
|
||||
DoCast(Acore::Containers::SelectRandomContainerElement(targets), SPELL_POWER_WORD_SHIELD);
|
||||
Events.ScheduleEvent(EVENT_ARNATH_PW_SHIELD, urand(15000, 20000));
|
||||
break;
|
||||
}
|
||||
|
|
@ -1361,8 +1361,8 @@ public:
|
|||
Creature* FindFriendlyCreature() const
|
||||
{
|
||||
Creature* target = nullptr;
|
||||
acore::MostHPMissingInRange u_check(me, 60.0f, 0);
|
||||
acore::CreatureLastSearcher<acore::MostHPMissingInRange> searcher(me, target, u_check);
|
||||
Acore::MostHPMissingInRange u_check(me, 60.0f, 0);
|
||||
Acore::CreatureLastSearcher<Acore::MostHPMissingInRange> searcher(me, target, u_check);
|
||||
me->VisitNearbyGridObject(60.0f, searcher);
|
||||
return target;
|
||||
}
|
||||
|
|
@ -1969,7 +1969,7 @@ public:
|
|||
|
||||
std::list<Creature*> wards;
|
||||
GetCaster()->GetCreatureListWithEntryInGrid(wards, NPC_DEATHBOUND_WARD, 150.0f);
|
||||
wards.sort(acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
wards.sort(Acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
for (std::list<Creature*>::iterator itr = wards.begin(); itr != wards.end(); ++itr)
|
||||
{
|
||||
if ((*itr)->IsAlive() && (*itr)->HasAura(SPELL_STONEFORM))
|
||||
|
|
@ -2065,8 +2065,8 @@ public:
|
|||
// First effect
|
||||
void CountTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(acore::ObjectGUIDCheck(GetCaster()->GetGUID(), true));
|
||||
targets.remove_if(Acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(Acore::ObjectGUIDCheck(GetCaster()->GetGUID(), true));
|
||||
|
||||
bool kill = true;
|
||||
for (std::list<WorldObject*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr)
|
||||
|
|
@ -2159,7 +2159,7 @@ public:
|
|||
void RemoveAliveTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(AliveCheck());
|
||||
acore::Containers::RandomResize(targets, 2);
|
||||
Acore::Containers::RandomResize(targets, 2);
|
||||
}
|
||||
|
||||
void Land(SpellEffIndex /*effIndex*/)
|
||||
|
|
@ -2274,7 +2274,7 @@ public:
|
|||
instance->SetData(DATA_COLDFLAME_JETS, IN_PROGRESS);
|
||||
std::list<Creature*> traps;
|
||||
GetCreatureListWithEntryInGrid(traps, player, NPC_FROST_FREEZE_TRAP, 120.0f);
|
||||
traps.sort(acore::ObjectDistanceOrderPred(player));
|
||||
traps.sort(Acore::ObjectDistanceOrderPred(player));
|
||||
bool instant = false;
|
||||
for (std::list<Creature*>::iterator itr = traps.begin(); itr != traps.end(); ++itr)
|
||||
{
|
||||
|
|
@ -2332,7 +2332,7 @@ public:
|
|||
if (!crok->IsAlive())
|
||||
{
|
||||
FrostwingGauntletRespawner respawner;
|
||||
acore::CreatureWorker<FrostwingGauntletRespawner> worker(crok, respawner);
|
||||
Acore::CreatureWorker<FrostwingGauntletRespawner> worker(crok, respawner);
|
||||
crok->VisitNearbyGridObject(333.0f, worker);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1541,7 +1541,7 @@ public:
|
|||
if (stalkers.empty())
|
||||
return;
|
||||
|
||||
stalkers.sort(acore::ObjectDistanceOrderPred(teleporter));
|
||||
stalkers.sort(Acore::ObjectDistanceOrderPred(teleporter));
|
||||
stalkers.front()->CastSpell((Unit*)nullptr, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
|
||||
stalkers.pop_front();
|
||||
for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
|
||||
|
|
@ -1774,7 +1774,7 @@ public:
|
|||
GetCreatureListWithEntryInGrid(triggers, terenas, NPC_WORLD_TRIGGER_INFINITE_AOI, 100.0f);
|
||||
if (!triggers.empty())
|
||||
{
|
||||
triggers.sort(acore::ObjectDistanceOrderPred(terenas, false));
|
||||
triggers.sort(Acore::ObjectDistanceOrderPred(terenas, false));
|
||||
Unit* visual = triggers.front();
|
||||
visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
|
||||
}
|
||||
|
|
@ -1845,7 +1845,7 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
go->Relocate(acore::Containers::SelectRandomContainerElement(trapPositions));
|
||||
go->Relocate(Acore::Containers::SelectRandomContainerElement(trapPositions));
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ const Position PosPlatform = {2640.5f, -3360.6f, 285.26f, 0.0f};
|
|||
#define IN_LIVE_SIDE(who) (who->GetPositionY() < POS_Y_GATE)
|
||||
|
||||
// Predicate function to check that the r efzr unit is NOT on the same side as the source.
|
||||
struct NotOnSameSide : public acore::unary_function<Unit*, bool>
|
||||
struct NotOnSameSide : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
bool m_inLiveSide;
|
||||
explicit NotOnSameSide(Unit* pSource) : m_inLiveSide(IN_LIVE_SIDE(pSource)) {}
|
||||
|
|
@ -677,7 +677,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(false, SPELL_SHADOW_MARK));
|
||||
targets.remove_if(Acore::UnitAuraCheck(false, SPELL_SHADOW_MARK));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -1196,8 +1196,8 @@ public:
|
|||
else if (me->GetEntry() == NPC_LIVING_POISON)
|
||||
{
|
||||
Unit* target = nullptr;
|
||||
acore::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 0.5f);
|
||||
acore::UnitLastSearcher<acore::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, target, u_check);
|
||||
Acore::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 0.5f);
|
||||
Acore::UnitLastSearcher<Acore::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, target, u_check);
|
||||
me->VisitNearbyObject(1.5f, searcher);
|
||||
if (target)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -271,7 +271,7 @@ public:
|
|||
|
||||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::RandomCheck(50));
|
||||
targets.remove_if(Acore::RandomCheck(50));
|
||||
}
|
||||
|
||||
void HandlePull(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -1660,7 +1660,7 @@ public:
|
|||
else
|
||||
{
|
||||
//! In the end, only one target should be selected
|
||||
WorldObject* _target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* _target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
if (_target)
|
||||
targets.push_back(_target);
|
||||
|
|
@ -1709,8 +1709,8 @@ public:
|
|||
{
|
||||
// use 99 because it is 3d search
|
||||
std::list<WorldObject*> targetList;
|
||||
acore::WorldObjectSpellAreaTargetCheck check(99, GetExplTargetDest(), GetCaster(), GetCaster(), GetSpellInfo(), TARGET_CHECK_DEFAULT, nullptr);
|
||||
acore::WorldObjectListSearcher<acore::WorldObjectSpellAreaTargetCheck> searcher(GetCaster(), targetList, check);
|
||||
Acore::WorldObjectSpellAreaTargetCheck check(99, GetExplTargetDest(), GetCaster(), GetCaster(), GetSpellInfo(), TARGET_CHECK_DEFAULT, nullptr);
|
||||
Acore::WorldObjectListSearcher<Acore::WorldObjectSpellAreaTargetCheck> searcher(GetCaster(), targetList, check);
|
||||
GetCaster()->GetMap()->VisitAll(GetCaster()->m_positionX, GetCaster()->m_positionY, 99, searcher);
|
||||
float minDist = 99 * 99;
|
||||
Unit* target = nullptr;
|
||||
|
|
|
|||
|
|
@ -424,9 +424,9 @@ public:
|
|||
Map::PlayerList const& pl = me->GetMap()->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
||||
targets.push_back(itr->GetSource());
|
||||
targets.remove_if(acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_FLASH_FREEZE_TRAPPED_PLAYER));
|
||||
acore::Containers::RandomResize(targets, (RAID_MODE(2,3)));
|
||||
targets.remove_if(Acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_FLASH_FREEZE_TRAPPED_PLAYER));
|
||||
Acore::Containers::RandomResize(targets, (RAID_MODE(2,3)));
|
||||
for (std::list<Unit*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr)
|
||||
{
|
||||
float prevZ = (*itr)->GetPositionZ();
|
||||
|
|
@ -1271,9 +1271,9 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_FLASH_FREEZE_TRAPPED_PLAYER));
|
||||
acore::Containers::RandomResize(targets, 1);
|
||||
targets.remove_if(Acore::ObjectTypeIdCheck(TYPEID_PLAYER, false));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_FLASH_FREEZE_TRAPPED_PLAYER));
|
||||
Acore::Containers::RandomResize(targets, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -635,7 +635,7 @@ public:
|
|||
};
|
||||
|
||||
// predicate function to select non main tank target
|
||||
class StoneGripTargetSelector : public acore::unary_function<Unit*, bool>
|
||||
class StoneGripTargetSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
public:
|
||||
StoneGripTargetSelector(Creature* me, Unit const* victim) : _me(me), _victim(victim) {}
|
||||
|
|
|
|||
|
|
@ -941,7 +941,7 @@ public:
|
|||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
if (Unit* victim = GetCaster()->GetVictim())
|
||||
targets.remove_if(acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
targets.remove_if(Acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
@ -1023,7 +1023,7 @@ public:
|
|||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
if (Unit* victim = GetCaster()->GetVictim())
|
||||
targets.remove_if(acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
targets.remove_if(Acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ public:
|
|||
|
||||
if (PlayerInDalaranList.empty())
|
||||
return nullptr;
|
||||
return acore::Containers::SelectRandomContainerElement(PlayerInDalaranList);
|
||||
return Acore::Containers::SelectRandomContainerElement(PlayerInDalaranList);
|
||||
}
|
||||
|
||||
void SendMailToPlayer(Player* player)
|
||||
|
|
|
|||
|
|
@ -773,7 +773,7 @@ public:
|
|||
if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_2, 150.0f))
|
||||
go->Delete();
|
||||
WretchedGhoulCleaner cleaner;
|
||||
acore::CreatureWorker<WretchedGhoulCleaner> worker(me, cleaner);
|
||||
Acore::CreatureWorker<WretchedGhoulCleaner> worker(me, cleaner);
|
||||
me->VisitNearbyGridObject(150.0f, worker);
|
||||
}
|
||||
|
||||
|
|
@ -987,7 +987,7 @@ public:
|
|||
case 17: // kill vegard
|
||||
{
|
||||
WretchedGhoulCleaner cleaner;
|
||||
acore::CreatureWorker<WretchedGhoulCleaner> worker(me, cleaner);
|
||||
Acore::CreatureWorker<WretchedGhoulCleaner> worker(me, cleaner);
|
||||
me->VisitNearbyGridObject(150.0f, worker);
|
||||
|
||||
if (Creature* c = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE, 150.0f, true))
|
||||
|
|
@ -1193,7 +1193,7 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(GhoulTargetCheck(GetSpellInfo()->Id == 70790));
|
||||
acore::Containers::RandomResize(targets, 2);
|
||||
Acore::Containers::RandomResize(targets, 2);
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -192,8 +192,8 @@ public:
|
|||
|
||||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), 100.0f, true));
|
||||
targets.remove_if(acore::AllWorldObjectsInExactRange(GetCaster(), 25.0f, false));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), 100.0f, true));
|
||||
targets.remove_if(Acore::AllWorldObjectsInExactRange(GetCaster(), 25.0f, false));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ public:
|
|||
if (targets.empty())
|
||||
return;
|
||||
|
||||
targets.sort(acore::ObjectDistanceOrderPred(GetCaster(), false));
|
||||
targets.sort(Acore::ObjectDistanceOrderPred(GetCaster(), false));
|
||||
if (targets.size() > GetSpellValue()->MaxAffectedTargets)
|
||||
{
|
||||
std::list<WorldObject*>::iterator itr = targets.begin();
|
||||
|
|
|
|||
|
|
@ -258,7 +258,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_SABER_LASH_IMMUNITY));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SABER_LASH_IMMUNITY));
|
||||
if (targets.size() <= 1)
|
||||
FinishCast(SPELL_FAILED_DONT_REPORT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -613,7 +613,7 @@ public:
|
|||
if (targets.empty())
|
||||
return;
|
||||
|
||||
targets.sort(acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
targets.sort(Acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
WorldObject* target = targets.front();
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ enum Misc
|
|||
EVENT_TALK_KILL = 10
|
||||
};
|
||||
|
||||
struct ShadowOfDeathSelector : public acore::unary_function<Unit*, bool>
|
||||
struct ShadowOfDeathSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
bool operator()(Unit const* target) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ enum Misc
|
|||
EVENT_KILL_TALK = 100
|
||||
};
|
||||
|
||||
struct HammerOfJusticeSelector : public acore::unary_function<Unit*, bool>
|
||||
struct HammerOfJusticeSelector : public Acore::unary_function<Unit*, bool>
|
||||
{
|
||||
Unit const* _me;
|
||||
HammerOfJusticeSelector(Unit* me) : _me(me) { }
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
if (Unit* victim = GetCaster()->GetVictim())
|
||||
unitList.remove_if(acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
unitList.remove_if(Acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
acore::Containers::RandomResize(unitList, 1);
|
||||
Acore::Containers::RandomResize(unitList, 1);
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@ public:
|
|||
playerList.push_back(player);
|
||||
|
||||
if (!playerList.empty())
|
||||
target = acore::Containers::SelectRandomContainerElement(playerList);
|
||||
target = Acore::Containers::SelectRandomContainerElement(playerList);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
acore::Containers::RandomResize(unitList, 1);
|
||||
Acore::Containers::RandomResize(unitList, 1);
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||
|
|
|
|||
|
|
@ -833,7 +833,7 @@ public:
|
|||
void SelectTarget(std::list<WorldObject*>& targets)
|
||||
{
|
||||
if (Unit* victim = GetCaster()->GetVictim())
|
||||
targets.remove_if(acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
targets.remove_if(Acore::ObjectGUIDCheck(victim->GetGUID(), true));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
@ -993,7 +993,7 @@ public:
|
|||
targetList.push_back(target);
|
||||
}
|
||||
|
||||
acore::Containers::RandomResize(targetList, 5);
|
||||
Acore::Containers::RandomResize(targetList, 5);
|
||||
for (std::list<Unit*>::const_iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
|
||||
GetCaster()->CastSpell(*itr, SPELL_NETHER_BEAM_DAMAGE, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -697,8 +697,8 @@ public:
|
|||
me->SetObjectScale(large ? 2.0f : 1.0f);
|
||||
|
||||
std::list<WorldObject*> ClusterList;
|
||||
acore::AllWorldObjectsInRange objects(me, searchDistance);
|
||||
acore::WorldObjectListSearcher<acore::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
|
||||
Acore::AllWorldObjectsInRange objects(me, searchDistance);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
|
||||
me->VisitNearbyObject(searchDistance, searcher);
|
||||
|
||||
for (std::list<WorldObject*>::const_iterator i = ClusterList.begin(); i != ClusterList.end(); ++i)
|
||||
|
|
|
|||
|
|
@ -1757,7 +1757,7 @@ public:
|
|||
}
|
||||
if (!UnitsWithMana.empty())
|
||||
{
|
||||
DoCast(acore::Containers::SelectRandomContainerElement(UnitsWithMana), SPELL_MANA_BURN);
|
||||
DoCast(Acore::Containers::SelectRandomContainerElement(UnitsWithMana), SPELL_MANA_BURN);
|
||||
ManaBurnTimer = 8000 + (rand() % 10 * 1000); // 8-18 sec cd
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -155,8 +155,8 @@ public:
|
|||
_initialSelection = false;
|
||||
// Find victim of Summon Gargoyle spell
|
||||
std::list<Unit*> targets;
|
||||
acore::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 50);
|
||||
acore::UnitListSearcher<acore::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check);
|
||||
Acore::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 50);
|
||||
Acore::UnitListSearcher<Acore::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check);
|
||||
me->VisitNearbyObject(50, searcher);
|
||||
for (std::list<Unit*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter)
|
||||
if ((*iter)->GetAura(SPELL_DK_SUMMON_GARGOYLE_1, me->GetOwnerGUID()))
|
||||
|
|
|
|||
|
|
@ -1359,7 +1359,7 @@ public:
|
|||
FinishCast(SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW);
|
||||
return;
|
||||
}
|
||||
target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
}
|
||||
|
|
@ -2240,7 +2240,7 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
WorldObject* target = acore::Containers::SelectRandomContainerElement(targets);
|
||||
WorldObject* target = Acore::Containers::SelectRandomContainerElement(targets);
|
||||
targets.clear();
|
||||
targets.push_back(target);
|
||||
_corpse = true;
|
||||
|
|
|
|||
|
|
@ -1050,7 +1050,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
acore::Containers::RandomResize(targets, 2);
|
||||
Acore::Containers::RandomResize(targets, 2);
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
|
|
@ -1276,7 +1276,7 @@ public:
|
|||
return;
|
||||
}
|
||||
|
||||
tempTargets.sort(acore::HealthPctOrderPred());
|
||||
tempTargets.sort(Acore::HealthPctOrderPred());
|
||||
targets.clear();
|
||||
targets.push_back(tempTargets.front());
|
||||
}
|
||||
|
|
@ -1313,13 +1313,13 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::RaidCheck(GetCaster(), false));
|
||||
targets.remove_if(Acore::RaidCheck(GetCaster(), false));
|
||||
|
||||
uint32 const maxTargets = GetCaster()->HasAura(SPELL_DRUID_GLYPH_OF_WILD_GROWTH) ? 6 : 5;
|
||||
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(acore::HealthPctOrderPred());
|
||||
targets.sort(Acore::HealthPctOrderPred());
|
||||
targets.resize(maxTargets);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -768,7 +768,7 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove(GetCaster());
|
||||
acore::Containers::RandomResize(targets, _count);
|
||||
Acore::Containers::RandomResize(targets, _count);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
@ -1719,8 +1719,8 @@ public:
|
|||
float max_range = GetSpellInfo()->GetMaxRange(false);
|
||||
WorldObject* result = nullptr;
|
||||
// search for nearby enemy corpse in range
|
||||
acore::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_CORPSE);
|
||||
acore::WorldObjectSearcher<acore::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
|
||||
Acore::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_CORPSE);
|
||||
Acore::WorldObjectSearcher<Acore::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
|
||||
caster->GetMap()->VisitFirstFound(caster->m_positionX, caster->m_positionY, max_range, searcher);
|
||||
if (!result)
|
||||
return SPELL_FAILED_NO_EDIBLE_CORPSES;
|
||||
|
|
@ -4812,13 +4812,13 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
targets.remove_if(acore::PowerCheck(POWER_MANA, false));
|
||||
targets.remove_if(Acore::PowerCheck(POWER_MANA, false));
|
||||
|
||||
uint8 const maxTargets = 10;
|
||||
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(acore::PowerPctOrderPred(POWER_MANA));
|
||||
targets.sort(Acore::PowerPctOrderPred(POWER_MANA));
|
||||
targets.resize(maxTargets);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -977,8 +977,8 @@ public:
|
|||
float max_range = GetSpellInfo()->GetMaxRange(false);
|
||||
WorldObject* result = nullptr;
|
||||
// search for nearby enemy corpse in range
|
||||
acore::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY);
|
||||
acore::WorldObjectSearcher<acore::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
|
||||
Acore::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY);
|
||||
Acore::WorldObjectSearcher<Acore::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
|
||||
caster->GetMap()->VisitFirstFound(caster->m_positionX, caster->m_positionY, max_range, searcher);
|
||||
if (!result)
|
||||
return SPELL_FAILED_NO_EDIBLE_CORPSES;
|
||||
|
|
|
|||
|
|
@ -1998,7 +1998,7 @@ public:
|
|||
if (targets.size() < 2)
|
||||
return;
|
||||
|
||||
targets.sort(acore::HealthPctOrderPred());
|
||||
targets.sort(Acore::HealthPctOrderPred());
|
||||
|
||||
WorldObject* target = targets.front();
|
||||
targets.clear();
|
||||
|
|
|
|||
|
|
@ -652,7 +652,7 @@ public:
|
|||
|
||||
void CountTargets(std::list<WorldObject*>& targetList)
|
||||
{
|
||||
acore::Containers::RandomResize(targetList, GetSpellValue()->MaxAffectedTargets);
|
||||
Acore::Containers::RandomResize(targetList, GetSpellValue()->MaxAffectedTargets);
|
||||
_targetCount = targetList.size();
|
||||
}
|
||||
|
||||
|
|
@ -767,7 +767,7 @@ public:
|
|||
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(acore::HealthPctOrderPred());
|
||||
targets.sort(Acore::HealthPctOrderPred());
|
||||
targets.resize(maxTargets);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,13 +152,13 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::RaidCheck(GetCaster(), false));
|
||||
targets.remove_if(Acore::RaidCheck(GetCaster(), false));
|
||||
|
||||
uint32 const maxTargets = GetCaster()->HasAura(SPELL_PRIEST_GLYPH_OF_CIRCLE_OF_HEALING) ? 6 : 5; // Glyph of Circle of Healing
|
||||
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(acore::HealthPctOrderPred());
|
||||
targets.sort(Acore::HealthPctOrderPred());
|
||||
targets.resize(maxTargets);
|
||||
}
|
||||
}
|
||||
|
|
@ -235,13 +235,13 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::RaidCheck(GetCaster(), false));
|
||||
targets.remove_if(Acore::RaidCheck(GetCaster(), false));
|
||||
|
||||
uint32 const maxTargets = 3;
|
||||
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(acore::HealthPctOrderPred());
|
||||
targets.sort(Acore::HealthPctOrderPred());
|
||||
targets.resize(maxTargets);
|
||||
}
|
||||
}
|
||||
|
|
@ -361,14 +361,14 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::PowerCheck(POWER_MANA, false));
|
||||
targets.remove_if(acore::RaidCheck(GetCaster(), false));
|
||||
targets.remove_if(Acore::PowerCheck(POWER_MANA, false));
|
||||
targets.remove_if(Acore::RaidCheck(GetCaster(), false));
|
||||
|
||||
uint32 const maxTargets = 3;
|
||||
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(acore::PowerPctOrderPred(POWER_MANA));
|
||||
targets.sort(Acore::PowerPctOrderPred(POWER_MANA));
|
||||
targets.resize(maxTargets);
|
||||
}
|
||||
}
|
||||
|
|
@ -549,7 +549,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
unitList.remove_if(acore::ObjectGUIDCheck(GetCaster()->GetGuidValue(UNIT_FIELD_CHANNEL_OBJECT), true));
|
||||
unitList.remove_if(Acore::ObjectGUIDCheck(GetCaster()->GetGuidValue(UNIT_FIELD_CHANNEL_OBJECT), true));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -2426,8 +2426,8 @@ public:
|
|||
Unit* caster = GetCaster();
|
||||
// Check for player that is in 65 y range
|
||||
std::list<Player*> playerList;
|
||||
acore::AnyPlayerInObjectRangeCheck checker(caster, 65.0f);
|
||||
acore::PlayerListSearcher<acore::AnyPlayerInObjectRangeCheck> searcher(caster, playerList, checker);
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(caster, 65.0f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(caster, playerList, checker);
|
||||
caster->VisitNearbyWorldObject(65.0f, searcher);
|
||||
for (std::list<Player*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
|
||||
// Check if found player target is on fly mount or using flying form
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ public:
|
|||
{
|
||||
while (!_targets.empty())
|
||||
{
|
||||
ObjectGuid guid = acore::Containers::SelectRandomContainerElement(_targets);
|
||||
ObjectGuid guid = Acore::Containers::SelectRandomContainerElement(_targets);
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*GetTarget(), guid))
|
||||
{
|
||||
// xinef: target may be no longer valid
|
||||
|
|
|
|||
|
|
@ -424,7 +424,7 @@ public:
|
|||
if (targets.size() < 2)
|
||||
return;
|
||||
|
||||
targets.sort(acore::HealthPctOrderPred());
|
||||
targets.sort(Acore::HealthPctOrderPred());
|
||||
|
||||
WorldObject* target = targets.front();
|
||||
targets.clear();
|
||||
|
|
@ -512,8 +512,8 @@ public:
|
|||
|
||||
void RemoveInvalidTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_SHAMAN_SATED));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SHAMAN_SATED));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION));
|
||||
}
|
||||
|
||||
void ApplyDebuff()
|
||||
|
|
@ -999,8 +999,8 @@ public:
|
|||
|
||||
void RemoveInvalidTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION));
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_SHAMAN_SATED));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SHAMAN_SATED));
|
||||
}
|
||||
|
||||
void ApplyDebuff()
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ public:
|
|||
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||
{
|
||||
GetCaster()->RemoveAurasDueToSpell(SPELL_WARRIOR_SPELL_REFLECTION);
|
||||
unitList.sort(acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
unitList.sort(Acore::ObjectDistanceOrderPred(GetCaster()));
|
||||
while (unitList.size() > GetSpellValue()->MaxAffectedTargets)
|
||||
unitList.pop_back();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -671,7 +671,7 @@ public:
|
|||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(acore::UnitAuraCheck(true, SPELL_SLEEP));
|
||||
targets.remove_if(Acore::UnitAuraCheck(true, SPELL_SLEEP));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
|
|
|||
|
|
@ -349,8 +349,8 @@ public:
|
|||
{
|
||||
timer = 0;
|
||||
std::list<Player*> players;
|
||||
acore::AnyPlayerExactPositionInGameObjectRangeCheck checker(go, 0.3f);
|
||||
acore::PlayerListSearcher<acore::AnyPlayerExactPositionInGameObjectRangeCheck> searcher(go, players, checker);
|
||||
Acore::AnyPlayerExactPositionInGameObjectRangeCheck checker(go, 0.3f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerExactPositionInGameObjectRangeCheck> searcher(go, players, checker);
|
||||
go->VisitNearbyWorldObject(0.3f, searcher);
|
||||
|
||||
if (players.size() > 0)
|
||||
|
|
@ -396,8 +396,8 @@ public:
|
|||
{
|
||||
timer = 0;
|
||||
std::list<Player*> players;
|
||||
acore::AnyPlayerExactPositionInGameObjectRangeCheck checker(go, 0.3f);
|
||||
acore::PlayerListSearcher<acore::AnyPlayerExactPositionInGameObjectRangeCheck> searcher(go, players, checker);
|
||||
Acore::AnyPlayerExactPositionInGameObjectRangeCheck checker(go, 0.3f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerExactPositionInGameObjectRangeCheck> searcher(go, players, checker);
|
||||
go->VisitNearbyWorldObject(0.3f, searcher);
|
||||
|
||||
if (players.size() > 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue