- // Enemy knights safe checks
- if (pos.attacks_from<KNIGHT>(ksq) & ei.attackedBy[Them][KNIGHT] & safe)
- attackUnits += KnightCheck, score -= Checked;
+ // Enemy bishops safe and other checks
+ if (b2 & ei.attackedBy[Them][BISHOP] & safe)
+ attackUnits += BishopCheck, score -= SafeCheck;
+
+ else if (b2 & ei.attackedBy[Them][BISHOP] & other)
+ score -= OtherCheck;
+
+ // Enemy knights safe and other checks
+ b = pos.attacks_from<KNIGHT>(ksq) & ei.attackedBy[Them][KNIGHT];
+ if (b & safe)
+ attackUnits += KnightCheck, score -= SafeCheck;
+
+ else if (b & other)
+ score -= OtherCheck;