mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-16 08:46:09 +00:00
feat(Core/Unit): New helpers for UnitFlag and UnitFlag2 (#11227)
This commit is contained in:
@@ -81,7 +81,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->CastSpell(me, SPELL_SOULSTORM_CHANNEL_OOC, true);
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
@@ -106,9 +106,9 @@ public:
|
||||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE) && me->HealthBelowPctDamaged(35, damage))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_DISABLE_MOVE) && me->HealthBelowPctDamaged(35, damage))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->CastSpell(me, SPELL_TELEPORT, false);
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_DISABLE_MOVE))
|
||||
if (me->isAttackReady())
|
||||
me->SetFacingToObject(me->GetVictim());
|
||||
|
||||
@@ -200,7 +200,7 @@ public:
|
||||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
{
|
||||
startFightTimer = 0;
|
||||
uiHopelessnessCount = 0;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
events.Reset();
|
||||
if (pInstance)
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
|
||||
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 5000);
|
||||
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 11000);
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
startFightTimer = 0;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
events.Reset();
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MARWYN, NOT_STARTED);
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
|
||||
events.ScheduleEvent(EVENT_OBLITERATE, 15000);
|
||||
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
|
||||
|
||||
@@ -705,7 +705,7 @@ public:
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
@@ -755,7 +755,7 @@ public:
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -802,7 +802,7 @@ public:
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
@@ -851,7 +851,7 @@ public:
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -945,7 +945,7 @@ public:
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
@@ -994,7 +994,7 @@ public:
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -1039,7 +1039,7 @@ public:
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
@@ -1077,7 +1077,7 @@ public:
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -1122,7 +1122,7 @@ public:
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
@@ -1161,7 +1161,7 @@ public:
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
break;
|
||||
case 8:
|
||||
_owner.SetReactState(REACT_AGGRESSIVE);
|
||||
_owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_owner.RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (InstanceScript* instance = _owner.GetInstanceScript())
|
||||
instance->SetData(DATA_BATTERED_HILT, 8);
|
||||
break;
|
||||
@@ -96,7 +96,7 @@ public:
|
||||
{
|
||||
Position homePos = _owner.GetHomePosition();
|
||||
_owner.SetReactState(REACT_PASSIVE);
|
||||
_owner.SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_owner.SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_owner.SetVisible(false);
|
||||
_owner.UpdatePosition(homePos.GetPositionX(), homePos.GetPositionY(), homePos.GetPositionZ(), homePos.GetOrientation(), true);
|
||||
_owner.StopMovingOnCurrentPos();
|
||||
@@ -629,7 +629,7 @@ public:
|
||||
if (Creature* c = instance->GetCreature(NPC_QuelDelarGUID))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->RemoveAurasDueToSpell(70300);
|
||||
}
|
||||
break;
|
||||
@@ -889,7 +889,7 @@ public:
|
||||
if (c->GetEntry() == entry)
|
||||
{
|
||||
TrashActive[j] = true;
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->AI()->DoAction(1);
|
||||
break;
|
||||
}
|
||||
@@ -918,7 +918,7 @@ public:
|
||||
c->DeleteThreatList();
|
||||
c->CombatStop(true);
|
||||
c->InterruptNonMeleeSpells(true);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->Respawn(true);
|
||||
c->UpdatePosition(c->GetHomePosition(), true);
|
||||
c->StopMovingOnCurrentPos();
|
||||
|
||||
@@ -418,8 +418,8 @@ public:
|
||||
c->CastSpell(c, 69753, false);
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->AddUnitState(UNIT_STATE_DIED);
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
events.Reset();
|
||||
if (me->HasReactState(REACT_AGGRESSIVE)) // Reset() called by EnterEvadeMode()
|
||||
{
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
|
||||
// start real fight
|
||||
me->RemoveAllAuras();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
DoZoneInCombat();
|
||||
me->CastSpell(me, 43979, true);
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
@@ -701,7 +701,7 @@ public:
|
||||
{
|
||||
deathbringerGUID[0] = c->GetGUID();
|
||||
c->SetReactState(REACT_PASSIVE);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetHomePosition(915.10f, 75.31f, 553.81f, 3.75f);
|
||||
c->SetWalk(false);
|
||||
c->GetMotionMaster()->MoveSplinePath(&path);
|
||||
@@ -710,7 +710,7 @@ public:
|
||||
{
|
||||
deathbringerGUID[1] = c->GetGUID();
|
||||
c->SetReactState(REACT_PASSIVE);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetHomePosition(883.15f, 54.6254f, 528.5f, 3.75f);
|
||||
c->SetWalk(false);
|
||||
path.push_back(G3D::Vector3(883.15f, 54.6254f, 528.5f));
|
||||
@@ -758,14 +758,14 @@ public:
|
||||
if (Creature* c = pInstance->instance->GetCreature(deathbringerGUID[0]))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
break;
|
||||
case 36:
|
||||
if (Creature* c = pInstance->instance->GetCreature(deathbringerGUID[1]))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
break;
|
||||
case 60:
|
||||
@@ -930,7 +930,7 @@ public:
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
|
||||
{
|
||||
c->AI()->Talk(SAY_PREFIGHT_1);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
//c->ClearUnitState(UNIT_STATE_ONVEHICLE);
|
||||
if (Player* plr = c->SelectNearestPlayer(100.0f))
|
||||
@@ -1106,7 +1106,7 @@ public:
|
||||
{
|
||||
npc_pos_freed_slaveAI(Creature* creature) : SmartAI(creature)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
|
||||
me->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
|
||||
// immune to falling icicles
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 69425, true);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 70827, true);
|
||||
|
||||
Reference in New Issue
Block a user