else if (cutNode && singularBeta > beta)
return beta;
}
- else if ( givesCheck // Check extension (~2 Elo)
- && pos.see_ge(move))
+
+ // Check extension (~2 Elo)
+ else if ( givesCheck
+ && (pos.blockers_for_king(~us) & from_sq(move) || pos.see_ge(move)))
extension = ONE_PLY;
- // Extension if castling
+ // Castling extension
else if (type_of(move) == CASTLING)
extension = ONE_PLY;