aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-06-22 22:37:52 +0300
committerGitHub <noreply@github.com>2022-06-22 22:37:52 +0300
commit3808e614d9760a2588fec0c1b0b4c30feda36dcc (patch)
treed784e9226c539c479cef16273cb38574f9a433e9 /src/server/scripts/Spells
parentffcc976524e3b1ba99023e40e7fc9cce4d01a2f7 (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.cpp57
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp65
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);
}