mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 19:06:49 +01:00
Scripts/Stonecore: Prevent Slabhide from dying during air phases
This commit is contained in:
@@ -116,6 +116,7 @@ class boss_slabhide : public CreatureScript
|
||||
me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
instance->SetData(DATA_SLABHIDE_INTRO, NOT_STARTED);
|
||||
_isFlying = false;
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
@@ -130,6 +131,7 @@ class boss_slabhide : public CreatureScript
|
||||
me->SetDisableGravity(false);
|
||||
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
_isFlying = false;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*victim*/) override
|
||||
@@ -142,6 +144,12 @@ class boss_slabhide : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_AIR_PHASE, 10000);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
{
|
||||
if (_isFlying && damage >= me->GetHealth())
|
||||
damage = me->GetHealth() - 1; // Let creature health fall to 1 hp but prevent it from dying during air phase.
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
_JustDied();
|
||||
@@ -196,9 +204,11 @@ class boss_slabhide : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_TAKEOFF, 100);
|
||||
break;
|
||||
case POINT_SLABHIDE_IN_AIR:
|
||||
_isFlying = true;
|
||||
events.ScheduleEvent(EVENT_STALACTITE, 400);
|
||||
break;
|
||||
case POINT_SLABHIDE_LAND:
|
||||
_isFlying = false;
|
||||
//DoCast(me, SPELL_COOLDOWN_5S); // unknown purpose
|
||||
events.ScheduleEvent(EVENT_ATTACK, 1200);
|
||||
break;
|
||||
@@ -297,7 +307,7 @@ class boss_slabhide : public CreatureScript
|
||||
(*itr)->Delete();
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
bool _isFlying;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
|
||||
Reference in New Issue
Block a user