mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-17 16:10:49 +01:00
Scripts/Spells: Fixed mage ice block to not heal without aura 320913
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_mage_ice_block';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(45438,'spell_mage_ice_block');
|
||||
@@ -49,6 +49,7 @@ enum MageSpells
|
||||
SPELL_MAGE_CONJURE_REFRESHMENT = 116136,
|
||||
SPELL_MAGE_CONJURE_REFRESHMENT_TABLE = 167145,
|
||||
SPELL_MAGE_DRAGONHAWK_FORM = 32818,
|
||||
SPELL_MAGE_EVERWARM_SOCKS = 320913,
|
||||
SPELL_MAGE_FINGERS_OF_FROST = 44544,
|
||||
SPELL_MAGE_FROST_NOVA = 122,
|
||||
SPELL_MAGE_GIRAFFE_FORM = 32816,
|
||||
@@ -550,6 +551,36 @@ class spell_mage_ice_barrier : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 45438 - Ice Block
|
||||
class spell_mage_ice_block : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_mage_ice_block);
|
||||
|
||||
bool Validate(SpellInfo const* spellInfo) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_MAGE_EVERWARM_SOCKS });
|
||||
}
|
||||
|
||||
void PreventStunWithEverwarmSocks(WorldObject*& target)
|
||||
{
|
||||
if (GetCaster()->HasAura(SPELL_MAGE_EVERWARM_SOCKS))
|
||||
target = nullptr;
|
||||
}
|
||||
|
||||
void PreventEverwarmSocks(WorldObject*& target)
|
||||
{
|
||||
if (!GetCaster()->HasAura(SPELL_MAGE_EVERWARM_SOCKS))
|
||||
target = nullptr;
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_mage_ice_block::PreventStunWithEverwarmSocks, EFFECT_0, TARGET_UNIT_CASTER);
|
||||
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_mage_ice_block::PreventEverwarmSocks, EFFECT_5, TARGET_UNIT_CASTER);
|
||||
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_mage_ice_block::PreventEverwarmSocks, EFFECT_6, TARGET_UNIT_CASTER);
|
||||
}
|
||||
};
|
||||
|
||||
// Ice Lance - 30455
|
||||
class spell_mage_ice_lance : public SpellScript
|
||||
{
|
||||
@@ -836,7 +867,7 @@ class spell_mage_ring_of_frost : public AuraScript
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_MAGE_RING_OF_FROST_SUMMON, SPELL_MAGE_RING_OF_FROST_FREEZE })
|
||||
&& !sSpellMgr->AssertSpellInfo(SPELL_MAGE_RING_OF_FROST_SUMMON, GetCastDifficulty())->GetEffects().empty();
|
||||
&& !sSpellMgr->AssertSpellInfo(SPELL_MAGE_RING_OF_FROST_SUMMON, DIFFICULTY_NONE)->GetEffects().empty();
|
||||
}
|
||||
|
||||
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
|
||||
@@ -893,7 +924,7 @@ class spell_mage_ring_of_frost_freeze : public SpellScript
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_MAGE_RING_OF_FROST_SUMMON, SPELL_MAGE_RING_OF_FROST_FREEZE })
|
||||
&& !sSpellMgr->AssertSpellInfo(SPELL_MAGE_RING_OF_FROST_SUMMON, GetCastDifficulty())->GetEffects().empty();
|
||||
&& !sSpellMgr->AssertSpellInfo(SPELL_MAGE_RING_OF_FROST_SUMMON, DIFFICULTY_NONE)->GetEffects().empty();
|
||||
}
|
||||
|
||||
void FilterTargets(std::list<WorldObject*>& targets)
|
||||
@@ -1082,6 +1113,7 @@ void AddSC_mage_spell_scripts()
|
||||
RegisterSpellScript(spell_mage_conjure_refreshment);
|
||||
RegisterAuraScript(spell_mage_fingers_of_frost);
|
||||
RegisterAuraScript(spell_mage_ice_barrier);
|
||||
RegisterSpellScript(spell_mage_ice_block);
|
||||
RegisterSpellScript(spell_mage_ice_lance);
|
||||
RegisterSpellScript(spell_mage_ice_lance_damage);
|
||||
RegisterAuraScript(spell_mage_ignite);
|
||||
|
||||
Reference in New Issue
Block a user