fix(Scripts/Northrend): Sniffing Out The Perpetrator horde (#23620)

This commit is contained in:
sogladev
2025-11-11 14:20:13 +01:00
committed by GitHub
parent 8f5d50435b
commit da61b05a82

View File

@@ -31,6 +31,7 @@
enum qSniffingOutThePerpetrator enum qSniffingOutThePerpetrator
{ {
NPC_FROSTHOUND = 29677, NPC_FROSTHOUND = 29677,
NPC_FROSTBITE = 29903,
SPELL_SUMMON_PURSUERS_PERIODIC = 54993, SPELL_SUMMON_PURSUERS_PERIODIC = 54993,
SPELL_SNIFFING_CREDIT = 55477, SPELL_SNIFFING_CREDIT = 55477,
TALK_EMOTE_FROSTHOUND_SNIFF = 0, TALK_EMOTE_FROSTHOUND_SNIFF = 0,
@@ -41,7 +42,7 @@ enum qSniffingOutThePerpetrator
struct npc_frosthound : public npc_escortAI struct npc_frosthound : public npc_escortAI
{ {
explicit npc_frosthound(Creature* creature) : npc_escortAI(creature), _summons(creature) {} explicit npc_frosthound(Creature* creature) : npc_escortAI(creature), _summons(creature), _completionWaypoint((creature->GetEntry() == NPC_FROSTBITE) ? 19 : 34) { }
void AttackStart(Unit* /*who*/) override {} void AttackStart(Unit* /*who*/) override {}
void JustEngagedWith(Unit* /*who*/) override {} void JustEngagedWith(Unit* /*who*/) override {}
@@ -77,20 +78,15 @@ struct npc_frosthound : public npc_escortAI
if (!player) if (!player)
return; return;
switch (waypointId) if (waypointId == 0)
Talk(TALK_SEEN, player);
else if (waypointId == _completionWaypoint)
{ {
case 0: Talk(TALK_EMOTE_TRACKED_COMPLETE, me);
Talk(TALK_SEEN, player); Talk(TALK_CONFRONT, player);
break; if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit())
case 34: summoner->ToPlayer()->KilledMonsterCredit(NPC_FROSTHOUND); // same credit for Alliance and Horde
Talk(TALK_EMOTE_TRACKED_COMPLETE, me); _summons.DespawnAll();
Talk(TALK_CONFRONT, player);
if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit())
summoner->ToPlayer()->KilledMonsterCredit(NPC_FROSTHOUND);
_summons.DespawnAll();
break;
default:
break;
} }
} }
@@ -112,6 +108,7 @@ struct npc_frosthound : public npc_escortAI
private: private:
SummonList _summons; SummonList _summons;
uint32 _completionWaypoint;
}; };
enum eIronWatcher enum eIronWatcher