fix(Core/Spell): Instant Statue (#4319)

* fix(Core/Spell): Instant Statue

* make sure GetCaster() is not null

* values

* unit not player

* scriptName

* Update spell_item.cpp

* feat(Core/Spell): Implement ValidateSpellInfo

* Cherry-pick from 2b5d7eef3a & a0a158b5b8

* Revert "feat(Core/Spell): Implement ValidateSpellInfo"

This reverts commit 7690f02b49c82c65de3e92307063211a2e9941f5.

* Revert "Revert "feat(Core/Spell): Implement ValidateSpellInfo""

This reverts commit 8ffbb46fafe1f2d1597b4295b9e5fcec822d1181.

* Update spell_item.cpp

* dependant on https://github.com/azerothcore/azerothcore-wotlk/pull/4323

* untargetable
This commit is contained in:
Kitzunu
2021-02-02 16:08:52 +01:00
committed by GitHub
parent f85cb30c99
commit b43c5c9bf3
2 changed files with 58 additions and 0 deletions

View File

@@ -1550,6 +1550,52 @@ public:
}
};
enum InstantStatue
{
CREATURE_INSTANT_STATUE_PEDESTAL = 40246,
SPELL_INSTANT_STATUE = 75731
};
class spell_item_instant_statue : public SpellScriptLoader
{
public:
spell_item_instant_statue() : SpellScriptLoader("spell_item_instant_statue") { }
class spell_item_instant_stature_AuraScript : public AuraScript
{
PrepareAuraScript(spell_item_instant_stature_AuraScript);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_INSTANT_STATUE });
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* caster = GetCaster();
if (!caster)
{
return;
}
if (Creature* creature = caster->FindNearestCreature(CREATURE_INSTANT_STATUE_PEDESTAL, 0.0f, true))
{
creature->RemoveAurasDueToSpell(SPELL_INSTANT_STATUE);
}
}
void Register() override
{
OnEffectRemove += AuraEffectRemoveFn(spell_item_instant_stature_AuraScript::OnRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_item_instant_stature_AuraScript();
}
};
// Theirs
// Generic script for handling item dummy effects which trigger another spell.
class spell_item_trigger_spell : public SpellScriptLoader
@@ -4241,6 +4287,7 @@ void AddSC_item_spell_scripts()
new spell_item_direbrew_remote();
new spell_item_eye_of_gruul_healing_discount();
new spell_item_summon_argent_knight();
new spell_item_instant_statue();
// Theirs
// 23074 Arcanite Dragonling