1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-25 21:38:59 +02:00

Fix check for Demon Summon targets

This commit is contained in:
Ivan Savenko 2023-04-13 21:17:35 +03:00
parent 1978e6f8e8
commit 9d31830c74

View File

@ -92,18 +92,18 @@ void DemonSummon::apply(ServerCallback * server, const Mechanics * m, const Effe
bool DemonSummon::isValidTarget(const Mechanics * m, const battle::Unit * unit) const
{
if(!unit->isDead())
{
//check if alive unit blocks rising
for(const BattleHex & hex : battle::Unit::getHexes(unit->getPosition(), unit->doubleWide(), unit->unitSide()))
{
auto blocking = m->battle()->battleGetUnitsIf([hex, unit](const battle::Unit * other)
{
return other->isValidTarget(false) && other->coversPos(hex) && other != unit;
});
return false;
if(!blocking.empty())
return false;
}
//check if alive unit blocks rising
for(const BattleHex & hex : battle::Unit::getHexes(unit->getPosition(), unit->doubleWide(), unit->unitSide()))
{
auto blocking = m->battle()->battleGetUnitsIf([hex, unit](const battle::Unit * other)
{
return other->isValidTarget(false) && other->coversPos(hex) && other != unit;
});
if(!blocking.empty())
return false;
}
if (unit->isGhost())