Change shooter to function off of two pistons, remove punch, shooter motors, and...
[3501/stronghold-2016] / src / org / usfirst / frc / team3501 / robot / commands / shooter / Shoot.java
index 31fb261e576f0a9748769a1bfa7dd3d5f94b1aee..0b80c1d9c349f7d8b0ddcde6d0bd936e2f632f26 100755 (executable)
@@ -1,5 +1,6 @@
 package org.usfirst.frc.team3501.robot.commands.shooter;
 
+import org.usfirst.frc.team3501.robot.Constants;
 import org.usfirst.frc.team3501.robot.Robot;
 
 import edu.wpi.first.wpilibj.command.CommandGroup;
@@ -9,21 +10,24 @@ public class Shoot extends CommandGroup {
 
   public boolean usePhotogate;
 
+  /**
+   * Fires catapult, then resets after a pause. If robot is set to use photogate
+   * and no ball is detected, nothing happens.
+   * 
+   * Precondition: catapult is in reset position, and ball is loaded in
+   * catapult.
+   */
   public Shoot() {
-    addSequential(new WaitCommand(3.0));
-    addSequential(new runShooter());
-    addSequential(new WaitCommand(3.0));
     if (Robot.shooter.usePhotogate()) {
       if (Robot.shooter.isBallInside()) {
-        addSequential(new ExtendPunch());
-        addSequential(new WaitCommand(5.0));
-        addSequential(new RetractPunch());
+        addSequential(new FireCatapult());
+        addSequential(new WaitCommand(Constants.Shooter.WAIT_TIME));
+        addSequential(new ResetCatapult());
       }
     } else {
-      addSequential(new ExtendPunch());
-      addSequential(new WaitCommand(5.0));
-      addSequential(new RetractPunch());
+      addSequential(new FireCatapult());
+      addSequential(new WaitCommand(Constants.Shooter.WAIT_TIME));
+      addSequential(new ResetCatapult());
     }
-
   }
 }