@Override
	public Entity[] pickTargets(Entity actor, boolean renderAnimations, Parameters parameters) {
		Point[] frontVectors = ((Unit)actor).getDirection().get3FrontVectors();
		List<Entity> targets = new ArrayList<Entity>();
		for (Point vector : frontVectors) {
			try {
				Point targetLocation = Physics.getRelativeLocation(
						actor.getLocation(), vector);
				Entity target = Entities.getEntityOnLocation(targetLocation, targetTeam);
				targets.add(target);
			} catch (EntityNotFound e) {}
		}
		if(targets.size() == 0){
			Point oneAhead = Physics.getRelativeLocation(actor.getLocation(), ((Unit)actor).getDirection(), 1);
			if(animation != null){
				GamePlayState.addSpecialEffect(new AnimationBasedVisualEffect(oneAhead, animation));
			}
			return new Entity[0];
		}else{
			if(animation != null){
				GamePlayState.addSpecialEffect(new AnimationBasedVisualEffect(targets.get(0), animation));
			}
			return targets.subList(0, 1).toArray(new Entity[0]);
		}
		
	}