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