mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-05 08:28:57 +01:00
Scripts/Quest: Update 'Mounting Hodir's Helm' (#27832)
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "GameObject.h"
|
||||
#include "MotionMaster.h"
|
||||
#include "ObjectAccessor.h"
|
||||
#include "ObjectMgr.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptedEscortAI.h"
|
||||
#include "ScriptedGossip.h"
|
||||
@@ -1319,6 +1320,45 @@ class spell_q12823_remove_collapsing_cave_aura : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## Quest 12987: Mounting Hodir's Helm
|
||||
######*/
|
||||
|
||||
enum MountingHodirsHelm
|
||||
{
|
||||
TEXT_PRONOUNCEMENT_1 = 30906,
|
||||
TEXT_PRONOUNCEMENT_2 = 30907,
|
||||
NPC_HODIRS_HELM_KC = 30210
|
||||
};
|
||||
|
||||
// 56278 - Read Pronouncement
|
||||
class spell_read_pronouncement : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_read_pronouncement);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return sObjectMgr->GetBroadcastText(TEXT_PRONOUNCEMENT_1) &&
|
||||
sObjectMgr->GetBroadcastText(TEXT_PRONOUNCEMENT_2) &&
|
||||
sObjectMgr->GetCreatureTemplate(NPC_HODIRS_HELM_KC);
|
||||
}
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Player* target = GetTarget()->ToPlayer())
|
||||
{
|
||||
target->Unit::Whisper(TEXT_PRONOUNCEMENT_1, target, true);
|
||||
target->KilledMonsterCredit(NPC_HODIRS_HELM_KC);
|
||||
target->Unit::Whisper(TEXT_PRONOUNCEMENT_2, target, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
AfterEffectApply += AuraEffectApplyFn(spell_read_pronouncement::OnApply, EFFECT_0, SPELL_AURA_NONE, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_storm_peaks()
|
||||
{
|
||||
new npc_roxi_ramrocket();
|
||||
@@ -1342,4 +1382,5 @@ void AddSC_storm_peaks()
|
||||
new spell_fatal_strike();
|
||||
new spell_player_mount_wyrm();
|
||||
RegisterSpellScript(spell_q12823_remove_collapsing_cave_aura);
|
||||
RegisterSpellScript(spell_read_pronouncement);
|
||||
}
|
||||
|
||||
@@ -898,39 +898,6 @@ class spell_q14076_14092_pound_drum : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
enum HodirsHelm
|
||||
{
|
||||
SAY_1 = 1,
|
||||
SAY_2 = 2,
|
||||
NPC_KILLCREDIT = 30210, // Hodir's Helm KC Bunny
|
||||
NPC_ICE_SPIKE_BUNNY = 30215
|
||||
};
|
||||
|
||||
// 56278 - Read Pronouncement
|
||||
class spell_q12987_read_pronouncement : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_q12987_read_pronouncement);
|
||||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
// player must cast kill credit and do emote text, according to sniff
|
||||
if (Player* target = GetTarget()->ToPlayer())
|
||||
{
|
||||
if (Creature* trigger = target->FindNearestCreature(NPC_ICE_SPIKE_BUNNY, 25.0f))
|
||||
{
|
||||
sCreatureTextMgr->SendChat(trigger, SAY_1, target, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, target);
|
||||
target->KilledMonsterCredit(NPC_KILLCREDIT);
|
||||
sCreatureTextMgr->SendChat(trigger, SAY_2, target, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
AfterEffectApply += AuraEffectApplyFn(spell_q12987_read_pronouncement::OnApply, EFFECT_0, SPELL_AURA_NONE, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
enum LeaveNothingToChance
|
||||
{
|
||||
NPC_UPPER_MINE_SHAFT = 27436,
|
||||
@@ -2344,7 +2311,6 @@ void AddSC_quest_spell_scripts()
|
||||
RegisterSpellScript(spell_q14112_14145_chum_the_water);
|
||||
RegisterSpellScript(spell_q9452_cast_net);
|
||||
RegisterSpellScript(spell_q14076_14092_pound_drum);
|
||||
RegisterSpellScript(spell_q12987_read_pronouncement);
|
||||
RegisterSpellScript(spell_q12277_wintergarde_mine_explosion);
|
||||
RegisterSpellScript(spell_q12066_bunny_kill_credit);
|
||||
RegisterSpellScript(spell_q12735_song_of_cleansing);
|
||||
|
||||
Reference in New Issue
Block a user