|
|
@@ -274,7 +274,7 @@ bool BattleActionProcessor::doAttackAction(const CBattleInfoCallback & battle, c
|
|
|
}
|
|
|
|
|
|
static const auto firstStrikeSelector = Selector::typeSubtype(BonusType::FIRST_STRIKE, BonusCustomSubtype::damageTypeAll).Or(Selector::typeSubtype(BonusType::FIRST_STRIKE, BonusCustomSubtype::damageTypeMelee));
|
|
|
- const bool firstStrike = destinationStack->hasBonus(firstStrikeSelector);
|
|
|
+ const bool firstStrike = destinationStack->hasBonus(firstStrikeSelector) && !destinationStack->hasBonusOfType(BonusType::NOT_ACTIVE);
|
|
|
|
|
|
const bool retaliation = destinationStack->ableToRetaliate();
|
|
|
bool ferocityApplied = false;
|
|
|
@@ -367,7 +367,7 @@ bool BattleActionProcessor::doShootAction(const CBattleInfoCallback & battle, co
|
|
|
if(!emptyTileAreaAttack)
|
|
|
{
|
|
|
static const auto firstStrikeSelector = Selector::typeSubtype(BonusType::FIRST_STRIKE, BonusCustomSubtype::damageTypeAll).Or(Selector::typeSubtype(BonusType::FIRST_STRIKE, BonusCustomSubtype::damageTypeRanged));
|
|
|
- firstStrike = destinationStack->hasBonus(firstStrikeSelector);
|
|
|
+ firstStrike = destinationStack->hasBonus(firstStrikeSelector) && !destinationStack->hasBonusOfType(BonusType::NOT_ACTIVE);
|
|
|
}
|
|
|
|
|
|
if (!firstStrike)
|