feat(Core/Unit): NPCFlags helpers (#11286)

* cherry-pick commit (TrinityCore/TrinityCore@d611925)
Co-Authored-By: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
Kitzunu
2022-04-05 13:52:42 +02:00
committed by GitHub
parent e2370446a5
commit edb7cac19b
75 changed files with 293 additions and 285 deletions

View File

@@ -796,7 +796,7 @@ public:
void Reset() override
{
me->SetReactState(REACT_AGGRESSIVE);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->setActive(false);
me->SetVisible(instance->GetBossState(DATA_ILLIDARI_COUNCIL) == DONE && instance->GetBossState(DATA_ILLIDAN_STORMRAGE) != DONE);
events.Reset();
@@ -806,7 +806,7 @@ public:
void sGossipSelect(Player* player, uint32 /*sender*/, uint32 /*action*/) override
{
CloseGossipMenuFor(player);
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
me->setActive(true);
if (instance->GetBossState(DATA_AKAMA_FINISHED) != DONE)
@@ -835,7 +835,7 @@ public:
void JustSummoned(Creature* summon) override
{
summons.Summon(summon);
summon->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
summon->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
if (summon->GetEntry() == NPC_ILLIDARI_ELITE)
{
me->AddThreat(summon, 1000000.0f);
@@ -864,7 +864,7 @@ public:
}
else if (pointId == POINT_ILLIDAN)
{
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP);
me->setActive(false);
me->SetReactState(REACT_AGGRESSIVE);
}

View File

@@ -294,11 +294,11 @@ public:
{
if (instance->GetBossState(DATA_SHADE_OF_AKAMA) == DONE)
{
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
return;
}
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->CastSpell(me, SPELL_STEALTH, true);
events.Reset();
events2.Reset();
@@ -425,7 +425,7 @@ public:
if (action == 0)
{
CloseGossipMenuFor(player);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
events2.ScheduleEvent(EVENT_AKAMA_START_ENCOUNTER, 0);
}
}

View File

@@ -347,7 +347,7 @@ public:
{
instance->DoCastSpellOnPlayers(SPELL_QID10886);
creature->AI()->Talk(SAY_COMPLETE);
creature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
creature->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP);
}
}
}

View File

@@ -101,7 +101,7 @@ public:
envelopingWinds_Timer = 9000;
shock_Timer = 5000;
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
me->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->SetFaction(FACTION_FRIENDLY);
Talk(SAY_SUMMON);
@@ -125,7 +125,7 @@ public:
if (HealthBelowPct(30))
{
me->SetFaction(FACTION_FRIENDLY);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
me->RemoveAllAuras();
me->DeleteThreatList();
me->CombatStop(true);

View File

@@ -265,7 +265,7 @@ public:
if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
CloseGossipMenuFor(player);
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
creature->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
creature->AI()->DoAction(EVENT_START_PLAYER_READY);
if (Creature* orelis = creature->FindNearestCreature(EXARCH_ORELIS, 15.0f, true))
orelis->AI()->DoAction(EVENT_ORELIS_WALK);
@@ -397,7 +397,7 @@ public:
if (param == EVENT_KARJA_WALK)
{
me->GetMotionMaster()->MovePath(KARJA_PATH_ID, false);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
else if (param == RESET_DEATHBLOW_EVENT)
{
@@ -470,7 +470,7 @@ public:
if (param == EVENT_ORELIS_WALK)
{
me->GetMotionMaster()->MovePath(ORELIS_PATH_ID, false);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
else if (param == RESET_DEATHBLOW_EVENT)
{
@@ -643,7 +643,7 @@ public:
if (GetCreature(ISHANAH_HIGH_PRIESTESS))
{
ishanah->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
ishanah->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
ishanah->DespawnOrUnsummon(60000);
}
@@ -793,7 +793,7 @@ public:
if (Creature* summonIshanah = me->SummonCreature(ISHANAH_HIGH_PRIESTESS, IshanahSpawnPosition, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 180000))
{
summonIshanah->GetMotionMaster()->MovePath(ISHANAH_PATH_ID, false);
summonIshanah->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
summonIshanah->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
}
break;
case EVENT_ISHANAH_SAY_1:
@@ -853,7 +853,7 @@ public:
ishanah->Respawn();
ishanah->setActive(true); // ensure that Ishanah disappears, even when no player is near
ishanah->DespawnOrUnsummon(600000); // ensure that Ishanah disappears after 10 minutes
ishanah->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
ishanah->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
}
_actionEvents.ScheduleEvent(EVENT_SOCRETHAR_SAY_6, 3000);
break;
@@ -1166,7 +1166,7 @@ public:
{
Talk(SAY_SAEED_2);
SetEscortPaused(false);
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
}
}
@@ -1208,7 +1208,7 @@ public:
{
case 16:
Talk(SAY_SAEED_1);
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP);
SetEscortPaused(true);
break;
case 18: