@Override
	public void use(Player player) {
		if (cooldownTimer > 0)
			return;
		if (bulletsLoaded == 0)
			tryReload(player);
		if (bulletsLoaded == 0)
			return;

		double angle = player.getShootingAngle();
		for (int i = 0; i < Math.min(numBullets, bulletsLoaded - numBullets); i++) {
			double offangle = random.nextDouble() * spreadAngle - spreadAngle / 2;
			double dx = Math.cos(angle + offangle);
			double dy = Math.sin(angle + offangle);
			Bullet b = new Bullet(player, bulletType, dx * Bullet.SPEED, dy * Bullet.SPEED);
			player.spawnBullet(b);
		}

		bulletsLoaded = Math.max(0, bulletsLoaded - numBullets);
		cooldownTimer = cooldown;
	}