home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE EPULSE 1638
-
- c include 'tcommon.for'
- %include tcommon.for
-
- C ...PULSIVE BEAMS. 1661
- 2400 EFP(1)=0. 1662
- CALL CHEKDG(6,IR) 1663
- IF(IR.EQ.1)GO TO 2490 1664
- IF(ETR(2).NE.1.)GO TO 2450 1665
- C ...COMPUTER CALCULATES STRENGTH TO PULL IN G. 1666
- IF(IGH.NE.0)GO TO 2402 1667
- WRITE(6,2401)LETR(5) 1668
- 2401 FORMAT(' NO ',A1,' IN QUADRANT') 1669
- PNRGY=0. 1670
- WRITE(6,2403) 1671
- 2403 FORMAT(' PULSIVE BEAMS TURNED OFF') 1672
- GO TO 2500 1673
- 2402 DELV=(GHOST(1)-XQE)**2+(GHOST(2)-YQE)**2 1674
- DELV=DELV/DISTGT*PTRGH 1675
- ENERGY=ENERGY-DELV 1676
- WRITE(6,2407)LETR(5),IGH,GHOST(1),GHOST(2) 1677
- 2407 FORMAT(' PULSIVE BEAMS LOCKED ON ',A1,I1, ' AT ',F4.1,',',F4.1) 1678
- IF(ENERGY.LE.0.)CALL RATING(2) 1679
- IF(DEFL.NE.0.)GO TO 2410 1680
- WRITE(6,2404) 1681
- 2404 FORMAT(' DOCKED WITH GHOSTSHIP!') 1682
- C ...PART OF ENERGY MAY BE LOST DUE TO PHASER HITS. 1683
- ENERGY=ENERGY+GHOST(11)+GHOST(13)-GHOST(3) 1684
- ITORP=ITORP+GHOST(12) 1685
- ITRMEN(1)=ITRMEN(1)+ITRMEN(20) 1686
- ITRMEN(20)=0 1687
- WRITE(6,2405)ENERGY,ITORP 1688
- 2405 FORMAT(' ENERGY = ',F8.2,' TORPEDOS - ',I2) 1689
- IGH=0 1690
- GO TO 2500 1691
- C ...SHELDS NOT DOWN IMPLIES COLLISION. 1692
- 2410 WRITE(6,2153)LETR(2),LETR(5) 1693
- 2153 FORMAT(1X,A1,' COLLISION WITH ',A1) 1694
- WRITE(6,2154) 1695
- 2154 FORMAT(' SHIELDS DESTROYED') 1696
- CALL DLETE(5,0) 1697
- CALL DAMAGE(0,DEFL) 1698
- GO TO 2500 1699
- C ...LOCK ON NEAREST K FOR R BEAMS. 1700
- 2450 ETR(1)=0. 1701
- IF(KLNGNS.NE.0)GO TO 2460 1702
- 2455 WRITE(6,2401)LETR(3) 1703
- WRITE(6,2403) 1704
- PNRGY=0. 1705
- ETR(1)=0. 1706
- GO TO 2500 1707
- 2460 PNRGY=0. 1708
- JJ=-ETR(2) 1709
- IF(XKL(JJ,1).EQ.0.)GO TO 2455 1710
- DELV=(XQE-XKL(JJ,1))**2+(YQE-XKL(JJ,2))**2 1711
- WRITE(6,2407)LETR(3),JJ,XKL(JJ,1),XKL(JJ,2) 1712
- ENERGY=ENERGY-ETR(3) 1713
- IF(ENERGY.LE.0.)CALL RATING(2) 1714
- DELV=DISTKR/DELV*ETR(3)/PRKLN 1715
- C ...MOVE K. REDUCE SPEED ACCORDINGLY. 1716
- CALL GETBRG(DELTA,XQE,XKL(JJ,1),YQE,XKL(JJ,2),VPX,VPY) 1717
- VPX=COSD(DELTA)*DELV 1718
- VPY=SIND(DELTA)*DELV 1719
- DELTA=ABS(DELV)/VRKL 1720
- XKL(JJ,1)=XKL(JJ,1)+VPX 1721
- XKL(JJ,2)=XKL(JJ,2)+VPY 1722
- XKL(JJ,3)=XKL(JJ,3)-DELTA 1723
- IF(XKL(JJ,3).LT.0.)XKL(JJ,3)=0. 1724
- C ...CHECK IF FORCED OUT OF QUADRANT. 1725
- CALL KLQ(JJ,IR) 1726
- IF(IR.GE.1)GO TO 2500 1727
- C ...PRINT APPROPRIATE MESSAGE. 1728
- WRITE(6,2471)LETR(3),JJ,(XKL(JJ,KK),KK=1,4) 1729
- 2471 FORMAT(1X,A1,I1,' MOVED TO ',F4.1,',',F4.1,' SPEED: ',F5.3, 1730
- 1 ' BEARING: ',F4.0) 1731
- GO TO 2500 1732
- C ...UBIQUITOUS DAMAGE CONTROL. 1733
- 2490 PNRGY=0. 1734
- 2500 ETR(1)=0. 1735
- RETURN 1736
- END 1737