kingAttackers method

  1. @override
SquareSet kingAttackers(
  1. Square square,
  2. Side attacker, {
  3. SquareSet? occupied,
})
override

Attacks that a king on square would have to deal with.

Contrary to chess, in Atomic kings can attack each other, without causing check.

Implementation

@override
SquareSet kingAttackers(Square square, Side attacker, {SquareSet? occupied}) {
  final attackerKings = board.piecesOf(attacker, Role.king);
  if (attackerKings.isEmpty ||
      kingAttacks(square).isIntersected(attackerKings)) {
    return SquareSet.empty;
  }
  return super.kingAttackers(square, attacker, occupied: occupied);
}