diff --git a/lib/CBattleCallback.cpp b/lib/CBattleCallback.cpp index 93df86b2a..4c2e2e297 100644 --- a/lib/CBattleCallback.cpp +++ b/lib/CBattleCallback.cpp @@ -1731,7 +1731,12 @@ ESpellCastProblem::ESpellCastProblem CBattleInfoCallback::battleCanCastThisSpell case ECastingMode::HERO_CASTING: { const CGHeroInstance * castingHero = dynamic_cast(caster);//todo: unify hero|creature spell cost - assert(castingHero); + if(!castingHero) + { + logGlobal->error("battleCanCastThisSpell: invalid caster"); + return ESpellCastProblem::INVALID; + } + if(!castingHero->getArt(ArtifactPosition::SPELLBOOK)) return ESpellCastProblem::NO_SPELLBOOK; if(!castingHero->canCastThisSpell(spell))