Exclude discs from buff slot stealing logic

This commit is contained in:
Michael Cook (mackal) 2016-02-06 19:33:44 -05:00
parent 33c7016a0e
commit 306586fa7e

View File

@ -3140,7 +3140,7 @@ int Mob::AddBuff(Mob *caster, uint16 spell_id, int duration, int32 level_overrid
Log.Out(Logs::Detail, Logs::Spells, "Adding buff %d will overwrite spell %d in slot %d with caster level %d", Log.Out(Logs::Detail, Logs::Spells, "Adding buff %d will overwrite spell %d in slot %d with caster level %d",
spell_id, curbuf.spellid, buffslot, curbuf.casterlevel); spell_id, curbuf.spellid, buffslot, curbuf.casterlevel);
// If this is the first buff it would override, use its slot // If this is the first buff it would override, use its slot
if (!will_overwrite) if (!will_overwrite && !IsDisciplineBuff(spell_id))
emptyslot = buffslot; emptyslot = buffslot;
will_overwrite = true; will_overwrite = true;
overwrite_slots.push_back(buffslot); overwrite_slots.push_back(buffslot);
@ -3190,7 +3190,7 @@ int Mob::AddBuff(Mob *caster, uint16 spell_id, int duration, int32 level_overrid
// if we hadn't found a free slot before, or if this is earlier // if we hadn't found a free slot before, or if this is earlier
// we use it // we use it
if (emptyslot == -1 || *cur < emptyslot) if (emptyslot == -1 || (*cur < emptyslot && !IsDisciplineBuff(spell_id)))
emptyslot = *cur; emptyslot = *cur;
} }
} }