public void placeTunnelPiece(Position p, Location loc, boolean isB) {
   Road road = (Road) getBoard().get(p).getFeature(loc);
   if (!road.isTunnelOpen()) {
     throw new IllegalStateException("No open tunnel here.");
   }
   Player player = game.getActivePlayer();
   int connectionId = getTunnelId(player, isB);
   decreaseTunnelTokens(player, isB);
   for (Road r : tunnels) {
     if (r.getTunnelEnd() == connectionId) {
       r.setTunnelEdge(road);
       road.setTunnelEdge(r);
       break;
     }
   }
   road.setTunnelEnd(connectionId);
   placedTunnelCurrentTurn = road;
   game.post(new TunnelPiecePlacedEvent(player, p, loc, isB));
 }