mirror of
https://github.com/vcmi/vcmi.git
synced 2025-12-01 23:12:49 +02:00
Move rest of commonly-accessed UnitState queries to bonus cache
This commit is contained in:
@@ -714,18 +714,7 @@ bool CBattleInfoCallback::battleCanShoot(const battle::Unit * attacker) const
|
||||
if (!attacker->canShoot())
|
||||
return false;
|
||||
|
||||
//forgetfulness
|
||||
TConstBonusListPtr forgetfulList = attacker->getBonusesOfType(BonusType::FORGETFULL);
|
||||
if(!forgetfulList->empty())
|
||||
{
|
||||
int forgetful = forgetfulList->totalValue();
|
||||
|
||||
//advanced+ level
|
||||
if(forgetful > 1)
|
||||
return false;
|
||||
}
|
||||
|
||||
return !battleIsUnitBlocked(attacker) || attacker->hasBonusOfType(BonusType::FREE_SHOOTING);
|
||||
return attacker->canShootBlocked() || !battleIsUnitBlocked(attacker);
|
||||
}
|
||||
|
||||
bool CBattleInfoCallback::battleCanTargetEmptyHex(const battle::Unit * attacker) const
|
||||
@@ -1732,9 +1721,6 @@ bool CBattleInfoCallback::battleIsUnitBlocked(const battle::Unit * unit) const
|
||||
{
|
||||
RETURN_IF_NOT_BATTLE(false);
|
||||
|
||||
if(unit->hasBonusOfType(BonusType::SIEGE_WEAPON)) //siege weapons cannot be blocked
|
||||
return false;
|
||||
|
||||
for(const auto * adjacent : battleAdjacentUnits(unit))
|
||||
{
|
||||
if(adjacent->unitOwner() != unit->unitOwner()) //blocked by enemy stack
|
||||
|
||||
Reference in New Issue
Block a user