add code that puts ball onto catapult
[3501/stronghold-2016] / src / org / usfirst / frc / team3501 / robot / commands / shooter / ShootAtHighGoal.java
index 6d15cde8362194c3ca7ef19763a6a3f49929a827..1f21e2fb84d1cfccb5cc09869505a83a8844e2c7 100755 (executable)
@@ -1,7 +1,9 @@
 package org.usfirst.frc.team3501.robot.commands.shooter;
 
 import org.usfirst.frc.team3501.robot.Constants.IntakeArm;
+import org.usfirst.frc.team3501.robot.Constants.Shooter;
 import org.usfirst.frc.team3501.robot.commands.intakearm.MoveIntakeArm;
+import org.usfirst.frc.team3501.robot.commands.intakearm.TimeRunIntake;
 
 import edu.wpi.first.wpilibj.command.CommandGroup;
 import edu.wpi.first.wpilibj.command.WaitCommand;
@@ -14,26 +16,34 @@ import edu.wpi.first.wpilibj.command.WaitCommand;
  * post-conditions: catapult is retracted, intake is extended
  */
 public class ShootAtHighGoal extends CommandGroup {
-  private static final double WAIT_SECONDS = 0.4;
+  // TODO: test for this
+  private static final double WAIT_SECONDS = 1.0;
 
   public ShootAtHighGoal() {
-    // make sure catapult is down
-    addSequential(new ResetCatapult());
 
     // make sure intake is in up position
     addSequential(new MoveIntakeArm(IntakeArm.RETRACT));
 
+    addSequential(new WaitCommand(WAIT_SECONDS));
+
+    // get ball onto catapult
+    addSequential(new TimeRunIntake(Shooter.TIME_FOR_BALL_TO_CATAPULT_ROLLING));
+
+    addSequential(new WaitCommand(WAIT_SECONDS));
+
     // shoot catapult pistons
     addSequential(new FireCatapult());
 
+    addSequential(new WaitCommand(WAIT_SECONDS));
+
     // extend intake (ball actually shoots here)
     addSequential(new MoveIntakeArm(IntakeArm.EXTEND));
 
-    // wait a bit
     addSequential(new WaitCommand(WAIT_SECONDS));
 
     // retract catapult pistons
     addSequential(new ResetCatapult());
 
+    //
   }
 }