This came up on the
Storm Haven forums, so I figured I'd mention what I have come up with so far, since this is still an issue.
After doing some digging (thanks to
#mlog SPELLS__STACKING on), it appears this is failing in the function
Mob::CheckStackConflict:
Code:
1992 if(sp2_value < sp1_value) {
1993 mlog(SPELLS__STACKING, "Spell %s (value %d) is not as good as %s (value %d). Rejecting %s.",
1994 sp2.name, sp2_value, sp1.name, sp1_value, sp2.name);
1995 return -1; // can't stack
1996 }
And I believe it is because there should be a check, not only for the first spell, but also the 2nd spell to see if the slot is blank. If that's the case, we can just change
this
Code:
1913 if(IsBlankSpellEffect(spellid1, i))
1914 continue;
to this:
Code:
if(IsBlankSpellEffect(spellid1, i) || IsBlankSpellEffect(spellid2, i))
continue;
I'll try compiling this here in a few and see if it works.