refactor(Core/Creature): Move hardcoded text/gossips to DB - boss_general_vezax (#11649)
This commit is contained in:
@@ -73,17 +73,6 @@ enum VezaxGOs
|
|||||||
// GO_VEZAX_DOOR = 194750,
|
// GO_VEZAX_DOOR = 194750,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum VezaxSounds
|
|
||||||
{
|
|
||||||
SOUND_VEZAX_AGGRO = 15542,
|
|
||||||
SOUND_VEZAX_SLAIN_1 = 15543,
|
|
||||||
SOUND_VEZAX_SLAIN_2 = 15544,
|
|
||||||
SOUND_VEZAX_SURGE = 15545,
|
|
||||||
SOUND_VEZAX_DEATH = 15546,
|
|
||||||
SOUND_VEZAX_BERSERK = 15547,
|
|
||||||
SOUND_VEZAX_HARDMODE = 15548,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum VezaxEvents
|
enum VezaxEvents
|
||||||
{
|
{
|
||||||
EVENT_SPELL_VEZAX_SHADOW_CRASH = 1,
|
EVENT_SPELL_VEZAX_SHADOW_CRASH = 1,
|
||||||
@@ -99,13 +88,23 @@ enum VezaxEvents
|
|||||||
EVENT_RESTORE_TARGET = 11,
|
EVENT_RESTORE_TARGET = 11,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TEXT_VEZAX_AGGRO "Your destruction will herald a new age of suffering!"
|
enum VezaxText
|
||||||
#define TEXT_VEZAX_SLAIN_1 "You thought to stand before the legions of death... and survive?"
|
{
|
||||||
#define TEXT_VEZAX_SLAIN_2 "Defiance... a flaw of mortality."
|
SAY_AGGRO = 0,
|
||||||
#define TEXT_VEZAX_SURGE "The black blood of Yogg-Saron courses through me! I. AM. UNSTOPPABLE!"
|
SAY_SLAY = 1,
|
||||||
#define TEXT_VEZAX_BERSERK "Your defeat was inevitable!"
|
SAY_SURGE_OF_DARKNESS = 2,
|
||||||
#define TEXT_VEZAX_DEATH "Oh, what horrors await...."
|
SAY_DEATH = 3,
|
||||||
#define TEXT_VEZAX_HARDMODE "Behold, now! Terror, absolute!"
|
SAY_BERSERK = 4,
|
||||||
|
SAY_HARDMODE = 5,
|
||||||
|
SAY_EMOTE_ANIMUS = 6,
|
||||||
|
SAY_EMOTE_BARRIER = 7,
|
||||||
|
SAY_EMOTE_SURGE_OF_DARKNESS = 8,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum VaporsText
|
||||||
|
{
|
||||||
|
SAY_EMOTE_VAPORS = 0,
|
||||||
|
};
|
||||||
|
|
||||||
class boss_vezax : public CreatureScript
|
class boss_vezax : public CreatureScript
|
||||||
{
|
{
|
||||||
@@ -165,8 +164,7 @@ public:
|
|||||||
events.RescheduleEvent(EVENT_SPELL_SUMMON_SARONITE_VAPORS, 30000);
|
events.RescheduleEvent(EVENT_SPELL_SUMMON_SARONITE_VAPORS, 30000);
|
||||||
events.RescheduleEvent(EVENT_BERSERK, 600000);
|
events.RescheduleEvent(EVENT_BERSERK, 600000);
|
||||||
|
|
||||||
me->Yell(TEXT_VEZAX_AGGRO, LANG_UNIVERSAL);
|
Talk(SAY_AGGRO);
|
||||||
me->PlayDirectSound(SOUND_VEZAX_AGGRO, 0);
|
|
||||||
|
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
pInstance->SetData(TYPE_VEZAX, IN_PROGRESS);
|
pInstance->SetData(TYPE_VEZAX, IN_PROGRESS);
|
||||||
@@ -226,8 +224,7 @@ public:
|
|||||||
case EVENT_BERSERK:
|
case EVENT_BERSERK:
|
||||||
berserk = true;
|
berserk = true;
|
||||||
me->CastSpell(me, SPELL_VEZAX_BERSERK, true);
|
me->CastSpell(me, SPELL_VEZAX_BERSERK, true);
|
||||||
me->Yell(TEXT_VEZAX_BERSERK, LANG_UNIVERSAL);
|
Talk(SAY_BERSERK);
|
||||||
me->PlayDirectSound(SOUND_VEZAX_BERSERK, 0);
|
|
||||||
break;
|
break;
|
||||||
case EVENT_SPELL_VEZAX_SHADOW_CRASH:
|
case EVENT_SPELL_VEZAX_SHADOW_CRASH:
|
||||||
{
|
{
|
||||||
@@ -261,8 +258,8 @@ public:
|
|||||||
events.RepeatEvent( me->GetMap()->Is25ManRaid() ? 8000 : 15000 );
|
events.RepeatEvent( me->GetMap()->Is25ManRaid() ? 8000 : 15000 );
|
||||||
break;
|
break;
|
||||||
case EVENT_SPELL_SURGE_OF_DARKNESS:
|
case EVENT_SPELL_SURGE_OF_DARKNESS:
|
||||||
me->Yell(TEXT_VEZAX_SURGE, LANG_UNIVERSAL);
|
Talk(SAY_SURGE_OF_DARKNESS);
|
||||||
me->PlayDirectSound(SOUND_VEZAX_SURGE, 0);
|
Talk(SAY_EMOTE_SURGE_OF_DARKNESS);
|
||||||
me->CastSpell(me, SPELL_SURGE_OF_DARKNESS, false);
|
me->CastSpell(me, SPELL_SURGE_OF_DARKNESS, false);
|
||||||
events.RepeatEvent(63000);
|
events.RepeatEvent(63000);
|
||||||
events.DelayEvents(10000, 1);
|
events.DelayEvents(10000, 1);
|
||||||
@@ -298,7 +295,6 @@ public:
|
|||||||
{
|
{
|
||||||
vaporsCount++;
|
vaporsCount++;
|
||||||
me->CastSpell(me, SPELL_SUMMON_SARONITE_VAPORS, false);
|
me->CastSpell(me, SPELL_SUMMON_SARONITE_VAPORS, false);
|
||||||
me->TextEmote("A cloud of saronite vapors coalesces nearby!", nullptr, true);
|
|
||||||
|
|
||||||
if( vaporsCount < 6 || !hardmodeAvailable )
|
if( vaporsCount < 6 || !hardmodeAvailable )
|
||||||
events.RepeatEvent(30000);
|
events.RepeatEvent(30000);
|
||||||
@@ -321,7 +317,7 @@ public:
|
|||||||
case EVENT_SARONITE_VAPORS_SWIRL:
|
case EVENT_SARONITE_VAPORS_SWIRL:
|
||||||
if (summons.size())
|
if (summons.size())
|
||||||
{
|
{
|
||||||
me->TextEmote("The saronite vapors mass and swirl violently, merging into a monstrous form!", nullptr, true);
|
Talk(SAY_EMOTE_ANIMUS);
|
||||||
if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) )
|
if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) )
|
||||||
sv->CastSpell(sv, SPELL_SARONITE_ANIMUS_FORMATION_VISUAL, true);
|
sv->CastSpell(sv, SPELL_SARONITE_ANIMUS_FORMATION_VISUAL, true);
|
||||||
|
|
||||||
@@ -332,10 +328,8 @@ public:
|
|||||||
case EVENT_SPELL_SUMMON_SARONITE_ANIMUS:
|
case EVENT_SPELL_SUMMON_SARONITE_ANIMUS:
|
||||||
if (summons.size())
|
if (summons.size())
|
||||||
{
|
{
|
||||||
me->TextEmote("A saronite barrier appears around General Vezax!", nullptr, true);
|
Talk(SAY_HARDMODE);
|
||||||
me->Yell(TEXT_VEZAX_HARDMODE, LANG_UNIVERSAL);
|
Talk(SAY_EMOTE_BARRIER);
|
||||||
me->PlayDirectSound(SOUND_VEZAX_HARDMODE, 0);
|
|
||||||
|
|
||||||
me->CastSpell(me, SPELL_SARONITE_BARRIER, true);
|
me->CastSpell(me, SPELL_SARONITE_BARRIER, true);
|
||||||
if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) )
|
if( Creature* sv = ObjectAccessor::GetCreature(*me, *(summons.begin())) )
|
||||||
sv->CastSpell(sv, SPELL_SUMMON_SARONITE_ANIMUS, true);
|
sv->CastSpell(sv, SPELL_SUMMON_SARONITE_ANIMUS, true);
|
||||||
@@ -358,8 +352,7 @@ public:
|
|||||||
if (pInstance)
|
if (pInstance)
|
||||||
pInstance->SetData(TYPE_VEZAX, DONE);
|
pInstance->SetData(TYPE_VEZAX, DONE);
|
||||||
|
|
||||||
me->Yell(TEXT_VEZAX_DEATH, LANG_UNIVERSAL);
|
Talk(SAY_DEATH);
|
||||||
me->PlayDirectSound(SOUND_VEZAX_DEATH, 0);
|
|
||||||
|
|
||||||
if( GameObject* door = me->FindNearestGameObject(GO_VEZAX_DOOR, 500.0f) )
|
if( GameObject* door = me->FindNearestGameObject(GO_VEZAX_DOOR, 500.0f) )
|
||||||
if( door->GetGoState() != GO_STATE_ACTIVE )
|
if( door->GetGoState() != GO_STATE_ACTIVE )
|
||||||
@@ -372,18 +365,7 @@ public:
|
|||||||
void KilledUnit(Unit* who) override
|
void KilledUnit(Unit* who) override
|
||||||
{
|
{
|
||||||
if( who->GetTypeId() == TYPEID_PLAYER )
|
if( who->GetTypeId() == TYPEID_PLAYER )
|
||||||
{
|
Talk(SAY_SLAY);
|
||||||
if( urand(0, 1) )
|
|
||||||
{
|
|
||||||
me->Yell(TEXT_VEZAX_SLAIN_1, LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_VEZAX_SLAIN_1, 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
me->Yell(TEXT_VEZAX_SLAIN_2, LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_VEZAX_SLAIN_2, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveInLineOfSight(Unit* /*who*/) override {}
|
void MoveInLineOfSight(Unit* /*who*/) override {}
|
||||||
@@ -429,6 +411,11 @@ public:
|
|||||||
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_VEZAX)) )
|
if( Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_VEZAX)) )
|
||||||
vezax->AI()->DoAction(1);
|
vezax->AI()->DoAction(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IsSummonedBy(Unit* /*summoner*/) override
|
||||||
|
{
|
||||||
|
Talk(SAY_EMOTE_VAPORS);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user