From 36e884dca805fd4a27b55eae5b921f6229f1ce6c Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sat, 2 Apr 2022 15:59:52 +0200 Subject: [PATCH] =?UTF-8?q?fix(Scripts/BWL):=20Chromaggus=20Affliction=20d?= =?UTF-8?q?ebuff=20should=20target=E2=80=A6=20(#11161)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … max 12 players. --- .../BlackwingLair/boss_chromaggus.cpp | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 414af4ee9..6a10f13cc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -248,21 +248,32 @@ public: case EVENT_AFFLICTION: { uint32 afflictionSpellID = RAND(SPELL_BROODAF_BLUE, SPELL_BROODAF_BLACK, SPELL_BROODAF_RED, SPELL_BROODAF_BRONZE, SPELL_BROODAF_GREEN); + std::vector playerTargets; Map::PlayerList const& players = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) { if (Player* player = itr->GetSource()->ToPlayer()) { - DoCast(player, afflictionSpellID, true); + if (!player->IsGameMaster() && !player->IsSpectator() && player->IsAlive()) + { + playerTargets.push_back(player); + } + } + } - if (player->HasAura(SPELL_BROODAF_BLUE) && - player->HasAura(SPELL_BROODAF_BLACK) && - player->HasAura(SPELL_BROODAF_RED) && - player->HasAura(SPELL_BROODAF_BRONZE) && - player->HasAura(SPELL_BROODAF_GREEN)) - { - DoCast(player, SPELL_CHROMATIC_MUT_1); - } + if (playerTargets.size() > 12) + { + Acore::Containers::RandomResize(playerTargets, 12); + } + + for (Player* player : playerTargets) + { + DoCast(player, afflictionSpellID, true); + + if (player->HasAura(SPELL_BROODAF_BLUE) && player->HasAura(SPELL_BROODAF_BLACK) && player->HasAura(SPELL_BROODAF_RED) && + player->HasAura(SPELL_BROODAF_BRONZE) && player->HasAura(SPELL_BROODAF_GREEN)) + { + DoCast(player, SPELL_CHROMATIC_MUT_1); } } }