From ba3640255bd94ac60223619271c375ddc70e0d11 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Fri, 26 Aug 2022 20:11:39 -0300 Subject: [PATCH] =?UTF-8?q?fix(Scripts/RuinsOfAhnQiraj):=20Implement=20bon?= =?UTF-8?q?us=20reputation=20gains=20if=20you=E2=80=A6=20(#12856)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/RuinsOfAhnQiraj): Implement bonus reputation gains if you keep Andorov + Keldorei Elites alive during the General Rajaxx encounter * Update boss_rajaxx.cpp * Update boss_rajaxx.cpp * Update boss_rajaxx.cpp --- .../Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp index 73e5f93b0..c5131c4a3 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_rajaxx.cpp @@ -35,9 +35,12 @@ enum Yells enum Spells { - SPELL_DISARM = 6713, - SPELL_FRENZY = 8269, - SPELL_THUNDERCRASH = 25599 + SPELL_DISARM = 6713, + SPELL_FRENZY = 8269, + SPELL_THUNDERCRASH = 25599, + + // Server-side + SPELL_CENARION_REPUTATION = 26342 }; enum Events @@ -61,6 +64,26 @@ struct boss_rajaxx : public BossAI andorov->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_VENDOR); andorov->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); } + + std::list creatureList; + me->GetCreatureListWithEntryInGrid(creatureList, NPC_KALDOREI_ELITE, 200.0f); + creatureList.remove_if([&](Creature* creature) -> bool { return !creature->IsAlive(); }); + + me->GetMap()->DoForAllPlayers([&, creatureList](Player* player) + { + for (uint8 i = 0; i < creatureList.size(); ++i) + { + player->CastSpell(player, SPELL_CENARION_REPUTATION, true); + } + + if (Creature* andorov = instance->instance->GetCreature(instance->GetGuidData(DATA_ANDOROV))) + { + if (andorov->IsAlive()) + { + player->CastSpell(player, SPELL_CENARION_REPUTATION, true); + } + } + }); } void EnterCombat(Unit* /*victim*/) override @@ -237,13 +260,16 @@ struct npc_general_andorov : public npc_escortAI } } - void JustDied(Unit* /*killer*/) override + void JustDied(Unit* killer) override { _summons.DespawnAll(); - if (Creature* rajaxx = instance->GetCreature(DATA_RAJAXX)) + if (killer->GetEntry() == NPC_RAJAXX) { - rajaxx->AI()->Talk(SAY_KILLS_ANDOROV); + if (Creature* rajaxx = instance->GetCreature(DATA_RAJAXX)) + { + rajaxx->AI()->Talk(SAY_KILLS_ANDOROV); + } } }