public void physics(double scale) {
		super.physics(scale);
		
		//Figure out which direction the player is pointing, in degrees
		rotation = Math.toDegrees(Math.atan((StdDraw.mouseY() - position.y)/(StdDraw.mouseX() - position.x))) - 90;
		if (StdDraw.mouseX() < position.x) rotation -= 180;
		rotation *= -1;
		
		if(Double.isNaN(rotation)) rotation = 0;
		
		if(Flatscape.gameState != GameState.GAME) return;
		for(Weapon weapon : weapons) {
			if(weapon == null) continue;
			weapon.physics(scale);
			if(weapon.cooldown <= 0 && StdDraw.mousePressed()) {
				weapon.shoot(this);
			}
		}
		
		if(shieldCooldown > 0) shieldCooldown -= scale * 10;
		if(shieldCooldown <= 0) {
			shield = 10;
		}
	}