public double jumpTime(double timeStep) {
		double loopTime = timeStep;
		Position calculatedPosition = this.getPosition();
		ArrayList<Worm> hits = new ArrayList<Worm>();
		
		double calcRadius = this.getRadius(); //So we don't recalculate this too many times.
		
		while(this.getWorld().liesWithinBoundaries(calculatedPosition, calcRadius) &&
				!this.getWorld().isImpassable(calculatedPosition, calcRadius)
				&& !(hits.size()>1) && !(hits.size()==1 && !hits.contains(this.getUsedWeapon().getOwner()))) {
			calculatedPosition = this.jumpStep(loopTime);
			loopTime += timeStep;
			hits = this.getWorld().hitsWorm(calculatedPosition, calcRadius);
		}
		return loopTime;
	}