diff options
| author | offl <11556157+offl@users.noreply.github.com> | 2022-06-22 22:37:52 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-22 22:37:52 +0300 |
| commit | 3808e614d9760a2588fec0c1b0b4c30feda36dcc (patch) | |
| tree | d784e9226c539c479cef16273cb38574f9a433e9 /src/server/scripts/Spells | |
| parent | ffcc976524e3b1ba99023e40e7fc9cce4d01a2f7 (diff) | |
Scripts/Spells: Get rid of several DB spell scripts (#28048)
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 57 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 65 |
2 files changed, 122 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 23e210a58cc..7e37aadcce7 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -1271,6 +1271,32 @@ class spell_item_heartpierce : public SpellScriptLoader } }; +enum HourglassSand +{ + SPELL_BROOD_AFFLICTION_BRONZE = 23170 +}; + +// 23645 - Hourglass Sand +class spell_item_hourglass_sand : public SpellScript +{ + PrepareSpellScript(spell_item_hourglass_sand); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_BROOD_AFFLICTION_BRONZE }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + GetCaster()->RemoveAurasDueToSpell(SPELL_BROOD_AFFLICTION_BRONZE); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_item_hourglass_sand::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + // 40971 - Bonus Healing (Crystal Spire of Karabor) class spell_item_crystal_spire_of_karabor : public AuraScript { @@ -2937,6 +2963,35 @@ class spell_item_impale_leviroth : public SpellScript } }; +enum LifegivingGem +{ + SPELL_GIFT_OF_LIFE_1 = 23782, + SPELL_GIFT_OF_LIFE_2 = 23783 +}; + +// 23725 - Gift of Life +class spell_item_lifegiving_gem : public SpellScript +{ + PrepareSpellScript(spell_item_lifegiving_gem); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_GIFT_OF_LIFE_1, SPELL_GIFT_OF_LIFE_2 }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_GIFT_OF_LIFE_1, true); + caster->CastSpell(caster, SPELL_GIFT_OF_LIFE_2, true); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_item_lifegiving_gem::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + enum NitroBoosts { SPELL_NITRO_BOOSTS_SUCCESS = 54861, @@ -4178,6 +4233,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_healing_touch_refund); new spell_item_heartpierce<SPELL_INVIGORATION_ENERGY, SPELL_INVIGORATION_MANA, SPELL_INVIGORATION_RAGE, SPELL_INVIGORATION_RP>("spell_item_heartpierce"); new spell_item_heartpierce<SPELL_INVIGORATION_ENERGY_HERO, SPELL_INVIGORATION_MANA_HERO, SPELL_INVIGORATION_RAGE_HERO, SPELL_INVIGORATION_RP_HERO>("spell_item_heartpierce_hero"); + RegisterSpellScript(spell_item_hourglass_sand); RegisterSpellScript(spell_item_crystal_spire_of_karabor); RegisterSpellScript(spell_item_make_a_wish); RegisterSpellScript(spell_item_mark_of_conquest); @@ -4222,6 +4278,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_demon_broiled_surprise); RegisterSpellScript(spell_item_complete_raptor_capture); RegisterSpellScript(spell_item_impale_leviroth); + RegisterSpellScript(spell_item_lifegiving_gem); RegisterSpellScript(spell_item_nitro_boosts); RegisterSpellScript(spell_item_nitro_boosts_backfire); RegisterSpellScript(spell_item_rocket_boots); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index f2f614b4481..b1a1d35d781 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1838,6 +1838,70 @@ class spell_quest_portal_with_condition : public SpellScript } }; +enum TributeSpells +{ + SPELL_GROMS_TROLL_TRIBUTE = 24101, + SPELL_GROMS_TAUREN_TRIBUTE = 24102, + SPELL_GROMS_UNDEAD_TRIBUTE = 24103, + SPELL_GROMS_ORC_TRIBUTE = 24104, + SPELL_GROMS_BLOODELF_TRIBUTE = 69530, + SPELL_UTHERS_HUMAN_TRIBUTE = 24105, + SPELL_UTHERS_GNOME_TRIBUTE = 24106, + SPELL_UTHERS_DWARF_TRIBUTE = 24107, + SPELL_UTHERS_NIGHTELF_TRIBUTE = 24108, + SPELL_UTHERS_DRAENEI_TRIBUTE = 69533 +}; + +// 24194 - Uther's Tribute +// 24195 - Grom's Tribute +class spell_quest_uther_grom_tribute : public SpellScript +{ + PrepareSpellScript(spell_quest_uther_grom_tribute); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_GROMS_TROLL_TRIBUTE, SPELL_UTHERS_HUMAN_TRIBUTE, + SPELL_GROMS_TAUREN_TRIBUTE, SPELL_UTHERS_GNOME_TRIBUTE, + SPELL_GROMS_UNDEAD_TRIBUTE, SPELL_UTHERS_DWARF_TRIBUTE, + SPELL_GROMS_ORC_TRIBUTE, SPELL_UTHERS_NIGHTELF_TRIBUTE, + SPELL_GROMS_BLOODELF_TRIBUTE, SPELL_UTHERS_DRAENEI_TRIBUTE + }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + Player* caster = GetCaster()->ToPlayer(); + if (!caster) + return; + + uint32 spell = 0; + switch (caster->GetRace()) + { + case RACE_TROLL: spell = SPELL_GROMS_TROLL_TRIBUTE; break; + case RACE_TAUREN: spell = SPELL_GROMS_TAUREN_TRIBUTE; break; + case RACE_UNDEAD_PLAYER: spell = SPELL_GROMS_UNDEAD_TRIBUTE; break; + case RACE_ORC: spell = SPELL_GROMS_ORC_TRIBUTE; break; + case RACE_BLOODELF: spell = SPELL_GROMS_BLOODELF_TRIBUTE; break; + case RACE_HUMAN: spell = SPELL_UTHERS_HUMAN_TRIBUTE; break; + case RACE_GNOME: spell = SPELL_UTHERS_GNOME_TRIBUTE; break; + case RACE_DWARF: spell = SPELL_UTHERS_DWARF_TRIBUTE; break; + case RACE_NIGHTELF: spell = SPELL_UTHERS_NIGHTELF_TRIBUTE; break; + case RACE_DRAENEI: spell = SPELL_UTHERS_DRAENEI_TRIBUTE; break; + default: break; + } + + if (spell) + caster->CastSpell(caster, spell); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_quest_uther_grom_tribute::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); @@ -1897,4 +1961,5 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q11306_failed_mix_43378); RegisterSpellScript(spell_quest_taming_the_beast); RegisterSpellScript(spell_quest_portal_with_condition); + RegisterSpellScript(spell_quest_uther_grom_tribute); } |
