SUBROUTINE IMPULS INCLUDE 'TREK.COM/-LI' IDIDIT=0 IF(DAMAGE(7).NE.0) GO TO 40 C--------READ IN COURSE AND DISTANCE IF(ENERGY .LE. 30.0) GO TO 5 CALL GETCD IF(DIREC .LT. 0) RETURN C--------MAKE SURE STARSHIP HAS SUFFICIENT ENERGY FOR TRIP POWER=20.0+100.0*DIST IF(POWER .LT. ENERGY) GO TO 20 5 CALL SKIP(1) CALL PROUT( + 51HFIRST OFFICER SPOCK: "CAPTAIN, THE IMPULSE ENGINES,51) CALL PROUT( + 51HREQUIRE 20.0 UNITS TO ENGAGE, PLUS 100.0 UNITS PER ,51) IF(ENERGY .GT. 30.0) GO TO 10 CALL PROUT( + 41HQUADRANT. THEY ARE, THEREFORE, USELESS.",41) RETURN 10 CALL CRAM(46HQUADRANT. WE CAN GO, THEREFORE, A MAXIMUM OF ) CALL CRAMF(0.01*(ENERGY-20.0)-0.05,0,1) CALL CREND CALL PROUT(11HQUADRANTS.",11) RETURN C--------MAKE SURE ENOUGH TIME IS LEFT FOR THE TRIP 20 TIME=DIST/0.095 IF(TIME .LT. RMTIME) GO TO 30 CALL PROUT( + 55HFIRST OFFICER SPOCK: "CAPTAIN, OUR SPEED UNDER IMPULSE,55) CALL PROUT( + 54HPOWER IS ONLY 0.95 SECTORS PER STARDATE. ARE YOU SURE,54) CALL PROUT(24HWE DARE SPEND THE TIME?",24) IF(JA(DUMMY)) GO TO 30 RETURN C--------ACTIVATE IMPULSE ENGINES AND PAY THE COST 30 CALL MOVE IDIDIT=1 IF(ALLDON.NE.0) RETURN POWER=20.0+100.0*DIST ENERGY=ENERGY-POWER TIME=DIST/0.095 IF(ENERGY .GT. 0) RETURN CALL FINISH(4) RETURN 40 CALL SKIP(1) CALL PROUT(24HIMPULSE ENGINES DAMAGED.,24) RETURN END