@Override
	public Entity[] pickTargets(Entity actor, boolean renderAnimations, Parameters parameters) {
		int width = parameters.get(ParameterName.WIDTH, this.width);
		int length = parameters.get(ParameterName.LENGTH, this.length);
		int skipNFirstSquares = parameters.get(ParameterName.SKIP_N_FIRST_SQUARES, this.skipNFirstSquares);
		ArrayList<Entity> targets = new ArrayList<>();
		for (int stepsForward = skipNFirstSquares + 1; stepsForward <= skipNFirstSquares + length; stepsForward++) {
			for (int stepsRight = -(width-1)/2; stepsRight <= (width-1)/2; stepsRight++) {
				try {
					Point targetLocation = Physics.getRelativeLocation(actor.getLocation(), ((Unit)actor).getDirection(), stepsForward, stepsRight);
					if(renderAnimations && animation != null){
						GamePlayState.addSpecialEffect(new AnimationBasedVisualEffect( Physics.getPixelCenterLocation(targetLocation),animation));
					}	
					Entity target = Entities.getEntityOnLocation(targetLocation, targetTeam);
					targets.add(target);
				} catch (EntityNotFound e) {}
			}

		}
		return targets.toArray(new Entity[0]);
	}