refactor(Scripts/IcecrownCitadel): Spell Scripts use registry macros (#19508)

* boss_blood_queen_lana_thel aura:spell_blood_queen_pact_of_the_darkfallen_dmg_aura

* boss_blood_queen_lana_thel spell:spell_blood_queen_pact_of_the_darkfallen

* boss_blood_queen_lana_thel spell:spell_blood_queen_pact_of_the_darkfallen_dmg_target

* boss_blood_queen_lana_thel spell:spell_blood_queen_bloodbolt

* boss_blood_queen_lana_thel aura:spell_blood_queen_frenzied_bloodthirst_aura

* boss_blood_queen_lana_thel aura:spell_blood_queen_essence_of_the_blood_queen_aura

* boss_blood_queen_lana_thel spell:spell_blood_queen_vampiric_bite

* boss_blood_queen_lana_thel spell:spell_blood_queen_swarming_shadows_floor_dmg

* boss_blood_queen_lana_thel spell:spell_blood_queen_presence_of_the_darkfallen

* icecrown_citadel aura:spell_icc_stoneform_aura

* icecrown_citadel spell:spell_icc_sprit_alarm

* icecrown_citadel spell:spell_icc_geist_alarm

* icecrown_citadel spell:spell_frost_giant_death_plague

* icecrown_citadel spell:spell_icc_harvest_blight_specimen

* icecrown_citadel spell:spell_svalna_revive_champion

* icecrown_citadel spell:spell_svalna_remove_spear

* icecrown_citadel spell:spell_icc_soul_missile

* icecrown_citadel aura:spell_icc_web_wrap_aura

* icecrown_citadel aura:spell_icc_dark_reckoning_aura

* icecrown_citadel spell:spell_stinky_precious_decimate

* icecrown_citadel aura:spell_icc_yf_frozen_orb_aura

* icecrown_citadel aura:spell_icc_yh_volley_aura

* icecrown_citadel spell:spell_icc_yd_summon_undead

* icecrown_citadel spell:spell_icc_shattered_bones

* boss_deathbringer_saurfang aura:spell_deathbringer_blood_link_aura

* boss_deathbringer_saurfang aura:spell_deathbringer_blood_link_blood_beast_aura

* boss_deathbringer_saurfang spell:spell_deathbringer_blood_link

* boss_deathbringer_saurfang pair:spell_deathbringer_blood_power

* boss_deathbringer_saurfang spell:spell_deathbringer_blood_nova_targeting

* boss_deathbringer_saurfang spell:spell_deathbringer_boiling_blood

* boss_festergut spell:spell_festergut_pungent_blight

* boss_festergut aura:spell_festergut_blighted_spores_aura

* boss_festergut spell:spell_festergut_gastric_bloat

* boss_valithria_dreamwalker spell:spell_dreamwalker_summon_portal

* boss_valithria_dreamwalker spell:spell_dreamwalker_twisted_nightmares

* boss_valithria_dreamwalker aura:spell_dreamwalker_nightmare_cloud_aura

* boss_valithria_dreamwalker aura:spell_dreamwalker_mana_void_aura

* boss_valithria_dreamwalker aura:spell_dreamwalker_decay_periodic_timer_aura

* boss_valithria_dreamwalker spell:spell_dreamwalker_summoner

* boss_valithria_dreamwalker aura:spell_dreamwalker_summon_suppresser_aura

* boss_valithria_dreamwalker spell:spell_dreamwalker_summon_suppresser_effect

* boss_valithria_dreamwalker aura:spell_valithria_suppression_aura

* boss_lady_deathwhisper aura:spell_deathwhisper_mana_barrier_aura

* boss_professor_putricide spell:spell_putricide_slime_puddle

* boss_professor_putricide spell:spell_putricide_slime_puddle_spawn

* boss_professor_putricide aura:spell_putricide_grow_stacker_aura

* boss_professor_putricide spell:spell_putricide_unstable_experiment

* boss_professor_putricide spell:spell_putricide_tear_gas_effect

* boss_professor_putricide aura:spell_putricide_gaseous_bloat_aura

* boss_professor_putricide spell:spell_putricide_ooze_channel

* boss_professor_putricide spell:spell_putricide_ooze_eruption_searcher

* boss_professor_putricide aura:spell_putricide_mutated_plague_aura

* boss_professor_putricide spell:spell_putricide_unbound_plague

* boss_professor_putricide aura:spell_putricide_unbound_plague_dmg_aura

* boss_professor_putricide spell:spell_putricide_choking_gas_bomb

* boss_professor_putricide spell:spell_putricide_clear_aura_effect_value

* boss_professor_putricide pair:spell_putricide_mutation_init

* boss_professor_putricide spell:spell_putricide_mutated_transformation

* boss_professor_putricide aura:spell_putricide_mutated_transformation_dismiss_aura

* boss_professor_putricide spell:spell_putricide_mutated_transformation_dmg

* boss_professor_putricide spell:spell_putricide_eat_ooze

* boss_professor_putricide spell:spell_putricide_regurgitated_ooze

* boss_sindragosa spell:spell_sindragosa_s_fury

* boss_sindragosa aura:spell_sindragosa_permeating_chill_aura

* boss_sindragosa aura:spell_sindragosa_instability_aura

* boss_sindragosa spell:spell_sindragosa_icy_grip

* boss_sindragosa spell:spell_sindragosa_icy_grip_jump

* boss_sindragosa aura:spell_sindragosa_frost_beacon_aura

* boss_sindragosa spell:spell_sindragosa_ice_tomb_filter

* boss_sindragosa pair:spell_sindragosa_ice_tomb

* boss_sindragosa spell:spell_sindragosa_mystic_buffet

* boss_sindragosa aura:spell_sindragosa_soul_preservation_aura

* boss_sindragosa spell:spell_rimefang_icy_blast

* boss_sindragosa spell:spell_frostwarden_handler_order_whelp

* boss_sindragosa pair:spell_frostwarden_handler_focus_fire

* boss_sindragosa spell:spell_sindragosa_frost_breath

* boss_lord_marrowgar spell:spell_marrowgar_coldflame

* boss_lord_marrowgar spell:spell_marrowgar_bone_spike_graveyard

* boss_lord_marrowgar spell:spell_marrowgar_coldflame_bonestorm

* boss_lord_marrowgar spell:spell_marrowgar_bone_storm

* boss_lord_marrowgar spell:spell_marrowgar_bone_slice

* boss_the_lich_king spell:spell_the_lich_king_quake

* boss_the_lich_king spell:spell_the_lich_king_jump

* boss_the_lich_king spell:spell_the_lich_king_jump_remove_aura

* boss_the_lich_king spell:spell_the_lich_king_play_movie

* boss_the_lich_king aura:spell_the_lich_king_infest_aura

* boss_the_lich_king aura:spell_the_lich_king_necrotic_plague_aura

* boss_the_lich_king pair:spell_the_lich_king_necrotic_plague_jump

* boss_the_lich_king aura:spell_the_lich_king_shadow_trap_visual_aura

* boss_the_lich_king spell:spell_the_lich_king_shadow_trap_periodic

* boss_the_lich_king spell:spell_the_lich_king_ice_burst_target_search

* boss_the_lich_king spell:spell_the_lich_king_raging_spirit

* boss_the_lich_king spell:spell_the_lich_king_defile

* boss_the_lich_king aura:spell_the_lich_king_soul_reaper_aura

* boss_the_lich_king spell:spell_the_lich_king_summon_into_air

* boss_the_lich_king spell:spell_the_lich_king_teleport_to_frostmourne_hc

* boss_the_lich_king spell:spell_the_lich_king_valkyr_target_search

* boss_the_lich_king spell:spell_the_lich_king_cast_back_to_caster

* boss_the_lich_king spell:spell_the_lich_king_life_siphon

* boss_the_lich_king aura:spell_the_lich_king_vile_spirits_aura

* boss_the_lich_king spell:spell_the_lich_king_vile_spirits_visual

* boss_the_lich_king spell:spell_the_lich_king_vile_spirit_move_target_search

* boss_the_lich_king spell:spell_the_lich_king_vile_spirit_damage_target_search

* boss_the_lich_king aura:spell_the_lich_king_harvest_soul_aura

* boss_the_lich_king aura:spell_the_lich_king_lights_favor_aura

* boss_the_lich_king spell:spell_the_lich_king_restore_soul

* boss_the_lich_king aura:spell_the_lich_king_dark_hunger_aura

* boss_the_lich_king aura:spell_the_lich_king_soul_rip_aura

* boss_the_lich_king spell:spell_the_lich_king_summon_spirit_bomb

* boss_the_lich_king spell:spell_the_lich_king_trigger_vile_spirit

* boss_icecrown_gunship_battle aura:spell_igb_rocket_pack_aura

* boss_icecrown_gunship_battle aura:spell_igb_rocket_pack_useable_aura

* boss_icecrown_gunship_battle spell:spell_igb_teleport_to_enemy_ship

* boss_icecrown_gunship_battle spell:spell_igb_check_for_players

* boss_icecrown_gunship_battle spell:spell_igb_gunship_fall_teleport

* boss_icecrown_gunship_battle aura:spell_igb_explosion_main_aura

* boss_icecrown_gunship_battle spell:spell_igb_explosion

* boss_icecrown_gunship_battle spell:spell_igb_teleport_players_on_victory

* boss_icecrown_gunship_battle aura:spell_igb_periodic_trigger_with_power_cost_aura

* boss_icecrown_gunship_battle aura:spell_igb_overheat_aura

* boss_icecrown_gunship_battle spell:spell_igb_cannon_blast

* boss_icecrown_gunship_battle spell:spell_igb_incinerating_blast

* boss_icecrown_gunship_battle spell:spell_igb_burning_pitch_selector

* boss_icecrown_gunship_battle spell:spell_igb_burning_pitch

* boss_icecrown_gunship_battle spell:spell_igb_rocket_artillery

* boss_icecrown_gunship_battle spell:spell_igb_rocket_artillery_explosion

* boss_icecrown_gunship_battle spell:spell_igb_below_zero

* boss_icecrown_gunship_battle aura:spell_igb_on_gunship_deck_aura

* boss_blood_prince_council aura:spell_blood_council_shadow_prison_aura

* boss_blood_prince_council spell:spell_blood_council_shadow_prison_damage

* boss_blood_prince_council spell:spell_taldaram_glittering_sparks

* boss_blood_prince_council spell:spell_taldaram_summon_flame_ball

* boss_blood_prince_council spell:spell_taldaram_ball_of_inferno_flame

* boss_blood_prince_council pair:spell_valanar_kinetic_bomb

* boss_blood_prince_council aura:spell_valanar_kinetic_bomb_absorb_aura

* boss_blood_prince_council spell:spell_valanar_kinetic_bomb_knockback

* boss_blood_prince_council spell:spell_valanar_kinetic_bomb_summon

* boss_blood_prince_council spell:spell_blood_council_summon_shadow_resonance

* boss_rotface pair:spell_rotface_mutated_infection

* boss_rotface spell:spell_rotface_little_ooze_combine

* boss_rotface spell:spell_rotface_large_ooze_combine

* boss_rotface spell:spell_rotface_large_ooze_buff_combine

* boss_rotface spell:spell_rotface_unstable_ooze_explosion_init

* boss_rotface spell:spell_rotface_unstable_ooze_explosion

* boss_rotface aura:spell_rotface_unstable_ooze_explosion_suicide_aura

* icecrown_citadel.h spell:spell_trigger_spell_from_caster
This commit is contained in:
Jelle Meeus
2024-07-29 14:57:25 +02:00
committed by GitHub
parent 1c5ee47151
commit a3be4c25db
15 changed files with 3812 additions and 5186 deletions
@@ -0,0 +1,43 @@
--
UPDATE `spell_script_names` SET `ScriptName`='spell_blood_queen_pact_of_the_darkfallen_dmg_aura' WHERE `spell_id`=71340 AND `ScriptName`='spell_blood_queen_pact_of_the_darkfallen_dmg';
UPDATE `spell_script_names` SET `ScriptName`='spell_blood_queen_frenzied_bloodthirst_aura' WHERE `spell_id` IN (70877,71474) AND `ScriptName`='spell_blood_queen_frenzied_bloodthirst';
UPDATE `spell_script_names` SET `ScriptName`='spell_blood_queen_essence_of_the_blood_queen_aura' WHERE `spell_id`=70871 AND `ScriptName`='spell_blood_queen_essence_of_the_blood_queen';
UPDATE `spell_script_names` SET `ScriptName`='spell_icc_stoneform_aura' WHERE `spell_id`=70733 AND `ScriptName`='spell_icc_stoneform';
UPDATE `spell_script_names` SET `ScriptName`='spell_icc_web_wrap_aura' WHERE `spell_id`=70980 AND `ScriptName`='spell_icc_web_wrap';
UPDATE `spell_script_names` SET `ScriptName`='spell_icc_dark_reckoning_aura' WHERE `spell_id`=69483 AND `ScriptName`='spell_icc_dark_reckoning';
UPDATE `spell_script_names` SET `ScriptName`='spell_icc_yf_frozen_orb_aura' WHERE `spell_id`=71274 AND `ScriptName`='spell_icc_yf_frozen_orb';
UPDATE `spell_script_names` SET `ScriptName`='spell_icc_yh_volley_aura' WHERE `spell_id`=71252 AND `ScriptName`='spell_icc_yh_volley';
UPDATE `spell_script_names` SET `ScriptName`='spell_festergut_blighted_spores_aura' WHERE `spell_id` IN (69290,71222,73033,73034) AND `ScriptName`='spell_festergut_blighted_spores';
UPDATE `spell_script_names` SET `ScriptName`='spell_dreamwalker_nightmare_cloud_aura' WHERE `spell_id`=71970 AND `ScriptName`='spell_dreamwalker_nightmare_cloud';
UPDATE `spell_script_names` SET `ScriptName`='spell_dreamwalker_mana_void_aura' WHERE `spell_id`=71085 AND `ScriptName`='spell_dreamwalker_mana_void';
UPDATE `spell_script_names` SET `ScriptName`='spell_dreamwalker_decay_periodic_timer_aura' WHERE `spell_id` IN (70912,70913,70915,70916) AND `ScriptName`='spell_dreamwalker_decay_periodic_timer';
UPDATE `spell_script_names` SET `ScriptName`='spell_dreamwalker_summon_suppresser_aura' WHERE `spell_id`=70912 AND `ScriptName`='spell_dreamwalker_summon_suppresser';
UPDATE `spell_script_names` SET `ScriptName`='spell_valithria_suppression_aura' WHERE `spell_id`=70588 AND `ScriptName`='spell_valithria_suppression';
UPDATE `spell_script_names` SET `ScriptName`='spell_deathwhisper_mana_barrier_aura' WHERE `spell_id`=70842 AND `ScriptName`='spell_deathwhisper_mana_barrier';
UPDATE `spell_script_names` SET `ScriptName`='spell_putricide_grow_stacker_aura' WHERE `spell_id`=70345 AND `ScriptName`='spell_putricide_grow_stacker';
UPDATE `spell_script_names` SET `ScriptName`='spell_putricide_gaseous_bloat_aura' WHERE `spell_id` IN (70672,72455,72832,72833) AND `ScriptName`='spell_putricide_gaseous_bloat';
UPDATE `spell_script_names` SET `ScriptName`='spell_putricide_mutated_plague_aura' WHERE `spell_id` IN (72451,72463,72671,72672) AND `ScriptName`='spell_putricide_mutated_plague';
UPDATE `spell_script_names` SET `ScriptName`='spell_putricide_unbound_plague_dmg_aura' WHERE `spell_id` IN (70911,72854,72855,72856) AND `ScriptName`='spell_putricide_unbound_plague_dmg';
UPDATE `spell_script_names` SET `ScriptName`='spell_putricide_mutated_transformation_dismiss_aura' WHERE `spell_id` IN (70405,72508,72509,72510) AND `ScriptName`='spell_putricide_mutated_transformation_dismiss';
UPDATE `spell_script_names` SET `ScriptName`='spell_sindragosa_permeating_chill_aura' WHERE `spell_id`=70107 AND `ScriptName`='spell_sindragosa_permeating_chill';
UPDATE `spell_script_names` SET `ScriptName`='spell_sindragosa_instability_aura' WHERE `spell_id`=69766 AND `ScriptName`='spell_sindragosa_instability';
UPDATE `spell_script_names` SET `ScriptName`='spell_sindragosa_frost_beacon_aura' WHERE `spell_id`=70126 AND `ScriptName`='spell_sindragosa_frost_beacon';
UPDATE `spell_script_names` SET `ScriptName`='spell_sindragosa_soul_preservation_aura' WHERE `spell_id`=72465 AND `ScriptName`='spell_sindragosa_soul_preservation';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_infest_aura' WHERE `spell_id` IN (70541,73779,73780,73781) AND `ScriptName`='spell_the_lich_king_infest';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_necrotic_plague_aura' WHERE `spell_id` IN (70337,73912,73913,73914) AND `ScriptName`='spell_the_lich_king_necrotic_plague';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_shadow_trap_visual_aura' WHERE `spell_id`=73530 AND `ScriptName`='spell_the_lich_king_shadow_trap_visual';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_soul_reaper_aura' WHERE `spell_id` IN (69409,73797,73798,73799) AND `ScriptName`='spell_the_lich_king_soul_reaper';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_vile_spirits_aura' WHERE `spell_id`=70498 AND `ScriptName`='spell_the_lich_king_vile_spirits';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_harvest_soul_aura' WHERE `spell_id` IN (68980,74296,74297,74325) AND `ScriptName`='spell_the_lich_king_harvest_soul';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_lights_favor_aura' WHERE `spell_id`=69382 AND `ScriptName`='spell_the_lich_king_lights_favor';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_dark_hunger_aura' WHERE `spell_id`=69383 AND `ScriptName`='spell_the_lich_king_dark_hunger';
UPDATE `spell_script_names` SET `ScriptName`='spell_the_lich_king_soul_rip_aura' WHERE `spell_id`=69397 AND `ScriptName`='spell_the_lich_king_soul_rip';
UPDATE `spell_script_names` SET `ScriptName`='spell_igb_rocket_pack_aura' WHERE `spell_id`=68721 AND `ScriptName`='spell_igb_rocket_pack';
UPDATE `spell_script_names` SET `ScriptName`='spell_igb_rocket_pack_useable_aura' WHERE `spell_id`=70348 AND `ScriptName`='spell_igb_rocket_pack_useable';
UPDATE `spell_script_names` SET `ScriptName`='spell_igb_explosion_main_aura' WHERE `spell_id` IN (72134,72137) AND `ScriptName`='spell_igb_explosion_main';
UPDATE `spell_script_names` SET `ScriptName`='spell_igb_periodic_trigger_with_power_cost_aura' WHERE `spell_id` IN (69470,69487) AND `ScriptName`='spell_igb_periodic_trigger_with_power_cost';
UPDATE `spell_script_names` SET `ScriptName`='spell_igb_overheat_aura' WHERE `spell_id`=69487 AND `ScriptName`='spell_igb_overheat';
UPDATE `spell_script_names` SET `ScriptName`='spell_igb_on_gunship_deck_aura' WHERE `spell_id` IN (70120,70121) AND `ScriptName`='spell_igb_on_gunship_deck';
UPDATE `spell_script_names` SET `ScriptName`='spell_blood_council_shadow_prison_aura' WHERE `spell_id`=73001 AND `ScriptName`='spell_blood_council_shadow_prison';
UPDATE `spell_script_names` SET `ScriptName`='spell_valanar_kinetic_bomb_absorb_aura' WHERE `spell_id`=72054 AND `ScriptName`='spell_valanar_kinetic_bomb_absorb';
UPDATE `spell_script_names` SET `ScriptName`='spell_rotface_unstable_ooze_explosion_suicide_aura' WHERE `spell_id`=71441 AND `ScriptName`='spell_rotface_unstable_ooze_explosion_suicide';
@@ -1440,14 +1440,14 @@ public:
}
};
class spell_blood_council_shadow_prison : public SpellScriptLoader
class spell_blood_council_shadow_prison_aura : public AuraScript
{
public:
spell_blood_council_shadow_prison() : SpellScriptLoader("spell_blood_council_shadow_prison") { }
PrepareAuraScript(spell_blood_council_shadow_prison_aura);
class spell_blood_council_shadow_prison_AuraScript : public AuraScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareAuraScript(spell_blood_council_shadow_prison_AuraScript);
return ValidateSpellInfo({ SPELL_SHADOW_PRISON_DAMAGE });
}
void HandleDummyTick(AuraEffect const* aurEff)
{
@@ -1459,24 +1459,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_blood_council_shadow_prison_AuraScript::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_blood_council_shadow_prison_aura::HandleDummyTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
class spell_blood_council_shadow_prison_damage : public SpellScript
{
return new spell_blood_council_shadow_prison_AuraScript();
}
};
class spell_blood_council_shadow_prison_damage : public SpellScriptLoader
{
public:
spell_blood_council_shadow_prison_damage() : SpellScriptLoader("spell_blood_council_shadow_prison_damage") { }
class spell_blood_council_shadow_prison_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_council_shadow_prison_SpellScript);
PrepareSpellScript(spell_blood_council_shadow_prison_damage);
void AddExtraDamage()
{
@@ -1491,24 +1480,13 @@ public:
void Register() override
{
OnHit += SpellHitFn(spell_blood_council_shadow_prison_SpellScript::AddExtraDamage);
OnHit += SpellHitFn(spell_blood_council_shadow_prison_damage::AddExtraDamage);
}
};
SpellScript* GetSpellScript() const override
class spell_taldaram_glittering_sparks : public SpellScript
{
return new spell_blood_council_shadow_prison_SpellScript();
}
};
class spell_taldaram_glittering_sparks : public SpellScriptLoader
{
public:
spell_taldaram_glittering_sparks() : SpellScriptLoader("spell_taldaram_glittering_sparks") { }
class spell_taldaram_glittering_sparks_SpellScript : public SpellScript
{
PrepareSpellScript(spell_taldaram_glittering_sparks_SpellScript);
PrepareSpellScript(spell_taldaram_glittering_sparks);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1518,24 +1496,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_taldaram_glittering_sparks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_taldaram_glittering_sparks::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_taldaram_summon_flame_ball : public SpellScript
{
return new spell_taldaram_glittering_sparks_SpellScript();
}
};
class spell_taldaram_summon_flame_ball : public SpellScriptLoader
{
public:
spell_taldaram_summon_flame_ball() : SpellScriptLoader("spell_taldaram_summon_flame_ball") { }
class spell_taldaram_summon_flame_ball_SpellScript : public SpellScript
{
PrepareSpellScript(spell_taldaram_summon_flame_ball_SpellScript);
PrepareSpellScript(spell_taldaram_summon_flame_ball);
bool Load() override
{
@@ -1555,24 +1522,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_taldaram_summon_flame_ball_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_taldaram_summon_flame_ball::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_taldaram_ball_of_inferno_flame : public SpellScript
{
return new spell_taldaram_summon_flame_ball_SpellScript();
}
};
class spell_taldaram_ball_of_inferno_flame : public SpellScriptLoader
{
public:
spell_taldaram_ball_of_inferno_flame() : SpellScriptLoader("spell_taldaram_ball_of_inferno_flame") { }
class spell_taldaram_ball_of_inferno_flame_SpellScript : public SpellScript
{
PrepareSpellScript(spell_taldaram_ball_of_inferno_flame_SpellScript);
PrepareSpellScript(spell_taldaram_ball_of_inferno_flame);
void ModAuraStack()
{
@@ -1582,24 +1538,13 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_taldaram_ball_of_inferno_flame_SpellScript::ModAuraStack);
AfterHit += SpellHitFn(spell_taldaram_ball_of_inferno_flame::ModAuraStack);
}
};
SpellScript* GetSpellScript() const override
class spell_valanar_kinetic_bomb : public SpellScript
{
return new spell_taldaram_ball_of_inferno_flame_SpellScript();
}
};
class spell_valanar_kinetic_bomb : public SpellScriptLoader
{
public:
spell_valanar_kinetic_bomb() : SpellScriptLoader("spell_valanar_kinetic_bomb") { }
class spell_valanar_kinetic_bomb_SpellScript : public SpellScript
{
PrepareSpellScript(spell_valanar_kinetic_bomb_SpellScript);
PrepareSpellScript(spell_valanar_kinetic_bomb);
void ChangeSummonPos(SpellEffIndex /*effIndex*/)
{
@@ -1612,13 +1557,18 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_valanar_kinetic_bomb_SpellScript::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
OnEffectHit += SpellEffectFn(spell_valanar_kinetic_bomb::ChangeSummonPos, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
class spell_valanar_kinetic_bomb_AuraScript : public AuraScript
class spell_valanar_kinetic_bomb_aura : public AuraScript
{
PrepareAuraScript(spell_valanar_kinetic_bomb_AuraScript);
PrepareAuraScript(spell_valanar_kinetic_bomb_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_KINETIC_BOMB_EXPLOSION, SPELL_KINETIC_BOMB_VISUAL });
}
void HandleDummyTick(AuraEffect const* /*aurEff*/)
{
@@ -1637,29 +1587,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_valanar_kinetic_bomb_AuraScript::HandleDummyTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_valanar_kinetic_bomb_aura::HandleDummyTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_valanar_kinetic_bomb_absorb_aura : public AuraScript
{
return new spell_valanar_kinetic_bomb_SpellScript();
}
AuraScript* GetAuraScript() const override
{
return new spell_valanar_kinetic_bomb_AuraScript();
}
};
class spell_valanar_kinetic_bomb_absorb : public SpellScriptLoader
{
public:
spell_valanar_kinetic_bomb_absorb() : SpellScriptLoader("spell_valanar_kinetic_bomb_absorb") { }
class spell_valanar_kinetic_bomb_absorb_AuraScript : public AuraScript
{
PrepareAuraScript(spell_valanar_kinetic_bomb_absorb_AuraScript);
PrepareAuraScript(spell_valanar_kinetic_bomb_absorb_aura);
void OnAbsorb(AuraEffect* aurEff, DamageInfo& dmgInfo, uint32& absorbAmount)
{
@@ -1670,24 +1604,13 @@ public:
void Register() override
{
OnEffectAbsorb += AuraEffectAbsorbFn(spell_valanar_kinetic_bomb_absorb_AuraScript::OnAbsorb, EFFECT_0);
OnEffectAbsorb += AuraEffectAbsorbFn(spell_valanar_kinetic_bomb_absorb_aura::OnAbsorb, EFFECT_0);
}
};
AuraScript* GetAuraScript() const override
class spell_valanar_kinetic_bomb_knockback : public SpellScript
{
return new spell_valanar_kinetic_bomb_absorb_AuraScript();
}
};
class spell_valanar_kinetic_bomb_knockback : public SpellScriptLoader
{
public:
spell_valanar_kinetic_bomb_knockback() : SpellScriptLoader("spell_valanar_kinetic_bomb_knockback") { }
class spell_valanar_kinetic_bomb_knockback_SpellScript : public SpellScript
{
PrepareSpellScript(spell_valanar_kinetic_bomb_knockback_SpellScript);
PrepareSpellScript(spell_valanar_kinetic_bomb_knockback);
void KnockIntoAir(SpellMissInfo missInfo)
{
@@ -1702,24 +1625,13 @@ public:
void Register() override
{
BeforeHit += BeforeSpellHitFn(spell_valanar_kinetic_bomb_knockback_SpellScript::KnockIntoAir);
BeforeHit += BeforeSpellHitFn(spell_valanar_kinetic_bomb_knockback::KnockIntoAir);
}
};
SpellScript* GetSpellScript() const override
class spell_valanar_kinetic_bomb_summon : public SpellScript
{
return new spell_valanar_kinetic_bomb_knockback_SpellScript();
}
};
class spell_valanar_kinetic_bomb_summon : public SpellScriptLoader
{
public:
spell_valanar_kinetic_bomb_summon() : SpellScriptLoader("spell_valanar_kinetic_bomb_summon") { }
class spell_valanar_kinetic_bomb_summon_SpellScript : public SpellScript
{
PrepareSpellScript(spell_valanar_kinetic_bomb_summon_SpellScript);
PrepareSpellScript(spell_valanar_kinetic_bomb_summon);
void SelectDest()
{
@@ -1734,24 +1646,13 @@ public:
void Register() override
{
BeforeCast += SpellCastFn(spell_valanar_kinetic_bomb_summon_SpellScript::SelectDest);
BeforeCast += SpellCastFn(spell_valanar_kinetic_bomb_summon::SelectDest);
}
};
SpellScript* GetSpellScript() const override
class spell_blood_council_summon_shadow_resonance : public SpellScript
{
return new spell_valanar_kinetic_bomb_summon_SpellScript();
}
};
class spell_blood_council_summon_shadow_resonance : public SpellScriptLoader
{
public:
spell_blood_council_summon_shadow_resonance() : SpellScriptLoader("spell_blood_council_summon_shadow_resonance") { }
class spell_blood_council_summon_shadow_resonance_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_council_summon_shadow_resonance_SpellScript);
PrepareSpellScript(spell_blood_council_summon_shadow_resonance);
void SetDest(SpellDestination& dest)
{
@@ -1785,13 +1686,7 @@ public:
void Register() override
{
OnDestinationTargetSelect += SpellDestinationTargetSelectFn(spell_blood_council_summon_shadow_resonance_SpellScript::SetDest, EFFECT_0, TARGET_DEST_CASTER_RANDOM);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_blood_council_summon_shadow_resonance_SpellScript();
OnDestinationTargetSelect += SpellDestinationTargetSelectFn(spell_blood_council_summon_shadow_resonance::SetDest, EFFECT_0, TARGET_DEST_CASTER_RANDOM);
}
};
@@ -1804,15 +1699,15 @@ void AddSC_boss_blood_prince_council()
new npc_dark_nucleus();
new npc_ball_of_flame();
new npc_kinetic_bomb();
new spell_blood_council_shadow_prison();
new spell_blood_council_shadow_prison_damage();
new spell_taldaram_glittering_sparks();
new spell_taldaram_summon_flame_ball();
new spell_taldaram_ball_of_inferno_flame();
new spell_valanar_kinetic_bomb();
new spell_valanar_kinetic_bomb_absorb();
new spell_valanar_kinetic_bomb_knockback();
new spell_valanar_kinetic_bomb_summon();
new spell_blood_council_summon_shadow_resonance();
RegisterSpellScript(spell_blood_council_shadow_prison_aura);
RegisterSpellScript(spell_blood_council_shadow_prison_damage);
RegisterSpellScript(spell_taldaram_glittering_sparks);
RegisterSpellScript(spell_taldaram_summon_flame_ball);
RegisterSpellScript(spell_taldaram_ball_of_inferno_flame);
RegisterSpellAndAuraScriptPair(spell_valanar_kinetic_bomb, spell_valanar_kinetic_bomb_aura);
RegisterSpellScript(spell_valanar_kinetic_bomb_absorb_aura);
RegisterSpellScript(spell_valanar_kinetic_bomb_knockback);
RegisterSpellScript(spell_valanar_kinetic_bomb_summon);
RegisterSpellScript(spell_blood_council_summon_shadow_resonance);
}
@@ -587,14 +587,9 @@ public:
// shortened version for clear code
typedef boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI LanaThelAI;
class spell_blood_queen_pact_of_the_darkfallen_dmg : public SpellScriptLoader
class spell_blood_queen_pact_of_the_darkfallen_dmg_aura : public AuraScript
{
public:
spell_blood_queen_pact_of_the_darkfallen_dmg() : SpellScriptLoader("spell_blood_queen_pact_of_the_darkfallen_dmg") { }
class spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript : public AuraScript
{
PrepareAuraScript(spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript);
PrepareAuraScript(spell_blood_queen_pact_of_the_darkfallen_dmg_aura);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -616,24 +611,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript::PeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_blood_queen_pact_of_the_darkfallen_dmg_aura::PeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_blood_queen_pact_of_the_darkfallen : public SpellScript
{
return new spell_blood_queen_pact_of_the_darkfallen_dmg_AuraScript();
}
};
class spell_blood_queen_pact_of_the_darkfallen : public SpellScriptLoader
{
public:
spell_blood_queen_pact_of_the_darkfallen() : SpellScriptLoader("spell_blood_queen_pact_of_the_darkfallen") { }
class spell_blood_queen_pact_of_the_darkfallen_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_queen_pact_of_the_darkfallen_SpellScript);
PrepareSpellScript(spell_blood_queen_pact_of_the_darkfallen);
void FilterTargets(std::list<WorldObject*>& targets)
{
@@ -661,24 +645,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_pact_of_the_darkfallen_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_pact_of_the_darkfallen::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
SpellScript* GetSpellScript() const override
class spell_blood_queen_pact_of_the_darkfallen_dmg_target : public SpellScript
{
return new spell_blood_queen_pact_of_the_darkfallen_SpellScript();
}
};
class spell_blood_queen_pact_of_the_darkfallen_dmg_target : public SpellScriptLoader
{
public:
spell_blood_queen_pact_of_the_darkfallen_dmg_target() : SpellScriptLoader("spell_blood_queen_pact_of_the_darkfallen_dmg_target") { }
class spell_blood_queen_pact_of_the_darkfallen_dmg_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_queen_pact_of_the_darkfallen_dmg_SpellScript);
PrepareSpellScript(spell_blood_queen_pact_of_the_darkfallen_dmg_target);
void FilterTargets(std::list<WorldObject*>& unitList)
{
@@ -688,13 +661,7 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_pact_of_the_darkfallen_dmg_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_blood_queen_pact_of_the_darkfallen_dmg_SpellScript();
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_pact_of_the_darkfallen_dmg_target::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
@@ -712,14 +679,9 @@ private:
LanaThelAI* _ai;
};
class spell_blood_queen_bloodbolt : public SpellScriptLoader
class spell_blood_queen_bloodbolt : public SpellScript
{
public:
spell_blood_queen_bloodbolt() : SpellScriptLoader("spell_blood_queen_bloodbolt") { }
class spell_blood_queen_bloodbolt_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_queen_bloodbolt_SpellScript);
PrepareSpellScript(spell_blood_queen_bloodbolt);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -749,25 +711,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_bloodbolt_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_bloodbolt_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_bloodbolt::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_bloodbolt::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_blood_queen_frenzied_bloodthirst_aura : public AuraScript
{
return new spell_blood_queen_bloodbolt_SpellScript();
PrepareAuraScript(spell_blood_queen_frenzied_bloodthirst_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_UNCONTROLLABLE_FRENZY });
}
};
class spell_blood_queen_frenzied_bloodthirst : public SpellScriptLoader
{
public:
spell_blood_queen_frenzied_bloodthirst() : SpellScriptLoader("spell_blood_queen_frenzied_bloodthirst") { }
class spell_blood_queen_frenzied_bloodthirst_AuraScript : public AuraScript
{
PrepareAuraScript(spell_blood_queen_frenzied_bloodthirst_AuraScript);
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -795,25 +751,14 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_blood_queen_frenzied_bloodthirst_AuraScript::OnApply, EFFECT_0, SPELL_AURA_OVERRIDE_SPELLS, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_blood_queen_frenzied_bloodthirst_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_OVERRIDE_SPELLS, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_blood_queen_frenzied_bloodthirst_aura::OnApply, EFFECT_0, SPELL_AURA_OVERRIDE_SPELLS, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_blood_queen_frenzied_bloodthirst_aura::OnRemove, EFFECT_0, SPELL_AURA_OVERRIDE_SPELLS, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_blood_queen_essence_of_the_blood_queen_aura : public AuraScript
{
return new spell_blood_queen_frenzied_bloodthirst_AuraScript();
}
};
class spell_blood_queen_essence_of_the_blood_queen : public SpellScriptLoader
{
public:
spell_blood_queen_essence_of_the_blood_queen() : SpellScriptLoader("spell_blood_queen_essence_of_the_blood_queen") { }
class spell_blood_queen_essence_of_the_blood_queen_AuraScript : public AuraScript
{
PrepareAuraScript(spell_blood_queen_essence_of_the_blood_queen_AuraScript);
PrepareAuraScript(spell_blood_queen_essence_of_the_blood_queen_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -837,24 +782,13 @@ public:
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_blood_queen_essence_of_the_blood_queen_AuraScript::OnProc, EFFECT_1, SPELL_AURA_DUMMY);
OnEffectProc += AuraEffectProcFn(spell_blood_queen_essence_of_the_blood_queen_aura::OnProc, EFFECT_1, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
class spell_blood_queen_vampiric_bite : public SpellScript
{
return new spell_blood_queen_essence_of_the_blood_queen_AuraScript();
}
};
class spell_blood_queen_vampiric_bite : public SpellScriptLoader
{
public:
spell_blood_queen_vampiric_bite() : SpellScriptLoader("spell_blood_queen_vampiric_bite") { }
class spell_blood_queen_vampiric_bite_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_queen_vampiric_bite_SpellScript);
PrepareSpellScript(spell_blood_queen_vampiric_bite);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -923,26 +857,15 @@ public:
void Register() override
{
OnCheckCast += SpellCheckCastFn(spell_blood_queen_vampiric_bite_SpellScript::CheckTarget);
BeforeHit += BeforeSpellHitFn(spell_blood_queen_vampiric_bite_SpellScript::OnCast);
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_vampiric_bite_SpellScript::HandlePresence, EFFECT_1, SPELL_EFFECT_TRIGGER_SPELL);
OnCheckCast += SpellCheckCastFn(spell_blood_queen_vampiric_bite::CheckTarget);
BeforeHit += BeforeSpellHitFn(spell_blood_queen_vampiric_bite::OnCast);
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_vampiric_bite::HandlePresence, EFFECT_1, SPELL_EFFECT_TRIGGER_SPELL);
}
};
SpellScript* GetSpellScript() const override
class spell_blood_queen_swarming_shadows_floor_dmg : public SpellScript
{
return new spell_blood_queen_vampiric_bite_SpellScript();
}
};
class spell_blood_queen_swarming_shadows_floor_dmg : public SpellScriptLoader
{
public:
spell_blood_queen_swarming_shadows_floor_dmg() : SpellScriptLoader("spell_blood_queen_swarming_shadows_floor_dmg") { }
class spell_blood_queen_swarming_shadows_floor_dmg_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_queen_swarming_shadows_floor_dmg_SpellScript);
PrepareSpellScript(spell_blood_queen_swarming_shadows_floor_dmg);
void FilterTargets(std::list<WorldObject*>& targets)
{
@@ -951,24 +874,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_swarming_shadows_floor_dmg_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_blood_queen_swarming_shadows_floor_dmg::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_blood_queen_presence_of_the_darkfallen : public SpellScript
{
return new spell_blood_queen_swarming_shadows_floor_dmg_SpellScript();
}
};
class spell_blood_queen_presence_of_the_darkfallen : public SpellScriptLoader
{
public:
spell_blood_queen_presence_of_the_darkfallen() : SpellScriptLoader("spell_blood_queen_presence_of_the_darkfallen") { }
class spell_blood_queen_presence_of_the_darkfallen_SpellScript : public SpellScript
{
PrepareSpellScript(spell_blood_queen_presence_of_the_darkfallen_SpellScript);
PrepareSpellScript(spell_blood_queen_presence_of_the_darkfallen);
void HandleScript(SpellEffIndex effIndex)
{
@@ -982,13 +894,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_presence_of_the_darkfallen_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_blood_queen_presence_of_the_darkfallen_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_blood_queen_presence_of_the_darkfallen::HandleScript, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
@@ -1014,15 +920,15 @@ public:
void AddSC_boss_blood_queen_lana_thel()
{
new boss_blood_queen_lana_thel();
new spell_blood_queen_pact_of_the_darkfallen_dmg();
new spell_blood_queen_pact_of_the_darkfallen();
new spell_blood_queen_pact_of_the_darkfallen_dmg_target();
new spell_blood_queen_bloodbolt();
new spell_blood_queen_frenzied_bloodthirst();
new spell_blood_queen_essence_of_the_blood_queen();
new spell_blood_queen_vampiric_bite();
new spell_blood_queen_swarming_shadows_floor_dmg();
new spell_blood_queen_presence_of_the_darkfallen();
RegisterSpellScript(spell_blood_queen_pact_of_the_darkfallen_dmg_aura);
RegisterSpellScript(spell_blood_queen_pact_of_the_darkfallen);
RegisterSpellScript(spell_blood_queen_pact_of_the_darkfallen_dmg_target);
RegisterSpellScript(spell_blood_queen_bloodbolt);
RegisterSpellScript(spell_blood_queen_frenzied_bloodthirst_aura);
RegisterSpellScript(spell_blood_queen_essence_of_the_blood_queen_aura);
RegisterSpellScript(spell_blood_queen_vampiric_bite);
RegisterSpellScript(spell_blood_queen_swarming_shadows_floor_dmg);
RegisterSpellScript(spell_blood_queen_presence_of_the_darkfallen);
new achievement_once_bitten_twice_shy("achievement_once_bitten_twice_shy_n_10", 0, false);
new achievement_once_bitten_twice_shy("achievement_once_bitten_twice_shy_v_10", 0, true);
new achievement_once_bitten_twice_shy("achievement_once_bitten_twice_shy_n_25", 1, false);
@@ -1042,14 +1042,14 @@ public:
}
};
class spell_deathbringer_blood_link_aura : public SpellScriptLoader
class spell_deathbringer_blood_link_aura : public AuraScript
{
public:
spell_deathbringer_blood_link_aura() : SpellScriptLoader("spell_deathbringer_blood_link_aura") { }
PrepareAuraScript(spell_deathbringer_blood_link_aura);
class spell_deathbringer_blood_link_AuraScript : public AuraScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareAuraScript(spell_deathbringer_blood_link_AuraScript);
return ValidateSpellInfo({ SPELL_BLOOD_LINK_DUMMY });
}
void HandlePeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -1092,26 +1092,20 @@ public:
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_deathbringer_blood_link_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_deathbringer_blood_link_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_deathbringer_blood_link_AuraScript::HandlePeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
DoCheckProc += AuraCheckProcFn(spell_deathbringer_blood_link_aura::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_deathbringer_blood_link_aura::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_deathbringer_blood_link_aura::HandlePeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
class spell_deathbringer_blood_link_blood_beast_aura : public AuraScript
{
return new spell_deathbringer_blood_link_AuraScript();
PrepareAuraScript(spell_deathbringer_blood_link_blood_beast_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BLOOD_LINK_DUMMY });
}
};
class spell_deathbringer_blood_link_blood_beast_aura : public SpellScriptLoader
{
public:
spell_deathbringer_blood_link_blood_beast_aura() : SpellScriptLoader("spell_deathbringer_blood_link_blood_beast_aura") { }
class spell_deathbringer_blood_link_blood_beast_aura_AuraScript : public AuraScript
{
PrepareAuraScript(spell_deathbringer_blood_link_blood_beast_aura_AuraScript);
bool CheckProc(ProcEventInfo& eventInfo)
{
@@ -1141,25 +1135,19 @@ public:
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_deathbringer_blood_link_blood_beast_aura_AuraScript::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_deathbringer_blood_link_blood_beast_aura_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
DoCheckProc += AuraCheckProcFn(spell_deathbringer_blood_link_blood_beast_aura::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_deathbringer_blood_link_blood_beast_aura::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_deathbringer_blood_link : public SpellScript
{
return new spell_deathbringer_blood_link_blood_beast_aura_AuraScript();
PrepareSpellScript(spell_deathbringer_blood_link);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BLOOD_LINK_POWER });
}
};
class spell_deathbringer_blood_link : public SpellScriptLoader
{
public:
spell_deathbringer_blood_link() : SpellScriptLoader("spell_deathbringer_blood_link") { }
class spell_deathbringer_blood_link_SpellScript : public SpellScript
{
PrepareSpellScript(spell_deathbringer_blood_link_SpellScript);
void HandleDummy(SpellEffIndex /*effIndex*/)
{
@@ -1171,24 +1159,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_deathbringer_blood_link_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_deathbringer_blood_link::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_deathbringer_blood_power : public SpellScript
{
return new spell_deathbringer_blood_link_SpellScript();
}
};
class spell_deathbringer_blood_power : public SpellScriptLoader
{
public:
spell_deathbringer_blood_power() : SpellScriptLoader("spell_deathbringer_blood_power") { }
class spell_deathbringer_blood_power_SpellScript : public SpellScript
{
PrepareSpellScript(spell_deathbringer_blood_power_SpellScript);
PrepareSpellScript(spell_deathbringer_blood_power);
void ModAuraValue()
{
@@ -1198,13 +1175,13 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_deathbringer_blood_power_SpellScript::ModAuraValue);
AfterHit += SpellHitFn(spell_deathbringer_blood_power::ModAuraValue);
}
};
class spell_deathbringer_blood_power_AuraScript : public AuraScript
class spell_deathbringer_blood_power_aura : public AuraScript
{
PrepareAuraScript(spell_deathbringer_blood_power_AuraScript);
PrepareAuraScript(spell_deathbringer_blood_power_aura);
void RecalculateHook(AuraEffect const* /*aurEffect*/, int32& amount, bool& canBeRecalculated)
{
@@ -1214,42 +1191,19 @@ public:
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_deathbringer_blood_power_AuraScript::RecalculateHook, EFFECT_0, SPELL_AURA_MOD_SCALE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_deathbringer_blood_power_AuraScript::RecalculateHook, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
bool Load() override
{
if (GetUnitOwner()->getPowerType() != POWER_ENERGY)
return false;
return true;
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_deathbringer_blood_power_aura::RecalculateHook, EFFECT_0, SPELL_AURA_MOD_SCALE);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_deathbringer_blood_power_aura::RecalculateHook, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
};
SpellScript* GetSpellScript() const override
class spell_deathbringer_blood_nova_targeting : public SpellScript
{
return new spell_deathbringer_blood_power_SpellScript();
}
AuraScript* GetAuraScript() const override
{
return new spell_deathbringer_blood_power_AuraScript();
}
};
class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
{
public:
spell_deathbringer_blood_nova_targeting() : SpellScriptLoader("spell_deathbringer_blood_nova_targeting") { }
class spell_deathbringer_blood_nova_targeting_SpellScript : public SpellScript
{
PrepareSpellScript(spell_deathbringer_blood_nova_targeting_SpellScript);
PrepareSpellScript(spell_deathbringer_blood_nova_targeting);
bool Load() override
{
// initialize variable
target = nullptr;
_target = nullptr;
return true;
}
@@ -1274,44 +1228,34 @@ public:
std::list<WorldObject*>::iterator itrTarget = targets.begin();
std::advance(itrTarget, urand(0, targetsAtRange - 1));
target = *itrTarget;
_target = *itrTarget;
targets.clear();
targets.push_back(target);
targets.push_back(_target);
}
// use the same target for first and second effect
void FilterTargetsSubsequent(std::list<WorldObject*>& targets)
{
if (!target)
if (!_target)
return;
targets.clear();
targets.push_back(target);
targets.push_back(_target);
}
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_blood_nova_targeting_SpellScript::FilterTargetsSubsequent, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_blood_nova_targeting::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_blood_nova_targeting::FilterTargetsSubsequent, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
}
WorldObject* target;
private:
WorldObject* _target;
};
SpellScript* GetSpellScript() const override
class spell_deathbringer_boiling_blood : public SpellScript
{
return new spell_deathbringer_blood_nova_targeting_SpellScript();
}
};
class spell_deathbringer_boiling_blood : public SpellScriptLoader
{
public:
spell_deathbringer_boiling_blood() : SpellScriptLoader("spell_deathbringer_boiling_blood") { }
class spell_deathbringer_boiling_blood_SpellScript : public SpellScript
{
PrepareSpellScript(spell_deathbringer_boiling_blood_SpellScript);
PrepareSpellScript(spell_deathbringer_boiling_blood);
bool Load() override
{
@@ -1336,13 +1280,7 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_boiling_blood_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_deathbringer_boiling_blood_SpellScript();
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_deathbringer_boiling_blood::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
@@ -1412,12 +1350,12 @@ void AddSC_boss_deathbringer_saurfang()
new npc_high_overlord_saurfang_icc();
new npc_muradin_bronzebeard_icc();
new npc_saurfang_event();
new spell_deathbringer_blood_link_aura();
new spell_deathbringer_blood_link_blood_beast_aura();
new spell_deathbringer_blood_link();
new spell_deathbringer_blood_power();
new spell_deathbringer_blood_nova_targeting();
new spell_deathbringer_boiling_blood();
RegisterSpellScript(spell_deathbringer_blood_link_aura);
RegisterSpellScript(spell_deathbringer_blood_link_blood_beast_aura);
RegisterSpellScript(spell_deathbringer_blood_link);
RegisterSpellAndAuraScriptPair(spell_deathbringer_blood_power, spell_deathbringer_blood_power_aura);
RegisterSpellScript(spell_deathbringer_blood_nova_targeting);
RegisterSpellScript(spell_deathbringer_boiling_blood);
new achievement_ive_gone_and_made_a_mess();
new npc_icc_blood_beast();
}
@@ -284,14 +284,9 @@ public:
}
};
class spell_festergut_pungent_blight : public SpellScriptLoader
class spell_festergut_pungent_blight : public SpellScript
{
public:
spell_festergut_pungent_blight() : SpellScriptLoader("spell_festergut_pungent_blight") { }
class spell_festergut_pungent_blight_SpellScript : public SpellScript
{
PrepareSpellScript(spell_festergut_pungent_blight_SpellScript);
PrepareSpellScript(spell_festergut_pungent_blight);
bool Load() override
{
@@ -318,24 +313,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_festergut_pungent_blight_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_festergut_pungent_blight::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_festergut_blighted_spores_aura : public AuraScript
{
return new spell_festergut_pungent_blight_SpellScript();
}
};
class spell_festergut_blighted_spores : public SpellScriptLoader
{
public:
spell_festergut_blighted_spores() : SpellScriptLoader("spell_festergut_blighted_spores") { }
class spell_festergut_blighted_spores_AuraScript : public AuraScript
{
PrepareAuraScript(spell_festergut_blighted_spores_AuraScript);
PrepareAuraScript(spell_festergut_blighted_spores_aura);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -363,24 +347,13 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_festergut_blighted_spores_AuraScript::ExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_festergut_blighted_spores_aura::ExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_festergut_gastric_bloat : public SpellScript
{
return new spell_festergut_blighted_spores_AuraScript();
}
};
class spell_festergut_gastric_bloat : public SpellScriptLoader
{
public:
spell_festergut_gastric_bloat() : SpellScriptLoader("spell_festergut_gastric_bloat") { }
class spell_festergut_gastric_bloat_SpellScript : public SpellScript
{
PrepareSpellScript(spell_festergut_gastric_bloat_SpellScript);
PrepareSpellScript(spell_festergut_gastric_bloat);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -399,13 +372,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_festergut_gastric_bloat_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_festergut_gastric_bloat_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_festergut_gastric_bloat::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
@@ -496,9 +463,9 @@ public:
void AddSC_boss_festergut()
{
new boss_festergut();
new spell_festergut_pungent_blight();
new spell_festergut_blighted_spores();
new spell_festergut_gastric_bloat();
RegisterSpellScript(spell_festergut_pungent_blight);
RegisterSpellScript(spell_festergut_blighted_spores_aura);
RegisterSpellScript(spell_festergut_gastric_bloat);
new achievement_flu_shot_shortage();
new npc_stinky_icc();
@@ -1974,14 +1974,9 @@ public:
}
};
class spell_igb_rocket_pack : public SpellScriptLoader
class spell_igb_rocket_pack_aura : public AuraScript
{
public:
spell_igb_rocket_pack() : SpellScriptLoader("spell_igb_rocket_pack") { }
class spell_igb_rocket_pack_AuraScript : public AuraScript
{
PrepareAuraScript(spell_igb_rocket_pack_AuraScript);
PrepareAuraScript(spell_igb_rocket_pack_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -2007,25 +2002,14 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_igb_rocket_pack_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectRemove += AuraEffectRemoveFn(spell_igb_rocket_pack_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_igb_rocket_pack_aura::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectRemove += AuraEffectRemoveFn(spell_igb_rocket_pack_aura::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_igb_rocket_pack_useable_aura : public AuraScript
{
return new spell_igb_rocket_pack_AuraScript();
}
};
class spell_igb_rocket_pack_useable : public SpellScriptLoader
{
public:
spell_igb_rocket_pack_useable() : SpellScriptLoader("spell_igb_rocket_pack_useable") { }
class spell_igb_rocket_pack_useable_AuraScript : public AuraScript
{
PrepareAuraScript(spell_igb_rocket_pack_useable_AuraScript);
PrepareAuraScript(spell_igb_rocket_pack_useable_aura);
bool Load() override
{
@@ -2055,26 +2039,15 @@ public:
void Register() override
{
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_igb_rocket_pack_useable_AuraScript::CheckAreaTarget);
AfterEffectApply += AuraEffectApplyFn(spell_igb_rocket_pack_useable_AuraScript::HandleApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_igb_rocket_pack_useable_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_igb_rocket_pack_useable_aura::CheckAreaTarget);
AfterEffectApply += AuraEffectApplyFn(spell_igb_rocket_pack_useable_aura::HandleApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_igb_rocket_pack_useable_aura::HandleRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_igb_teleport_to_enemy_ship : public SpellScript
{
return new spell_igb_rocket_pack_useable_AuraScript();
}
};
class spell_igb_teleport_to_enemy_ship : public SpellScriptLoader
{
public:
spell_igb_teleport_to_enemy_ship() : SpellScriptLoader("spell_igb_teleport_to_enemy_ship") { }
class spell_igb_teleport_to_enemy_ship_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_teleport_to_enemy_ship_SpellScript);
PrepareSpellScript(spell_igb_teleport_to_enemy_ship);
void RelocateTransportOffset(SpellEffIndex /*effIndex*/)
{
@@ -2091,24 +2064,18 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_igb_teleport_to_enemy_ship_SpellScript::RelocateTransportOffset, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS);
OnEffectHitTarget += SpellEffectFn(spell_igb_teleport_to_enemy_ship::RelocateTransportOffset, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_check_for_players : public SpellScript
{
return new spell_igb_teleport_to_enemy_ship_SpellScript();
PrepareSpellScript(spell_igb_check_for_players);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GUNSHIP_FALL_TELEPORT });
}
};
class spell_igb_check_for_players : public SpellScriptLoader
{
public:
spell_igb_check_for_players() : SpellScriptLoader("spell_igb_check_for_players") { }
class spell_igb_check_for_players_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_check_for_players_SpellScript);
bool Load() override
{
@@ -2135,28 +2102,18 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_check_for_players_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
AfterCast += SpellCastFn(spell_igb_check_for_players_SpellScript::TriggerWipe);
OnEffectHitTarget += SpellEffectFn(spell_igb_check_for_players_SpellScript::TeleportPlayer, EFFECT_0, SPELL_EFFECT_DUMMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_check_for_players::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
AfterCast += SpellCastFn(spell_igb_check_for_players::TriggerWipe);
OnEffectHitTarget += SpellEffectFn(spell_igb_check_for_players::TeleportPlayer, EFFECT_0, SPELL_EFFECT_DUMMY);
}
private:
uint32 _playerCount;
};
SpellScript* GetSpellScript() const override
class spell_igb_gunship_fall_teleport : public SpellScript
{
return new spell_igb_check_for_players_SpellScript();
}
};
class spell_igb_gunship_fall_teleport : public SpellScriptLoader
{
public:
spell_igb_gunship_fall_teleport() : SpellScriptLoader("spell_igb_gunship_fall_teleport") { }
class spell_igb_gunship_fall_teleport_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_gunship_fall_teleport_SpellScript);
PrepareSpellScript(spell_igb_gunship_fall_teleport);
bool Load() override
{
@@ -2178,50 +2135,34 @@ public:
void Register() override
{
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_igb_gunship_fall_teleport_SpellScript::SelectTransport, EFFECT_0, TARGET_DEST_NEARBY_ENTRY);
OnEffectLaunch += SpellEffectFn(spell_igb_gunship_fall_teleport_SpellScript::RelocateDest, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS);
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_igb_gunship_fall_teleport::SelectTransport, EFFECT_0, TARGET_DEST_NEARBY_ENTRY);
OnEffectLaunch += SpellEffectFn(spell_igb_gunship_fall_teleport::RelocateDest, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_explosion_main_aura : public AuraScript
{
return new spell_igb_gunship_fall_teleport_SpellScript();
}
};
class spell_igb_explosion_main : public SpellScriptLoader
{
public:
spell_igb_explosion_main() : SpellScriptLoader("spell_igb_explosion_main") { }
class spell_igb_explosion_main_AuraScript : public AuraScript
{
PrepareAuraScript(spell_igb_explosion_main_AuraScript);
PrepareAuraScript(spell_igb_explosion_main_aura);
bool Load() override
{
tickNo = urand(0, 3);
_tickNo = urand(0, 3);
return true;
}
void PeriodicTick(AuraEffect const* aurEff)
{
if ((aurEff->GetTickNumber() % 4) != tickNo)
if ((aurEff->GetTickNumber() % 4) != _tickNo)
PreventDefaultAction();
}
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_igb_explosion_main_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_igb_explosion_main_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
uint32 tickNo;
};
AuraScript* GetAuraScript() const override
{
return new spell_igb_explosion_main_AuraScript();
}
private:
uint32 _tickNo;
};
class IgbExplosionCheck
@@ -2238,14 +2179,9 @@ private:
Unit* _source;
};
class spell_igb_explosion : public SpellScriptLoader
class spell_igb_explosion : public SpellScript
{
public:
spell_igb_explosion() : SpellScriptLoader("spell_igb_explosion") { }
class spell_igb_explosion_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_explosion_SpellScript);
PrepareSpellScript(spell_igb_explosion);
void SelectTarget(std::list<WorldObject*>& targets)
{
@@ -2255,13 +2191,7 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_explosion_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_igb_explosion_SpellScript();
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_explosion::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
}
};
@@ -2279,14 +2209,9 @@ private:
InstanceScript* _inst;
};
class spell_igb_teleport_players_on_victory : public SpellScriptLoader
class spell_igb_teleport_players_on_victory : public SpellScript
{
public:
spell_igb_teleport_players_on_victory() : SpellScriptLoader("spell_igb_teleport_players_on_victory") { }
class spell_igb_teleport_players_on_victory_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_teleport_players_on_victory_SpellScript);
PrepareSpellScript(spell_igb_teleport_players_on_victory);
bool Load() override
{
@@ -2301,24 +2226,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_teleport_players_on_victory_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_teleport_players_on_victory::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_periodic_trigger_with_power_cost_aura : public AuraScript
{
return new spell_igb_teleport_players_on_victory_SpellScript();
}
};
class spell_igb_periodic_trigger_with_power_cost : public SpellScriptLoader
{
public:
spell_igb_periodic_trigger_with_power_cost() : SpellScriptLoader("spell_igb_periodic_trigger_with_power_cost") { }
class spell_igb_periodic_trigger_with_power_cost_AuraScript : public AuraScript
{
PrepareAuraScript(spell_igb_periodic_trigger_with_power_cost_AuraScript);
PrepareAuraScript(spell_igb_periodic_trigger_with_power_cost_aura);
void HandlePeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -2328,24 +2242,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_igb_periodic_trigger_with_power_cost_AuraScript::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_igb_periodic_trigger_with_power_cost_aura::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_igb_overheat_aura : public AuraScript
{
return new spell_igb_periodic_trigger_with_power_cost_AuraScript();
}
};
class spell_igb_overheat : public SpellScriptLoader
{
public:
spell_igb_overheat() : SpellScriptLoader("spell_igb_overheat") { }
class spell_igb_overheat_AuraScript : public AuraScript
{
PrepareAuraScript(spell_igb_overheat_AuraScript);
PrepareAuraScript(spell_igb_overheat_aura);
bool Load() override
{
@@ -2383,25 +2286,19 @@ public:
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_igb_overheat_AuraScript::HandleApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_igb_overheat_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
AfterEffectApply += AuraEffectApplyFn(spell_igb_overheat_aura::HandleApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_igb_overheat_aura::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_igb_cannon_blast : public SpellScript
{
return new spell_igb_overheat_AuraScript();
PrepareSpellScript(spell_igb_cannon_blast);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_OVERHEAT });
}
};
class spell_igb_cannon_blast : public SpellScriptLoader
{
public:
spell_igb_cannon_blast() : SpellScriptLoader("spell_igb_cannon_blast") { }
class spell_igb_cannon_blast_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_cannon_blast_SpellScript);
bool Load() override
{
@@ -2444,26 +2341,15 @@ public:
void Register() override
{
OnCast += SpellCastFn(spell_igb_cannon_blast_SpellScript::CalculatePower);
OnEffectHitTarget += SpellEffectFn(spell_igb_cannon_blast_SpellScript::PreventPowerGainOnHit, EFFECT_1, SPELL_EFFECT_ENERGIZE);
OnCast += SpellCastFn(spell_igb_cannon_blast::CalculatePower);
OnEffectHitTarget += SpellEffectFn(spell_igb_cannon_blast::PreventPowerGainOnHit, EFFECT_1, SPELL_EFFECT_ENERGIZE);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_incinerating_blast : public SpellScript
{
return new spell_igb_cannon_blast_SpellScript();
}
};
class spell_igb_incinerating_blast : public SpellScriptLoader
{
public:
spell_igb_incinerating_blast() : SpellScriptLoader("spell_igb_incinerating_blast") { }
class spell_igb_incinerating_blast_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_incinerating_blast_SpellScript);
PrepareSpellScript(spell_igb_incinerating_blast);
void StoreEnergy()
{
@@ -2495,20 +2381,15 @@ public:
void Register() override
{
OnCast += SpellCastFn(spell_igb_incinerating_blast_SpellScript::StoreEnergy);
AfterCast += SpellCastFn(spell_igb_incinerating_blast_SpellScript::RemoveEnergy);
OnEffectHit += SpellEffectFn(spell_igb_incinerating_blast_SpellScript::CalculateDamage, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
OnCast += SpellCastFn(spell_igb_incinerating_blast::StoreEnergy);
AfterCast += SpellCastFn(spell_igb_incinerating_blast::RemoveEnergy);
OnEffectHit += SpellEffectFn(spell_igb_incinerating_blast::CalculateDamage, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
}
private:
uint32 _energyLeft;
};
SpellScript* GetSpellScript() const override
{
return new spell_igb_incinerating_blast_SpellScript();
}
};
class BurningPitchFilterCheck
{
public:
@@ -2525,14 +2406,9 @@ private:
uint32 _entry;
};
class spell_igb_burning_pitch_selector : public SpellScriptLoader
class spell_igb_burning_pitch_selector : public SpellScript
{
public:
spell_igb_burning_pitch_selector() : SpellScriptLoader("spell_igb_burning_pitch_selector") { }
class spell_igb_burning_pitch_selector_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_burning_pitch_selector_SpellScript);
PrepareSpellScript(spell_igb_burning_pitch_selector);
void FilterTargets(std::list<WorldObject*>& targets)
{
@@ -2557,25 +2433,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_burning_pitch_selector_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_igb_burning_pitch_selector_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_burning_pitch_selector::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_igb_burning_pitch_selector::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_burning_pitch : public SpellScript
{
return new spell_igb_burning_pitch_selector_SpellScript();
PrepareSpellScript(spell_igb_burning_pitch);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 8000, SPELL_BURNING_PITCH });
}
};
class spell_igb_burning_pitch : public SpellScriptLoader
{
public:
spell_igb_burning_pitch() : SpellScriptLoader("spell_igb_burning_pitch") { }
class spell_igb_burning_pitch_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_burning_pitch_SpellScript);
void HandleDummy(SpellEffIndex effIndex)
{
@@ -2586,13 +2456,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_igb_burning_pitch_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_igb_burning_pitch_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_igb_burning_pitch::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
@@ -2611,14 +2475,9 @@ private:
uint32 _entry;
};
class spell_igb_rocket_artillery : public SpellScriptLoader
class spell_igb_rocket_artillery : public SpellScript
{
public:
spell_igb_rocket_artillery() : SpellScriptLoader("spell_igb_rocket_artillery") { }
class spell_igb_rocket_artillery_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_rocket_artillery_SpellScript);
PrepareSpellScript(spell_igb_rocket_artillery);
void SelectRandomTarget(std::list<WorldObject*>& targets)
{
@@ -2645,25 +2504,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_rocket_artillery_SpellScript::SelectRandomTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_igb_rocket_artillery_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_igb_rocket_artillery::SelectRandomTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_igb_rocket_artillery::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_rocket_artillery_explosion : public SpellScript
{
return new spell_igb_rocket_artillery_SpellScript();
PrepareSpellScript(spell_igb_rocket_artillery_explosion);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BURNING_PITCH_DAMAGE_A, SPELL_BURNING_PITCH_DAMAGE_H, 5000 });
}
};
class spell_igb_rocket_artillery_explosion : public SpellScriptLoader
{
public:
spell_igb_rocket_artillery_explosion() : SpellScriptLoader("spell_igb_rocket_artillery_explosion") { }
class spell_igb_rocket_artillery_explosion_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_rocket_artillery_explosion_SpellScript);
void DamageGunship(SpellEffIndex /*effIndex*/)
{
@@ -2673,24 +2526,18 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_igb_rocket_artillery_explosion_SpellScript::DamageGunship, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
OnEffectHit += SpellEffectFn(spell_igb_rocket_artillery_explosion::DamageGunship, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_below_zero : public SpellScript
{
return new spell_igb_rocket_artillery_explosion_SpellScript();
PrepareSpellScript(spell_igb_below_zero);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_EJECT_ALL_PASSENGERS });
}
};
class spell_igb_below_zero : public SpellScriptLoader
{
public:
spell_igb_below_zero() : SpellScriptLoader("spell_igb_below_zero") { }
class spell_igb_below_zero_SpellScript : public SpellScript
{
PrepareSpellScript(spell_igb_below_zero_SpellScript);
void RemovePassengers(SpellMissInfo missInfo)
{
@@ -2705,24 +2552,13 @@ public:
void Register() override
{
BeforeHit += BeforeSpellHitFn(spell_igb_below_zero_SpellScript::RemovePassengers);
BeforeHit += BeforeSpellHitFn(spell_igb_below_zero::RemovePassengers);
}
};
SpellScript* GetSpellScript() const override
class spell_igb_on_gunship_deck_aura : public AuraScript
{
return new spell_igb_below_zero_SpellScript();
}
};
class spell_igb_on_gunship_deck : public SpellScriptLoader
{
public:
spell_igb_on_gunship_deck() : SpellScriptLoader("spell_igb_on_gunship_deck") { }
class spell_igb_on_gunship_deck_AuraScript : public AuraScript
{
PrepareAuraScript(spell_igb_on_gunship_deck_AuraScript);
PrepareAuraScript(spell_igb_on_gunship_deck_aura);
bool Load() override
{
@@ -2747,19 +2583,14 @@ public:
void Register() override
{
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_igb_on_gunship_deck_AuraScript::CheckAreaTarget);
AfterEffectApply += AuraEffectApplyFn(spell_igb_on_gunship_deck_AuraScript::HandleApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
DoCheckAreaTarget += AuraCheckAreaTargetFn(spell_igb_on_gunship_deck_aura::CheckAreaTarget);
AfterEffectApply += AuraEffectApplyFn(spell_igb_on_gunship_deck_aura::HandleApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
private:
TeamId _teamIdInInstance;
};
AuraScript* GetAuraScript() const override
{
return new spell_igb_on_gunship_deck_AuraScript();
}
};
class achievement_im_on_a_boat : public AchievementCriteriaScript
{
public:
@@ -2799,24 +2630,24 @@ void AddSC_boss_icecrown_gunship_battle()
new npc_gunship_mage();
new npc_gunship_gunner();
new npc_gunship_rocketeer();
new spell_igb_rocket_pack();
new spell_igb_rocket_pack_useable();
new spell_igb_teleport_to_enemy_ship();
new spell_igb_check_for_players();
new spell_igb_gunship_fall_teleport();
new spell_igb_explosion_main();
new spell_igb_explosion();
new spell_igb_teleport_players_on_victory();
new spell_igb_periodic_trigger_with_power_cost();
new spell_igb_overheat();
new spell_igb_cannon_blast();
new spell_igb_incinerating_blast();
new spell_igb_burning_pitch_selector();
new spell_igb_burning_pitch();
new spell_igb_rocket_artillery();
new spell_igb_rocket_artillery_explosion();
new spell_igb_below_zero();
new spell_igb_on_gunship_deck();
RegisterSpellScript(spell_igb_rocket_pack_aura);
RegisterSpellScript(spell_igb_rocket_pack_useable_aura);
RegisterSpellScript(spell_igb_teleport_to_enemy_ship);
RegisterSpellScript(spell_igb_check_for_players);
RegisterSpellScript(spell_igb_gunship_fall_teleport);
RegisterSpellScript(spell_igb_explosion_main_aura);
RegisterSpellScript(spell_igb_explosion);
RegisterSpellScript(spell_igb_teleport_players_on_victory);
RegisterSpellScript(spell_igb_periodic_trigger_with_power_cost_aura);
RegisterSpellScript(spell_igb_overheat_aura);
RegisterSpellScript(spell_igb_cannon_blast);
RegisterSpellScript(spell_igb_incinerating_blast);
RegisterSpellScript(spell_igb_burning_pitch_selector);
RegisterSpellScript(spell_igb_burning_pitch);
RegisterSpellScript(spell_igb_rocket_artillery);
RegisterSpellScript(spell_igb_rocket_artillery_explosion);
RegisterSpellScript(spell_igb_below_zero);
RegisterSpellScript(spell_igb_on_gunship_deck_aura);
new achievement_im_on_a_boat();
RegisterSpellScript(spell_igb_battle_experience_check);
}
@@ -1113,14 +1113,9 @@ public:
}
};
class spell_deathwhisper_mana_barrier : public SpellScriptLoader
class spell_deathwhisper_mana_barrier_aura : public AuraScript
{
public:
spell_deathwhisper_mana_barrier() : SpellScriptLoader("spell_deathwhisper_mana_barrier") { }
class spell_deathwhisper_mana_barrier_AuraScript : public AuraScript
{
PrepareAuraScript(spell_deathwhisper_mana_barrier_AuraScript);
PrepareAuraScript(spell_deathwhisper_mana_barrier_aura);
void HandlePeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -1135,13 +1130,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_deathwhisper_mana_barrier_AuraScript::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_deathwhisper_mana_barrier_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_deathwhisper_mana_barrier_aura::HandlePeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
@@ -1197,7 +1186,7 @@ void AddSC_boss_lady_deathwhisper()
new npc_darnavan();
// Spells
new spell_deathwhisper_mana_barrier();
RegisterSpellScript(spell_deathwhisper_mana_barrier_aura);
RegisterSpellScript(spell_deathwhisper_dark_reckoning);
// AreaTriggers
@@ -475,14 +475,9 @@ public:
}
};
class spell_marrowgar_coldflame : public SpellScriptLoader
class spell_marrowgar_coldflame : public SpellScript
{
public:
spell_marrowgar_coldflame() : SpellScriptLoader("spell_marrowgar_coldflame") { }
class spell_marrowgar_coldflame_SpellScript : public SpellScript
{
PrepareSpellScript(spell_marrowgar_coldflame_SpellScript);
PrepareSpellScript(spell_marrowgar_coldflame);
void SelectTarget(std::list<WorldObject*>& targets)
{
@@ -520,25 +515,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_marrowgar_coldflame_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_coldflame_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_marrowgar_coldflame::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_coldflame::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_marrowgar_bone_spike_graveyard : public SpellScript
{
return new spell_marrowgar_coldflame_SpellScript();
PrepareSpellScript(spell_marrowgar_bone_spike_graveyard);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_IMPALED });
}
};
class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader
{
public:
spell_marrowgar_bone_spike_graveyard() : SpellScriptLoader("spell_marrowgar_bone_spike_graveyard") { }
class spell_marrowgar_bone_spike_graveyard_SpellScript : public SpellScript
{
PrepareSpellScript(spell_marrowgar_bone_spike_graveyard_SpellScript);
void HandleSpikes(SpellEffIndex effIndex)
{
@@ -578,24 +567,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_bone_spike_graveyard_SpellScript::HandleSpikes, EFFECT_1, SPELL_EFFECT_APPLY_AURA);
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_bone_spike_graveyard::HandleSpikes, EFFECT_1, SPELL_EFFECT_APPLY_AURA);
}
};
SpellScript* GetSpellScript() const override
class spell_marrowgar_coldflame_bonestorm : public SpellScript
{
return new spell_marrowgar_bone_spike_graveyard_SpellScript();
}
};
class spell_marrowgar_coldflame_bonestorm : public SpellScriptLoader
{
public:
spell_marrowgar_coldflame_bonestorm() : SpellScriptLoader("spell_marrowgar_coldflame_bonestorm") { }
class spell_marrowgar_coldflame_SpellScript : public SpellScript
{
PrepareSpellScript(spell_marrowgar_coldflame_SpellScript);
PrepareSpellScript(spell_marrowgar_coldflame_bonestorm);
void HandleScriptEffect(SpellEffIndex effIndex)
{
@@ -618,24 +596,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_coldflame_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_marrowgar_coldflame_bonestorm::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_marrowgar_bone_storm : public SpellScript
{
return new spell_marrowgar_coldflame_SpellScript();
}
};
class spell_marrowgar_bone_storm : public SpellScriptLoader
{
public:
spell_marrowgar_bone_storm() : SpellScriptLoader("spell_marrowgar_bone_storm") { }
class spell_marrowgar_bone_storm_SpellScript : public SpellScript
{
PrepareSpellScript(spell_marrowgar_bone_storm_SpellScript);
PrepareSpellScript(spell_marrowgar_bone_storm);
void RecalculateDamage()
{
@@ -647,24 +614,13 @@ public:
void Register() override
{
OnHit += SpellHitFn(spell_marrowgar_bone_storm_SpellScript::RecalculateDamage);
OnHit += SpellHitFn(spell_marrowgar_bone_storm::RecalculateDamage);
}
};
SpellScript* GetSpellScript() const override
class spell_marrowgar_bone_slice : public SpellScript
{
return new spell_marrowgar_bone_storm_SpellScript();
}
};
class spell_marrowgar_bone_slice : public SpellScriptLoader
{
public:
spell_marrowgar_bone_slice() : SpellScriptLoader("spell_marrowgar_bone_slice") { }
class spell_marrowgar_bone_slice_SpellScript : public SpellScript
{
PrepareSpellScript(spell_marrowgar_bone_slice_SpellScript);
PrepareSpellScript(spell_marrowgar_bone_slice);
bool Load() override
{
@@ -687,28 +643,23 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_marrowgar_bone_slice_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnHit += SpellHitFn(spell_marrowgar_bone_slice_SpellScript::SplitDamage);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_marrowgar_bone_slice::CountTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnHit += SpellHitFn(spell_marrowgar_bone_slice::SplitDamage);
}
private:
uint32 _targetCount;
};
SpellScript* GetSpellScript() const override
{
return new spell_marrowgar_bone_slice_SpellScript();
}
};
void AddSC_boss_lord_marrowgar()
{
RegisterIcecrownCitadelCreatureAI(boss_lord_marrowgar);
new npc_coldflame();
new npc_bone_spike();
new spell_marrowgar_coldflame();
new spell_marrowgar_coldflame_bonestorm();
new spell_marrowgar_bone_spike_graveyard();
new spell_marrowgar_bone_storm();
new spell_marrowgar_bone_slice();
RegisterSpellScript(spell_marrowgar_coldflame);
RegisterSpellScript(spell_marrowgar_coldflame_bonestorm);
RegisterSpellScript(spell_marrowgar_bone_spike_graveyard);
RegisterSpellScript(spell_marrowgar_bone_storm);
RegisterSpellScript(spell_marrowgar_bone_slice);
}
@@ -873,14 +873,9 @@ public:
}
};
class spell_putricide_slime_puddle : public SpellScriptLoader
class spell_putricide_slime_puddle : public SpellScript
{
public:
spell_putricide_slime_puddle() : SpellScriptLoader("spell_putricide_slime_puddle") { }
class spell_putricide_slime_puddle_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_slime_puddle_SpellScript);
PrepareSpellScript(spell_putricide_slime_puddle);
void ScaleRange(std::list<WorldObject*>& targets)
{
@@ -902,26 +897,15 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_slime_puddle_SpellScript::ScaleRange, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_slime_puddle_SpellScript::ScaleRange, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_slime_puddle_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_APPLY_AURA);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_slime_puddle::ScaleRange, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_slime_puddle::ScaleRange, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_slime_puddle::HandleScript, EFFECT_1, SPELL_EFFECT_APPLY_AURA);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_slime_puddle_spawn : public SpellScript
{
return new spell_putricide_slime_puddle_SpellScript();
}
};
class spell_putricide_slime_puddle_spawn : public SpellScriptLoader
{
public:
spell_putricide_slime_puddle_spawn() : SpellScriptLoader("spell_putricide_slime_puddle_spawn") { }
class spell_putricide_slime_puddle_spawn_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_slime_puddle_spawn_SpellScript);
PrepareSpellScript(spell_putricide_slime_puddle_spawn);
void SelectDest()
{
@@ -935,24 +919,18 @@ public:
void Register() override
{
BeforeCast += SpellCastFn(spell_putricide_slime_puddle_spawn_SpellScript::SelectDest);
BeforeCast += SpellCastFn(spell_putricide_slime_puddle_spawn::SelectDest);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_grow_stacker_aura : public AuraScript
{
return new spell_putricide_slime_puddle_spawn_SpellScript();
PrepareAuraScript(spell_putricide_grow_stacker_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_TEAR_GAS_CREATURE });
}
};
class spell_putricide_grow_stacker : public SpellScriptLoader
{
public:
spell_putricide_grow_stacker() : SpellScriptLoader("spell_putricide_grow_stacker") { }
class spell_putricide_grow_stacker_AuraScript : public AuraScript
{
PrepareAuraScript(spell_putricide_grow_stacker_AuraScript);
void HandleTriggerSpell(AuraEffect const* /*aurEff*/)
{
@@ -963,24 +941,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_grow_stacker_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_grow_stacker_aura::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_putricide_unstable_experiment : public SpellScript
{
return new spell_putricide_grow_stacker_AuraScript();
}
};
class spell_putricide_unstable_experiment : public SpellScriptLoader
{
public:
spell_putricide_unstable_experiment() : SpellScriptLoader("spell_putricide_unstable_experiment") { }
class spell_putricide_unstable_experiment_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_unstable_experiment_SpellScript);
PrepareSpellScript(spell_putricide_unstable_experiment);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1015,24 +982,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_unstable_experiment_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_putricide_unstable_experiment::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_tear_gas_effect : public SpellScript
{
return new spell_putricide_unstable_experiment_SpellScript();
}
};
class spell_putricide_tear_gas_effect : public SpellScriptLoader
{
public:
spell_putricide_tear_gas_effect() : SpellScriptLoader("spell_putricide_tear_gas_effect") { }
class spell_putricide_tear_gas_effect_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_tear_gas_effect_SpellScript);
PrepareSpellScript(spell_putricide_tear_gas_effect);
void FilterTargets(std::list<WorldObject*>& targets)
{
@@ -1045,25 +1001,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_tear_gas_effect_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_tear_gas_effect_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_tear_gas_effect::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_tear_gas_effect::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_gaseous_bloat_aura : public AuraScript
{
return new spell_putricide_tear_gas_effect_SpellScript();
PrepareAuraScript(spell_putricide_gaseous_bloat_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GASEOUS_BLOAT });
}
};
class spell_putricide_gaseous_bloat : public SpellScriptLoader
{
public:
spell_putricide_gaseous_bloat() : SpellScriptLoader("spell_putricide_gaseous_bloat") { }
class spell_putricide_gaseous_bloat_AuraScript : public AuraScript
{
PrepareAuraScript(spell_putricide_gaseous_bloat_AuraScript);
void HandleExtraEffect(AuraEffect const* /*aurEff*/)
{
@@ -1076,24 +1026,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_gaseous_bloat_AuraScript::HandleExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_gaseous_bloat_aura::HandleExtraEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
AuraScript* GetAuraScript() const override
class spell_putricide_ooze_channel : public SpellScript
{
return new spell_putricide_gaseous_bloat_AuraScript();
}
};
class spell_putricide_ooze_channel : public SpellScriptLoader
{
public:
spell_putricide_ooze_channel() : SpellScriptLoader("spell_putricide_ooze_channel") { }
class spell_putricide_ooze_channel_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_ooze_channel_SpellScript);
PrepareSpellScript(spell_putricide_ooze_channel);
bool Validate(SpellInfo const* spell) override
{
@@ -1147,29 +1086,24 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel_SpellScript::SetTarget, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
AfterHit += SpellHitFn(spell_putricide_ooze_channel_SpellScript::StartAttack);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel::SetTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_ooze_channel::SetTarget, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
AfterHit += SpellHitFn(spell_putricide_ooze_channel::StartAttack);
}
private:
WorldObject* _target;
};
SpellScript* GetSpellScript() const override
class spell_putricide_ooze_eruption_searcher : public SpellScript
{
return new spell_putricide_ooze_channel_SpellScript();
PrepareSpellScript(spell_putricide_ooze_eruption_searcher);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_OOZE_ERUPTION });
}
};
class spell_putricide_ooze_eruption_searcher : public SpellScriptLoader
{
public:
spell_putricide_ooze_eruption_searcher() : SpellScriptLoader("spell_putricide_ooze_eruption_searcher") { }
class spell_putricide_ooze_eruption_searcher_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_ooze_eruption_searcher_SpellScript);
void HandleDummy(SpellEffIndex /*effIndex*/)
{
@@ -1183,24 +1117,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_ooze_eruption_searcher_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_ooze_eruption_searcher::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_mutated_plague_aura : public AuraScript
{
return new spell_putricide_ooze_eruption_searcher_SpellScript();
}
};
class spell_putricide_mutated_plague : public SpellScriptLoader
{
public:
spell_putricide_mutated_plague() : SpellScriptLoader("spell_putricide_mutated_plague") { }
class spell_putricide_mutated_plague_AuraScript : public AuraScript
{
PrepareAuraScript(spell_putricide_mutated_plague_AuraScript);
PrepareAuraScript(spell_putricide_mutated_plague_aura);
void HandleTriggerSpell(AuraEffect const* aurEff)
{
@@ -1233,25 +1156,14 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_mutated_plague_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutated_plague_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_putricide_mutated_plague_aura::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutated_plague_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_putricide_unbound_plague : public SpellScript
{
return new spell_putricide_mutated_plague_AuraScript();
}
};
class spell_putricide_unbound_plague : public SpellScriptLoader
{
public:
spell_putricide_unbound_plague() : SpellScriptLoader("spell_putricide_unbound_plague") { }
class spell_putricide_unbound_plague_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_unbound_plague_SpellScript);
PrepareSpellScript(spell_putricide_unbound_plague);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1307,25 +1219,14 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_unbound_plague_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_unbound_plague_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_unbound_plague::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_unbound_plague::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_unbound_plague_dmg_aura : public AuraScript
{
return new spell_putricide_unbound_plague_SpellScript();
}
};
class spell_putricide_unbound_plague_dmg : public SpellScriptLoader
{
public:
spell_putricide_unbound_plague_dmg() : SpellScriptLoader("spell_putricide_unbound_plague_dmg") { }
class spell_putricide_unbound_plague_dmg_AuraScript : public AuraScript
{
PrepareAuraScript(spell_putricide_unbound_plague_dmg_AuraScript);
PrepareAuraScript(spell_putricide_unbound_plague_dmg_aura);
void HandlePeriodic(AuraEffect* aurEff)
{
@@ -1338,24 +1239,13 @@ public:
void Register() override
{
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_putricide_unbound_plague_dmg_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_putricide_unbound_plague_dmg_aura::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
AuraScript* GetAuraScript() const override
class spell_putricide_choking_gas_bomb : public SpellScript
{
return new spell_putricide_unbound_plague_dmg_AuraScript();
}
};
class spell_putricide_choking_gas_bomb : public SpellScriptLoader
{
public:
spell_putricide_choking_gas_bomb() : SpellScriptLoader("spell_putricide_choking_gas_bomb") { }
class spell_putricide_choking_gas_bomb_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_choking_gas_bomb_SpellScript);
PrepareSpellScript(spell_putricide_choking_gas_bomb);
void HandleScript(SpellEffIndex /*effIndex*/)
{
@@ -1372,25 +1262,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_choking_gas_bomb_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_putricide_choking_gas_bomb_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_putricide_choking_gas_bomb::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
// Removes aura with id stored in effect value
class spell_putricide_clear_aura_effect_value : public SpellScriptLoader
class spell_putricide_clear_aura_effect_value : public SpellScript
{
public:
spell_putricide_clear_aura_effect_value() : SpellScriptLoader("spell_putricide_clear_aura_effect_value") { }
class spell_putricide_clear_aura_effect_value_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_clear_aura_effect_value_SpellScript);
PrepareSpellScript(spell_putricide_clear_aura_effect_value);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1401,24 +1280,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_aura_effect_value_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_putricide_clear_aura_effect_value::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_mutation_init : public SpellScript
{
return new spell_putricide_clear_aura_effect_value_SpellScript();
}
};
class spell_putricide_mutation_init : public SpellScriptLoader
{
public:
spell_putricide_mutation_init() : SpellScriptLoader("spell_putricide_mutation_init") { }
class spell_putricide_mutation_init_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_mutation_init_SpellScript);
PrepareSpellScript(spell_putricide_mutation_init);
SpellCastResult CheckRequirementInternal(SpellCustomErrors& extendedError)
{
@@ -1466,13 +1334,13 @@ public:
void Register() override
{
OnCheckCast += SpellCheckCastFn(spell_putricide_mutation_init_SpellScript::CheckRequirement);
OnCheckCast += SpellCheckCastFn(spell_putricide_mutation_init::CheckRequirement);
}
};
class spell_putricide_mutation_init_AuraScript : public AuraScript
class spell_putricide_mutation_init_aura : public AuraScript
{
PrepareAuraScript(spell_putricide_mutation_init_AuraScript);
PrepareAuraScript(spell_putricide_mutation_init_aura);
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -1485,30 +1353,24 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutation_init_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutation_init_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_mutated_transformation : public SpellScript
{
return new spell_putricide_mutation_init_SpellScript();
PrepareSpellScript(spell_putricide_mutated_transformation);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({
SPELL_ABOMINATION_VEHICLE_POWER_DRAIN,
SPELL_MUTATED_TRANSFORMATION_DAMAGE,
SPELL_MUTATED_TRANSFORMATION_NAME,
VEHICLE_SPELL_RIDE_HARDCODED
});
}
AuraScript* GetAuraScript() const override
{
return new spell_putricide_mutation_init_AuraScript();
}
};
class spell_putricide_mutated_transformation : public SpellScriptLoader
{
public:
spell_putricide_mutated_transformation() : SpellScriptLoader("spell_putricide_mutated_transformation") { }
class spell_putricide_mutated_transformation_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_mutated_transformation_SpellScript);
void HandleSummon(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
@@ -1561,24 +1423,13 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_putricide_mutated_transformation_SpellScript::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
OnEffectHit += SpellEffectFn(spell_putricide_mutated_transformation::HandleSummon, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_mutated_transformation_dismiss_aura : public AuraScript
{
return new spell_putricide_mutated_transformation_SpellScript();
}
};
class spell_putricide_mutated_transformation_dismiss : public SpellScriptLoader
{
public:
spell_putricide_mutated_transformation_dismiss() : SpellScriptLoader("spell_putricide_mutated_transformation_dismiss") { }
class spell_putricide_mutated_transformation_dismiss_AuraScript : public AuraScript
{
PrepareAuraScript(spell_putricide_mutated_transformation_dismiss_AuraScript);
PrepareAuraScript(spell_putricide_mutated_transformation_dismiss_aura);
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -1588,24 +1439,13 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutated_transformation_dismiss_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_putricide_mutated_transformation_dismiss_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_putricide_mutated_transformation_dmg : public SpellScript
{
return new spell_putricide_mutated_transformation_dismiss_AuraScript();
}
};
class spell_putricide_mutated_transformation_dmg : public SpellScriptLoader
{
public:
spell_putricide_mutated_transformation_dmg() : SpellScriptLoader("spell_putricide_mutated_transformation_dmg") { }
class spell_putricide_mutated_transformation_dmg_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_mutated_transformation_dmg_SpellScript);
PrepareSpellScript(spell_putricide_mutated_transformation_dmg);
void FilterTargetsInitial(std::list<WorldObject*>& targets)
{
@@ -1615,24 +1455,18 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_mutated_transformation_dmg_SpellScript::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_mutated_transformation_dmg::FilterTargetsInitial, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_eat_ooze : public SpellScript
{
return new spell_putricide_mutated_transformation_dmg_SpellScript();
PrepareSpellScript(spell_putricide_eat_ooze);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GROW_STACKER });
}
};
class spell_putricide_eat_ooze : public SpellScriptLoader
{
public:
spell_putricide_eat_ooze() : SpellScriptLoader("spell_putricide_eat_ooze") { }
class spell_putricide_eat_ooze_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_eat_ooze_SpellScript);
void SelectTarget(std::list<WorldObject*>& targets)
{
@@ -1666,25 +1500,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_eat_ooze_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_eat_ooze_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_putricide_eat_ooze::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_putricide_eat_ooze::SelectTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
}
};
SpellScript* GetSpellScript() const override
class spell_putricide_regurgitated_ooze : public SpellScript
{
return new spell_putricide_eat_ooze_SpellScript();
}
};
class spell_putricide_regurgitated_ooze : public SpellScriptLoader
{
public:
spell_putricide_regurgitated_ooze() : SpellScriptLoader("spell_putricide_regurgitated_ooze") { }
class spell_putricide_regurgitated_ooze_SpellScript : public SpellScript
{
PrepareSpellScript(spell_putricide_regurgitated_ooze_SpellScript);
PrepareSpellScript(spell_putricide_regurgitated_ooze);
// the only purpose of this hook is to fail the achievement
void ExtraEffect(SpellEffIndex /*effIndex*/)
@@ -1695,13 +1518,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_putricide_regurgitated_ooze_SpellScript::ExtraEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_putricide_regurgitated_ooze_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_putricide_regurgitated_ooze::ExtraEffect, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
}
};
@@ -1710,24 +1527,24 @@ void AddSC_boss_professor_putricide()
new boss_professor_putricide();
new npc_volatile_ooze();
new npc_gas_cloud();
new spell_putricide_slime_puddle();
new spell_putricide_slime_puddle_spawn();
new spell_putricide_grow_stacker();
new spell_putricide_unstable_experiment();
new spell_putricide_tear_gas_effect();
new spell_putricide_gaseous_bloat();
new spell_putricide_ooze_channel();
new spell_putricide_ooze_eruption_searcher();
new spell_putricide_mutated_plague();
new spell_putricide_unbound_plague();
new spell_putricide_unbound_plague_dmg();
new spell_putricide_choking_gas_bomb();
new spell_putricide_clear_aura_effect_value();
new spell_putricide_mutation_init();
new spell_putricide_mutated_transformation();
new spell_putricide_mutated_transformation_dismiss();
new spell_putricide_mutated_transformation_dmg();
new spell_putricide_eat_ooze();
new spell_putricide_regurgitated_ooze();
RegisterSpellScript(spell_putricide_slime_puddle);
RegisterSpellScript(spell_putricide_slime_puddle_spawn);
RegisterSpellScript(spell_putricide_grow_stacker_aura);
RegisterSpellScript(spell_putricide_unstable_experiment);
RegisterSpellScript(spell_putricide_tear_gas_effect);
RegisterSpellScript(spell_putricide_gaseous_bloat_aura);
RegisterSpellScript(spell_putricide_ooze_channel);
RegisterSpellScript(spell_putricide_ooze_eruption_searcher);
RegisterSpellScript(spell_putricide_mutated_plague_aura);
RegisterSpellScript(spell_putricide_unbound_plague);
RegisterSpellScript(spell_putricide_unbound_plague_dmg_aura);
RegisterSpellScript(spell_putricide_choking_gas_bomb);
RegisterSpellScript(spell_putricide_clear_aura_effect_value);
RegisterSpellAndAuraScriptPair(spell_putricide_mutation_init, spell_putricide_mutation_init_aura);
RegisterSpellScript(spell_putricide_mutated_transformation);
RegisterSpellScript(spell_putricide_mutated_transformation_dismiss_aura);
RegisterSpellScript(spell_putricide_mutated_transformation_dmg);
RegisterSpellScript(spell_putricide_eat_ooze);
RegisterSpellScript(spell_putricide_regurgitated_ooze);
}
@@ -506,14 +506,9 @@ public:
}
};
class spell_rotface_mutated_infection : public SpellScriptLoader
class spell_rotface_mutated_infection : public SpellScript
{
public:
spell_rotface_mutated_infection() : SpellScriptLoader("spell_rotface_mutated_infection") { }
class spell_rotface_mutated_infection_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rotface_mutated_infection_SpellScript);
PrepareSpellScript(spell_rotface_mutated_infection);
bool Load() override
{
@@ -552,18 +547,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection_SpellScript::ReplaceTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection_SpellScript::ReplaceTargets, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
AfterHit += SpellHitFn(spell_rotface_mutated_infection_SpellScript::NotifyTargets);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection::ReplaceTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_rotface_mutated_infection::ReplaceTargets, EFFECT_2, TARGET_UNIT_SRC_AREA_ENEMY);
AfterHit += SpellHitFn(spell_rotface_mutated_infection::NotifyTargets);
}
private:
WorldObject* _target;
};
class spell_rotface_mutated_infection_AuraScript : public AuraScript
class spell_rotface_mutated_infection_aura : public AuraScript
{
PrepareAuraScript(spell_rotface_mutated_infection_AuraScript);
PrepareAuraScript(spell_rotface_mutated_infection_aura);
void ExtraRemoveEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -572,30 +568,19 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_rotface_mutated_infection_AuraScript::ExtraRemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_rotface_mutated_infection_aura::ExtraRemoveEffect, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
SpellScript* GetSpellScript() const override
class spell_rotface_little_ooze_combine : public SpellScript
{
return new spell_rotface_mutated_infection_SpellScript();
PrepareSpellScript(spell_rotface_little_ooze_combine);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_LITTLE_OOZE_COMBINE, SPELL_OOZE_MERGE });
}
AuraScript* GetAuraScript() const override
{
return new spell_rotface_mutated_infection_AuraScript();
}
};
class spell_rotface_little_ooze_combine : public SpellScriptLoader
{
public:
spell_rotface_little_ooze_combine() : SpellScriptLoader("spell_rotface_little_ooze_combine") { }
class spell_rotface_little_ooze_combine_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rotface_little_ooze_combine_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
// little targetting little
@@ -613,24 +598,18 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_little_ooze_combine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_rotface_little_ooze_combine::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_rotface_large_ooze_combine : public SpellScript
{
return new spell_rotface_little_ooze_combine_SpellScript();
PrepareSpellScript(spell_rotface_large_ooze_combine);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_UNSTABLE_OOZE, 69844, SPELL_LARGE_OOZE_BUFF_COMBINE, SPELL_LARGE_OOZE_COMBINE, SPELL_UNSTABLE_OOZE_EXPLOSION });
}
};
class spell_rotface_large_ooze_combine : public SpellScriptLoader
{
public:
spell_rotface_large_ooze_combine() : SpellScriptLoader("spell_rotface_large_ooze_combine") { }
class spell_rotface_large_ooze_combine_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rotface_large_ooze_combine_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
@@ -691,24 +670,18 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_large_ooze_combine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_rotface_large_ooze_combine::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_rotface_large_ooze_buff_combine : public SpellScript
{
return new spell_rotface_large_ooze_combine_SpellScript();
PrepareSpellScript(spell_rotface_large_ooze_buff_combine);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 69844, SPELL_LARGE_OOZE_BUFF_COMBINE, SPELL_LARGE_OOZE_COMBINE, SPELL_UNSTABLE_OOZE_EXPLOSION, SPELL_LITTLE_OOZE_COMBINE });
}
};
class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
{
public:
spell_rotface_large_ooze_buff_combine() : SpellScriptLoader("spell_rotface_large_ooze_buff_combine") { }
class spell_rotface_large_ooze_buff_combine_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rotface_large_ooze_buff_combine_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
@@ -754,24 +727,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_large_ooze_buff_combine_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_rotface_large_ooze_buff_combine::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_rotface_unstable_ooze_explosion_init : public SpellScript
{
return new spell_rotface_large_ooze_buff_combine_SpellScript();
}
};
class spell_rotface_unstable_ooze_explosion_init : public SpellScriptLoader
{
public:
spell_rotface_unstable_ooze_explosion_init() : SpellScriptLoader("spell_rotface_unstable_ooze_explosion_init") { }
class spell_rotface_unstable_ooze_explosion_init_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rotface_unstable_ooze_explosion_init_SpellScript);
PrepareSpellScript(spell_rotface_unstable_ooze_explosion_init);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -792,24 +754,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_rotface_unstable_ooze_explosion_init_SpellScript::HandleCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnEffectHitTarget += SpellEffectFn(spell_rotface_unstable_ooze_explosion_init::HandleCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
SpellScript* GetSpellScript() const override
class spell_rotface_unstable_ooze_explosion : public SpellScript
{
return new spell_rotface_unstable_ooze_explosion_init_SpellScript();
}
};
class spell_rotface_unstable_ooze_explosion : public SpellScriptLoader
{
public:
spell_rotface_unstable_ooze_explosion() : SpellScriptLoader("spell_rotface_unstable_ooze_explosion") { }
class spell_rotface_unstable_ooze_explosion_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rotface_unstable_ooze_explosion_SpellScript);
PrepareSpellScript(spell_rotface_unstable_ooze_explosion);
void CheckTarget(SpellEffIndex effIndex)
{
@@ -829,24 +780,13 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_rotface_unstable_ooze_explosion_SpellScript::CheckTarget, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
OnEffectHit += SpellEffectFn(spell_rotface_unstable_ooze_explosion::CheckTarget, EFFECT_0, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
SpellScript* GetSpellScript() const override
class spell_rotface_unstable_ooze_explosion_suicide_aura : public AuraScript
{
return new spell_rotface_unstable_ooze_explosion_SpellScript();
}
};
class spell_rotface_unstable_ooze_explosion_suicide : public SpellScriptLoader
{
public:
spell_rotface_unstable_ooze_explosion_suicide() : SpellScriptLoader("spell_rotface_unstable_ooze_explosion_suicide") { }
class spell_rotface_unstable_ooze_explosion_suicide_AuraScript : public AuraScript
{
PrepareAuraScript(spell_rotface_unstable_ooze_explosion_suicide_AuraScript);
PrepareAuraScript(spell_rotface_unstable_ooze_explosion_suicide_aura);
void DespawnSelf(AuraEffect const* /*aurEff*/)
{
@@ -863,13 +803,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_rotface_unstable_ooze_explosion_suicide_AuraScript::DespawnSelf, EFFECT_2, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_rotface_unstable_ooze_explosion_suicide_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_rotface_unstable_ooze_explosion_suicide_aura::DespawnSelf, EFFECT_2, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
@@ -969,13 +903,13 @@ void AddSC_boss_rotface()
new boss_rotface();
new npc_little_ooze();
new npc_big_ooze();
new spell_rotface_mutated_infection();
new spell_rotface_little_ooze_combine();
new spell_rotface_large_ooze_combine();
new spell_rotface_large_ooze_buff_combine();
new spell_rotface_unstable_ooze_explosion_init();
new spell_rotface_unstable_ooze_explosion();
new spell_rotface_unstable_ooze_explosion_suicide();
RegisterSpellAndAuraScriptPair(spell_rotface_mutated_infection, spell_rotface_mutated_infection_aura);
RegisterSpellScript(spell_rotface_little_ooze_combine);
RegisterSpellScript(spell_rotface_large_ooze_combine);
RegisterSpellScript(spell_rotface_large_ooze_buff_combine);
RegisterSpellScript(spell_rotface_unstable_ooze_explosion_init);
RegisterSpellScript(spell_rotface_unstable_ooze_explosion);
RegisterSpellScript(spell_rotface_unstable_ooze_explosion_suicide_aura);
new npc_precious_icc();
}
@@ -767,14 +767,9 @@ public:
}
};
class spell_sindragosa_s_fury : public SpellScriptLoader
class spell_sindragosa_s_fury : public SpellScript
{
public:
spell_sindragosa_s_fury() : SpellScriptLoader("spell_sindragosa_s_fury") { }
class spell_sindragosa_s_fury_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_s_fury_SpellScript);
PrepareSpellScript(spell_sindragosa_s_fury);
bool Load() override
{
@@ -828,20 +823,15 @@ public:
void Register() override
{
BeforeCast += SpellCastFn(spell_sindragosa_s_fury_SpellScript::SelectDest);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_s_fury_SpellScript::CountTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_sindragosa_s_fury_SpellScript::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
BeforeCast += SpellCastFn(spell_sindragosa_s_fury::SelectDest);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_s_fury::CountTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_sindragosa_s_fury::HandleDummy, EFFECT_1, SPELL_EFFECT_DUMMY);
}
private:
uint32 _targetCount;
};
SpellScript* GetSpellScript() const override
{
return new spell_sindragosa_s_fury_SpellScript();
}
};
class UnchainedMagicTargetSelector
{
public:
@@ -895,14 +885,9 @@ class spell_sindragosa_unchained_magic : public SpellScript
}
};
class spell_sindragosa_permeating_chill : public SpellScriptLoader
class spell_sindragosa_permeating_chill_aura : public AuraScript
{
public:
spell_sindragosa_permeating_chill() : SpellScriptLoader("spell_sindragosa_permeating_chill") { }
class spell_sindragosa_permeating_chill_AuraScript : public AuraScript
{
PrepareAuraScript(spell_sindragosa_permeating_chill_AuraScript);
PrepareAuraScript(spell_sindragosa_permeating_chill_aura);
bool CheckProc(ProcEventInfo& eventInfo)
{
@@ -911,24 +896,13 @@ public:
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_sindragosa_permeating_chill_AuraScript::CheckProc);
DoCheckProc += AuraCheckProcFn(spell_sindragosa_permeating_chill_aura::CheckProc);
}
};
AuraScript* GetAuraScript() const override
class spell_sindragosa_instability_aura : public AuraScript
{
return new spell_sindragosa_permeating_chill_AuraScript();
}
};
class spell_sindragosa_instability : public SpellScriptLoader
{
public:
spell_sindragosa_instability() : SpellScriptLoader("spell_sindragosa_instability") { }
class spell_sindragosa_instability_AuraScript : public AuraScript
{
PrepareAuraScript(spell_sindragosa_instability_AuraScript);
PrepareAuraScript(spell_sindragosa_instability_aura);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -943,24 +917,13 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_sindragosa_instability_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_sindragosa_instability_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_sindragosa_icy_grip : public SpellScript
{
return new spell_sindragosa_instability_AuraScript();
}
};
class spell_sindragosa_icy_grip : public SpellScriptLoader
{
public:
spell_sindragosa_icy_grip() : SpellScriptLoader("spell_sindragosa_icy_grip") { }
class spell_sindragosa_icy_grip_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_icy_grip_SpellScript);
PrepareSpellScript(spell_sindragosa_icy_grip);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -978,24 +941,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_sindragosa_icy_grip_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_sindragosa_icy_grip::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_sindragosa_icy_grip_jump : public SpellScript
{
return new spell_sindragosa_icy_grip_SpellScript();
}
};
class spell_sindragosa_icy_grip_jump : public SpellScriptLoader
{
public:
spell_sindragosa_icy_grip_jump() : SpellScriptLoader("spell_sindragosa_icy_grip_jump") { }
class spell_sindragosa_icy_grip_jump_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_icy_grip_jump_SpellScript);
PrepareSpellScript(spell_sindragosa_icy_grip_jump);
void HandleSpecial(SpellEffIndex effIndex)
{
@@ -1019,24 +971,13 @@ public:
void Register() override
{
OnEffectLaunchTarget += SpellEffectFn(spell_sindragosa_icy_grip_jump_SpellScript::HandleSpecial, EFFECT_0, SPELL_EFFECT_JUMP);
OnEffectLaunchTarget += SpellEffectFn(spell_sindragosa_icy_grip_jump::HandleSpecial, EFFECT_0, SPELL_EFFECT_JUMP);
}
};
SpellScript* GetSpellScript() const override
class spell_sindragosa_frost_beacon_aura : public AuraScript
{
return new spell_sindragosa_icy_grip_jump_SpellScript();
}
};
class spell_sindragosa_frost_beacon : public SpellScriptLoader
{
public:
spell_sindragosa_frost_beacon() : SpellScriptLoader("spell_sindragosa_frost_beacon") { }
class spell_sindragosa_frost_beacon_AuraScript : public AuraScript
{
PrepareAuraScript(spell_sindragosa_frost_beacon_AuraScript);
PrepareAuraScript(spell_sindragosa_frost_beacon_aura);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1052,13 +993,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_frost_beacon_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_sindragosa_frost_beacon_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_frost_beacon_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
@@ -1076,14 +1011,9 @@ public:
}
};
class spell_sindragosa_ice_tomb_filter : public SpellScriptLoader
class spell_sindragosa_ice_tomb_filter : public SpellScript
{
public:
spell_sindragosa_ice_tomb_filter() : SpellScriptLoader("spell_sindragosa_ice_tomb_filter") { }
class spell_sindragosa_ice_tomb_filter_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_ice_tomb_filter_SpellScript);
PrepareSpellScript(spell_sindragosa_ice_tomb_filter);
void FilterTargets(std::list<WorldObject*>& unitList)
{
@@ -1092,26 +1022,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_ice_tomb_filter_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_ice_tomb_filter::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_sindragosa_ice_tomb_trap : public SpellScript
{
return new spell_sindragosa_ice_tomb_filter_SpellScript();
}
};
class spell_sindragosa_ice_tomb : public SpellScriptLoader
{
public:
spell_sindragosa_ice_tomb() : SpellScriptLoader("spell_sindragosa_ice_tomb_trap") { }
class spell_sindragosa_ice_tomb_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_ice_tomb_SpellScript);
std::list<WorldObject*> targetList;
PrepareSpellScript(spell_sindragosa_ice_tomb_trap);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1125,26 +1042,34 @@ public:
void FilterTargets(std::list<WorldObject*>& unitList)
{
unitList.remove_if(Acore::UnitAuraCheck(true, GetSpellInfo()->Id));
targetList.clear();
targetList = unitList;
_targetList.clear();
_targetList = unitList;
}
void FilterTargetsSubseq(std::list<WorldObject*>& unitList)
{
unitList.clear();
unitList = targetList;
unitList = _targetList;
}
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_ice_tomb_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_ice_tomb_SpellScript::FilterTargetsSubseq, EFFECT_2, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_ice_tomb_trap::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_ice_tomb_trap::FilterTargetsSubseq, EFFECT_2, TARGET_UNIT_DEST_AREA_ENEMY);
}
private:
std::list<WorldObject*> _targetList;
};
class spell_sindragosa_ice_tomb_AuraScript : public AuraScript
class spell_sindragosa_ice_tomb_trap_aura : public AuraScript
{
PrepareAuraScript(spell_sindragosa_ice_tomb_AuraScript);
PrepareAuraScript(spell_sindragosa_ice_tomb_trap_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_ASPHYXIATION, SPELL_ICE_TOMB_UNTARGETABLE });
}
void PeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -1165,20 +1090,9 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_ice_tomb_AuraScript::PeriodicTick, EFFECT_2, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
AfterEffectRemove += AuraEffectRemoveFn(spell_sindragosa_ice_tomb_AuraScript::ExtraRemoveEffect, EFFECT_1, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
AfterEffectApply += AuraEffectApplyFn(spell_sindragosa_ice_tomb_AuraScript::AfterApply, EFFECT_1, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_sindragosa_ice_tomb_SpellScript();
}
AuraScript* GetAuraScript() const override
{
return new spell_sindragosa_ice_tomb_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_ice_tomb_trap_aura::PeriodicTick, EFFECT_2, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
AfterEffectRemove += AuraEffectRemoveFn(spell_sindragosa_ice_tomb_trap_aura::ExtraRemoveEffect, EFFECT_1, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
AfterEffectApply += AuraEffectApplyFn(spell_sindragosa_ice_tomb_trap_aura::AfterApply, EFFECT_1, SPELL_AURA_MOD_STUN, AURA_EFFECT_HANDLE_REAL);
}
};
@@ -1208,14 +1122,9 @@ private:
Unit* _caster;
};
class spell_sindragosa_mystic_buffet : public SpellScriptLoader
class spell_sindragosa_mystic_buffet : public SpellScript
{
public:
spell_sindragosa_mystic_buffet() : SpellScriptLoader("spell_sindragosa_mystic_buffet") { }
class spell_sindragosa_mystic_buffet_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_mystic_buffet_SpellScript);
PrepareSpellScript(spell_sindragosa_mystic_buffet);
void FilterTargets(std::list<WorldObject*>& targets)
{
@@ -1224,24 +1133,18 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_mystic_buffet_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sindragosa_mystic_buffet::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_sindragosa_soul_preservation_aura : public AuraScript
{
return new spell_sindragosa_mystic_buffet_SpellScript();
PrepareAuraScript(spell_sindragosa_soul_preservation_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 72466, 72424 });
}
};
class spell_sindragosa_soul_preservation : public SpellScriptLoader
{
public:
spell_sindragosa_soul_preservation() : SpellScriptLoader("spell_sindragosa_soul_preservation") { }
class spell_sindragosa_soul_preservation_AuraScript : public AuraScript
{
PrepareAuraScript(spell_sindragosa_soul_preservation_AuraScript);
void PeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -1258,13 +1161,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_soul_preservation_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_sindragosa_soul_preservation_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_sindragosa_soul_preservation_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
@@ -1597,14 +1494,9 @@ public:
}
};
class spell_rimefang_icy_blast : public SpellScriptLoader
class spell_rimefang_icy_blast : public SpellScript
{
public:
spell_rimefang_icy_blast() : SpellScriptLoader("spell_rimefang_icy_blast") { }
class spell_rimefang_icy_blast_SpellScript : public SpellScript
{
PrepareSpellScript(spell_rimefang_icy_blast_SpellScript);
PrepareSpellScript(spell_rimefang_icy_blast);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1621,13 +1513,7 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_rimefang_icy_blast_SpellScript::HandleTriggerMissile, EFFECT_1, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_rimefang_icy_blast_SpellScript();
OnEffectHit += SpellEffectFn(spell_rimefang_icy_blast::HandleTriggerMissile, EFFECT_1, SPELL_EFFECT_TRIGGER_MISSILE);
}
};
@@ -1800,14 +1686,9 @@ private:
Creature* _owner;
};
class spell_frostwarden_handler_order_whelp : public SpellScriptLoader
class spell_frostwarden_handler_order_whelp : public SpellScript
{
public:
spell_frostwarden_handler_order_whelp() : SpellScriptLoader("spell_frostwarden_handler_order_whelp") { }
class spell_frostwarden_handler_order_whelp_SpellScript : public SpellScript
{
PrepareSpellScript(spell_frostwarden_handler_order_whelp_SpellScript);
PrepareSpellScript(spell_frostwarden_handler_order_whelp);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1842,25 +1723,14 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_frostwarden_handler_order_whelp_SpellScript::HandleForcedCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frostwarden_handler_order_whelp_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_frostwarden_handler_order_whelp::HandleForcedCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frostwarden_handler_order_whelp::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_frostwarden_handler_focus_fire : public SpellScript
{
return new spell_frostwarden_handler_order_whelp_SpellScript();
}
};
class spell_frostwarden_handler_focus_fire : public SpellScriptLoader
{
public:
spell_frostwarden_handler_focus_fire() : SpellScriptLoader("spell_frostwarden_handler_focus_fire") { }
class spell_frostwarden_handler_focus_fire_SpellScript : public SpellScript
{
PrepareSpellScript(spell_frostwarden_handler_focus_fire_SpellScript);
PrepareSpellScript(spell_frostwarden_handler_focus_fire);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1871,13 +1741,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_frostwarden_handler_focus_fire_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_frostwarden_handler_focus_fire::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
class spell_frostwarden_handler_focus_fire_AuraScript : public AuraScript
class spell_frostwarden_handler_focus_fire_aura : public AuraScript
{
PrepareAuraScript(spell_frostwarden_handler_focus_fire_AuraScript);
PrepareAuraScript(spell_frostwarden_handler_focus_fire_aura);
void PeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -1891,30 +1761,19 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_frostwarden_handler_focus_fire_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_frostwarden_handler_focus_fire_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_sindragosa_frost_breath : public SpellScript
{
return new spell_frostwarden_handler_focus_fire_SpellScript();
PrepareSpellScript(spell_sindragosa_frost_breath);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_UNSATED_CRAVING, SPELL_FROST_IMBUED_BLADE, SPELL_FROST_INFUSION });
}
AuraScript* GetAuraScript() const override
{
return new spell_frostwarden_handler_focus_fire_AuraScript();
}
};
class spell_sindragosa_frost_breath : public SpellScriptLoader
{
public:
spell_sindragosa_frost_breath() : SpellScriptLoader("spell_sindragosa_frost_breath") { }
class spell_sindragosa_frost_breath_SpellScript : public SpellScript
{
PrepareSpellScript(spell_sindragosa_frost_breath_SpellScript);
void HandleInfusion()
{
Player* target = GetHitPlayer();
@@ -1941,13 +1800,7 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_sindragosa_frost_breath_SpellScript::HandleInfusion);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_sindragosa_frost_breath_SpellScript();
AfterHit += SpellHitFn(spell_sindragosa_frost_breath::HandleInfusion);
}
};
@@ -1955,29 +1808,29 @@ void AddSC_boss_sindragosa()
{
new boss_sindragosa();
new npc_ice_tomb();
new spell_sindragosa_s_fury();
RegisterSpellScript(spell_sindragosa_s_fury);
RegisterSpellScript(spell_sindragosa_unchained_magic);
new spell_sindragosa_permeating_chill();
new spell_sindragosa_instability();
new spell_sindragosa_icy_grip();
new spell_sindragosa_icy_grip_jump();
new spell_sindragosa_ice_tomb_filter();
new spell_trigger_spell_from_caster("spell_sindragosa_ice_tomb", SPELL_ICE_TOMB_DUMMY);
new spell_trigger_spell_from_caster("spell_sindragosa_ice_tomb_dummy", SPELL_FROST_BEACON);
new spell_sindragosa_frost_beacon();
new spell_sindragosa_ice_tomb();
new spell_sindragosa_mystic_buffet();
new spell_sindragosa_soul_preservation();
RegisterSpellScript(spell_sindragosa_permeating_chill_aura);
RegisterSpellScript(spell_sindragosa_instability_aura);
RegisterSpellScript(spell_sindragosa_icy_grip);
RegisterSpellScript(spell_sindragosa_icy_grip_jump);
RegisterSpellScript(spell_sindragosa_ice_tomb_filter);
RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_sindragosa_ice_tomb", SPELL_ICE_TOMB_DUMMY);
RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_sindragosa_ice_tomb_dummy", SPELL_FROST_BEACON);
RegisterSpellScript(spell_sindragosa_frost_beacon_aura);
RegisterSpellAndAuraScriptPair(spell_sindragosa_ice_tomb_trap, spell_sindragosa_ice_tomb_trap_aura);
RegisterSpellScript(spell_sindragosa_mystic_buffet);
RegisterSpellScript(spell_sindragosa_soul_preservation_aura);
new achievement_all_you_can_eat();
new npc_spinestalker();
new npc_rimefang();
new spell_rimefang_icy_blast();
RegisterSpellScript(spell_rimefang_icy_blast);
new at_sindragosa_lair();
new npc_sindragosa_trash();
new spell_frostwarden_handler_order_whelp();
new spell_frostwarden_handler_focus_fire();
RegisterSpellScript(spell_frostwarden_handler_order_whelp);
RegisterSpellAndAuraScriptPair(spell_frostwarden_handler_focus_fire, spell_frostwarden_handler_focus_fire_aura);
new spell_sindragosa_frost_breath();
RegisterSpellScript(spell_sindragosa_frost_breath);
}
@@ -1675,14 +1675,9 @@ public:
}
};
class spell_the_lich_king_quake : public SpellScriptLoader
class spell_the_lich_king_quake : public SpellScript
{
public:
spell_the_lich_king_quake() : SpellScriptLoader("spell_the_lich_king_quake") { }
class spell_the_lich_king_quake_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_quake_SpellScript);
PrepareSpellScript(spell_the_lich_king_quake);
bool Load() override
{
@@ -1703,25 +1698,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_quake_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHit += SpellEffectFn(spell_the_lich_king_quake_SpellScript::HandleSendEvent, EFFECT_1, SPELL_EFFECT_SEND_EVENT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_quake::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHit += SpellEffectFn(spell_the_lich_king_quake::HandleSendEvent, EFFECT_1, SPELL_EFFECT_SEND_EVENT);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_jump : public SpellScript
{
return new spell_the_lich_king_quake_SpellScript();
PrepareSpellScript(spell_the_lich_king_jump);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_RAISE_DEAD, SPELL_JUMP_2 });
}
};
class spell_the_lich_king_jump : public SpellScriptLoader
{
public:
spell_the_lich_king_jump() : SpellScriptLoader("spell_the_lich_king_jump") { }
class spell_the_lich_king_jump_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_jump_SpellScript);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1735,24 +1724,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_jump_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_jump::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_jump_remove_aura : public SpellScript
{
return new spell_the_lich_king_jump_SpellScript();
}
};
class spell_the_lich_king_jump_remove_aura : public SpellScriptLoader
{
public:
spell_the_lich_king_jump_remove_aura() : SpellScriptLoader("spell_the_lich_king_jump_remove_aura") { }
class spell_the_lich_king_jump_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_jump_SpellScript);
PrepareSpellScript(spell_the_lich_king_jump_remove_aura);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1762,24 +1740,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_jump_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_jump_remove_aura::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_play_movie : public SpellScript
{
return new spell_the_lich_king_jump_SpellScript();
}
};
class spell_the_lich_king_play_movie : public SpellScriptLoader
{
public:
spell_the_lich_king_play_movie() : SpellScriptLoader("spell_the_lich_king_play_movie") { }
class spell_the_lich_king_play_movie_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_play_movie_SpellScript);
PrepareSpellScript(spell_the_lich_king_play_movie);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1797,13 +1764,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_play_movie_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_the_lich_king_play_movie_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_play_movie::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
@@ -1879,14 +1840,9 @@ public:
}
};
class spell_the_lich_king_infest : public SpellScriptLoader
class spell_the_lich_king_infest_aura : public AuraScript
{
public:
spell_the_lich_king_infest() : SpellScriptLoader("spell_the_lich_king_infest") { }
class spell_the_lich_king_infest_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_infest_AuraScript);
PrepareAuraScript(spell_the_lich_king_infest_aura);
void OnPeriodic(AuraEffect const* /*aurEff*/)
{
@@ -1908,25 +1864,14 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_infest_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_the_lich_king_infest_AuraScript::OnUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_infest_aura::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_the_lich_king_infest_aura::OnUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
}
};
AuraScript* GetAuraScript() const override
class spell_the_lich_king_necrotic_plague_aura : public AuraScript
{
return new spell_the_lich_king_infest_AuraScript();
}
};
class spell_the_lich_king_necrotic_plague : public SpellScriptLoader
{
public:
spell_the_lich_king_necrotic_plague() : SpellScriptLoader("spell_the_lich_king_necrotic_plague") { }
class spell_the_lich_king_necrotic_plague_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_necrotic_plague_AuraScript);
PrepareAuraScript(spell_the_lich_king_necrotic_plague_aura);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -1958,24 +1903,13 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_the_lich_king_necrotic_plague_jump : public SpellScript
{
return new spell_the_lich_king_necrotic_plague_AuraScript();
}
};
class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader
{
public:
spell_the_lich_king_necrotic_plague_jump() : SpellScriptLoader("spell_the_lich_king_necrotic_plague_jump") { }
class spell_the_lich_king_necrotic_plague_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_necrotic_plague_SpellScript);
PrepareSpellScript(spell_the_lich_king_necrotic_plague_jump);
bool Load() override
{
@@ -2022,18 +1956,24 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_necrotic_plague_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
BeforeHit += BeforeSpellHitFn(spell_the_lich_king_necrotic_plague_SpellScript::CheckAura);
OnHit += SpellHitFn(spell_the_lich_king_necrotic_plague_SpellScript::AddMissingStack);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_necrotic_plague_jump::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
BeforeHit += BeforeSpellHitFn(spell_the_lich_king_necrotic_plague_jump::CheckAura);
OnHit += SpellHitFn(spell_the_lich_king_necrotic_plague_jump::AddMissingStack);
}
private:
bool _hadJumpingAura;
bool _hadInitialAura;
};
class spell_the_lich_king_necrotic_plague_AuraScript : public AuraScript
class spell_the_lich_king_necrotic_plague_jump_aura : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_necrotic_plague_AuraScript);
PrepareAuraScript(spell_the_lich_king_necrotic_plague_jump_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_NECROTIC_PLAGUE_JUMP, SPELL_PLAGUE_SIPHON });
}
bool Load() override
{
@@ -2090,35 +2030,25 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_the_lich_king_necrotic_plague_AuraScript::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_AuraScript::OnDispel, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAPPLY);
AfterEffectApply += AuraEffectApplyFn(spell_the_lich_king_necrotic_plague_AuraScript::AfterDispel, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAPPLY);
OnEffectApply += AuraEffectApplyFn(spell_the_lich_king_necrotic_plague_jump_aura::OnApply, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_jump_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_necrotic_plague_jump_aura::OnDispel, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAPPLY);
AfterEffectApply += AuraEffectApplyFn(spell_the_lich_king_necrotic_plague_jump_aura::AfterDispel, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAPPLY);
}
private:
int32 _lastAmount;
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_shadow_trap_visual_aura : public AuraScript
{
return new spell_the_lich_king_necrotic_plague_SpellScript();
PrepareAuraScript(spell_the_lich_king_shadow_trap_visual_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SHADOW_TRAP_AURA });
}
AuraScript* GetAuraScript() const override
{
return new spell_the_lich_king_necrotic_plague_AuraScript();
}
};
class spell_the_lich_king_shadow_trap_visual : public SpellScriptLoader
{
public:
spell_the_lich_king_shadow_trap_visual() : SpellScriptLoader("spell_the_lich_king_shadow_trap_visual") { }
class spell_the_lich_king_shadow_trap_visual_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_shadow_trap_visual_AuraScript);
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE)
@@ -2127,24 +2057,18 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_shadow_trap_visual_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_shadow_trap_visual_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_the_lich_king_shadow_trap_periodic : public SpellScript
{
return new spell_the_lich_king_shadow_trap_visual_AuraScript();
PrepareSpellScript(spell_the_lich_king_shadow_trap_periodic);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SHADOW_TRAP_KNOCKBACK });
}
};
class spell_the_lich_king_shadow_trap_periodic : public SpellScriptLoader
{
public:
spell_the_lich_king_shadow_trap_periodic() : SpellScriptLoader("spell_the_lich_king_shadow_trap_periodic") { }
class spell_the_lich_king_shadow_trap_periodic_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_shadow_trap_periodic_SpellScript);
void CheckTargetCount(std::list<WorldObject*>& targets)
{
@@ -2160,24 +2084,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_shadow_trap_periodic_SpellScript::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_shadow_trap_periodic::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_ice_burst_target_search : public SpellScript
{
return new spell_the_lich_king_shadow_trap_periodic_SpellScript();
}
};
class spell_the_lich_king_ice_burst_target_search : public SpellScriptLoader
{
public:
spell_the_lich_king_ice_burst_target_search() : SpellScriptLoader("spell_the_lich_king_ice_burst_target_search") { }
class spell_the_lich_king_ice_burst_target_search_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_ice_burst_target_search_SpellScript);
PrepareSpellScript(spell_the_lich_king_ice_burst_target_search);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -2195,13 +2108,7 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_ice_burst_target_search_SpellScript::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_the_lich_king_ice_burst_target_search_SpellScript();
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_ice_burst_target_search::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
@@ -2283,14 +2190,9 @@ public:
}
};
class spell_the_lich_king_raging_spirit : public SpellScriptLoader
class spell_the_lich_king_raging_spirit : public SpellScript
{
public:
spell_the_lich_king_raging_spirit() : SpellScriptLoader("spell_the_lich_king_raging_spirit") { }
class spell_the_lich_king_raging_spirit_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_raging_spirit_SpellScript);
PrepareSpellScript(spell_the_lich_king_raging_spirit);
void HandleScript(SpellEffIndex effIndex)
{
@@ -2301,13 +2203,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_raging_spirit_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_the_lich_king_raging_spirit_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_raging_spirit::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
@@ -2444,14 +2340,14 @@ public:
}
};
class spell_the_lich_king_defile : public SpellScriptLoader
class spell_the_lich_king_defile : public SpellScript
{
public:
spell_the_lich_king_defile() : SpellScriptLoader("spell_the_lich_king_defile") { }
PrepareSpellScript(spell_the_lich_king_defile);
class spell_the_lich_king_defile_SpellScript : public SpellScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareSpellScript(spell_the_lich_king_defile_SpellScript);
return ValidateSpellInfo({ SPELL_DEFILE_GROW });
}
void CorrectRange(std::list<WorldObject*>& targets)
{
@@ -2472,26 +2368,15 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_defile_SpellScript::CorrectRange, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_defile_SpellScript::CorrectRange, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnHit += SpellHitFn(spell_the_lich_king_defile_SpellScript::ChangeDamageAndGrow);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_defile::CorrectRange, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_defile::CorrectRange, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnHit += SpellHitFn(spell_the_lich_king_defile::ChangeDamageAndGrow);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_soul_reaper_aura : public AuraScript
{
return new spell_the_lich_king_defile_SpellScript();
}
};
class spell_the_lich_king_soul_reaper : public SpellScriptLoader
{
public:
spell_the_lich_king_soul_reaper() : SpellScriptLoader("spell_the_lich_king_soul_reaper") { }
class spell_the_lich_king_soul_reaper_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_soul_reaper_AuraScript);
PrepareAuraScript(spell_the_lich_king_soul_reaper_aura);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -2506,13 +2391,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_soul_reaper_AuraScript::OnPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_the_lich_king_soul_reaper_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_soul_reaper_aura::OnPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
}
};
@@ -2725,14 +2604,9 @@ public:
}
};
class spell_the_lich_king_summon_into_air : public SpellScriptLoader
class spell_the_lich_king_summon_into_air : public SpellScript
{
public:
spell_the_lich_king_summon_into_air() : SpellScriptLoader("spell_the_lich_king_summon_into_air") { }
class spell_the_lich_king_summon_into_air_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_summon_into_air_SpellScript);
PrepareSpellScript(spell_the_lich_king_summon_into_air);
void ModDestHeight(SpellEffIndex effIndex)
{
@@ -2757,24 +2631,13 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_the_lich_king_summon_into_air_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON);
OnEffectHit += SpellEffectFn(spell_the_lich_king_summon_into_air::ModDestHeight, EFFECT_0, SPELL_EFFECT_SUMMON);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_teleport_to_frostmourne_hc : public SpellScript
{
return new spell_the_lich_king_summon_into_air_SpellScript();
}
};
class spell_the_lich_king_teleport_to_frostmourne_hc : public SpellScriptLoader
{
public:
spell_the_lich_king_teleport_to_frostmourne_hc() : SpellScriptLoader("spell_the_lich_king_teleport_to_frostmourne_hc") { }
class spell_the_lich_king_teleport_to_frostmourne_hc_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_teleport_to_frostmourne_hc_SpellScript);
PrepareSpellScript(spell_the_lich_king_teleport_to_frostmourne_hc);
void ModDest(SpellEffIndex /*effIndex*/)
{
@@ -2788,24 +2651,13 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_the_lich_king_teleport_to_frostmourne_hc_SpellScript::ModDest, EFFECT_1, SPELL_EFFECT_TELEPORT_UNITS);
OnEffectHit += SpellEffectFn(spell_the_lich_king_teleport_to_frostmourne_hc::ModDest, EFFECT_1, SPELL_EFFECT_TELEPORT_UNITS);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_valkyr_target_search : public SpellScript
{
return new spell_the_lich_king_teleport_to_frostmourne_hc_SpellScript();
}
};
class spell_the_lich_king_valkyr_target_search : public SpellScriptLoader
{
public:
spell_the_lich_king_valkyr_target_search() : SpellScriptLoader("spell_the_lich_king_valkyr_target_search") { }
class spell_the_lich_king_valkyr_target_search_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_valkyr_target_search_SpellScript);
PrepareSpellScript(spell_the_lich_king_valkyr_target_search);
WorldObject* _target;
@@ -2863,26 +2715,15 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_valkyr_target_search_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_valkyr_target_search_SpellScript::ReplaceTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_valkyr_target_search_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_valkyr_target_search::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_valkyr_target_search::ReplaceTarget, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_valkyr_target_search::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_cast_back_to_caster : public SpellScript
{
return new spell_the_lich_king_valkyr_target_search_SpellScript();
}
};
class spell_the_lich_king_cast_back_to_caster : public SpellScriptLoader
{
public:
spell_the_lich_king_cast_back_to_caster() : SpellScriptLoader("spell_the_lich_king_cast_back_to_caster") { }
class spell_the_lich_king_cast_back_to_caster_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_cast_back_to_caster_SpellScript);
PrepareSpellScript(spell_the_lich_king_cast_back_to_caster);
void HandleScript(SpellEffIndex /*effIndex*/)
{
@@ -2891,24 +2732,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_cast_back_to_caster_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_cast_back_to_caster::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_life_siphon : public SpellScript
{
return new spell_the_lich_king_cast_back_to_caster_SpellScript();
}
};
class spell_the_lich_king_life_siphon : public SpellScriptLoader
{
public:
spell_the_lich_king_life_siphon() : SpellScriptLoader("spell_the_lich_king_life_siphon") { }
class spell_the_lich_king_life_siphon_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_life_siphon_SpellScript);
PrepareSpellScript(spell_the_lich_king_life_siphon);
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -2922,24 +2752,13 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_the_lich_king_life_siphon_SpellScript::TriggerHeal);
AfterHit += SpellHitFn(spell_the_lich_king_life_siphon::TriggerHeal);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_vile_spirits_aura : public AuraScript
{
return new spell_the_lich_king_life_siphon_SpellScript();
}
};
class spell_the_lich_king_vile_spirits : public SpellScriptLoader
{
public:
spell_the_lich_king_vile_spirits() : SpellScriptLoader("spell_the_lich_king_vile_spirits") { }
class spell_the_lich_king_vile_spirits_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_vile_spirits_AuraScript);
PrepareAuraScript(spell_the_lich_king_vile_spirits_aura);
bool Load() override
{
@@ -2955,26 +2774,16 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_vile_spirits_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_vile_spirits_aura::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
private:
bool _is25Man;
};
AuraScript* GetAuraScript() const override
class spell_the_lich_king_vile_spirits_visual : public SpellScript
{
return new spell_the_lich_king_vile_spirits_AuraScript();
}
};
class spell_the_lich_king_vile_spirits_visual : public SpellScriptLoader
{
public:
spell_the_lich_king_vile_spirits_visual() : SpellScriptLoader("spell_the_lich_king_vile_spirits_visual") { }
class spell_the_lich_king_vile_spirits_visual_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_vile_spirits_visual_SpellScript);
PrepareSpellScript(spell_the_lich_king_vile_spirits_visual);
void ModDestHeight(SpellEffIndex /*effIndex*/)
{
@@ -2984,24 +2793,13 @@ public:
void Register() override
{
OnEffectLaunch += SpellEffectFn(spell_the_lich_king_vile_spirits_visual_SpellScript::ModDestHeight, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectLaunch += SpellEffectFn(spell_the_lich_king_vile_spirits_visual::ModDestHeight, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_vile_spirit_move_target_search : public SpellScript
{
return new spell_the_lich_king_vile_spirits_visual_SpellScript();
}
};
class spell_the_lich_king_vile_spirit_move_target_search : public SpellScriptLoader
{
public:
spell_the_lich_king_vile_spirit_move_target_search() : SpellScriptLoader("spell_the_lich_king_vile_spirit_move_target_search") { }
class spell_the_lich_king_vile_spirit_move_target_search_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_vile_spirit_move_target_search_SpellScript);
PrepareSpellScript(spell_the_lich_king_vile_spirit_move_target_search);
bool Load() override
{
@@ -3030,27 +2828,22 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_vile_spirit_move_target_search_SpellScript::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_vile_spirit_move_target_search_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_vile_spirit_move_target_search::SelectTarget, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_vile_spirit_move_target_search::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
private:
WorldObject* _target;
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScript
{
return new spell_the_lich_king_vile_spirit_move_target_search_SpellScript();
PrepareSpellScript(spell_the_lich_king_vile_spirit_damage_target_search);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_VILE_SPIRIT_DAMAGE_SEARCH, SPELL_SPIRIT_BURST });
}
};
class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScriptLoader
{
public:
spell_the_lich_king_vile_spirit_damage_target_search() : SpellScriptLoader("spell_the_lich_king_vile_spirit_damage_target_search") { }
class spell_the_lich_king_vile_spirit_damage_target_search_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_vile_spirit_damage_target_search_SpellScript);
void CheckTargetCount(std::list<WorldObject*>& targets)
{
@@ -3074,24 +2867,18 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_vile_spirit_damage_target_search_SpellScript::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_vile_spirit_damage_target_search::CheckTargetCount, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
}
};
SpellScript* GetSpellScript() const override
class spell_the_lich_king_harvest_soul_aura : public AuraScript
{
return new spell_the_lich_king_vile_spirit_damage_target_search_SpellScript();
PrepareAuraScript(spell_the_lich_king_harvest_soul_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_HARVESTED_SOUL_LK_BUFF });
}
};
class spell_the_lich_king_harvest_soul : public SpellScriptLoader
{
public:
spell_the_lich_king_harvest_soul() : SpellScriptLoader("spell_the_lich_king_harvest_soul") { }
class spell_the_lich_king_harvest_soul_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_harvest_soul_AuraScript);
bool Load() override
{
@@ -3107,13 +2894,7 @@ public:
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_harvest_soul_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_the_lich_king_harvest_soul_AuraScript();
AfterEffectRemove += AuraEffectRemoveFn(spell_the_lich_king_harvest_soul_aura::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
@@ -3389,14 +3170,9 @@ public:
}
};
class spell_the_lich_king_lights_favor : public SpellScriptLoader
class spell_the_lich_king_lights_favor_aura : public AuraScript
{
public:
spell_the_lich_king_lights_favor() : SpellScriptLoader("spell_the_lich_king_lights_favor") { }
class spell_the_lich_king_lights_favor_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_lights_favor_AuraScript);
PrepareAuraScript(spell_the_lich_king_lights_favor_aura);
void OnPeriodic(AuraEffect const* /*aurEff*/)
{
@@ -3415,25 +3191,19 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_lights_favor_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_the_lich_king_lights_favor_AuraScript::CalculateBonus, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_lights_favor_aura::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_HEAL);
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_the_lich_king_lights_favor_aura::CalculateBonus, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
}
};
AuraScript* GetAuraScript() const override
class spell_the_lich_king_restore_soul : public SpellScript
{
return new spell_the_lich_king_lights_favor_AuraScript();
PrepareSpellScript(spell_the_lich_king_restore_soul);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_HARVEST_SOULS_TELEPORT, SPELL_HARVEST_SOUL_TELEPORT });
}
};
class spell_the_lich_king_restore_soul : public SpellScriptLoader
{
public:
spell_the_lich_king_restore_soul() : SpellScriptLoader("spell_the_lich_king_restore_soul") { }
class spell_the_lich_king_restore_soul_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_restore_soul_SpellScript);
bool Load() override
{
@@ -3467,18 +3237,13 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_restore_soul_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_the_lich_king_restore_soul::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
}
private:
InstanceScript* _instance;
};
SpellScript* GetSpellScript() const override
{
return new spell_the_lich_king_restore_soul_SpellScript();
}
};
class npc_spirit_warden : public CreatureScript
{
public:
@@ -3526,14 +3291,9 @@ public:
}
};
class spell_the_lich_king_dark_hunger : public SpellScriptLoader
class spell_the_lich_king_dark_hunger_aura : public AuraScript
{
public:
spell_the_lich_king_dark_hunger() : SpellScriptLoader("spell_the_lich_king_dark_hunger") { }
class spell_the_lich_king_dark_hunger_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_dark_hunger_AuraScript);
PrepareAuraScript(spell_the_lich_king_dark_hunger_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -3557,24 +3317,18 @@ public:
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_the_lich_king_dark_hunger_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
OnEffectProc += AuraEffectProcFn(spell_the_lich_king_dark_hunger_aura::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
}
};
AuraScript* GetAuraScript() const override
class spell_the_lich_king_soul_rip_aura : public AuraScript
{
return new spell_the_lich_king_dark_hunger_AuraScript();
PrepareAuraScript(spell_the_lich_king_soul_rip_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SOUL_RIP_DAMAGE, 5000 });
}
};
class spell_the_lich_king_soul_rip : public SpellScriptLoader
{
public:
spell_the_lich_king_soul_rip() : SpellScriptLoader("spell_the_lich_king_soul_rip") { }
class spell_the_lich_king_soul_rip_AuraScript : public AuraScript
{
PrepareAuraScript(spell_the_lich_king_soul_rip_AuraScript);
void OnPeriodic(AuraEffect const* aurEff)
{
@@ -3586,13 +3340,7 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_soul_rip_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_the_lich_king_soul_rip_AuraScript();
OnEffectPeriodic += AuraEffectPeriodicFn(spell_the_lich_king_soul_rip_aura::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
@@ -3617,14 +3365,9 @@ public:
}
};
class spell_the_lich_king_summon_spirit_bomb : public SpellScriptLoader
class spell_the_lich_king_summon_spirit_bomb : public SpellScript
{
public:
spell_the_lich_king_summon_spirit_bomb() : SpellScriptLoader("spell_the_lich_king_summon_spirit_bomb") { }
class spell_the_lich_king_summon_spirit_bomb_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_summon_spirit_bomb_SpellScript);
PrepareSpellScript(spell_the_lich_king_summon_spirit_bomb);
void HandleScript(SpellEffIndex effIndex)
{
@@ -3634,13 +3377,7 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_summon_spirit_bomb_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_the_lich_king_summon_spirit_bomb_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_the_lich_king_summon_spirit_bomb::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
@@ -3701,14 +3438,9 @@ public:
}
};
class spell_the_lich_king_trigger_vile_spirit : public SpellScriptLoader
class spell_the_lich_king_trigger_vile_spirit : public SpellScript
{
public:
spell_the_lich_king_trigger_vile_spirit() : SpellScriptLoader("spell_the_lich_king_trigger_vile_spirit") { }
class spell_the_lich_king_trigger_vile_spirit_SpellScript : public SpellScript
{
PrepareSpellScript(spell_the_lich_king_trigger_vile_spirit_SpellScript);
PrepareSpellScript(spell_the_lich_king_trigger_vile_spirit);
void ActivateSpirit()
{
@@ -3724,13 +3456,7 @@ public:
void Register() override
{
OnHit += SpellHitFn(spell_the_lich_king_trigger_vile_spirit_SpellScript::ActivateSpirit);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_the_lich_king_trigger_vile_spirit_SpellScript();
OnHit += SpellHitFn(spell_the_lich_king_trigger_vile_spirit::ActivateSpirit);
}
};
@@ -3803,47 +3529,47 @@ void AddSC_boss_the_lich_king()
{
new boss_the_lich_king();
new npc_tirion_fordring_tft();
new spell_the_lich_king_quake();
new spell_the_lich_king_jump();
new spell_the_lich_king_jump_remove_aura();
new spell_trigger_spell_from_caster("spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL);
new spell_the_lich_king_play_movie();
RegisterSpellScript(spell_the_lich_king_quake);
RegisterSpellScript(spell_the_lich_king_jump);
RegisterSpellScript(spell_the_lich_king_jump_remove_aura);
RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_the_lich_king_mass_resurrection", SPELL_MASS_RESURRECTION_REAL);
RegisterSpellScript(spell_the_lich_king_play_movie);
// fight stuff below
new npc_shambling_horror_icc();
new spell_the_lich_king_infest();
new spell_the_lich_king_necrotic_plague();
new spell_the_lich_king_necrotic_plague_jump();
new spell_the_lich_king_shadow_trap_visual();
new spell_the_lich_king_shadow_trap_periodic();
new spell_the_lich_king_ice_burst_target_search();
RegisterSpellScript(spell_the_lich_king_infest_aura);
RegisterSpellScript(spell_the_lich_king_necrotic_plague_aura);
RegisterSpellAndAuraScriptPair(spell_the_lich_king_necrotic_plague_jump, spell_the_lich_king_necrotic_plague_jump_aura);
RegisterSpellScript(spell_the_lich_king_shadow_trap_visual_aura);
RegisterSpellScript(spell_the_lich_king_shadow_trap_periodic);
RegisterSpellScript(spell_the_lich_king_ice_burst_target_search);
new npc_icc_ice_sphere();
new spell_the_lich_king_raging_spirit();
RegisterSpellScript(spell_the_lich_king_raging_spirit);
new npc_raging_spirit();
new spell_the_lich_king_defile();
new spell_the_lich_king_soul_reaper();
RegisterSpellScript(spell_the_lich_king_defile);
RegisterSpellScript(spell_the_lich_king_soul_reaper_aura);
new npc_valkyr_shadowguard();
new spell_the_lich_king_summon_into_air();
new spell_the_lich_king_teleport_to_frostmourne_hc();
new spell_the_lich_king_valkyr_target_search();
new spell_the_lich_king_cast_back_to_caster();
new spell_the_lich_king_life_siphon();
new spell_the_lich_king_vile_spirits();
new spell_the_lich_king_vile_spirits_visual();
new spell_the_lich_king_vile_spirit_move_target_search();
new spell_the_lich_king_vile_spirit_damage_target_search();
new spell_the_lich_king_harvest_soul();
RegisterSpellScript(spell_the_lich_king_summon_into_air);
RegisterSpellScript(spell_the_lich_king_teleport_to_frostmourne_hc);
RegisterSpellScript(spell_the_lich_king_valkyr_target_search);
RegisterSpellScript(spell_the_lich_king_cast_back_to_caster);
RegisterSpellScript(spell_the_lich_king_life_siphon);
RegisterSpellScript(spell_the_lich_king_vile_spirits_aura);
RegisterSpellScript(spell_the_lich_king_vile_spirits_visual);
RegisterSpellScript(spell_the_lich_king_vile_spirit_move_target_search);
RegisterSpellScript(spell_the_lich_king_vile_spirit_damage_target_search);
RegisterSpellScript(spell_the_lich_king_harvest_soul_aura);
new npc_strangulate_vehicle();
new npc_terenas_menethil();
new spell_the_lich_king_lights_favor();
new spell_the_lich_king_restore_soul();
RegisterSpellScript(spell_the_lich_king_lights_favor_aura);
RegisterSpellScript(spell_the_lich_king_restore_soul);
new npc_spirit_warden();
new spell_the_lich_king_dark_hunger();
new spell_the_lich_king_soul_rip();
RegisterSpellScript(spell_the_lich_king_dark_hunger_aura);
RegisterSpellScript(spell_the_lich_king_soul_rip_aura);
new npc_icc_lk_checktarget();
new spell_the_lich_king_summon_spirit_bomb();
RegisterSpellScript(spell_the_lich_king_summon_spirit_bomb);
new npc_lk_spirit_bomb();
new spell_the_lich_king_trigger_vile_spirit();
RegisterSpellScript(spell_the_lich_king_trigger_vile_spirit);
new npc_lk_wicked_spirit();
new achievement_been_waiting_long_time();
new achievement_neck_deep_in_vile();
@@ -1138,14 +1138,9 @@ public:
}
};
class spell_dreamwalker_summon_portal : public SpellScriptLoader
class spell_dreamwalker_summon_portal : public SpellScript
{
public:
spell_dreamwalker_summon_portal() : SpellScriptLoader("spell_dreamwalker_summon_portal") { }
class spell_dreamwalker_summon_portal_SpellScript : public SpellScript
{
PrepareSpellScript(spell_dreamwalker_summon_portal_SpellScript);
PrepareSpellScript(spell_dreamwalker_summon_portal);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1166,24 +1161,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_portal::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_dreamwalker_twisted_nightmares : public SpellScript
{
return new spell_dreamwalker_summon_portal_SpellScript();
}
};
class spell_dreamwalker_twisted_nightmares : public SpellScriptLoader
{
public:
spell_dreamwalker_twisted_nightmares() : SpellScriptLoader("spell_dreamwalker_twisted_nightmares") { }
class spell_dreamwalker_twisted_nightmares_SpellScript : public SpellScript
{
PrepareSpellScript(spell_dreamwalker_twisted_nightmares_SpellScript);
PrepareSpellScript(spell_dreamwalker_twisted_nightmares);
void HandleScript(SpellEffIndex effIndex)
{
@@ -1197,24 +1181,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_twisted_nightmares_SpellScript::HandleScript, EFFECT_2, SPELL_EFFECT_FORCE_CAST);
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_twisted_nightmares::HandleScript, EFFECT_2, SPELL_EFFECT_FORCE_CAST);
}
};
SpellScript* GetSpellScript() const override
class spell_dreamwalker_nightmare_cloud_aura : public AuraScript
{
return new spell_dreamwalker_twisted_nightmares_SpellScript();
}
};
class spell_dreamwalker_nightmare_cloud : public SpellScriptLoader
{
public:
spell_dreamwalker_nightmare_cloud() : SpellScriptLoader("spell_dreamwalker_nightmare_cloud") { }
class spell_dreamwalker_nightmare_cloud_AuraScript : public AuraScript
{
PrepareAuraScript(spell_dreamwalker_nightmare_cloud_AuraScript);
PrepareAuraScript(spell_dreamwalker_nightmare_cloud_aura);
bool Load() override
{
@@ -1230,26 +1203,16 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_nightmare_cloud_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_nightmare_cloud_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
private:
InstanceScript* _instance;
};
AuraScript* GetAuraScript() const override
class spell_dreamwalker_mana_void_aura : public AuraScript
{
return new spell_dreamwalker_nightmare_cloud_AuraScript();
}
};
class spell_dreamwalker_mana_void : public SpellScriptLoader
{
public:
spell_dreamwalker_mana_void() : SpellScriptLoader("spell_dreamwalker_mana_void") { }
class spell_dreamwalker_mana_void_AuraScript : public AuraScript
{
PrepareAuraScript(spell_dreamwalker_mana_void_AuraScript);
PrepareAuraScript(spell_dreamwalker_mana_void_aura);
void PeriodicTick(AuraEffect const* aurEff)
{
@@ -1262,24 +1225,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_mana_void_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_mana_void_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_dreamwalker_decay_periodic_timer_aura : public AuraScript
{
return new spell_dreamwalker_mana_void_AuraScript();
}
};
class spell_dreamwalker_decay_periodic_timer : public SpellScriptLoader
{
public:
spell_dreamwalker_decay_periodic_timer() : SpellScriptLoader("spell_dreamwalker_decay_periodic_timer") { }
class spell_dreamwalker_decay_periodic_timer_AuraScript : public AuraScript
{
PrepareAuraScript(spell_dreamwalker_decay_periodic_timer_AuraScript);
PrepareAuraScript(spell_dreamwalker_decay_periodic_timer_aura);
bool Load() override
{
@@ -1298,26 +1250,16 @@ public:
void Register() override
{
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dreamwalker_decay_periodic_timer_AuraScript::DecayPeriodicTimer, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_dreamwalker_decay_periodic_timer_aura::DecayPeriodicTimer, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
private:
int32 _decayRate;
};
AuraScript* GetAuraScript() const override
class spell_dreamwalker_summoner : public SpellScript
{
return new spell_dreamwalker_decay_periodic_timer_AuraScript();
}
};
class spell_dreamwalker_summoner : public SpellScriptLoader
{
public:
spell_dreamwalker_summoner() : SpellScriptLoader("spell_dreamwalker_summoner") { }
class spell_dreamwalker_summoner_SpellScript : public SpellScript
{
PrepareSpellScript(spell_dreamwalker_summoner_SpellScript);
PrepareSpellScript(spell_dreamwalker_summoner);
bool Load() override
{
@@ -1354,25 +1296,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dreamwalker_summoner_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summoner_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dreamwalker_summoner::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summoner::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
SpellScript* GetSpellScript() const override
class spell_dreamwalker_summon_suppresser_aura : public AuraScript
{
return new spell_dreamwalker_summoner_SpellScript();
PrepareAuraScript(spell_dreamwalker_summon_suppresser_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_SUMMON_SUPPRESSER });
}
};
class spell_dreamwalker_summon_suppresser : public SpellScriptLoader
{
public:
spell_dreamwalker_summon_suppresser() : SpellScriptLoader("spell_dreamwalker_summon_suppresser") { }
class spell_dreamwalker_summon_suppresser_AuraScript : public AuraScript
{
PrepareAuraScript(spell_dreamwalker_summon_suppresser_AuraScript);
void PeriodicTick(AuraEffect const* /*aurEff*/)
{
@@ -1401,24 +1337,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_summon_suppresser_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dreamwalker_summon_suppresser_aura::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_dreamwalker_summon_suppresser_effect : public SpellScript
{
return new spell_dreamwalker_summon_suppresser_AuraScript();
}
};
class spell_dreamwalker_summon_suppresser_effect : public SpellScriptLoader
{
public:
spell_dreamwalker_summon_suppresser_effect() : SpellScriptLoader("spell_dreamwalker_summon_suppresser_effect") { }
class spell_dreamwalker_summon_suppresser_effect_SpellScript : public SpellScript
{
PrepareSpellScript(spell_dreamwalker_summon_suppresser_effect_SpellScript);
PrepareSpellScript(spell_dreamwalker_summon_suppresser_effect);
bool Load() override
{
@@ -1438,24 +1363,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_suppresser_effect_SpellScript::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
OnEffectHitTarget += SpellEffectFn(spell_dreamwalker_summon_suppresser_effect::HandleForceCast, EFFECT_0, SPELL_EFFECT_FORCE_CAST);
}
};
SpellScript* GetSpellScript() const override
class spell_valithria_suppression_aura : public AuraScript
{
return new spell_dreamwalker_summon_suppresser_effect_SpellScript();
}
};
class spell_valithria_suppression : public SpellScriptLoader
{
public:
spell_valithria_suppression() : SpellScriptLoader("spell_valithria_suppression") { }
class spell_valithria_suppression_AuraScript : public AuraScript
{
PrepareAuraScript(spell_valithria_suppression_AuraScript);
PrepareAuraScript(spell_valithria_suppression_aura);
void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
@@ -1496,14 +1410,8 @@ public:
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_valithria_suppression_AuraScript::OnApply, EFFECT_0, SPELL_AURA_MOD_HEALING_PCT, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_valithria_suppression_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_HEALING_PCT, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_valithria_suppression_AuraScript();
AfterEffectApply += AuraEffectApplyFn(spell_valithria_suppression_aura::OnApply, EFFECT_0, SPELL_AURA_MOD_HEALING_PCT, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_valithria_suppression_aura::OnRemove, EFFECT_0, SPELL_AURA_MOD_HEALING_PCT, AURA_EFFECT_HANDLE_REAL);
}
};
@@ -1531,15 +1439,15 @@ void AddSC_boss_valithria_dreamwalker()
new npc_blistering_zombie();
new npc_gluttonous_abomination();
new spell_dreamwalker_summon_portal();
new spell_dreamwalker_twisted_nightmares();
new spell_dreamwalker_nightmare_cloud();
new spell_dreamwalker_mana_void();
new spell_dreamwalker_decay_periodic_timer();
new spell_dreamwalker_summoner();
new spell_dreamwalker_summon_suppresser();
new spell_dreamwalker_summon_suppresser_effect();
new spell_valithria_suppression();
RegisterSpellScript(spell_dreamwalker_summon_portal);
RegisterSpellScript(spell_dreamwalker_twisted_nightmares);
RegisterSpellScript(spell_dreamwalker_nightmare_cloud_aura);
RegisterSpellScript(spell_dreamwalker_mana_void_aura);
RegisterSpellScript(spell_dreamwalker_decay_periodic_timer_aura);
RegisterSpellScript(spell_dreamwalker_summoner);
RegisterSpellScript(spell_dreamwalker_summon_suppresser_aura);
RegisterSpellScript(spell_dreamwalker_summon_suppresser_effect);
RegisterSpellScript(spell_valithria_suppression_aura);
new achievement_portal_jockey();
}
@@ -1890,14 +1890,9 @@ public:
}
};
class spell_icc_stoneform : public SpellScriptLoader
class spell_icc_stoneform_aura : public AuraScript
{
public:
spell_icc_stoneform() : SpellScriptLoader("spell_icc_stoneform") { }
class spell_icc_stoneform_AuraScript : public AuraScript
{
PrepareAuraScript(spell_icc_stoneform_AuraScript);
PrepareAuraScript(spell_icc_stoneform_aura);
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -1923,25 +1918,19 @@ public:
void Register() override
{
OnEffectApply += AuraEffectApplyFn(spell_icc_stoneform_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_icc_stoneform_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectApply += AuraEffectApplyFn(spell_icc_stoneform_aura::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_icc_stoneform_aura::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_icc_sprit_alarm : public SpellScript
{
return new spell_icc_stoneform_AuraScript();
PrepareSpellScript(spell_icc_sprit_alarm);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_STONEFORM });
}
};
class spell_icc_sprit_alarm : public SpellScriptLoader
{
public:
spell_icc_sprit_alarm() : SpellScriptLoader("spell_icc_sprit_alarm") { }
class spell_icc_sprit_alarm_SpellScript : public SpellScript
{
PrepareSpellScript(spell_icc_sprit_alarm_SpellScript);
void HandleEvent(SpellEffIndex effIndex)
{
@@ -1987,24 +1976,13 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_icc_sprit_alarm_SpellScript::HandleEvent, EFFECT_2, SPELL_EFFECT_SEND_EVENT);
OnEffectHit += SpellEffectFn(spell_icc_sprit_alarm::HandleEvent, EFFECT_2, SPELL_EFFECT_SEND_EVENT);
}
};
SpellScript* GetSpellScript() const override
class spell_icc_geist_alarm : public SpellScript
{
return new spell_icc_sprit_alarm_SpellScript();
}
};
class spell_icc_geist_alarm : public SpellScriptLoader
{
public:
spell_icc_geist_alarm() : SpellScriptLoader("spell_icc_geist_alarm") { }
class spell_icc_geist_alarm_SpellScript : public SpellScript
{
PrepareSpellScript(spell_icc_geist_alarm_SpellScript);
PrepareSpellScript(spell_icc_geist_alarm);
void HandleEvent(SpellEffIndex effIndex)
{
@@ -2046,24 +2024,18 @@ public:
void Register() override
{
OnEffectHit += SpellEffectFn(spell_icc_geist_alarm_SpellScript::HandleEvent, EFFECT_2, SPELL_EFFECT_SEND_EVENT);
OnEffectHit += SpellEffectFn(spell_icc_geist_alarm::HandleEvent, EFFECT_2, SPELL_EFFECT_SEND_EVENT);
}
};
SpellScript* GetSpellScript() const override
class spell_frost_giant_death_plague : public SpellScript
{
return new spell_icc_geist_alarm_SpellScript();
PrepareSpellScript(spell_frost_giant_death_plague);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DEATH_PLAGUE_AURA, SPELL_DEATH_PLAGUE_KILL, SPELL_RECENTLY_INFECTED });
}
};
class spell_frost_giant_death_plague : public SpellScriptLoader
{
public:
spell_frost_giant_death_plague() : SpellScriptLoader("spell_frost_giant_death_plague") { }
class spell_frost_giant_death_plague_SpellScript : public SpellScript
{
PrepareSpellScript(spell_frost_giant_death_plague_SpellScript);
// First effect
void CountTargets(std::list<WorldObject*>& targets)
@@ -2095,25 +2067,14 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frost_giant_death_plague_SpellScript::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnEffectHitTarget += SpellEffectFn(spell_frost_giant_death_plague_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_frost_giant_death_plague::CountTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY);
OnEffectHitTarget += SpellEffectFn(spell_frost_giant_death_plague::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};
SpellScript* GetSpellScript() const override
class spell_icc_harvest_blight_specimen : public SpellScript
{
return new spell_frost_giant_death_plague_SpellScript();
}
};
class spell_icc_harvest_blight_specimen : public SpellScriptLoader
{
public:
spell_icc_harvest_blight_specimen() : SpellScriptLoader("spell_icc_harvest_blight_specimen") { }
class spell_icc_harvest_blight_specimen_SpellScript : public SpellScript
{
PrepareSpellScript(spell_icc_harvest_blight_specimen_SpellScript);
PrepareSpellScript(spell_icc_harvest_blight_specimen);
void HandleScript(SpellEffIndex effIndex)
{
@@ -2128,14 +2089,8 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_icc_harvest_blight_specimen_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_icc_harvest_blight_specimen_SpellScript::HandleQuestComplete, EFFECT_1, SPELL_EFFECT_QUEST_COMPLETE);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_icc_harvest_blight_specimen_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_icc_harvest_blight_specimen::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_icc_harvest_blight_specimen::HandleQuestComplete, EFFECT_1, SPELL_EFFECT_QUEST_COMPLETE);
}
};
@@ -2150,14 +2105,9 @@ public:
}
};
class spell_svalna_revive_champion : public SpellScriptLoader
class spell_svalna_revive_champion : public SpellScript
{
public:
spell_svalna_revive_champion() : SpellScriptLoader("spell_svalna_revive_champion") { }
class spell_svalna_revive_champion_SpellScript : public SpellScript
{
PrepareSpellScript(spell_svalna_revive_champion_SpellScript);
PrepareSpellScript(spell_svalna_revive_champion);
void RemoveAliveTarget(std::list<WorldObject*>& targets)
{
@@ -2180,25 +2130,19 @@ public:
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_svalna_revive_champion_SpellScript::RemoveAliveTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHit += SpellEffectFn(spell_svalna_revive_champion_SpellScript::Land, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_svalna_revive_champion::RemoveAliveTarget, EFFECT_0, TARGET_UNIT_DEST_AREA_ENTRY);
OnEffectHit += SpellEffectFn(spell_svalna_revive_champion::Land, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_svalna_remove_spear : public SpellScript
{
return new spell_svalna_revive_champion_SpellScript();
PrepareSpellScript(spell_svalna_remove_spear);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_IMPALING_SPEAR });
}
};
class spell_svalna_remove_spear : public SpellScriptLoader
{
public:
spell_svalna_remove_spear() : SpellScriptLoader("spell_svalna_remove_spear") { }
class spell_svalna_remove_spear_SpellScript : public SpellScript
{
PrepareSpellScript(spell_svalna_remove_spear_SpellScript);
void HandleScript(SpellEffIndex effIndex)
{
@@ -2213,24 +2157,13 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_svalna_remove_spear_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_svalna_remove_spear::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_icc_soul_missile : public SpellScript
{
return new spell_svalna_remove_spear_SpellScript();
}
};
class spell_icc_soul_missile : public SpellScriptLoader
{
public:
spell_icc_soul_missile() : SpellScriptLoader("spell_icc_soul_missile") { }
class spell_icc_soul_missile_SpellScript : public SpellScript
{
PrepareSpellScript(spell_icc_soul_missile_SpellScript);
PrepareSpellScript(spell_icc_soul_missile);
void RelocateDest()
{
@@ -2240,13 +2173,7 @@ public:
void Register() override
{
OnCast += SpellCastFn(spell_icc_soul_missile_SpellScript::RelocateDest);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_icc_soul_missile_SpellScript();
OnCast += SpellCastFn(spell_icc_soul_missile::RelocateDest);
}
};
@@ -2346,14 +2273,14 @@ public:
// pussywizard below:
class spell_icc_web_wrap : public SpellScriptLoader
class spell_icc_web_wrap_aura : public AuraScript
{
public:
spell_icc_web_wrap() : SpellScriptLoader("spell_icc_web_wrap") { }
PrepareAuraScript(spell_icc_web_wrap_aura);
class spell_icc_web_wrap_AuraScript : public AuraScript
bool Validate(SpellInfo const* /*spellInfo*/) override
{
PrepareAuraScript(spell_icc_web_wrap_AuraScript);
return ValidateSpellInfo({ 71010 });
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
@@ -2364,24 +2291,18 @@ public:
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_icc_web_wrap_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_MOD_ROOT, AURA_EFFECT_HANDLE_REAL);
OnEffectRemove += AuraEffectRemoveFn(spell_icc_web_wrap_aura::OnRemove, EFFECT_0, SPELL_AURA_MOD_ROOT, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
class spell_icc_dark_reckoning_aura : public AuraScript
{
return new spell_icc_web_wrap_AuraScript();
PrepareAuraScript(spell_icc_dark_reckoning_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 69482 });
}
};
class spell_icc_dark_reckoning : public SpellScriptLoader
{
public:
spell_icc_dark_reckoning() : SpellScriptLoader("spell_icc_dark_reckoning") { }
class spell_icc_dark_reckoning_AuraScript : public AuraScript
{
PrepareAuraScript(spell_icc_dark_reckoning_AuraScript);
void OnPeriodic(AuraEffect const* /*aurEff*/)
{
@@ -2391,24 +2312,13 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_icc_dark_reckoning_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_icc_dark_reckoning_aura::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
}
};
AuraScript* GetAuraScript() const override
class spell_stinky_precious_decimate : public SpellScript
{
return new spell_icc_dark_reckoning_AuraScript();
}
};
class spell_stinky_precious_decimate : public SpellScriptLoader
{
public:
spell_stinky_precious_decimate() : SpellScriptLoader("spell_stinky_precious_decimate") { }
class spell_stinky_precious_decimate_SpellScript : public SpellScript
{
PrepareSpellScript(spell_stinky_precious_decimate_SpellScript);
PrepareSpellScript(spell_stinky_precious_decimate);
void HandleScript(SpellEffIndex /*effIndex*/)
{
@@ -2421,24 +2331,18 @@ public:
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_stinky_precious_decimate_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_stinky_precious_decimate::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
class spell_icc_yf_frozen_orb_aura : public AuraScript
{
return new spell_stinky_precious_decimate_SpellScript();
PrepareAuraScript(spell_icc_yf_frozen_orb_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 71285 });
}
};
class spell_icc_yf_frozen_orb : public SpellScriptLoader
{
public:
spell_icc_yf_frozen_orb() : SpellScriptLoader("spell_icc_yf_frozen_orb") { }
class spell_icc_yf_frozen_orb_AuraScript : public AuraScript
{
PrepareAuraScript(spell_icc_yf_frozen_orb_AuraScript)
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
@@ -2450,24 +2354,18 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_icc_yf_frozen_orb_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_icc_yf_frozen_orb_aura::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};
AuraScript* GetAuraScript() const override
class spell_icc_yh_volley_aura : public AuraScript
{
return new spell_icc_yf_frozen_orb_AuraScript();
PrepareAuraScript(spell_icc_yh_volley_aura);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 41089 });
}
};
class spell_icc_yh_volley : public SpellScriptLoader
{
public:
spell_icc_yh_volley() : SpellScriptLoader("spell_icc_yh_volley") { }
class spell_icc_yh_volley_AuraScript : public AuraScript
{
PrepareAuraScript(spell_icc_yh_volley_AuraScript)
void HandleEffectPeriodic(AuraEffect const* aurEff)
{
@@ -2484,24 +2382,18 @@ public:
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_icc_yh_volley_AuraScript::HandleEffectPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE);
OnEffectPeriodic += AuraEffectPeriodicFn(spell_icc_yh_volley_aura::HandleEffectPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE);
}
};
AuraScript* GetAuraScript() const override
class spell_icc_yd_summon_undead : public SpellScript
{
return new spell_icc_yh_volley_AuraScript();
PrepareSpellScript(spell_icc_yd_summon_undead);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 71302 });
}
};
class spell_icc_yd_summon_undead : public SpellScriptLoader
{
public:
spell_icc_yd_summon_undead() : SpellScriptLoader("spell_icc_yd_summon_undead") { }
class spell_icc_yd_summon_undead_SpellScript : public SpellScript
{
PrepareSpellScript(spell_icc_yd_summon_undead_SpellScript);
void HandleDummyLaunch(SpellEffIndex /*effIndex*/)
{
@@ -2513,24 +2405,18 @@ public:
void Register() override
{
OnEffectLaunch += SpellEffectFn(spell_icc_yd_summon_undead_SpellScript::HandleDummyLaunch, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectLaunch += SpellEffectFn(spell_icc_yd_summon_undead::HandleDummyLaunch, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
SpellScript* GetSpellScript() const override
class spell_icc_shattered_bones : public SpellScript
{
return new spell_icc_yd_summon_undead_SpellScript();
PrepareSpellScript(spell_icc_shattered_bones);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ 70963 });
}
};
class spell_icc_shattered_bones : public SpellScriptLoader
{
public:
spell_icc_shattered_bones() : SpellScriptLoader("spell_icc_shattered_bones") { }
class spell_icc_shattered_bones_SpellScript : public SpellScript
{
PrepareSpellScript(spell_icc_shattered_bones_SpellScript);
void HandleDummy()
{
@@ -2540,13 +2426,7 @@ public:
void Register() override
{
AfterCast += SpellCastFn(spell_icc_shattered_bones_SpellScript::HandleDummy);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_icc_shattered_bones_SpellScript();
AfterCast += SpellCastFn(spell_icc_shattered_bones::HandleDummy);
}
};
@@ -3780,28 +3660,29 @@ void AddSC_icecrown_citadel()
new npc_frostwing_vrykul();
new npc_impaling_spear();
new npc_arthas_teleport_visual();
new spell_icc_stoneform();
new spell_icc_sprit_alarm();
new spell_icc_geist_alarm();
new spell_frost_giant_death_plague();
new spell_icc_harvest_blight_specimen();
new spell_trigger_spell_from_caster("spell_svalna_caress_of_death", SPELL_IMPALING_SPEAR_KILL);
new spell_svalna_revive_champion();
new spell_svalna_remove_spear();
new spell_icc_soul_missile();
RegisterSpellScript(spell_icc_stoneform_aura);
RegisterSpellScript(spell_icc_sprit_alarm);
RegisterSpellScript(spell_icc_geist_alarm);
RegisterSpellScript(spell_frost_giant_death_plague);
RegisterSpellScript(spell_icc_harvest_blight_specimen);
RegisterSpellScriptWithArgs(spell_trigger_spell_from_caster, "spell_svalna_caress_of_death", SPELL_IMPALING_SPEAR_KILL);
RegisterSpellScript(spell_svalna_revive_champion);
RegisterSpellScript(spell_svalna_remove_spear);
RegisterSpellScript(spell_icc_soul_missile);
new at_icc_saurfang_portal();
new at_icc_shutdown_traps();
new at_icc_start_blood_quickening();
new at_icc_start_frostwing_gauntlet();
// pussywizard below:
new spell_icc_web_wrap();
new spell_icc_dark_reckoning();
new spell_stinky_precious_decimate();
new spell_icc_yf_frozen_orb();
new spell_icc_yh_volley();
new spell_icc_yd_summon_undead();
new spell_icc_shattered_bones();
RegisterSpellScript(spell_icc_web_wrap_aura);
RegisterSpellScript(spell_icc_dark_reckoning_aura);
RegisterSpellScript(spell_stinky_precious_decimate);
RegisterSpellScript(spell_icc_yf_frozen_orb_aura);
RegisterSpellScript(spell_icc_yh_volley_aura);
RegisterSpellScript(spell_icc_yd_summon_undead);
RegisterSpellScript(spell_icc_shattered_bones);
new npc_icc_skybreaker_hierophant();
new npc_icc_skybreaker_marksman();
new npc_icc_skybreaker_vicar();
@@ -591,17 +591,12 @@ enum ItemIds
ITEM_GOBLIN_ROCKET_PACK = 49278
};
class spell_trigger_spell_from_caster : public SpellScriptLoader
class spell_trigger_spell_from_caster : public SpellScript
{
public:
spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId) : SpellScriptLoader(scriptName), _triggerId(triggerId) { }
class spell_trigger_spell_from_caster_SpellScript : public SpellScript
{
PrepareSpellScript(spell_trigger_spell_from_caster_SpellScript);
PrepareSpellScript(spell_trigger_spell_from_caster);
public:
spell_trigger_spell_from_caster_SpellScript(uint32 triggerId) : SpellScript(), _triggerId(triggerId) { }
spell_trigger_spell_from_caster(uint32 triggerId) : SpellScript(), _triggerId(triggerId) { }
bool Validate(SpellInfo const* /*spell*/) override
{
@@ -615,15 +610,7 @@ public:
void Register() override
{
AfterHit += SpellHitFn(spell_trigger_spell_from_caster_SpellScript::HandleTrigger);
}
uint32 _triggerId;
};
SpellScript* GetSpellScript() const override
{
return new spell_trigger_spell_from_caster_SpellScript(_triggerId);
AfterHit += SpellHitFn(spell_trigger_spell_from_caster::HandleTrigger);
}
private: