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

@@ -531,7 +531,7 @@ public:
void Reset() override
{
_events.Reset();
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetReactState(REACT_PASSIVE);
}
@@ -558,7 +558,7 @@ public:
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
(*itr)->AI()->SetData(0, x++);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_INTRO_HORDE_1);
_events.SetPhase(PHASE_INTRO_H);
_events.ScheduleEvent(EVENT_INTRO_HORDE_2, 5000, 0, PHASE_INTRO_H);
@@ -792,7 +792,7 @@ public:
void Reset() override
{
_events.Reset();
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetReactState(REACT_PASSIVE);
}
@@ -819,7 +819,7 @@ public:
for (std::list<Creature*>::iterator itr = _guardList.begin(); itr != _guardList.end(); ++itr)
(*itr)->AI()->SetData(0, x++);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_INTRO_ALLIANCE_1);
_events.SetPhase(PHASE_INTRO_A);
_events.ScheduleEvent(EVENT_INTRO_ALLIANCE_2, 2500, 0, PHASE_INTRO_A);

View File

@@ -758,9 +758,9 @@ public:
void sGossipSelect(Player* /*player*/, uint32 /*sender*/, uint32 /*action*/) override
{
if (!me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
if (!me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
return;
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->GetTransport()->setActive(true);
me->GetTransport()->ToMotionTransport()->EnableMovement(true);
_events.ScheduleEvent(EVENT_INTRO_H_1, 5000);
@@ -1093,9 +1093,9 @@ public:
void sGossipSelect(Player* /*player*/, uint32 /*sender*/, uint32 /*action*/) override
{
if (!me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
if (!me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
return;
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->GetTransport()->setActive(true);
me->GetTransport()->ToMotionTransport()->EnableMovement(true);
_events.ScheduleEvent(EVENT_INTRO_A_1, 5000);

View File

@@ -1285,7 +1285,7 @@ public:
{
_events.Reset();
if (_instance->GetBossState(DATA_THE_LICH_KING) == DONE || (me->GetMap()->IsHeroic() && !_instance->GetData(DATA_LK_HC_AVAILABLE)))
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetReactState(REACT_PASSIVE);
}
@@ -1357,18 +1357,18 @@ public:
{
ScriptedAI::JustReachedHome();
if (!(_instance->GetBossState(DATA_THE_LICH_KING) == DONE || (me->GetMap()->IsHeroic() && !_instance->GetData(DATA_LK_HC_AVAILABLE))))
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
}
void sGossipSelect(Player* /*player*/, uint32 sender, uint32 action) override
{
Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING));
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action && me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP) && theLichKing && !theLichKing->IsInEvadeMode())
if (me->GetCreatureTemplate()->GossipMenuId == sender && !action && me->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP) && theLichKing && !theLichKing->IsInEvadeMode())
{
if (me->GetMap()->IsHeroic() && !_instance->GetData(DATA_LK_HC_AVAILABLE))
return;
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(POINT_TIRION_INTRO, TirionIntro);
}