fix(Script/Skadi): Emotes (#11625)

* Added Grauf deep breath emote

* Renamed flame visual to properly reflect spell name Freezing Cloud

* Removed defined text, now uses creature_text for emotes

Co-authored-by: ChrisCGalbraith <chriscgalbraith@gmai.com>
This commit is contained in:
Christopher Galbraith
2022-05-07 22:20:34 +01:00
committed by GitHub
parent aeb260c3cc
commit ac8a6b4328

View File

@@ -28,11 +28,14 @@ enum Misc
// TEXTS
SAY_AGGRO = 0,
SAY_KILL = 1,
EMOTE_RANGE = 2,
SAY_DEATH = 3,
SAY_DRAKE_DEATH = 5,
SAY_DRAKE_BREATH = 6,
// EMOTES
EMOTE_DEEP_BREATH = 0,
EMOTE_RANGE = 1,
// SPELLS
SPELL_CRUSH_N = 50234,
SPELL_CRUSH_H = 59330,
@@ -41,9 +44,9 @@ enum Misc
SPELL_WHIRLWIND_N = 50228,
SPELL_WHIRLWIND_H = 50228,
SPELL_FLAME_VISUAL = 47592,
SPELL_FLAME_BREATH_N = 47579,
SPELL_FLAME_BREATH_H = 60020,
SPELL_FREEZING_CLOUD_VISUAL = 47592,
SPELL_FREEZING_CLOUD_N = 47579,
SPELL_FREEZING_CLOUD_H = 60020,
SPELL_LAUNCH_HARPOON = 48642,
@@ -95,8 +98,6 @@ static Position SkadiPosition[] =
{490.76f, -517.389f, 123.368f, 0.0f}
};
#define EMOTE_IN_RANGE "Skadi the Ruthless is within range of the harpoon launchers"
enum phase
{
PHASE_NONE,
@@ -323,8 +324,8 @@ public:
void SpellHitTarget(Unit* target, SpellInfo const* spellInfo) override
{
if (spellInfo->Id == 47593) // SPELL_FLAME_VISUAL trigger
target->CastSpell(target, me->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
if (spellInfo->Id == 47593) // SPELL_FREEZING_CLOUD_VISUAL trigger
target->CastSpell(target, me->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true);
}
void SpawnFlameTriggers(uint8 point)
@@ -341,13 +342,13 @@ public:
{
Creature* cr;
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 483, -484.9f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true);
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 471.0f, -484.7f, 105, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true);
for (uint8 j = 0; j < 7; j++)
if ((cr = me->SummonCreature(NPC_BREATH_TRIGGER, 477.0f, -507.0f + (j * 3), 105.0f, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000)))
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH_N, true);
cr->CastSpell(cr, cr->GetMap()->IsHeroic() ? SPELL_FREEZING_CLOUD_H : SPELL_FREEZING_CLOUD_N, true);
}
}
@@ -357,15 +358,14 @@ public:
{
case 0:
case 1:
me->RemoveAurasDueToSpell(SPELL_FLAME_VISUAL);
me->RemoveAurasDueToSpell(SPELL_FREEZING_CLOUD_VISUAL);
me->SetFacingTo(M_PI * 2);
break;
case 2:
case 3:
if (m_pInstance)
m_pInstance->SetData(SKADI_IN_RANGE, 1);
me->TextEmote(EMOTE_IN_RANGE, nullptr, true);
Talk(EMOTE_RANGE);
me->SetFacingTo(M_PI);
break;
}
@@ -466,8 +466,9 @@ public:
me->GetMotionMaster()->MovePoint(targetPoint, SkadiPosition[targetPoint].GetPositionX(), SkadiPosition[targetPoint].GetPositionY(), SkadiPosition[targetPoint].GetPositionZ());
if (targetPoint <= 1)
{
Talk(EMOTE_DEEP_BREATH);
SpawnFlameTriggers(targetPoint);
me->CastSpell(me, SPELL_FLAME_VISUAL, false);
me->CastSpell(me, SPELL_FREEZING_CLOUD_VISUAL, false);
}
if (m_pInstance)