protected void act() {
		if(state == -1) {
			doBehavior(new DodgeBehavior());
		}
		else if(state == 0) {
			float rotation = Robot.getInstance().getOdometryPoseProvider().getPose().relativeBearing(goal.getLocation())%360;
			if(rotation > 180) {
				rotation = -(360 - rotation);
			}System.out.println(rotation);
			ActionFactory.rotate(rotation, true);
		}
		else if(state == 1) {
			ActionFactory.goForward(Robot.getInstance().getOdometryPoseProvider().getPose().distanceTo(goal.getLocation()), true);
		}
		else if(state == 2) {
			float rotation = (goal.getHeading() - Robot.getInstance().getOdometryPoseProvider().getPose().getHeading())%360;
			if(rotation > 180) {
				rotation = -(360 - rotation);
			}
			ActionFactory.rotate(rotation, true);
		}
		else if(state == 3) {
			stop();
		}
	}