|
|
@@ -152,6 +152,25 @@ void DispellMechanics::applyBattle(BattleInfo * battle, const BattleSpellCast *
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ESpellCastProblem::ESpellCastProblem DispellMechanics::canBeCasted(const CBattleInfoCallback * cb, PlayerColor player) const
|
|
|
+{
|
|
|
+ //todo: check for lower level
|
|
|
+
|
|
|
+ std::stringstream cachingStr;
|
|
|
+ cachingStr << "source_" << Bonus::SPELL_EFFECT;
|
|
|
+
|
|
|
+ for(const CStack * s : cb->battleAliveStacks())
|
|
|
+ {
|
|
|
+ if(s->hasBonus(Selector::sourceType(Bonus::SPELL_EFFECT), cachingStr.str()))
|
|
|
+ {
|
|
|
+ return ESpellCastProblem::OK;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ESpellCastProblem::NO_APPROPRIATE_TARGET;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
///EarthquakeMechanics
|
|
|
void EarthquakeMechanics::applyBattleEffects(const SpellCastEnvironment * env, BattleSpellCastParameters & parameters, SpellCastContext & ctx) const
|
|
|
{
|