feat(Core/Unit): New helpers for UnitFlag and UnitFlag2 (#11227)

This commit is contained in:
Kitzunu
2022-03-30 12:59:42 +02:00
committed by GitHub
parent 54c06eb72e
commit 856aed6fc6
243 changed files with 1205 additions and 1191 deletions

View File

@@ -158,7 +158,7 @@ public:
me->getThreatMgr().clearReferences();
me->SetRegeneratingHealth(false);
_EnterEvadeMode();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(BOSS_ARGENT_CHALLENGE, DONE);
}
@@ -305,7 +305,7 @@ public:
me->getThreatMgr().clearReferences();
me->SetRegeneratingHealth(false);
_EnterEvadeMode();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
{
pInstance->SetData(BOSS_ARGENT_CHALLENGE, DONE);
@@ -439,7 +439,7 @@ public:
break;
case EVENT_MEMORY_START_ATTACK:
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = me->SelectNearestTarget(200.0f) )
{
AttackStart(target);

View File

@@ -120,7 +120,7 @@ public:
summons.DespawnAll();
Phase = 1;
me->SetDisplayId(me->GetNativeDisplayId());
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetReactState(REACT_PASSIVE);
if( pInstance )
pInstance->SetData(BOSS_BLACK_KNIGHT, NOT_STARTED);
@@ -136,7 +136,7 @@ public:
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
{
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
{
damage = 0;
return;
@@ -147,15 +147,15 @@ public:
damage = 0;
me->SetHealth(me->GetMaxHealth());
events.Reset();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->RemoveAllAuras();
me->SetControlled(true, UNIT_STATE_STUNNED);
me->CastSpell(me, SPELL_BK_GHOUL_EXPLODE, true);
summons.clear();
me->CastSpell(me, SPELL_BK_FEIGN_DEATH, true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
me->AddUnitState(UNIT_STATE_DIED);
}
@@ -193,11 +193,11 @@ public:
{
case SPELL_BLACK_KNIGHT_RES:
me->SetHealth(me->GetMaxHealth());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetControlled(false, UNIT_STATE_STUNNED);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
me->ClearUnitState(UNIT_STATE_DIED);
@@ -414,7 +414,7 @@ public:
{
if (spell->Id == SPELL_BK_GHOUL_EXPLODE)
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
me->RemoveUnitFlag(UNIT_FLAG_STUNNED);
me->CastSpell(me, SPELL_EXPLODE, false);
}
}

View File

@@ -169,13 +169,13 @@ public:
if( apply )
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetSpeed(MOVE_RUN, 2.0f, false);
me->CastSpell(me, SPELL_TRAMPLE_AURA, true);
}
else
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->StopMoving();
me->RemoveAura(SPELL_TRAMPLE_AURA);
}
@@ -361,7 +361,7 @@ public:
BossOrder = 0;
NewMountGUID.Clear();
me->CastSpell(me, SPELL_BOSS_DEFEND_PERIODIC, true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
me->SetUnitFlag(UNIT_FLAG_PACIFIED);
events.Reset();
events.ScheduleEvent(EVENT_MOUNT_CHARGE, urand(2500, 4000));
@@ -401,7 +401,7 @@ public:
{
DoAction(1);
DoAction(2);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
me->SetReactState(REACT_AGGRESSIVE);
}
@@ -487,9 +487,9 @@ public:
NewMountGUID.Clear();
me->SetHealth(me->GetMaxHealth());
me->SetRegeneratingHealth(true);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
me->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
me->SetSpeed(MOVE_RUN, 1.0f, false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
me->RemoveAllAuras();
AddCreatureAddonAuras();
@@ -557,7 +557,7 @@ public:
me->StopMoving();
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
me->SetRegeneratingHealth(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
if( pInstance )
{
@@ -584,7 +584,7 @@ public:
me->CombatStop(true);
me->GetMotionMaster()->Clear();
me->SetRegeneratingHealth(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(DATA_GRAND_CHAMPION_DIED, BossOrder);
}
@@ -627,7 +627,7 @@ public:
events.ScheduleEvent(EVENT_SHIELD_BREAKER, urand(5000, 8000));
events.ScheduleEvent(EVENT_THRUST, urand(3000, 5000));
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = me->SelectNearestTarget(200.0f) )
AttackStart(target);
DoZoneInCombat();
@@ -720,7 +720,7 @@ public:
{
me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
NewMountGUID = mount->GetGUID();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->GetMotionMaster()->MovePoint(7, *mount);
events.RepeatEvent(200);
break;

View File

@@ -836,7 +836,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[1][i]) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = c->SelectNearestTarget(200.0f) )
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
@@ -862,7 +862,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[0][i]) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = c->SelectNearestTarget(200.0f) )
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
@@ -887,7 +887,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[2][i]) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = c->SelectNearestTarget(200.0f) )
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
@@ -912,7 +912,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_GrandChampionGUID[i]) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = c->SelectNearestTarget(200.0f) )
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
@@ -949,7 +949,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_GrandChampionGUID[i]) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = c->SelectNearestTarget(200.0f) )
c->AI()->AttackStart(target);
c->AI()->DoZoneInCombat();
@@ -1053,7 +1053,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_ArgentSoldierGUID[i][j]) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
//c->AI()->DoZoneInCombat();
}
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
@@ -1074,7 +1074,7 @@ public:
if( Creature* boss = instance->GetCreature(NPC_ArgentChampionGUID) )
{
boss->SetReactState(REACT_AGGRESSIVE);
boss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
boss->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( Unit* target = boss->SelectNearestTarget(200.0f) )
boss->AI()->AttackStart(target);
boss->AI()->DoZoneInCombat();
@@ -1161,7 +1161,7 @@ public:
bk->SetHomePosition(*bk);
bk->SetFacingToObject(announcer);
announcer->SetFacingToObject(bk);
announcer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
announcer->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
bk->AddAura(68306, announcer); // spell has attribute player only
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
tirion->AI()->Talk(TEXT_BK_MEANING);
@@ -1207,7 +1207,7 @@ public:
if( Creature* bk = instance->GetCreature(NPC_BlackKnightGUID) )
{
bk->SetReactState(REACT_AGGRESSIVE);
bk->SetUInt32Value(UNIT_FIELD_FLAGS, 0);
bk->ReplaceAllUnitFlags(UNIT_FLAG_NONE);
if( Unit* target = bk->SelectNearestTarget(200.0f) )
bk->AI()->AttackStart(target);
bk->AI()->DoZoneInCombat();

View File

@@ -109,7 +109,7 @@ public:
return;
if( pInstance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_ALLIANCE )
me->UpdateEntry(NPC_ARELAS);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // removed during black knight scene
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // removed during black knight scene
}
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override

View File

@@ -176,7 +176,7 @@ public:
void Reset() override
{
me->SetStandState(UNIT_STAND_STATE_SUBMERGED);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
summons.DespawnAll();
for( uint8 i = 0; i < 10; ++i )
{
@@ -185,7 +185,7 @@ public:
if( Creature* c = me->SummonCreature(NPC_SCARAB, AnubLocs[0].GetPositionX() + cos(angle) * dist, AnubLocs[0].GetPositionY() + std::sin(angle) * dist, AnubLocs[0].GetPositionZ(), 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000) )
{
c->SetFaction(FACTION_PREY);
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->GetMotionMaster()->MoveRandom(15.0f);
}
}
@@ -251,7 +251,7 @@ public:
if( me->HasUnitState(UNIT_STATE_CASTING) )
return;
if( !bPhase3 && HealthBelowPct(30) && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && !me->HasAura(SPELL_SUBMERGE) && !me->HasAura(SPELL_EMERGE) )
if( !bPhase3 && HealthBelowPct(30) && !me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE) && !me->HasAura(SPELL_SUBMERGE) && !me->HasAura(SPELL_EMERGE) )
{
bPhase3 = true;
events.CancelEvent(EVENT_SUBMERGE);
@@ -313,7 +313,7 @@ public:
break;
case EVENT_SUBMERGE:
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
bool berserk = me->HasAura(SPELL_BERSERK);
me->RemoveAllAuras();
if (berserk)
@@ -348,7 +348,7 @@ public:
case EVENT_EMERGE_2:
{
Talk(SAY_EMERGE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->setAttackTimer(BASE_ATTACK, 3000);
me->RemoveAura(SPELL_SUBMERGE);
me->CastSpell(me, SPELL_EMERGE, false);
@@ -393,7 +393,7 @@ public:
{
events.Reset();
summons.DespawnAll();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(TYPE_FAILED, 1);
}
@@ -408,7 +408,7 @@ public:
if (!bIntro)
{
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( !me->IsInCombat() )
Talk(SAY_INTRO);
bIntro = true;
@@ -507,7 +507,7 @@ public:
bool CanAIAttack(Unit const* target) const override
{
return target->GetEntry() != NPC_FROST_SPHERE && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
return target->GetEntry() != NPC_FROST_SPHERE && !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
};
};
@@ -559,9 +559,9 @@ public:
if( me->GetHealth() <= damage )
{
damage = 0;
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) )
if( !me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE) )
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->GetMotionMaster()->MoveIdle();
me->GetMotionMaster()->MoveCharge(me->GetPositionX(), me->GetPositionY(), 143.0f, 20.0f);
permafrostTimer = 1500;
@@ -682,7 +682,7 @@ public:
if( HealthBelowPct(80) && !me->HasAura(RAID_MODE(66193, 67855, 67856, 67857)) ) // not having permafrost - allow submerge
{
me->GetMotionMaster()->MoveIdle();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->RemoveAllAuras();
me->CastSpell(me, SPELL_EXPOSE_WEAKNESS, true);
me->CastSpell(me, SPELL_SPIDER_FRENZY, true);
@@ -697,7 +697,7 @@ public:
case EVENT_EMERGE:
me->SetHealth(me->GetMaxHealth());
me->GetMotionMaster()->MoveChase(me->GetVictim());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->CastSpell(me, SPELL_EMERGE, false);
me->RemoveAura(SPELL_SUBMERGE);

View File

@@ -292,7 +292,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override
@@ -421,7 +421,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override
@@ -544,7 +544,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override
@@ -677,7 +677,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override
@@ -800,7 +800,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override
@@ -954,7 +954,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void JustSummoned(Creature* c) override
@@ -1097,7 +1097,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override
@@ -1245,7 +1245,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_RANGED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag2(UNIT_FLAG2_DISARM_RANGED) || IsCCed());
}
void JustSummoned(Creature* c) override
@@ -1398,7 +1398,7 @@ public:
bool myCanCast()
{
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void JustSummoned(Creature* c) override
@@ -1562,7 +1562,7 @@ public:
case 0:
break;
case EVENT_SPELL_BLADESTORM:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1587,7 +1587,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_MORTAL_STRIKE:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1618,7 +1618,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_OVERPOWER:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1633,7 +1633,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_SUNDER_ARMOR:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1648,7 +1648,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_SHATTERING_THROW:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1663,7 +1663,7 @@ public:
events.RepeatEvent(6000);
break;
case EVENT_SPELL_RETALIATION:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1789,7 +1789,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_FROST_STRIKE:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1911,7 +1911,7 @@ public:
case 0:
break;
case EVENT_SPELL_FAN_OF_KNIVES:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1946,7 +1946,7 @@ public:
events.RepeatEvent(6000);
break;
case EVENT_SPELL_BLADE_FLURRY:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
events.RepeatEvent(5000);
else
{
@@ -1966,7 +1966,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_HEMORRHAGE:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -1981,7 +1981,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_EVISCERATE:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -2069,7 +2069,7 @@ public:
case 0:
break;
case EVENT_SPELL_EARTH_SHOCK_ENH:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) )
if( me->HasUnitFlag(UNIT_FLAG_SILENCED) )
{
events.RepeatEvent(5000);
break;
@@ -2084,7 +2084,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_LAVA_LASH:
if( me->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND) )
if( me->HasUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND) )
{
events.RepeatEvent(5000);
break;
@@ -2099,7 +2099,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_STORMSTRIKE:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) && me->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) && me->HasUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND) )
{
events.RepeatEvent(5000);
break;
@@ -2212,7 +2212,7 @@ public:
EventMapGCD(events, 1500);
break;
case EVENT_SPELL_CRUSADER_STRIKE:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -2237,7 +2237,7 @@ public:
events.RepeatEvent(5000);
break;
case EVENT_SPELL_DIVINE_STORM:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
events.RepeatEvent(5000);
break;
@@ -2333,7 +2333,7 @@ public:
bool myCanCast()
{
return !(me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
return !(me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
}
void UpdateAI(uint32 diff) override

View File

@@ -283,7 +283,7 @@ public:
{
events.Reset();
summons.DespawnAll();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(TYPE_FAILED, 1);
}

View File

@@ -293,7 +293,7 @@ public:
case 0:
break;
case EVENT_SPELL_IMPALE:
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
if( !me->HasUnitFlag(UNIT_FLAG_DISARMED) )
{
if( Unit* victim = me->GetVictim() )
me->CastSpell(victim, SPELL_IMPALE, false);
@@ -406,7 +406,7 @@ public:
{
events.Reset();
summons.DespawnAll();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(TYPE_FAILED, 1);
}
@@ -491,11 +491,11 @@ struct boss_jormungarAI : public ScriptedAI
switch( param )
{
case -1:
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
events.RescheduleEvent(EVENT_SUBMERGE, 1500);
break;
case -2:
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
if( me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
bIsStationary = true; // it will come out mobile soon
else if( me->GetDisplayId() == _MODEL_STATIONARY )
events.RescheduleEvent(EVENT_SUBMERGE, 1000);
@@ -568,7 +568,7 @@ struct boss_jormungarAI : public ScriptedAI
case EVENT_SUBMERGE:
{
bIsStationary = (me->GetDisplayId() == _MODEL_STATIONARY);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->CastSpell(me, SPELL_SUBMERGE_0, false);
Talk(EMOTE_SUBMERGE);
@@ -588,7 +588,7 @@ struct boss_jormungarAI : public ScriptedAI
{
c->SetSpeed(MOVE_RUN, 2.5f);
c->CastSpell(c, SPELL_CHURNING_GROUND, true);
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
c->GetMotionMaster()->MovePoint(0, Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + std::sin(angle)*dist, me->GetPositionZ());
}
me->UpdatePosition(Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + std::sin(angle)*dist, me->GetPositionZ(), me->GetOrientation(), true);
@@ -618,7 +618,7 @@ struct boss_jormungarAI : public ScriptedAI
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
me->CastSpell(me, SPELL_EMERGE_0, false);
Talk(EMOTE_EMERGE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
ScheduleEvents();
}
break;
@@ -647,7 +647,7 @@ struct boss_jormungarAI : public ScriptedAI
break;
}
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
{
if( me->GetDisplayId() == _MODEL_STATIONARY )
DoSpellAttackIfReady(_SPELL_SPIT);
@@ -670,7 +670,7 @@ struct boss_jormungarAI : public ScriptedAI
void EnterEvadeMode() override
{
events.Reset();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(TYPE_FAILED, 1);
}
@@ -1003,7 +1003,7 @@ public:
void EnterEvadeMode() override
{
events.Reset();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
if( pInstance )
pInstance->SetData(TYPE_FAILED, 1);
}

View File

@@ -318,7 +318,7 @@ public:
if (Creature* trigger = instance->SummonCreature(WORLD_TRIGGER, Locs[LOC_CENTER], nullptr, 25000))
{
trigger->SetDisplayId(11686);
trigger->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
trigger->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE);
trigger->SetFaction(FACTION_MONSTER);
trigger->SetInCombatWithZone();
}
@@ -340,7 +340,7 @@ public:
if (Creature* trigger = instance->SummonCreature(WORLD_TRIGGER, Locs[LOC_CENTER], nullptr, 25000))
{
trigger->SetDisplayId(11686);
trigger->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
trigger->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE);
trigger->SetFaction(FACTION_MONSTER);
trigger->SetInCombatWithZone();
}
@@ -656,7 +656,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_GormokGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
if( Unit* target = c->SelectNearestTarget(200.0f) )
{
@@ -704,7 +704,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_DreadscaleGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
if( Unit* target = c->SelectNearestTarget(200.0f) )
{
@@ -715,7 +715,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_AcidmawGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
if( Unit* target = c->SelectNearestTarget(200.0f) )
{
@@ -752,7 +752,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
if( Unit* target = c->SelectNearestTarget(200.0f) )
{
@@ -907,7 +907,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
if( Unit* target = c->SelectNearestTarget(200.0f) )
{
@@ -1104,7 +1104,7 @@ public:
if (Creature* c = instance->GetCreature(guid))
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
//if( Unit* target = c->SelectNearestTarget(200.0f) )
// c->AI()->AttackStart(target);
@@ -1171,7 +1171,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_LightbaneGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
/*if( Unit* target = c->SelectNearestTarget(200.0f) )
{
c->AI()->AttackStart(target);
@@ -1181,7 +1181,7 @@ public:
if( Creature* c = instance->GetCreature(NPC_DarkbaneGUID) )
{
c->SetReactState(REACT_AGGRESSIVE);
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
/*if( Unit* target = c->SelectNearestTarget(200.0f) )
{
c->AI()->AttackStart(target);
@@ -1483,7 +1483,7 @@ public:
{
jaraxxus->CastSpell(jaraxxus, 67924, true);
jaraxxus->SetReactState(REACT_AGGRESSIVE);
jaraxxus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
jaraxxus->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
jaraxxus->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
}
}