private void checkRangePosition(Position p,Report r){
		AUnit t = Game.getInstance().getUnitByID(p.getTargetID());
		UnitConfiguration unitConfig = t.getConfiguration();
		double acousticRange = (t.getSpeedMs() - unitConfig.getSilentSpeed()) * (unitConfig.getMaxSpeedMs()/(unitConfig.getMaxSpeedMs()-unitConfig.getSilentSpeed()));
		
		int step =unitConfig.getMaxSpeedMs()/getSpeedMessages().length;
		int minRange = 0;
		int maxRange = step;

		if(getMaxRange()>acousticRange){
			for(Range d:rangeList){
				if(d.checkInRange(p.getDistance())){
					
					for(int i = 0; i<getSpeedMessages().length; i++){
						if(t.getSpeedMs()>minRange && t.getSpeedMs()<=maxRange){
							r.setSpeedReport(getSpeedMessages()[i]);
							break;
						}
						minRange = maxRange;
						maxRange += step;
					}
					
					r.setEquipmentName(getName());
					r.setRangeReport(d.getMessage());
					r.setDirectionReport((int)p.getAnglePosition());
					getBoard().getReports().add(r);
				}
			}
		}
	}