fix(Scripts/Ignis): Move hardcoded text/gossips to DB (#11655)

* ignis

* cs

* revert victim
This commit is contained in:
avarishd
2022-05-09 00:15:41 +03:00
committed by GitHub
parent 7b01b27bb2
commit 9144cab27d

View File

@@ -57,26 +57,17 @@
#define NPC_SCORCHED_GROUND 33123
#define NPC_WATER_TRIGGER 22515
#define TEXT_AGGRO "Insolent whelps! Your blood will temper the weapons used to reclaim this world!"
#define TEXT_ACTIVATE_CONSTRUCT "Arise, soldiers of the Iron Crucible! The Makers' will be done!"
#define TEXT_SCORCH_1 "Let the inferno consume you!"
#define TEXT_SCORCH_2 "BURN! Burn in the makers fire!"
#define TEXT_SLAG_POT "I will burn away your impurities!"
#define TEXT_SLAY_1 "More scraps for the scrapheap!"
#define TEXT_SLAY_2 "Your bones will serve as kindling!"
#define TEXT_BERSERK "Let it be finished!"
#define TEXT_DEATH "I. Have. Failed."
#define TEXT_FLAME_JETS "Ignis The Furnace Master begins to cast Flame Jets!"
#define SOUND_AGGRO 15564
#define SOUND_ACTIVATE_CONSTRUCT 15565
#define SOUND_SLAG_POT 15566
#define SOUND_SCORCH_1 15567
#define SOUND_SCORCH_2 15568
#define SOUND_SLAY_1 15569
#define SOUND_SLAY_2 15570
#define SOUND_BERSERK 15571
#define SOUND_DEATH 15572
enum Texts
{
SAY_AGGRO = 0,
SAY_SUMMON = 1,
SAY_SLAG_POT = 2,
SAY_SCORCH = 3,
SAY_SLAY = 4,
SAY_BERSERK = 5,
SAY_DEATH = 6,
EMOTE_JETS = 7,
};
#define ACHIEV_STOKIN_THE_FURNACE_EVENT 20951
@@ -260,8 +251,7 @@ public:
events.ScheduleEvent(EVENT_SPELL_FLAME_JETS, 32000);
events.ScheduleEvent(EVENT_GRAB, 25000);
me->Yell(TEXT_AGGRO, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_AGGRO);
Talk(SAY_AGGRO);
DoZoneInCombat();
if( InstanceScript* m_pInstance = me->GetInstanceScript() )
@@ -296,24 +286,15 @@ public:
me->setActive(false);
}
void KilledUnit(Unit* /*victim*/) override
void KilledUnit(Unit* victim) override
{
if( rand() % 2 )
{
me->Yell(TEXT_SLAY_1, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_SLAY_1);
}
else
{
me->Yell(TEXT_SLAY_2, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_SLAY_2);
}
if (victim->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
void JustDied(Unit* /*killer*/) override
{
me->Yell(TEXT_DEATH, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_DEATH);
Talk(SAY_DEATH);
if( me->GetInstanceScript() )
me->GetInstanceScript()->SetData(TYPE_IGNIS, DONE);
@@ -357,27 +338,18 @@ public:
case 0:
break;
case EVENT_ACTIVATE_CONSTRUCT:
Talk(SAY_SUMMON);
me->CastCustomSpell(SPELL_ACTIVATE_CONSTRUCT, SPELLVALUE_MAX_TARGETS, 1, (Unit*)nullptr, false);
if (++counter >= 20)
{
me->Yell(TEXT_BERSERK, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_BERSERK);
Talk(SAY_BERSERK);
me->CastSpell(me, SPELL_BERSERK, true);
break;
}
events.RepeatEvent(RAID_MODE(40000, 30000));
break;
case EVENT_SPELL_SCORCH:
if( rand() % 2 )
{
me->Yell(TEXT_SCORCH_1, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_SCORCH_1);
}
else
{
me->Yell(TEXT_SCORCH_2, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_SCORCH_2);
}
Talk(SAY_SCORCH);
me->SetControlled(true, UNIT_STATE_ROOT);
me->DisableRotate(true);
me->SendMovementFlagUpdate();
@@ -390,7 +362,7 @@ public:
me->DisableRotate(false);
break;
case EVENT_SPELL_FLAME_JETS:
me->TextEmote(TEXT_FLAME_JETS, nullptr, true);
Talk(EMOTE_JETS);
me->CastSpell(me->GetVictim(), S_FLAME_JETS, false);
events.RepeatEvent(25000);
break;
@@ -429,8 +401,7 @@ public:
int8 pos = urand(0, playerGUIDs.size() - 1);
if( Player* pTarget = ObjectAccessor::GetPlayer(*me, playerGUIDs.at(pos)) )
{
me->Yell(TEXT_SLAG_POT, LANG_UNIVERSAL);
me->PlayDirectSound(SOUND_SLAG_POT);
Talk(SAY_SLAG_POT);
me->CastSpell(pTarget, SPELL_GRAB, false);
}
}