diff --git a/zone/spells.cpp b/zone/spells.cpp index 78810be46..25b96d97d 100644 --- a/zone/spells.cpp +++ b/zone/spells.cpp @@ -6347,7 +6347,12 @@ bool Mob::UseBardSpellLogic(uint16 spell_id, int slot) int Mob::GetCasterLevel(uint16 spell_id) { int level = GetLevel(); - level += itembonuses.effective_casting_level + spellbonuses.effective_casting_level + aabonuses.effective_casting_level; + if (GetClass() == Class::Bard) { + // Bards receive effective casting level increases to resists/effect. They don't receive benefit from spells like intellectual superiority, however. + level += itembonuses.effective_casting_level + aabonuses.effective_casting_level; + } else { + level += itembonuses.effective_casting_level + spellbonuses.effective_casting_level + aabonuses.effective_casting_level; + } LogSpells("Determined effective casting level [{}]+[{}]+[{}]=[{}]", GetLevel(), spellbonuses.effective_casting_level, itembonuses.effective_casting_level, level); return std::max(1, level); }