- if ((b1 | b2) & ei.attackedBy[Them][QUEEN])
- attackUnits += QueenCheck, score -= Checked;
+ if ((b1 | b2) & ei.attackedBy[Them][QUEEN] & safe)
+ attackUnits += QueenCheck, score -= SafeCheck;
+
+ // Enemy rooks safe and other checks
+ if (b1 & ei.attackedBy[Them][ROOK] & safe)
+ attackUnits += RookCheck, score -= SafeCheck;
+
+ else if (b1 & ei.attackedBy[Them][ROOK] & other)
+ score -= OtherCheck;
+
+ // Enemy bishops safe and other checks
+ if (b2 & ei.attackedBy[Them][BISHOP] & safe)
+ attackUnits += BishopCheck, score -= SafeCheck;