public bool NoTier1CheckViolationsExist(List <PieceEV> towerPieces, IEntitiesDB entitiesDB) { /** * Extra logic required for EFE case, where top E threatens Commander OR capturing bottom E would alter top E's movement to threaten Commander * (Commander is not part of tower) * * If tower isn't configured as such, no worries * If capturing top piece, no worries * If capturing bottom piece, * AND top E would threaten Commander as a result, deny bottom capture */ TurnEV currentTurn = turnService.GetCurrentTurnEV(entitiesDB); PieceEV commander = pieceFindService.FindCommander(currentTurn.TurnPlayer.PlayerColor, entitiesDB); return(!IsTowerEFEOrFEE(towerPieces, currentTurn.TurnPlayer.PlayerColor) || !checkService.DoesLowerTierThreatenCommander( commander, towerPieces[towerPieces.Count - 1], towerPieces[towerPieces.Count - 2], towerPieces, entitiesDB)); }