public Enemy shoot() {

		shootDelay--;
		if (shootDelay > 0) return null;
		else shootDelay = fireRate;


		Geometry geometry = towerLocation.getGeometry();
		ArrayList<PathTile> tilesInRange = geometry.getNearby(towerLocation, (int) (range * rangeModifier));
		Random rand = new Random();

		Enemy target = null;
		for (int i = 0; i < tilesInRange.size() && target == null; i++) {
			if (tilesInRange.get(i) != null) {
				target = tilesInRange.get(i).getEnemy();
			}
		}
		if (target == null) {
			return null;
		}
		int damageBonus=0;
		if (gem!=null)
		{
			String type = target.getType();
			damageBonus = gem.getDamageBonus(type);
		}

		if (rand.nextInt(100) < 10)	  {
			target.damageHalf();
		} else {
			target.damage(damage+damageBonus);
		}
		return target;
	}