SUBROUTINE HITEM(HITS) C*BEGIN COMMON COMMON SNAP,SNAPSHT(247), + DATE,REMKL,REMCOM,REMBASE,REMRES,REMTIME,STARKL,BASEKL, + KILLK,KILLC,GALAXY(8,8),CX(10),CY(10),BASEQX(5),BASEQY(5), + NEWSTUF(8,8),PLNETS(10,5),ISX,ISY,NSCREM,NROMKL,NROMREM, + NSCKILL,NPLANKL,ISATB,BATX,BATY,THINGX,THINGY, + QUAD(10,10),KX(20),KY(20),KPOWER(20),KDIST(20),KSTUF(20), + FUTURE(10),MESSAGE(5,10), + INKLING,INBASE,INRESOR,INCOM,INTIME,INSTAR,INENRG,INSHLD, + INTORPS,INLSR,INDATE,ENERGY,SHLD,SHLDUP,CONDIT,TORPS,SHIP, + QUADX,QUADY,SECTX,SECTY,WARPFAC,WFACSQ,LSUPRES,DAMAGE(20), + LENGTH,SKILL,PASSWD,DIST,DIREC,TIME,BASEX,BASEY,DOCKFAC, + KLHERE,COMHERE,CASUAL,NHELP,NKINKS,STARCH(8,8), + DEVICE(2,14),IDIDIT,GAMEWON,ALIVE,JUSTIN,RESTING,ALLDONE, + DAMFAC,SHLDCHG,NDEVICE,PLNETX,PLNETY,INORBIT,LANDED,IPLANET, + IMINE,ICRYSTL,INPLAN,NENHERE,ISHERE,NEUTZ,IRHERE,ICRAFT, + IENTESC,ISCRAFT,ISCATE,CRYPROB,ICITE,IPHWHO, + CRACKS(12) INTEGER SHLDUP,CONDIT,QUADX,QUADY,SECTX,SECTY,TORPS, + REMKL,REMBASE,SKILL,REMCOM,GALAXY,STARCH,CX,CY, + SHIP,ALLDONE,BASEQX,BASEQY,BASEX,BASEY,GAMEWON, + ALIVE,STARKL,BASEKL,CASUAL,COMHERE,RESTING,SNAP,SHLDCHG, + THINGX,THINGY,BATX,BATY,PLNETX,PLNETY,PLNETS REAL KDIST,KPOWER,LSUPRES,INTIME,INRESOR,INDATE,INSHLD, + INENRG,INLSR BYTE QUAD REAL*8 DEVICE,PASSWD C*END COMMON LOGICAL*1 IHS,IHR,IHC,IHK,IHE,IHF,IHBLANK,IHDOT,IHP,IHB 1 ,IHSTAR,IHT,IHQUEST,IHNUM,IENM COMMON/HOLLER/IHEOL,IHREAL,IHALPHA,IHS,IHR,IHC,IHK,IHGREEN,IHRED, +IHYELLO,IHDOCKD,IHE,IHF,IHBLANK,IHDOT,IHQUEST,IHP,IHSTAR,IHB +,IHT,IHNUM DIMENSION HITS(20) REAL KP DATA PHASFAC/2.0/ CALL SKIP(1) NENH=NENHERE KK=1 DO 40 K=1,NENH WHAM=HITS(K) IF(WHAM .EQ. 0) GO TO 30 DUSTFAC=0.90+0.01*RANF(0) HIT=WHAM*DUSTFAC**KDIST(KK) KP=KPOWER(KK) KPOWER(KK)=KP-SIGN(AMIN1(ABS(KP),PHASFAC*HIT),KP) KPOW=KPOWER(KK) II=KX(KK) JJ=KY(KK) IF(HIT .GT. .005)GO TO 10 CALL CRAM(18HVERY SMALL HIT ON ) GO TO 20 10 CALL CRAMF(HIT,0,2) CALL CRAM(13H UNIT HIT ON ) 20 IENM=QUAD(II,JJ) CALL CRMENA(IENM,2,II,JJ) CALL CREND IF(KPOW .NE. 0) GO TO 25 CALL DEADKL(II,JJ,IENM,II,JJ) IF(REMKL .GT. 0) GO TO 40 CALL FINISH(1) RETURN C--------- DECIDE WHETHER OR NOT TO EMASCULATE KLINGON. 25 IF(KPOW .LT. 0) GO TO 30 IF(RANF(0.) .LT. .90)GO TO 30 IF(KPOW .GT. ((.40 + .4*RANF(0.))*KP))GO TO 30 CALL CRAM(38H***MR. SPOCK: "CAPTAIN, THE VESSEL AT) CALL CRAMLOC(2,II,JJ) CALL CREND CALL PROUT(32H HAS JUST LOST ITS FIREPOWER.",32) KPOWER(KK)=-KPOW 30 KK=KK+1 40 CONTINUE RETURN END