home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / FORTRAN / SUPERT87.ZIP / FIGHT.FOR < prev    next >
Encoding:
Text File  |  1986-12-15  |  6.0 KB  |  84 lines

  1.  
  2.       SUBROUTINE FIGHT                                                  1738
  3.  
  4. c    include 'tcommon.for'
  5.     %include tcommon.for
  6.  
  7. C     ...COMBAT ON BOARD K OR R.                                        1764
  8.       DO 100    I=2,18                                                  1765
  9.       IF(ITRMEN(I).EQ.0)GO TO 100                                       1766
  10.       IF(I.GT.10)GO TO 50                                               1767
  11. C     ...KLINGON.                                                       1768
  12.       J=I-1                                                             1769
  13.       IF(J.GT.KLNGNS)GO TO 90                                           1770
  14.       IF(XKL(J,1).EQ.0.)GO TO 100                                       1771
  15.       IF(ICNTL(I).EQ.1)GO TO 100                                        1772
  16.       IF(XKL(J,9).LE.0.)STOP                                            1773
  17.       ODDS=SQRT(ITRMEN(I)/XKL(J,9))                                     1774
  18.       KILLK=ODDS*CODDS*ITRMEN(I)                                        1775
  19.       KILLK=KILLK+SIGN(RAN(IZZ)*SQRT(FLOAT(KILLK)),.5-RAN(IZZ))         1776
  20.       IF(KILLK.LE.0)KILLK=1                                             1777
  21.       KILLE=1./ODDS*DODDS*XKL(J,9)                                      1778
  22.       KILLE=KILLE+SIGN(RAN(IZZ)*SQRT(FLOAT(KILLE)),.5-RAN(IZZ))         1779
  23.       IF(KILLE.LE.0)KILLE=1                                             1780
  24.       IF(KILLE.GT.ITRMEN(I))KILLE=ITRMEN(I)                             1781
  25.       IF(KILLK.GT.XKL(J,9))KILLK=XKL(J,9)                               1782
  26.       WRITE(6,1)LETR(3),J,XKL(J,1),XKL(J,2),KILLK,KILLE                 1783
  27. 1     FORMAT(' FIGHTING ON ',A1,I1,' AT ',F4.1,',',F4.1/' ENEMY LOSSES: 1784
  28.      1',I4,      ' ENTERPRISE LOSSES: ',I4)                             1785
  29.       ITRMEN(I)=ITRMEN(I)-KILLE                                         1786
  30.       ITKL(I-1)=ITKL(I-1)+KILLE                                         1787
  31.       JTKL(I-1)=JTKL(I-1)+KILLK                                         1788
  32.       XKL(J,9)=XKL(J,9)-KILLK                                           1789
  33.       IF(XKL(J,9).GT.0.)GO TO 100                                       1790
  34.       WRITE(6,2)LETR(3),J                                               1791
  35. 2     FORMAT(1X,A1,I1,' CAPTURED!')                                     1792
  36.       ICNTL(I)=1                                                        1793
  37.       WRITE(6,3)ITKL(I-1),JTKL(I-1)                                     1794
  38. 3     FORMAT(' TROOPS KILLED: ',I3,' ENEMY KILLED: ',I3)                1795
  39.       ITKL(I-1)=0                                                       1796
  40.       JTKL(I-1)=0                                                       1797
  41.       XKL(J,5)=0.                                                       1798
  42.       XKL(J,8)=0.                                                       1799
  43.       GO TO 100                                                         1800
  44. C     ...ROMULAN.                                                       1801
  45. 50    J=I-10                                                            1802
  46.       IF(J.GT.NROM)GO TO 90                                             1803
  47.       IF(XROM(J,1).EQ.0.)GO TO 100                                      1804
  48.       IF(ICNTL(I).EQ.1)GO TO 100                                        1805
  49.       IF(CREWR(J).LE.0.)STOP                                            1806
  50.       ODDS=SQRT(ITRMEN(I)/CREWR(J))                                     1807
  51.       KILLR=ODDS*EODDS*ITRMEN(I)                                        1808
  52.       KILLR=KILLR+SIGN(RAN(IZZ)*SQRT(FLOAT(KILLR)),.5-RAN(IZZ))         1809
  53.       IF(KILLR.LE.0)KILLR=0                                             1810
  54.       KILLE=1./ODDS*FODDS*CREWR(J)                                      1811
  55.       KILLE=KILLE+SIGN(RAN(IZZ)*SQRT(FLOAT(KILLE)),.5-RAN(IZZ))         1812
  56.       IF(KILLE.LE.0)KILLE=1                                             1813
  57.       IF(KILLE.GT.ITRMEN(I))KILLE=ITRMEN(I)                             1814
  58.       IF(KILLR.GT.CREWR(J))KILLR=CREWR(J)                               1815
  59.       WRITE(6,1)LETR(4),J,XROM(J,1),XROM(J,2),KILLR,KILLE               1816
  60.       ITKL(I-1)=ITKL(I-1)+KILLE                                         1817
  61.       JTKL(I-1)=JTKL(I-1)+KILLR                                         1818
  62.       ITRMEN(I)=ITRMEN(I)-KILLE                                         1819
  63.       CREWR(J)=CREWR(J)-KILLR                                           1820
  64.       IF(CREWR(J).GT.0.)GO TO 100                                       1821
  65.       WRITE(6,2)LETR(4),J                                               1822
  66.       ICNTL(I)=1                                                        1823
  67.       WRITE(6,3)ITKL(I-1),JTKL(I-1)                                     1824
  68.       ITKL(I-1)=0                                                       1825
  69.       JTKL(I-1)=0                                                       1826
  70.       XROM(J,4)=0.                                                      1827
  71.       IF(J.NE.1.OR.ICLOAK.NE.2)GO TO 100                                1828
  72.       SDAYS=RAN(IZZ)*XTIME*.1                                           1829
  73.       SDAYS=SDAYS+SIGN(RAN(IZZ)*SDAYS*.3,.5-RAN(IZZ))                   1830
  74.       WRITE(6,4)SDAYS                                                   1831
  75. 4     FORMAT(' CLOAKING DEVICE CAPTURED!'/' YOU MAY USE IT FOR ',      F1832
  76.      15.2,' STARDAYS BEFORE THE ENEMY CATCHES ON.')                     1833
  77.       ICLOAK=-SDAYS*100.                                                1834
  78.       GO TO 100                                                         1835
  79. C     ...VESSEL NO LONGER EXISTS.                                       1836
  80. 90    ITRMEN(I)=0                                                       1837
  81. 100   CONTINUE                                                          1838
  82.       RETURN                                                            1839
  83.       END                                                               1840
  84.