Scripts/Spells: Fixed Black Magic proc with some druid spells (#24002)

This commit is contained in:
Keader
2019-12-30 10:42:21 -03:00
committed by GitHub
parent e698c17a26
commit e15354dc7f
2 changed files with 48 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_black_magic';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(59630,'spell_gen_black_magic');
DELETE FROM `spell_proc` WHERE `SpellId`=59630;
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`ProcFlags`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(59630,0,0,0,0,0,69648,5,1,0,2,0,0,35000,0);

View File

@@ -504,6 +504,46 @@ class spell_gen_bandage : public SpellScript
}
};
enum BlackMagicSpellIconId
{
SPELLICON_DRUID_INFECTED_WOUNDS = 2857
};
// 59630 - Black Magic
class spell_gen_black_magic : public AuraScript
{
PrepareAuraScript(spell_gen_black_magic);
bool CheckProc(ProcEventInfo& eventInfo)
{
SpellInfo const* spellInfo = eventInfo.GetSpellInfo();
uint32 typeMask = eventInfo.GetTypeMask();
if (!spellInfo)
return false;
if (typeMask & PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG)
return true;
else if (typeMask & PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS)
{
// Shred and Mangle (Cat)
if (spellInfo->SpellFamilyName == SPELLFAMILY_DRUID && (spellInfo->SpellFamilyFlags[0] == 0x00008000 || spellInfo->SpellFamilyFlags[1] == 0x00000400))
return true;
}
else if (typeMask & PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG)
{
if (spellInfo->SpellFamilyName == SPELLFAMILY_DRUID && spellInfo->SpellIconID == SPELLICON_DRUID_INFECTED_WOUNDS)
return true;
}
return false;
}
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_gen_black_magic::CheckProc);
}
};
// Blood Reserve - 64568
enum BloodReserve
{
@@ -4367,6 +4407,7 @@ void AddSC_generic_spell_scripts()
RegisterAuraScript(spell_gen_aura_service_uniform);
RegisterAuraScript(spell_gen_av_drekthar_presence);
RegisterSpellScript(spell_gen_bandage);
RegisterAuraScript(spell_gen_black_magic);
RegisterAuraScript(spell_gen_blood_reserve);
RegisterAuraScript(spell_gen_blade_warding);
RegisterSpellScript(spell_gen_bonked);