SUBROUTINE DAMAGE( IHITER, IHITEE, EN, D ) # # * CALCULATE DAMAGE DONE WHEN SHIP "IHITER" HITS "IHITEE" # WITH "EN" UNITS FROM DIRECTION "D". "D" > 360 IS A HIT FROM # BEHIND. # INCLUDE COMMON.RAT SABS = MIN( SHIELD(IHITEE)/1000., 1.0 ) # # * CALCULATE FACTOR FOR DIRECTIONAL SHIELDING # IF (D > 360.) [ DEL=180. ] ELSE [ DEL=ABS(DIR(IHITEE)-D) IF (DEL > 180.) [ DEL=360. - DEL ] ] SABS = SABS *(.5 + DEL/360.) ENERGY(IHITEE)=ENERGY(IHITEE)-(1.2-SABS)*EN*6. SHIELD(IHITEE)= MAX( SHIELD(IHITEE)-SABS*EN, 0.0 ) IF (IHITEE != IHITER) SCORE(IHITER) = SCORE(IHITER) + EN IF (ENERGY(IHITEE) <= 0) [ IF( IHITER != IHITEE ) [ CALL SENT(IHITER,22) # ***alien destroyed*** SCORE(IHITER)=SCORE(IHITER)+2000. ] CALL RESET(IHITEE) ] RETURN END