public void draw(Graphics2D g2) {
		if (bImage == null) {
			File imageFile = new File(baseDir + imageFileName);
			try {
				bImage = ImageIO.read(imageFile);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		if(firing)
			frames = 2;
		else
			frames = 3;

		if (xIncrement > frames) {
			xIncrement = 0;
		}
		
		
		//This calculates the amount of offset to animate between tiles (40px/SPEED = 0.8px per tick)
		if(pixels < 40-(40/SPEED) && getLoc() != null)
			pixels += (double)40./SPEED;

		else
			resetPixels();
	
		
		if(getLoc().nextTile != null) {
			firing = true;
			tempSubImage = bImage.getSubimage(xIncrement * WIDTH, yIncrement * HEIGHT + 120, WIDTH, HEIGHT);
		}
		else
			 tempSubImage = bImage.getSubimage(xIncrement * (WIDTH*3), yIncrement * HEIGHT + 80, WIDTH, HEIGHT*2);
		//We need to slow down the animation frames so they aren't firing every tick! Use Count%5 so they're 1/5 as fast
		if(count%3 == 0)

			xIncrement++;

		count++;
		
		// AffineTransform will help us manipulate sprites
		AffineTransform at = new AffineTransform();
		// calculate offset per tick
		at.translate(getLoc().getCoordinates().x * WIDTH + offset("x"),
				getLoc().getCoordinates().y * HEIGHT + offset("y"));
		// calculate direction they should be facing
		at.rotate(checkTransform(), tempSubImage.getWidth() / 2,
				tempSubImage.getHeight() / 2);

		g2.drawImage(tempSubImage, at, null);
		


	}