Mangos Version: 10018
Custom Patches: Broadcaster
SD2 Version: 1706
Database Name and Version : UDB 391
How it SHOULD work: Quote from SoC Tooltip: Only one Corruption spell per Warlock can be active on any one target.
How it DOES work: If 1 WL cast Corruption and another cast SoC, it will overwrite 1st WL Corruption and vice versa.
The problem is caused here:
/src/game/SpellMgr.cpp
//Corruption & Seed of corruption
if( spellInfo_1->SpellIconID == 313 && spellInfo_2->SpellIconID == 1932 ||
spellInfo_2->SpellIconID == 313 && spellInfo_1->SpellIconID == 1932 )
if(spellInfo_1->SpellVisual[0] != 0 && spellInfo_2->SpellVisual[0] != 0)
return true; // can't be stacked
It doesnt compare casters guid and then overwrite the debuffs.
I think we need a extension in :
/src/game/SpellMgr.h
// Spell clasification
enum SpellSpecific
{
SPELL_NORMAL = 0,
SPELL_SEAL = 1,
SPELL_BLESSING = 2,
SPELL_AURA = 3,
SPELL_STING = 4,
SPELL_CURSE = 5,
SPELL_ASPECT = 6,
SPELL_TRACKER = 7,
SPELL_WARLOCK_ARMOR = 8,
SPELL_MAGE_ARMOR = 9,
SPELL_ELEMENTAL_SHIELD = 10,
SPELL_MAGE_POLYMORPH = 11,
SPELL_POSITIVE_SHOUT = 12,
SPELL_JUDGEMENT = 13,
SPELL_BATTLE_ELIXIR = 14,
SPELL_GUARDIAN_ELIXIR = 15,
SPELL_FLASK_ELIXIR = 16,
SPELL_PRESENCE = 17,
SPELL_HAND = 18,
SPELL_WELL_FED = 19,
SPELL_FOOD = 20,
SPELL_DRINK = 21,
SPELL_FOOD_AND_DRINK = 22,
};
Or do a more generic check for spells like Immolate and Unstable Afflication, which should overwrite each other after patch 3.1, when casted by same player:
Regards