mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-19 03:45:43 +00:00
fix(Scripts/ShadowLabyrinth): Blackheart the Inciter's room link (#15994)
* init * pew * init * pew
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
enum BlackheartTheInciter
|
||||
{
|
||||
SPELL_INCITE_CHAOS = 33676,
|
||||
SPELL_INCITE_CHAOS_B = 33684, //debuff applied to each member of party
|
||||
SPELL_INCITE_CHAOS_B = 33684, //debuff applied to each member of party
|
||||
SPELL_CHARGE = 33709,
|
||||
SPELL_WAR_STOMP = 33707,
|
||||
|
||||
@@ -35,7 +35,7 @@ enum BlackheartTheInciter
|
||||
EVENT_SPELL_INCITE = 1,
|
||||
EVENT_INCITE_WAIT = 2,
|
||||
EVENT_SPELL_CHARGE = 3,
|
||||
EVENT_SPELL_KNOCKBACK = 4
|
||||
EVENT_SPELL_WAR_STOMP = 4
|
||||
};
|
||||
|
||||
class boss_blackheart_the_inciter : public CreatureScript
|
||||
@@ -57,47 +57,54 @@ public:
|
||||
|
||||
InstanceScript* instance;
|
||||
EventMap events;
|
||||
|
||||
bool InciteChaos;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
InciteChaos = false;
|
||||
events.Reset();
|
||||
|
||||
if (instance)
|
||||
{
|
||||
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, NOT_STARTED);
|
||||
}
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
{
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER && urand(0, 1))
|
||||
{
|
||||
Talk(SAY_SLAY);
|
||||
}
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
Talk(SAY_DEATH);
|
||||
if (instance)
|
||||
{
|
||||
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
me->CallForHelp(100.0f);
|
||||
events.ScheduleEvent(EVENT_SPELL_INCITE, 24000);
|
||||
events.ScheduleEvent(EVENT_INCITE_WAIT, 15000);
|
||||
events.ScheduleEvent(EVENT_SPELL_CHARGE, 0);
|
||||
events.ScheduleEvent(EVENT_SPELL_KNOCKBACK, urand(16950, 26350));
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_CHARGE, urand(30000, 50000));
|
||||
events.ScheduleEvent(EVENT_SPELL_WAR_STOMP, urand(16950, 26350));
|
||||
if (instance)
|
||||
{
|
||||
instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, IN_PROGRESS);
|
||||
}
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
if (InciteChaos && SelectTargetFromPlayerList(100.0f))
|
||||
return;
|
||||
|
||||
CreatureAI::EnterEvadeMode(why);
|
||||
}
|
||||
|
||||
@@ -114,14 +121,16 @@ public:
|
||||
break;
|
||||
case EVENT_SPELL_INCITE:
|
||||
{
|
||||
me->CastSpell(me, SPELL_INCITE_CHAOS, false);
|
||||
DoCastAOE(SPELL_INCITE_CHAOS);
|
||||
|
||||
std::list<HostileReference*> t_list = me->GetThreatMgr().GetThreatList();
|
||||
for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr != t_list.end(); ++itr)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());
|
||||
if (target && target->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
me->CastSpell(target, SPELL_INCITE_CHAOS_B, true);
|
||||
}
|
||||
}
|
||||
|
||||
DoResetThreatList();
|
||||
@@ -132,12 +141,11 @@ public:
|
||||
break;
|
||||
}
|
||||
case EVENT_SPELL_CHARGE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
||||
me->CastSpell(target, SPELL_CHARGE, false);
|
||||
DoCastRandomTarget(SPELL_CHARGE);
|
||||
events.RepeatEvent(urand(30000, 50000));
|
||||
break;
|
||||
case EVENT_SPELL_KNOCKBACK:
|
||||
me->CastSpell(me, SPELL_WAR_STOMP, false);
|
||||
case EVENT_SPELL_WAR_STOMP:
|
||||
DoCastAOE(SPELL_WAR_STOMP);
|
||||
events.RepeatEvent(urand(16950, 26350));
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user