mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Fixed Entangling Roots periodic damage
Closes #28752 Co-authored-by: ModoX <moardox@gmail.com>
This commit is contained in:
4
sql/updates/world/master/2023_07_22_00_world.sql
Normal file
4
sql/updates/world/master/2023_07_22_00_world.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dru_entangling_roots';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(339,'spell_dru_entangling_roots'),
|
||||
(102359,'spell_dru_entangling_roots');
|
||||
@@ -47,6 +47,7 @@ enum DruidSpells
|
||||
SPELL_DRUID_BRAMBLES_REFLECT = 203958,
|
||||
SPELL_DRUID_BRISTLING_FUR_GAIN_RAGE = 204031,
|
||||
SPELL_DRUID_CAT_FORM = 768,
|
||||
SPELL_DRUID_CURIOUS_BRAMBLEPATCH = 330670,
|
||||
SPELL_DRUID_EARTHWARDEN_AURA = 203975,
|
||||
SPELL_DRUID_ECLIPSE_DUMMY = 79577,
|
||||
SPELL_DRUID_ECLIPSE_LUNAR_AURA = 48518,
|
||||
@@ -54,6 +55,7 @@ enum DruidSpells
|
||||
SPELL_DRUID_ECLIPSE_OOC = 329910,
|
||||
SPELL_DRUID_ECLIPSE_SOLAR_AURA = 48517,
|
||||
SPELL_DRUID_ECLIPSE_SOLAR_SPELL_CNT = 326053,
|
||||
SPELL_DRUID_ENTANGLING_ROOTS = 339,
|
||||
SPELL_DRUID_EXHILARATE = 28742,
|
||||
SPELL_DRUID_FORM_AQUATIC_PASSIVE = 276012,
|
||||
SPELL_DRUID_FORM_AQUATIC = 1066,
|
||||
@@ -80,6 +82,7 @@ enum DruidSpells
|
||||
SPELL_DRUID_LIFEBLOOM_FINAL_HEAL = 33778,
|
||||
SPELL_DRUID_LUNAR_INSPIRATION_OVERRIDE = 155627,
|
||||
SPELL_DRUID_MANGLE = 33917,
|
||||
SPELL_DRUID_MASS_ENTANGLEMENT = 102359,
|
||||
SPELL_DRUID_MOONFIRE_DAMAGE = 164812,
|
||||
SPELL_DRUID_PROWL = 5215,
|
||||
SPELL_DRUID_REJUVENATION_T10_PROC = 70691,
|
||||
@@ -478,6 +481,63 @@ class spell_dru_earthwarden : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 339 - Entangling Roots
|
||||
// 102359 - Mass Entanglement
|
||||
class spell_dru_entangling_roots : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_dru_entangling_roots);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DRUID_CURIOUS_BRAMBLEPATCH });
|
||||
}
|
||||
|
||||
void HandleCuriousBramblepatch(WorldObject*& target)
|
||||
{
|
||||
if (!GetCaster()->HasAura(SPELL_DRUID_CURIOUS_BRAMBLEPATCH))
|
||||
target = nullptr;
|
||||
}
|
||||
|
||||
void HandleCuriousBramblepatchAOE(std::list<WorldObject*>& targets)
|
||||
{
|
||||
if (!GetCaster()->HasAura(SPELL_DRUID_CURIOUS_BRAMBLEPATCH))
|
||||
targets.clear();
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_dru_entangling_roots::HandleCuriousBramblepatch, EFFECT_1, TARGET_UNIT_TARGET_ENEMY);
|
||||
if (m_scriptSpellId == SPELL_DRUID_MASS_ENTANGLEMENT)
|
||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_dru_entangling_roots::HandleCuriousBramblepatchAOE, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_dru_entangling_roots_aura : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dru_entangling_roots_aura);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DRUID_ENTANGLING_ROOTS, SPELL_DRUID_MASS_ENTANGLEMENT });
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
{
|
||||
if (SpellInfo const* spellInfo = eventInfo.GetSpellInfo())
|
||||
{
|
||||
// dont subtract dmg caused by roots from dmg required to break root
|
||||
if (spellInfo->Id == SPELL_DRUID_ENTANGLING_ROOTS || spellInfo->Id == SPELL_DRUID_MASS_ENTANGLEMENT)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_dru_entangling_roots_aura::CheckProc);
|
||||
}
|
||||
};
|
||||
|
||||
// 22568 - Ferocious Bite
|
||||
class spell_dru_ferocious_bite : public SpellScript
|
||||
{
|
||||
@@ -1722,6 +1782,7 @@ void AddSC_druid_spell_scripts()
|
||||
RegisterSpellScript(spell_dru_eclipse_aura);
|
||||
RegisterSpellScript(spell_dru_eclipse_dummy);
|
||||
RegisterSpellScript(spell_dru_eclipse_ooc);
|
||||
RegisterSpellAndAuraScriptPair(spell_dru_entangling_roots, spell_dru_entangling_roots_aura);
|
||||
RegisterSpellScript(spell_dru_ferocious_bite);
|
||||
RegisterSpellScript(spell_dru_forms_trinket);
|
||||
RegisterSpellScript(spell_dru_galactic_guardian);
|
||||
|
||||
Reference in New Issue
Block a user