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",
spell_id, curbuf.spellid, buffslot, curbuf.casterlevel);
// If this is the first buff it would override, use its slot
if (!will_overwrite)
if (!will_overwrite && !IsDisciplineBuff(spell_id))
emptyslot = buffslot;
will_overwrite = true;
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
// we use it
if (emptyslot == -1 || *cur < emptyslot)
if (emptyslot == -1 || (*cur < emptyslot && !IsDisciplineBuff(spell_id)))
emptyslot = *cur;
}
}