mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-21 21:17:49 +02:00
Block self-casting, e.g. Archangels can't resurrect themselves
This commit is contained in:
parent
6e5da6c158
commit
c839b397e8
@ -213,7 +213,21 @@ bool BattleSpellMechanics::canBeCastAt(const Target & target, Problem & problem)
|
||||
|
||||
Target spellTarget = transformSpellTarget(target);
|
||||
|
||||
return effects->applicable(problem, this, target, spellTarget);
|
||||
const battle::Unit * mainTarget = nullptr;
|
||||
|
||||
if(spellTarget.front().unitValue)
|
||||
{
|
||||
mainTarget = target.front().unitValue;
|
||||
}
|
||||
else if(spellTarget.front().hexValue.isValid())
|
||||
{
|
||||
mainTarget = battle()->battleGetUnitByPos(target.front().hexValue, true);
|
||||
}
|
||||
|
||||
if (mainTarget && mainTarget == caster)
|
||||
return false; // can't cast on self
|
||||
|
||||
return effects->applicable(problem, this, target, spellTarget);
|
||||
}
|
||||
|
||||
std::vector<const CStack *> BattleSpellMechanics::getAffectedStacks(const Target & target) const
|
||||
|
Loading…
x
Reference in New Issue
Block a user