diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/zone_storm_peaks.cpp | 56 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 47 |
2 files changed, 56 insertions, 47 deletions
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index b973b685dcb..a1ea0efddcf 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -1359,6 +1359,60 @@ class spell_read_pronouncement : public AuraScript } }; +/*###### +## Quest 13011: Jormuttar is Soo Fat... +######*/ + +enum JormuttarIsSooFat +{ + SPELL_CREATE_BEAR_FLANK = 56566, + SPELL_BEAR_FLANK_FAIL = 56569, + TEXT_CARVE_FAIL = 30986 +}; + +// 56565 - Bear Flank Master +class spell_bear_flank_master : public SpellScript +{ + PrepareSpellScript(spell_bear_flank_master); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_CREATE_BEAR_FLANK, SPELL_BEAR_FLANK_FAIL }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->CastSpell(GetHitUnit(), roll_chance_i(20) ? SPELL_CREATE_BEAR_FLANK : SPELL_BEAR_FLANK_FAIL); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_bear_flank_master::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +// 56569 - Bear Flank Fail +class spell_bear_flank_fail : public AuraScript +{ + PrepareAuraScript(spell_bear_flank_fail); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return sObjectMgr->GetBroadcastText(TEXT_CARVE_FAIL); + } + + void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (Player* target = GetTarget()->ToPlayer()) + target->Unit::Whisper(TEXT_CARVE_FAIL, target, true); + } + + void Register() override + { + AfterEffectApply += AuraEffectApplyFn(spell_bear_flank_fail::AfterApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_storm_peaks() { new npc_roxi_ramrocket(); @@ -1383,4 +1437,6 @@ void AddSC_storm_peaks() new spell_player_mount_wyrm(); RegisterSpellScript(spell_q12823_remove_collapsing_cave_aura); RegisterSpellScript(spell_read_pronouncement); + RegisterSpellScript(spell_bear_flank_master); + RegisterSpellScript(spell_bear_flank_fail); } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index fdbe614d123..71eeaeab518 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1301,52 +1301,6 @@ class spell_q12847_summon_soul_moveto_bunny : public SpellScript } }; -enum BearFlankMaster -{ - SPELL_CREATE_BEAR_FLANK = 56566, - SPELL_BEAR_FLANK_FAIL = 56569 -}; - -// 56565 - Bear Flank Master -class spell_q13011_bear_flank_master : public SpellScript -{ - PrepareSpellScript(spell_q13011_bear_flank_master); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo( - { - SPELL_CREATE_BEAR_FLANK, - SPELL_BEAR_FLANK_FAIL - }); - } - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_UNIT; - } - - void HandleScript(SpellEffIndex /*effIndex*/) - { - if (Player* player = GetHitPlayer()) - { - if (roll_chance_i(50)) - { - Creature* creature = GetCaster()->ToCreature(); - player->CastSpell(creature, SPELL_BEAR_FLANK_FAIL); - creature->AI()->Talk(0, player); - } - else - player->CastSpell(player, SPELL_CREATE_BEAR_FLANK); - } - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_q13011_bear_flank_master::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); - } -}; - // 57385 - Argent Cannon // 57412 - Reckoning Bomb class spell_q13086_cannons_target : public SpellScript @@ -2280,7 +2234,6 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy); RegisterSpellScript(spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon); RegisterSpellScript(spell_q12847_summon_soul_moveto_bunny); - RegisterSpellScript(spell_q13011_bear_flank_master); RegisterSpellScript(spell_q13086_cannons_target); RegisterSpellScript(spell_q13264_q13276_q13288_q13289_burst_at_the_seams_59576); RegisterSpellScript(spell_q13264_q13276_q13288_q13289_burst_at_the_seams_59579); |