-+-+-+-+-+-+-+-+ START OF PART 6 -+-+-+-+-+-+-+-+ X300`09IF ((AB.EQ.'C').OR.(AB.EQ.'F').OR.(AB.EQ.'O')) GOTO 400 X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('Fighter #',0) X`09CALL DECPRT(Y) X`09CALL STROUT(' destroyed.',1) X`09GOTO 1700 X400`09Z7=Z6 X`09CALL STASIS(Z6,LOC) X500`09IF (RANGE(Y).NE.0) GOTO 600`09`09!CHECK FOR FUEL X`09CALL HEAD('F',Y,LOC,Z6,1) X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('Ran out of fuel and crashed.',1) X`09IF ((AB.NE.'C').AND.(OMAP(Z6).NE.'*')) RMAP(Z6)=OMAP(Z6) X`09GOTO 1700 X X600`09MYCOD=MYCODE(LOC)`09`09`09!GET MY FUNCTION CODE X`09IF (MYCOD.EQ.0) GOTO 1100`09`09!NONE, SKIP AHEAD X`09IF ((MYCOD.LT.101).OR.(MYCOD.GT.6108)) GOTO 1300 X`09IF (MYCOD.LE.6000) GOTO 700 X`09IF (MYCOD.GT.6100) GOTO 800 X`09GOTO 1300 X X700`09DIR=MOV(Z6,MYCOD) X`09Z6=Z6+IARROW(DIR+1)`09`09!DESTINATION FUNCTION X`09IF ((RANGE(Y).EQ.10).AND.(IDIST(Z6,MYCOD).LE.10)) GOTO 902 X`09GOTO 900 X X800`09Z6=Z6+IARROW(MYCOD-6100+1)`09`09!DIRECTIONAL FUNCTIONS X900`09IF (RANGE(Y).EQ.10) GOTO 1000 X902`09IF (ORDER(Z6).NE.0) GOTO 1000 X`09AD=RMAP(Z6)`09`09`09`09!CHECK NEW LOCATION X`09IF ((AD.EQ.'C').OR.(AD.EQ.'O')) GOTO 1300 X`09IF ((AD.EQ.'+').OR.(AD.EQ.'.')) GOTO 1300 X`09IF (MYCOD.GT.6100) GOTO 1000 X`09IF ((AD.LT.'A').OR.(AD.GT.'T')) GOTO 1000 X`09IF (ORDER(Z6+IARROW(DIR+1)).NE.0) GOTO 1000 X`09AC=RMAP(Z6+IARROW(DIR+1)) X`09IF ((AC.NE.'C').AND.(AC.NE.'O').AND.(AC.NE.'+').AND.(AC.NE.'.')) X`091 GOTO 1000 X`09Z6=Z7+IARROW(ICORR(DIR+1)+1) X`09IF (ORDER(Z6).NE.0) GOTO 950 X`09IF ((RMAP(Z6).EQ.'+').OR.(RMAP(Z6).EQ.'.')) GOTO 1300 X950`09Z6=Z7+IARROW(ICORR(DIR-1)+1) X`09IF (ORDER(Z6).NE.0) GOTO 1000 X`09IF ((RMAP(Z6).EQ.'+').OR.(RMAP(Z6).EQ.'.')) GOTO 1300 X1000`09Z6=Z7 X1100`09CALL SECTOR(PMAP(1)) X`09CALL LTR(Z6,ITURN) X1200`09CALL MVE('F',MDATE,Y,LOC,1,Z6,Z7,DISAS,Z6-IADJST) X`09IF (DISAS.EQ.-2) GOTO 50 XC`20 XC MOVE EVALUATION XC`20 X1300`09AC=RMAP(Z6) X`09AO=OMAP(Z6) X`09IF (Z6.EQ.MYCODE(LOC)) MYCODE(LOC)=0`09!ARRIVED AT DESTINATION X`09IF ((AC.NE.'O').AND.(AC.NE.'C')) RANGE(Y)=RANGE(Y)-1 X`09IF (Z7.EQ.Z6) GOTO 2000`09`09!DIDNT GO ANYWHERE, END MOVE X`09IF ((AB.NE.'C').AND.(OMAP(Z7).NE.'*')) RMAP(Z7)=OMAP(Z7) !CHANGE PREV LOC X`09IF (AO.EQ.'*') GOTO 1400`09!CHECK ON CITIES X`09IF (AC.EQ.'C') GOTO 1500`09!LANDING ON A CARRIER X`09IF ((AC.NE.'.').AND.(AC.NE.'+')) GOTO 1800 !ATTACK ANY OTHER UNITS X X`09RMAP(Z6)='F'`09`09`09!NORMAL MOVE X`09RLMAP(LOC)=Z6 X`09GOTO 1900 X X1400`09IF (AC.NE.'O') GOTO 1600`09! IS IT MY CITY? X1500`09CALL LIB$SET_CURSOR(3,1)`09!LANDED IN A CITY OR CARRIER X`09IF (MYCODE(LOC).EQ.0) CALL STROUT('Landing confirmed.',1) X`09MYCODE(LOC)=0`09`09`09!ZERO MY FUNCTION X`09RLMAP(LOC)=Z6 X`09RANGE(Y)=20 X`09GOTO 2000 X X1600`09IF (.NOT.FATAL(3)) GOTO 2200`09!ASK ABOUT FLYING OVER ENEMY CITY X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('Fighter shot down.',1) X1700`09RLMAP(LOC)=0 X`09GOTO 2000 X XC ATTACKING A UNIT X1800`09IF ((AC.GE.'A').AND.(AC.LE.'T')) THEN X`09`09IF (.NOT.FATAL(2)) GOTO 2200 X`09`09ENDIF X`09H1=1 X`09OWN1='F' X`09OWN2=AC X`09H2=30 X`09CALL FIND(OWN2,Z6,Z8,H2) X`09CALL FGHT(Z6,H1,H2,OWN1,OWN2) X`09CALL FIND(OWN2,Z6,Z8,H2) X`09IF (H1.LE.0) GOTO 1700 X`09RMAP(Z6)='F' X`09RLMAP(LOC)=Z6 X`09IF ((OWN2.GE.'a').AND.(OWN2.LE.'t')) CALL SONAR(Z6) X1900`09CALL SENSOR(Z6)`09`09`09!BOTTOM OF PER TURN LOOP X X2000`09CALL SENSOR(Z6)`09`09`09!BOTTOM OF PER UNIT LOOP X2100`09CONTINUE X`09RETURN XC XC RECOVER FROM FATAL MOVE XC X2200`09Z6=Z7`09`09`09`09!GO BACK TO OLD LOCATION X`09RMAP(Z6)=AB`09`09`09!RESTORE MAP TO PREVIOUS X`09RANGE(Y)=RANGE(Y)+1`09`09!GET YOUR FUEL BACK X`09GOTO 1200 X`09END X`0C X`09SUBROUTINE ARMYEN XC`20 XC THIS SUBROUTINE HANDLES ENEMY ARMY MOVES XC`20 X`09INCLUDE 'EMPIRE.INC/NOLIST' XC X`09MONKEY=0 X`09NUMBER(1)=0 X`09IF (CODER.EQ.1) TYPE 999 X999`09FORMAT(' ARMY CODES') XC`20 XC START ARMY MOVE LOOP XC X`09DO 4200 Y=1,LIMIT(9) X`09Z6=RLMAP(IAR2+Y) X`09IF (Z6.EQ.0) GOTO 4200 X`09IF (CODER.NE.1) GOTO 200 X`09CALL LIB$SET_CURSOR(1,50) X`09CALL DECPRT(Y) X`09CALL LIB$SET_CURSOR(1,60) X`09CALL DECPRT(NPATH) X`09NPATH=0 X200`09Z7=Z6 X`09MONKEY=Y X`09DIR=MOD(Y,2)*2-1`09`09!SET DIR TO 1 OR -1 X`09P=0 X`09AB=RMAP(Z6)`09`09!SET AB=WHAT IS SHOWING WHERE THE ARMY IS X`09AC=0 X`09IF ((AB.NE.'a').AND.(AB.NE.'t').AND.(AB.NE.'X')) GOTO 3700 XC`20 XC AGE AR2S XC X`09IF ((AR2S(Y).LE.100).OR.(AR2S(Y).GT.1000)) AR2S(Y)=AR2S(Y)-1 X`09IF ((AR2S(Y).LT.0).OR.(AR2S(Y).EQ.1000)) AR2S(Y)=0 X`09IF (AB.EQ.'a') GOTO 300 X`09IF (AB.EQ.'X') THEN X`09 DO 250 I=1,LIMIT(13) X`09 IF (RLMAP(ITT2+I).EQ.Z6) GOTO 270 X250`09 CONTINUE X`09 GOTO 300 X`09ENDIF X270`09IF (ARMJMP(Z6,AR2S(Y)).EQ.0) GOTO 4150 XC`20 XC MOVE SELECTION XC X300`09IFO=CODEFU(Y) X`09ILA=CODELA(Y) XC`20 XC IF A PRIORITY MOVE EXISTS, PICK IT AND DON'T BOTHER SLUGGING XC THHROUGH CODE SELECTION AND MOVE SELECTION XC X`09MOVE1=PRIORI(Z6,IFO,ILA,DIR,AB) X`09IF (MOVE1.NE.0) GOTO 2400 XC`20 XCIFO=0: MOVE IN CERTAIN DIRECTION, OR FOLLOW SHORE XCIFO=1: MOVE TOWARDS TARGET CITY XCIFO=2: MOVE TOWARDS AN ENEMY ARMY XCIFO=3: MOVE TOWARDS A TROOP TRANSPORT XC`20 X`09GOTO (400,500,600,700) IFO+1 XC`20 X400`09GOTO 800`09`09!LOOK FOR TARGETS, LOCI, TT'S XC`20 X500`09IF (RMAP(ILA).EQ.'X') GOTO 800`09!CITY HAS BEEN CAPTURED X`09GOTO 1600`09`09`09!MOVE XC`20 X600`09IF (ILA.EQ.Z6) GOTO 800`09`09!ARRIVED AT ENEMY CONCENTRATION X`09IF (RND(100).LE.12) GOTO 1050`09!REEVALUTE DESTINATION EVERY SO OFTEN X`09GOTO 1600`09`09`09!MOVE XC`20 X700`09IF (ILA.GT.100) GOTO 800`09!INVALID VALUE FOR ILA X`09IF (CODEFU(ILA+ITT2-1500).GE.6) GOTO 1200 X`09IF (RLMAP(ILA+ITT2).EQ.0) GOTO 1200`09`09`09!TT SUNK X`09IF (J1TS(ILA+ITT2H).LT.3) GOTO 1200`09`09!TT DAMAGED X`09GOTO 1700 XC`20 XC SELECT A NEW CODE XC X800`09CONTINUE XC`20 XC LOOK FOR TARGET CITY XC X`09IF (NUMBER(10).EQ.0) GOTO 1050 X`09IA=RND(NUMBER(10))+1 X`09IB=IA+NUMBER(10)-1 X`09DO 1000 IC=IA,IB X`09I=IC X`09IF (I.GT.NUMBER(10)) I=I-NUMBER(10) X`09IF (TARGET(I).EQ.0) GOTO 1000 X`09IF (IDIST(Z6,TARGET(I)).GT.14) GOTO 1000 X`09MOVE=PATH(Z6,TARGET(I),DIR,OKB,FLAG) X`09NPATH=NPATH+1 X`09IF (FLAG.EQ.0) GOTO 1000`09`09!CAN'T GET TO IT X`09IFO=1 X`09ILA=TARGET(I) X`09GOTO 1800`09`09`09`09!MOVE X1000`09CONTINUE XC`20 XC LOOK FOR AN ARMY THAT IS ON YOUR CONTINENT XC X1050`09IF (LOCI(10,11).NE.0) LOCI(10,11)=0 X`09DO 1100 I=1,10 X`09TEMP=RND(9)+2`09`09`09`09!** X`09IF (LOCI(I,TEMP).EQ.0) TEMP=2 X`09IF (LOCI(I,TEMP).EQ.0) GOTO 1100 X`09TEMP=LOCI(I,TEMP) X`09MOVE=PATH(Z6,TEMP,DIR,OKB,FLAG) X`09NPATH=NPATH+1 X`09IF (FLAG.EQ.0) GOTO 1100 X`09IFO=2 X`09ILA=TEMP X`09GOTO 1800 X1100`09CONTINUE XC`20 XC LOOK FOR TT THAT IS SHORT OF ARMIES XC X1200`09IF (AR2S(Y).NE.0) GOTO 1400`09`09!INELIGIBLE TO GET ON A TT X`09IA=RND(LIMIT(13))+1`09`09`09!** X`09DO 1300 IC=IA,IA+LIMIT(13) X`09I=IC X`09IF (I.GT.LIMIT(13)) I=I-LIMIT(13) X`09IF (RLMAP(ITT2+I).EQ.0) GOTO 1300`09`09!TT DOESN'T EXIST X`09IF (J1TS(ITT2H+I).LT.3) GOTO 1300`09!DAMAGED, I.E. UNSUITABLE X`09IF (IABS(CODEFU(ITT2+I-1500)).GE.6) GOTO 1300 X`09IF (IDIST(Z6,RLMAP(ITT2+I)).GT.20) GOTO 1300`09!TOO FAR AWAY X`09MOVE=PATH(Z6,RLMAP(ITT2+I),DIR,OKB,FLAG) X`09NPATH=NPATH+1 X`09IF (FLAG.EQ.0) GOTO 1300`09`09`09!CAN'T GET TO IT X`09MOVE=MOV(Z6,RLMAP(ITT2+I)) X`09IFO=3 X`09ILA=I X`09CODELA(ITT2+I-1500)=Y X`09GOTO 1800 X1300`09CONTINUE XC`20 XC PICK A RANDOM DIRECTION (IFO=0) XC X1400`09IF ((IFO.EQ.0).AND.(ILA.NE.0)) GOTO 1500`09!IF ALREADY ASS'D DIREC X`09IFO=0 X`09ILA=RND(8)+1`09`09`09`09!** XC`20 X1500`09MOVE=ILA X`09I1=ICORR(MOVE-DIR*3) X`09IF (RMAP(Z6+IARROW(I1+1)).NE.'+') MOVE=I1`09!** X`09GOTO 1800 X X1600`09MOVE=PATH(Z6,ILA,DIR,OKB,FLAG) X`09NPATH=NPATH+1 X`09IF (FLAG.EQ.0) GOTO 1400 X`09GOTO 1800 X X1700`09MOVE=PATH(Z6,RLMAP(ILA+ITT2),DIR,OKB,FLAG) X`09NPATH=NPATH+1 XC`20 X1800`09DO 2300 I=0,7*DIR,DIR X`09MOVE1=ICORR(MOVE+I) X`09LOC=Z6+IARROW(MOVE1+1)`09`09`09!** X`09AC=RMAP(LOC) X`09IF (AC.NE.'t') GOTO 2200 X`09IF (IFO.EQ.3) IFO=0 X`09IF (AR2S(Y).NE.0) GOTO 2300 X`09NUMARM=0 X`09DO 1900 IZ=ITT2+1,LIMIT(13)+ITT2 X1900`09IF (RLMAP(IZ).EQ.LOC) GOTO 2000 X2000`09IF (J1TS(ITT2H-ITT2+IZ).LT.3) GOTO 2300 X`09DO 2100 IY=IAR2+1,LIMIT(9)+IAR2 X`09IF (RLMAP(IY).EQ.LOC) NUMARM=NUMARM+1 X2100`09IF (NUMARM.GE.6) GOTO 2300 X`09GOTO 2400 X2200`09IF ((AC.EQ.'+').AND.(ORDER(LOC).EQ.0)) GOTO 2400 X2300`09CONTINUE X`09MOVE1=0 XC`20 X2400`09IF (IFO.EQ.0) ILA=IABS(MOVE1) X`09CODEFU(Y)=IFO X`09CODELA(Y)=ILA X`09IF (CODER.EQ.1) TYPE 998,IFO,ILA X998`09FORMAT(1X,7I,3X) X`09Z6=Z6+IARROW(MOVE1+1)`09`09`09!** XC`20 X`09AC=RMAP(Z6) X`09IF (AB.NE.'t') GOTO 2500 X`09IF (AC.EQ.'t') GOTO 3600 X`09CODEFU(Y)=0 X`09CODELA(Y)=0 X`09AR2S(Y)=1020 X`09GOTO 2600 X2500`09IF (OMAP(Z7).NE.'*') RMAP(Z7)=OMAP(Z7) X`09IF (AC.NE.'t') GOTO 2600 X`09AR2S(Y)=100 X`09GOTO 3600 X2600`09IF (AC.EQ.'+') GOTO 3500 X`09IF ((AC.EQ.'X').OR.(AC.EQ.'.')) GOTO 3700 X`09IF (OMAP(Z6).NE.'*') GOTO 3400 X`09IF (RND(100).LT.50) THEN X`09ID=10 X`09DO 2650 I=1,LIMIT(9) X`09IF (RLMAP(IAR2+I).EQ.0) GOTO 2650 X`09IF (I.EQ.Y) GOTO 2650 X`09IF (CODEFU(I).NE.0) GOTO 2650 X`09IF (IDIST(RLMAP(IAR2+I),Z6).GE.ID) GOTO 2650 X`09MOVE=PATH(RLMAP(IAR2+I),Z6,1,OKB,FLAG) X`09NPATH=NPATH+1 X`09IF (FLAG.EQ.0) GOTO 2650`09`09!CAN'T GET TO IT X`09ID=IDIST(RLMAP(IAR2+I),Z6) X`09IY=I X2650`09CONTINUE X`09IF (ID.LT.10) THEN X`09IFO=1 X`09ILA=Z6 X`09ENDIF X`09GOTO 3700 X`09ENDIF X X`09DO 2700 I=1,70 X2700`09IF (TARGET(I).EQ.Z6) TARGET(I)=0 X`09DO 2800 I=1,LIMIT(9) X2800`09IF (CODEFU(I).NE.1.OR.CODELA(I).NE.Z6) GOTO 2900 X`09CODEFU(I)=0 X`09CODELA(I)=0 X2900`09DO 3000 I=1,100 X3000`09IF (X(I).EQ.Z6) GOTO 3100 X3100`09OWNER(I)=2 X`09PHASE(I)=0 X`09IF (((AC.EQ.'O').OR.(AR2S(Y).GT.0)).AND.(EDGER(Z6).LT.8)) X`091`09PHASE(I)=-1 X`09IF (AC.NE.'O') GOTO 3200 X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('City at',10) X`09 CALL DECPRT(Z6) X`09CALL STROUT(' surrendered to enemy forces.',1) X`09RMAP(Z6)='X' X`09CALL SENSOR(Z6) X`09GOTO 3700 X3200`09RMAP(Z6)='X' X`09GOTO 3700 X3300`09AR2S(Y)=100 X`09GOTO 3600 X3400`09H1=1 X`09IF (Z7.EQ.Z6) GOTO 3600 X997`09FORMAT(1H+,/,' ERROR: ATTACKED ',A1,4I,1X) X`09P=1 X`09OWN1='a' X`09OWN2=AC X`09H2=30 X`09CALL FIND(OWN2,Z6,Z8,H2) X`09CALL FGHT(Z6,H1,H2,OWN1,OWN2) X`09CALL FIND(OWN2,Z6,Z8,H2) X`09IF (H1.LE.0) GOTO 3700 X`09RMAP(Z6)=OMAP(Z6) X`09IF (RMAP(Z6).EQ.'.') GOTO 3700 X3500`09RMAP(Z6)='a' X3600`09RLMAP(IAR2+Y)=Z6 X`09IF (P.EQ.1) CALL SENSOR(Z6) X`09GOTO 4100 X3700`09RLMAP(IAR2+Y)=0 X`09IF (AC.NE.'X') GOTO 3900 X`09DO 3800 I=1,70 X3800`09IF (X(I).EQ.Z6) PHASE(I)=0 X3900`09IF (P.EQ.1) CALL SENSOR(Z6) X`09IF (RMAP(Z6).NE.'O') GOTO 4000 X`09CALL LIB$SET_CURSOR(3,1) X`09CALL STROUT('City at',10) X`09CALL DECPRT(Z6) X`09CALL STROUT(' repelled enemy invasion.',1) X4000`09CODEFU(Y)=0 X`09CODELA(Y)=0 X`09AR2S(Y)=0 X4100`09CALL SONAR(Z6) X4150`09IF (RLMAP(IAR2+Y).NE.0) NUMBER(1)=NUMBER(1)+1 X4200`09CONTINUE X`09LIMIT(9)=MONKEY X`09RETURN X`09END X`0C X`09SUBROUTINE TROOPM XC XC THIS SUBROUTINE HANDLES ENEMY TROOP TRANSPORT MOVES XC`20 X`09INCLUDE 'EMPIRE.INC/NOLIST' X`09INTEGER TTTC(-1:20,0:50) XC X`09MONKEY=0 X`09NUMBER(5)=0 X`09IF (CODER.EQ.5) TYPE 999 X999`09FORMAT(' TROOP TRANSPORT CODES') XC`20 X`09DO 2300 Y=1,LIMIT(13) X`09Z6=RLMAP(ITT2+Y) X`09IF (Z6.EQ.0) GOTO 2300 X`09MONKEY=Y X`09DIR=MOD(Y,2)*2-1`09`09!SET DIR TO 1 OR -1 CONSISTENTLY X`09AB=RMAP(Z6) X`09H1=J1TS(ITT2H+Y) X`09IF (AB.EQ.'X') H1=H1+1 X`09IF (H1.GT.3) H1=3 XC`20 XC NOW COMPUTE THE NUMBER OF ARMIES ABOARD THE TROOP TRANSPORT XC X`09NUMARM=0 X`09DO 100 I=1,LIMIT(9) X100`09IF (Z6.EQ.RLMAP(IAR2+I)) NUMARM=NUMARM+1 X`09IF (NUMARM.GT.6) NUMARM=6`09`09!MAX # ARMIES = 6 XC`20 X`09ORIG=Z6 X`09DO 2200 ITURN=1,2 X`09P=0 X`09Z7=Z6 X`09AB=RMAP(Z6) X`09IF ((ITURN.EQ.2).AND.(H1.LE.1)) GOTO 2300 XC XC MOVE SELECTION XC X`09IFO=CODEFU(Y+ITT2-1500) X`09ILA=CODELA(Y+ITT2-1500) XC`20 XC 300 IS THE STATEMENT NUMBER WHERE THE IFO AND ILA ARE XC PROCESSED TO COME UP WITH A MOVE, WHICH IS THEN FED THRU MOVCOR XC TO COME UP WITH A FINAL MOVE. XC`20 XC TAKE CARE OF DAMAGED SHIPS OR JUST REPAIRED SHIPS. XC (DAMAGED SHIPS WILL HAVE AN IFO OF 8) XC`20 X`09IF (H1.LT.3) GOTO 200 X`09IF (IFO.EQ.8) IFO=0 X`09GOTO 300 X200`09IFO=8 X`09IF (ILA.EQ.0) GOTO 250 X`09IF (RMAP(ILA).EQ.'X') GOTO 1300 X250`09ILA=IPORT(Z6) X`09GOTO 1300 XC`20 XC IFO=10: MOVE TOWARD UNEXPLORED TERRITORY, LOCATION SPECIFIED BY ILA XC IFO=7: MOVE IN A CONSTANT DIRECTION SPECIFIED BY ILA XC IFO=9: MOVE TOWARD AN UNOWNED CITY (OR ENEMY CITY) SPECIFIED BY ILA XC IFO=0-6: ILA SPECIFIES LOCATION OF WHERE TO MOVE, EITHER XC`09AN ARMY PRODUCING CITY OR AN ARMY LOOKING FOR A 't'. XC`09IT COULD ALSO BE A DIRECTION. IFO IS THE NUMBER OF ARMIES ON XC`09BOARD THE TROOP TRANSPORT. XC`20 X300`09IF (IFO.LT.7) IFO=NUMARM X`09IF (NUMARM.EQ.0) IFO=0 X`09IF ((IFO.EQ.10).AND.(EMAP(ILA).NE.' ')) GOTO 1000 X`09IF (IFO.EQ.10) GOTO 1300 X`09IF (IFO.EQ.7) GOTO 1350 X`09IF (IFO.NE.9) GOTO 500 XC`20 XC IFO=9 XC X`09DO 400 I=1,70 X`09IF (TARGET(I).NE.ILA) GOTO 400 X`09MOVE=0 X`09IF ((ITURN.EQ.2).AND.(IDIST(Z6,ILA).EQ.1)) GOTO 1600 X`09GOTO 1300 X400`09CONTINUE X`09IF ((IDIST(Z6,ILA).LT.10).AND.(EDGER(ILA).LT.8).AND.(RND(100).GT.10)) X`091 GOTO 1300 XC XC`09IT SEEMS THAT IT'S TARGET IS NO LONGER ON THE HIT LIST, XC`09MEANING IT WAS CAPTURED. XC`20 X500`09IF (IFO.LE.2) GOTO 600 X`09IF (IFO.EQ.3) THEN X`09 IF (RND(100).LT.96) GOTO 600 X`09ENDIF X`09IF (IFO.EQ.4) THEN X`09 IF (RND(100).LT.90) GOTO 600 X`09ENDIF X`09GOTO 800`09`09`09!SELECT A TARGET XC XC SELECT AN ARMY PRODUCING CITY AND MOVE TOWARDS IT. XC PICK THE CLOSEST ONE. XC X600`09IF (ILA.EQ.0.OR.ILA.GT.500) GOTO 650 X`09IF ((CODEFU(ILA).EQ.3).AND.(RLMAP(IAR2+ILA).NE.0)) GOTO 1200 X650`09AFLAG=0 X`09ID=35 X670`09DO 700 I=1,70 X`09IF ((X(I).EQ.0).OR.(OWNER(I).NE.2)) GOTO 700 X`09IF (EDGER(X(I)).EQ.0) GOTO 700 X`09IF ((AFLAG.EQ.0).AND.(PHASE(I).NE.1)) GOTO 700 X`09IF (IDIST(Z6,X(I)).GE.ID) GOTO 700 X`09DO 680 J=1,LIMIT(13) X`09IF (J.EQ.Y) GOTO 680 X`09IF (CODELA(J+ITT2-1500).NE.X(I)) GOTO 680 X`09IF (IDIST(RLMAP(J+ITT2),X(I)).LE.2) GOTO 700 X680`09CONTINUE X`09ID=IDIST(Z6,X(I)) X`09ILA=X(I) X700`09CONTINUE X`09IF (ID.NE.35) GOTO 1300 X`09IF (AFLAG.EQ.1) GOTO 1000 X`09AFLAG=1 X`09GOTO 670 XC`20 XC PERFORM TROOP TRANSPORT TO TARGET CITY ASSIGNMENT XC X800`09IF (NUMBER(10).EQ.0) GOTO 1000 X`09TM=0 X`09DO 820 I=1,LIMIT(13) X`09IF (RLMAP(ITT2+I).EQ.0) GOTO 820 X`09IF (I.EQ.Y) GOTO 810 X`09IF (CODEFU(ITT2-1500+I).EQ.8) GOTO 820 +-+-+-+-+-+-+-+- END OF PART 6 +-+-+-+-+-+-+-+-