9 using namespace osl::move_classifier;
14 see(See::see(*info.state, move, info.pin[info.state->turn()],
15 info.pin[
alt(info.state->turn())])),
19 player(m.player()), stand_index_cache(-1)
39 const Piece attack = info.
state->findCheapAttack(
alt(player), move.to());
42 || ! info.
state->hasEffectByPiece(info.
state->pieceAt(move.from()),
54 = info.
state->findCheapAttack(
alt(player), move.to());
57 const Square king = info.
state->kingSquare(defense);
72 = info.
state->findCheapAttack(
alt(player), move.to());
75 return ! info.
state->hasEffectIf(attack.
ptypeO(), move.to(),
87 && info.
state->countEffect(
alt(player), move.to()) == 1
88 && info.
state->hasEffectByPiece(defender, move.to()))
101 && ! info.
state->hasEffectIf(move.ptypeO(), move.to(), threat_at))