fix(Scripts/UBRS): General Drakkisath adds (#8988)

This commit is contained in:
Skjalf
2021-11-07 22:37:06 -03:00
committed by GitHub
parent 8b4442b0bb
commit 99131575a6
4 changed files with 36 additions and 44 deletions

View File

@@ -82,7 +82,8 @@ enum CreaturesIds
NPC_UROK_MAGUS = 10602,
NPC_UROK_ENFORCER = 10601,
NPC_FINKLE_EINHORN = 10776
NPC_FINKLE_EINHORN = 10776,
NPC_CHROMATIC_ELITE_GUARD = 10814
};
enum AdditionalData

View File

@@ -53,9 +53,6 @@ enum ChromaticEliteGuardSpells
SPELL_STRIKE = 15580
};
constexpr uint32 ChromaticEliteGuardEntry = 10814;
constexpr uint32 GeneralDrakkisathEntry = 10814;
class boss_drakkisath : public CreatureScript
{
public:
@@ -73,7 +70,6 @@ public:
void EnterCombat(Unit* /*who*/) override
{
_EnterCombat();
CallForHelp();
events.ScheduleEvent(EVENT_FLAMESTRIKE, 6000);
events.ScheduleEvent(EVENT_CLEAVE, 8000);
events.ScheduleEvent(EVENT_CONFLAGRATION, 15000);
@@ -82,17 +78,6 @@ public:
events.ScheduleEvent(EVENT_RAGE, 1000);
}
// Will make his two adds engage combat
void CallForHelp()
{
std::list<Creature*> ChromaticEliteGuards;
me->GetCreaturesWithEntryInRange(ChromaticEliteGuards, 15.0f, ChromaticEliteGuardEntry);
for (std::list<Creature*>::const_iterator itr = ChromaticEliteGuards.begin(); itr != ChromaticEliteGuards.end(); ++itr)
{
(*itr)->ToCreature()->AI()->AttackStart(me->GetVictim());
}
}
void JustDied(Unit* /*killer*/) override
{
_JustDied();
@@ -162,25 +147,12 @@ public:
EventMap _events;
void EnterCombat(Unit* who) override
void EnterCombat(Unit* /*who*/) override
{
_events.Reset();
_events.ScheduleEvent(EVENT_MORTAL_STRIKE, urand(5000, 12800));
_events.ScheduleEvent(EVENT_KNOCKDOWN, urand(5600, 15400));
_events.ScheduleEvent(EVENT_STRIKE, urand(12000, 20800));
std::list<Creature*> GeneralDrakkisath;
me->GetCreaturesWithEntryInRange(GeneralDrakkisath, 15.0f, GeneralDrakkisathEntry);
for (std::list<Creature*>::const_iterator itr = GeneralDrakkisath.begin(); itr != GeneralDrakkisath.end(); ++itr)
{
(*itr)->ToCreature()->AI()->AttackStart(who);
}
std::list<Creature*> ChromaticEliteGuards;
me->GetCreaturesWithEntryInRange(ChromaticEliteGuards, 15.0f, ChromaticEliteGuardEntry);
for (std::list<Creature*>::const_iterator itr = ChromaticEliteGuards.begin(); itr != ChromaticEliteGuards.end(); ++itr)
{
(*itr)->ToCreature()->AI()->AttackStart(who);
}
}
void UpdateAI(uint32 diff) override
@@ -190,20 +162,23 @@ public:
_events.Update(diff);
switch (_events.ExecuteEvent())
while (uint32 const eventId = _events.ExecuteEvent())
{
case EVENT_MORTAL_STRIKE:
DoCastVictim(SPELL_MORTAL_STRIKE);
_events.ScheduleEvent(EVENT_MORTAL_STRIKE, 13000);
break;
case EVENT_KNOCKDOWN:
DoCastVictim(SPELL_KNOCKDOWN);
_events.ScheduleEvent(EVENT_KNOCKDOWN, urand(11200, 25700));
break;
case EVENT_STRIKE:
DoCastVictim(SPELL_STRIKE);
_events.ScheduleEvent(EVENT_STRIKE, 9000);
break;
switch (eventId)
{
case EVENT_MORTAL_STRIKE:
DoCastVictim(SPELL_MORTAL_STRIKE);
_events.ScheduleEvent(EVENT_MORTAL_STRIKE, 13000);
break;
case EVENT_KNOCKDOWN:
DoCastVictim(SPELL_KNOCKDOWN);
_events.ScheduleEvent(EVENT_KNOCKDOWN, urand(11200, 25700));
break;
case EVENT_STRIKE:
DoCastVictim(SPELL_STRIKE);
_events.ScheduleEvent(EVENT_STRIKE, 9000);
break;
}
}
DoMeleeAttackIfReady();

View File

@@ -56,6 +56,11 @@ enum Texts
SAY_SOLAKAR_FIRST_HATCHER = 0
};
MinionData const minionData[] =
{
{ NPC_CHROMATIC_ELITE_GUARD, DATA_GENERAL_DRAKKISATH }
};
class instance_blackrock_spire : public InstanceMapScript
{
public:
@@ -70,6 +75,7 @@ public:
instance_blackrock_spireMapScript(InstanceMap* map) : InstanceScript(map)
{
SetBossNumber(EncounterCount);
LoadMinionData(minionData);
CurrentSolakarWave = 0;
SolakarState = NOT_STARTED;
SolakarSummons.clear();
@@ -155,6 +161,9 @@ public:
case NPC_FINKLE_EINHORN:
creature->AI()->Talk(SAY_FINKLE_GANG);
break;
case NPC_CHROMATIC_ELITE_GUARD:
AddMinion(creature, true);
break;
}
}