protected synchronized void drawVehicles(Graphics g) {
		g.setColor(Color.black);

		// This chunk of code just translate and rotates the shape.

		for (int j = 0; j < numVehicles; j++) {
			if (j < my_colors.length){
				g.setColor(my_colors[j]);
			}else{
				g.setColor(my_colors[my_colors.length-1]);
			}
			int drawX[] = new int[9];
			int drawY[] = new int[9];

			for (int i = 0; i < 9; i++) {
				// We scale the x and y by gain, since the bounds on X and Y are 100(gain)x100(gain)

				double x = gvX[j]*gain;
				double y = gvY[j]*gain;
				double th = gvTheta[j];
				drawX[i] = (int)(x+Math.cos(th)*droneX[i]+Math.sin(th)*droneY[i]);
				drawY[i] = (int)(y+Math.sin( th)*droneX[i]-Math.cos(th)*droneY[i]);
				drawY[i] = 100*gain- drawY[i];
			}
			g.drawPolygon(drawX, drawY, 9);

			try{
				if(fuel[j]>100)
					fuel[j]=100;

				if(fuel[j]<=100 && fuel[j]>=50)
					g.setColor(new Color((int)((100-fuel[j])/50*255), 255, 0));
				else if(fuel[j]<50 && fuel[j]>0)
					g.setColor(new Color(255, (int)((fuel[j])/50*255), 0));
				else
					g.setColor(Color.black);
				
				g.drawString("Fuel: "+ (int) fuel[j], drawX[0],drawY[0] );

				g.fillPolygon(drawX, drawY, 9);
			}
			catch(ArrayIndexOutOfBoundsException e){
			}
		}
	}