%! %Copyright 1995 Dave Cho All Rights Reserved %Permission is given to freely distribute and modify this product so long %as it is done without charge and so long as this Copyright text remains in %place. %Certain designs inherent may be copyrighted elsewhere. %Dave Cho 1995 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Here is the data. Make sure all unbalanced parentheses are \'ed. % Erase no ()'s. If you want a blank value, use (). % Capitalization is irrelevant. /notes () def /armor 7 array def armor 0 9 put % HD armor 1 14 put % CT armor 2 7 put % CT,R armor 3 10 put % R/LT armor 4 5 put % R/LT,R armor 5 10 put % R/LA armor 6 12 put % R/LL /is 5 array def is 0 3 put % HD is 1 11 put % CT is 2 8 put % R/LT is 3 6 put % R/LA is 4 8 put % R/LL /stats 7 array def stats 0 (PNT-9R Panther) put % Mech name stats 1 (35) put % Tonnage stats 2 (4) put % Walking speed stats 3 (6) put % Running speed stats 4 (4) put % Jump speed stats 5 (13) put % Heat sinks stats 6 (104) put % Armor factor /weapons 2 array def % (Type) (Location) (Damage) (Heat) (Range) weapons 0 [(SRM-4) (CT) (2ea) (3) (3)] put weapons 1 [(PPC) (RA) (10) (10) (6)] put /ammo 4 array def ammo 0 (-) put % AC Rounds ammo 1 (-) put % MG Rounds ammo 2 (25) put % SRM Packs ammo 3 (-) put % LRM Packs /warrior 8 array def warrior 0 (Doofus Boy) put % Pilot name warrior 1 (5) put % Gunnery skill warrior 2 (6) put % Piloting skill warrior 3 (0) put % Hits taken warrior 4 (0) put % Edge warrior 5 (2.5) put % Kills warrior 6 (0) put % Influence warrior 7 ($8,100) put % Money /c-la 12 array def c-la 0 (Shoulder) put c-la 1 (Upper Arm Actuator) put c-la 2 (Lower Arm Actuator) put c-la 3 (Hand Actuator) put c-la 4 () put c-la 5 () put c-la 6 () put c-la 7 () put c-la 8 () put c-la 9 () put c-la 10 () put c-la 11 () put /c-hd 6 array def c-hd 0 (Life Support) put c-hd 1 (Sensors) put c-hd 2 (Cockpit) put c-hd 3 () put c-hd 4 (Sensors) put c-hd 5 (Life Support) put /c-ra 12 array def c-ra 0 (Shoulder) put c-ra 1 (Upper Arm Actuator) put c-ra 2 (Lower Arm Actuator) put c-ra 3 (Hand Actuator) put c-ra 4 (PPC #1) put c-ra 5 (PPC #1) put c-ra 6 (PPC #1) put c-ra 7 () put c-ra 8 () put c-ra 9 () put c-ra 10 () put c-ra 11 () put /c-lt 12 array def c-lt 0 (Heat Sink) put c-lt 1 (Heat Sink) put c-lt 2 (Heat Sink) put c-lt 3 (Ammo (SRM) 25) put c-lt 4 () put c-lt 5 () put c-lt 6 () put c-lt 7 () put c-lt 8 () put c-lt 9 () put c-lt 10 () put c-lt 11 () put /c-ct 12 array def c-ct 0 (Engine) put c-ct 1 (Engine) put c-ct 2 (Engine) put c-ct 3 (Gyro) put c-ct 4 (Gyro) put c-ct 5 (Gyro) put c-ct 6 (Gyro) put c-ct 7 (Engine) put c-ct 8 (Engine) put c-ct 9 (Engine) put c-ct 10 (SRM-4) put c-ct 11 () put /c-rt 12 array def c-rt 0 () put c-rt 1 () put c-rt 2 (Jump Jet) put c-rt 3 () put c-rt 4 () put c-rt 5 () put c-rt 6 () put c-rt 7 () put c-rt 8 () put c-rt 9 () put c-rt 10 () put c-rt 11 () put /c-ll 6 array def c-ll 0 (Hip) put c-ll 1 (Upper Leg Actuator) put c-ll 2 (Lower Leg Actuator) put c-ll 3 (Foot Actuator) put c-ll 4 (Jump Jet) put c-ll 5 (Jump Jet) put /c-rl 6 array def c-rl 0 (Hip) put c-rl 1 (Upper Leg Actuator) put c-rl 2 (Lower Leg Actuator) put c-rl 3 (Foot Actuator) put c-rl 4 (Jump Jet) put c-rl 5 (Jump Jet) put %%%%%%%%%%%%%%%% END OF DATA %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /inch {72 mul} def /cm {72 mul 2.54 div} def /yline {10 inch} def % the following are the parameters you might want to change: /sp {14 neg} def % number of points between returns /cp {4.25 inch} def % where rcenter centers around /lm 0.5 inch def % left margin /tablen {136} def % distance between tab stops /tabpos {0} def % initial tab position %/shiftover {} def /shiftover {/cp 8.5 inch 3 mul 4 div def /lm 4.25 inch def /rm 8 inch def } def % don't mess with these: /setup-norm {/cp 8.5 inch 4 div def /lm 0.5 inch def /rm 3.75 inch def} def /setup-rot {0 11 inch translate -90 rotate 0 8.5 inch lm sub moveto enter /cp 5.5 inch def} def /reverse-video {0 0 moveto 8.5 inch 0 rlineto 0 11 inch rlineto -8.5 inch 0 rlineto closepath fill /setgray {1 exch sub setgray} bind def 0 setgray} def /stringheight {/stringfoobar exch def gsave newpath 0 0 moveto stringfoobar false charpath flattenpath pathbbox exch pop 3 -1 roll pop exch sub grestore} def /sqr {dup mul} def /center % stack: x y str {/stringcenter exch def /ycenter exch def /xcenter exch def stringcenter stringwidth pop -2 div xcenter add fsize -2 div ycenter add moveto stringcenter show} def /enter {lm currentpoint exch pop moveto 0 sp rmoveto /yline {currentpoint exch pop} def /tabpos lm def } def % yline lm le {shiftover} if} def /return {show enter} def /ncenter {dup stringwidth pop -2 div cp add currentpoint exch pop moveto show} def /rcenter {currentpoint currentpoint exch pop cp exch 5 -1 roll center moveto enter} def /tab {tabpos tablen add /tabnew exch def tabnew currentpoint exch pop moveto /tabpos tabnew def} def /tabpos {lm} def /stab {show tab} def /blam { show currentpoint pop /xorig exch def /xfin {tablen lm add} def (.) stringwidth pop /dotlen exch def xfin xorig sub dotlen div /foo exch def /t {1} def 1 t foo {pop (.) show} for} def /rm {7.5 inch} def /right {currentpoint exch pop rm exch moveto dup stringwidth pop neg 0 rmoveto} def /mark1 {currentpoint /ymark1 exch def /xmark1 exch def} def /mark2 {currentpoint /ymark2 exch def /xmark2 exch def} def /mark3 {currentpoint /ymark3 exch def /xmark3 exch def} def /gofont {/fname exch def /fsize exch def fname findfont fsize scalefont setfont /sp {fsize -1.1 mul} def } def /tb {/Times-Bold gofont} def /tr {/Times-Roman gofont} def /ti {/Times-Italic gofont} def /tbi {/Times-BoldItalic gofont} def /really {/wanted fsize def /do-really { (A) stringheight wanted lt {fsize 1 add fname gofont do-really} if } def do-really } def %%Trailer /wordbreak ( ) def /linebreak ( ) def % the following needs to be the Code Std converted from octal into decimal /wordbreaknum 32 def /GOblah {/proc exch def /linelength exch def /textstring exch def /breaklen wordbreak stringwidth pop def /curlen 0 def /lastwordbreak 0 def /startchar 0 def /restoftext textstring def { restoftext wordbreak search { /nextword exch def pop /restoftext exch def /wordlen nextword stringwidth pop def curlen wordlen add linelength lt { /curlen curlen wordlen add breaklen add def } { textstring startchar lastwordbreak startchar sub getinterval proc /startchar lastwordbreak def /curlen wordlen breaklen add def } ifelse /lastwordbreak lastwordbreak nextword length add 1 add def } { pop exit } ifelse } loop /lastchar textstring length def textstring startchar lastchar startchar sub getinterval dup stringwidth pop linelength lt {proc} {/overstring exch def /curlen 0 def /lastwordbreak textstring length 1 sub def /curpos 0 def overstring {wordbreaknum eq {/lastwordbreak curpos def} if /curpos curpos 1 add def} forall overstring 0 lastwordbreak 1 add getinterval dup stringwidth pop linelength lt {proc overstring dup length lastwordbreak sub 1 sub lastwordbreak 1 add exch getinterval proc} {pop %ok, it's stupid /curlen 0 def /curpos 0 def /origpos 0 def /tempoverstring overstring length string def 0 1 overstring length 1 sub {/curpos exch def curpos dup overstring exch 1 getinterval dup stringwidth pop curlen add /curlen exch def tempoverstring 3 1 roll putinterval curlen linelength ge { tempoverstring origpos curpos origpos sub 1 add getinterval proc /origpos curpos 1 add def /curlen 0 def /tempoverstring overstring length string def } if } for tempoverstring origpos curpos origpos sub 1 add getinterval proc } ifelse } ifelse } def %the 4.5 inch is the length of the horz line /GO {golength {/gostring exch def gostring () ne {gostring return} if } GOblah} def /golength 3.25 inch def %/GO { %golength %{ % /str1 exch def % str2 () ne {GOshow} if % /str2 str1 def %} GOblah %GOshowlen 0 ne % {GOshowlen 0 str2 ashow enter} % {GOone} ifelse %/str2 () def /GOshowlen 0 def %} def % %/str2 () def % %/GOshow { %str2 str2 length 1 sub 1 getinterval ( ) eq % {/str2 str2 0 str2 length 1 sub getinterval def} if %golength str2 stringwidth pop sub str2 length div /GOshowlen exch def %GOshowlen 0 str2 ashow enter %} def % %/GOone { % only one line of text it seems... %str2 str2 length 1 sub 1 getinterval ( ) eq % {/str2 str2 0 str2 length 1 sub getinterval def} if %golength str2 stringwidth pop sub str2 length div /GOshowlen exch def %GOshowlen 0.5 gt % {str2 return} % {GOshowlen 0 str2 ashow enter} ifelse %} def % %/golength rm lm sub def %0 -3 inch translate %lm dup moveto 8.5 inch lm 2 mul sub 0 rlineto 0 11 inch lm 2 mul sub %rlineto 8.5 inch lm 2 mul sub neg 0 rlineto closepath stroke %0 5.5 inch moveto 9 inch 0 rlineto stroke /bold {tb} def /roman {tr} def /italic {ti} def 36 bold 0.5 setlinewidth 0 10.88 inch moveto enter %(BATTLETECH) rcenter stats 0 get rcenter %%%%%%%%%%%%%%%% /largebubble {/buby exch def /bubx exch def bubx 2.5 add buby moveto bubx buby 2.5 0 360 arc } def /smallbubble {/buby exch def /bubx exch def bubx 1.5 add buby moveto bubx buby 1.5 0 360 arc } def %%%%%%%%%%%%%%%% HALF MECH %%%%%%%%%%%%%%%% /half-mech {1 setlinewidth 0 0 moveto 9 0 rlineto -2 -5 rlineto 21 0 rlineto 3 5 rlineto 13 0 rlineto 3 2 rlineto 8 16 rlineto mark1 xmark1 20 add ymark1 30 add xmark1 20 add ymark1 60 add xmark1 20 add ymark1 107 add curveto 6 5 rlineto 2 22 rlineto 2 0 rlineto 2 -4 rlineto 0 -2 rlineto 3 0 rlineto 0 -2 rlineto 10 0 rlineto mark1 0 99 rmoveto -21 0 rlineto -4 12 rlineto -3 -14 rlineto -7 -7 rlineto mark3 mark2 xmark2 10 add ymark2 -13 add xmark2 -15 add ymark2 -26 add xmark2 -6 add ymark2 -40 add curveto -2 -2 rlineto -2 -48 rlineto -4 -17 rlineto mark2 xmark2 -10 add ymark2 -20 add xmark2 -20 add ymark2 -40 add xmark2 -30 add ymark2 -80 add curveto mark2 xmark2 -10 add ymark2 -7 add xmark2 -10 add ymark2 -14 add xmark2 ymark2 -20 add curveto -10 -16 rlineto -3 0 rlineto -8 -11 rlineto xmark3 ymark3 moveto xmark3 -5 add ymark3 5 add xmark3 -22 add ymark3 8 add xmark3 -27 add ymark3 3 add curveto -9 -34 rlineto 3 -2 rlineto -5 -18 rlineto -2 0 rlineto -5 6 rlineto -10 -30 rlineto 4 -18 rlineto 9 -4 rlineto 15 -3 rlineto mark2 xmark2 10 add ymark2 20 add xmark2 10 add ymark2 40 add xmark2 9 add ymark2 55 add curveto 3 10 rlineto 7 3 rlineto 2 -8 rmoveto 16 -25 rlineto 12 7 rlineto 0 -27 rmoveto 0 27 rlineto -16 25 rlineto 5 14 rlineto 14 0 rlineto 4 4 rlineto currentpoint exch pop xmark1 exch moveto 0 -5 rmoveto mark1 xmark1 -7 add ymark1 0 add xmark1 -7 add ymark1 20 add xmark1 -10 add ymark1 20 add curveto mark2 xmark2 3 add ymark2 4 add xmark2 6 add ymark2 8 add xmark2 10 add ymark2 9 add curveto } def % /half-mech %%%%%%%%%%%%%%%% ARMOR %%%%%%%%%%%%%%%% /leg-armor { gsave 64 140 translate /x 0 def /y 0 def 1 1 armor 6 get {pop x y largebubble /x x 1.5 sub def /y y 6 sub def x -30 le {/x 6 def /y 0 def} if } for stroke grestore } def /arm-armor { gsave 46 233 translate /x 0 def /y 0 def 1 1 armor 5 get {pop x y largebubble /x x 1.5 sub def /y y 6 sub def y -90 le {/x 6 def /y 0 def} if } for stroke grestore } def /center-armor { gsave 79 210 translate /x 0 def /y 0 def armor 1 get 24 ge {/asdf 24 def} {/asdf armor 1 get def} ifelse 1 1 asdf {pop x y largebubble /x x 6 add def x 48 ge {/x 0 def /y y 6 sub def} if } for armor 1 get 36 ge {/asdf 12 def} { armor 1 get 24 ge {/asdf armor 1 get 24 sub def} {/asdf 0 def} ifelse } ifelse 6 -18 translate /x 0 def /y 0 def 1 1 asdf {pop x y largebubble /x x 6 add def x 36 ge {/x 0 def /y y 6 sub def} if } for 6 -12 translate /x 0 def /y 0 def 37 1 armor 1 get {pop x y largebubble /x x 6 add def x 24 ge {/x 0 def /y y 6 sub def} if } for stroke grestore } def /torso-armor {% armor 3 gsave 71.5 234 translate armor 3 get 25 ge {/asdf 25 def} {/asdf armor 3 get def} ifelse /x 0 def /y 0 def 1 1 asdf {pop x y smallbubble /x x 4 add def x 20 ge {/x 0 def /y y 4 sub def} if } for armor 3 get 33 ge {/asdf 8 def} {armor 3 get 25 ge {/asdf armor 3 get 25 sub def} {/asdf 0 def} ifelse } ifelse -5 -21 translate /x 0 def /y 0 def 1 1 asdf {pop x y smallbubble /x x 4 add def x 8 ge {/x 0 def /y y 4 sub def -4 3 div 0 translate} if } for armor 3 get 33 ge {/asdf armor 3 get 33 sub def} {/asdf 0 def} ifelse 8 3 div -16 translate /x 0 def /y 0 def 1 1 asdf {pop x y smallbubble /x x 4 add def x 8 ge {/x 0 def /y y 4 sub def 4 1.5 div 0 translate} if } for stroke grestore } def /head-armor { % armor 0 gsave armor 0 get 6 ge {/asdf 6 def} {/asdf armor 0 get def} ifelse 96 232 translate /x 0 def /y 0 def 1 1 asdf {pop x y smallbubble /x x 4 add def x 12 ge {/x 0 def /y y 4 sub def} if } for stroke grestore gsave armor 0 get 7 ge {98 224 smallbubble} if armor 0 get 8 ge {102 224 smallbubble} if armor 0 get 9 ge {100 220 smallbubble} if stroke grestore } def %%%%%%%%%%%%%%%% HALF-MECH-ARMOR %%%%%%%%%%%%%%%% /half-mech-armor { 0.5 setlinewidth gsave xmark1 2 mul 0 translate -1 1 scale leg-armor arm-armor center-armor torso-armor head-armor grestore gsave leg-armor arm-armor torso-armor grestore stroke } def % /half-mech-armor %%%%%%%%%%%%%%%% HALF-MECH2 %%%%%%%%%%%%%%%% /half-mech2 {1.2 setlinewidth 0 0 moveto 0 -2 rlineto 3 0 rlineto 0 -2 rlineto 10 0 rlineto mark1 xmark1 13 sub ymark1 4 add moveto 0 95 rlineto xmark1 ymark1 moveto 0 99 rmoveto -21 0 rlineto -4 12 rlineto -3 -14 rlineto -7 -7 rlineto mark2 xmark2 10 add ymark2 -13 add xmark2 -15 add ymark2 -26 add xmark2 -6 add ymark2 -40 add curveto mark3 -7 -3 rlineto -3 -10 rlineto xmark2 ymark2 moveto xmark2 -5 add ymark2 5 add xmark2 -22 add ymark2 8 add xmark2 -27 add ymark2 3 add curveto xmark3 ymark3 moveto 0 0 lineto stroke } def %%%%%%%%%%%%%%%% REAR ARMOR %%%%%%%%%%%%%%%% /center-rear-armor { gsave 10.25 90 translate /x 0 def /y 0 def 1 1 armor 2 get {pop x y largebubble /x x 6 add def x 12 ge {/x 0 def /y y 6 sub def} if } for stroke grestore } def /sides-rear-armor { gsave 31 90 translate /x 0 def /y 0 def 1 1 armor 4 get {pop x y largebubble /x x 6 add def x 12 ge {/x 0 def /y y 6 sub def} if } for stroke grestore } def %%%%%%%%%%%%%%%% HALF-MECH2-ARMOR %%%%%%%%%%%%%%%% /half-mech2-armor { 0.5 setlinewidth gsave xmark1 2 mul 0 translate -1 1 scale center-rear-armor sides-rear-armor stroke grestore gsave sides-rear-armor stroke grestore } def gsave 0.7 inch 5.7 inch translate 1.2 dup scale half-mech xmark1 2 mul 0 translate -1 1 scale half-mech stroke half-mech-armor grestore gsave 4.75 inch 8.5 inch translate half-mech2 xmark1 2 mul 0 translate -1 1 scale half-mech2 half-mech2-armor grestore %%%%%%%%%%%%%%%% IS-HALF-MECH %%%%%%%%%%%%%%%% /is-half-mech { 1.2 setlinewidth 0 0 moveto 14 0 rlineto 2 2 rlineto 9 0 rlineto 8 34 rlineto 3 1 rlineto 4 12 rlineto -1 1 rlineto 16 58 rlineto 7 2 rlineto mark1 1 -3 rlineto 6 0 rlineto mark3 xmark1 ymark1 moveto -7 8 rlineto 0 4 rlineto mark1 -2 -4 rlineto -4 0 rlineto -7 17 rlineto mark2 -6 -29 rlineto 3 -4 rlineto -20 -90 rlineto 0 0 lineto xmark1 ymark1 moveto -7 18 rlineto 6 17 rlineto 7 0 rlineto 5 5 rlineto 3 0 rlineto % head 0 1 rlineto -2 0 rlineto -5 4 rlineto -1 8 rlineto 5 3 rlineto 2 1 rlineto 1 0 rlineto % shoulder -5 -2 rmoveto -13 0 rlineto -5 -2 rlineto mark1 -10 -27 rlineto xmark2 ymark2 lineto % arm xmark1 ymark1 moveto -5 -2 rlineto -8 -2 rlineto -15 -10 rlineto 0 -4 rlineto -2 0 rlineto 0 -3 rlineto 2 0 rlineto 0 -1.5 rlineto -3 0 rlineto -1 -4 rlineto -1 -3 rlineto -1 -2 rlineto -3 -2 rlineto -15 -40 rlineto mark1 xmark1 3 sub ymark1 8 sub xmark1 15 add ymark1 20 sub xmark1 20 add ymark1 15 sub curveto mark1 xmark1 1 add ymark1 1 add xmark1 ymark1 10 add xmark1 5 sub ymark1 10 add curveto 0 7 rlineto 1 1 rlineto 1 3 rlineto 0 1 rlineto 7 15 rlineto -2 2 rlineto 1 2 rlineto 3 2 rlineto 1 3 rlineto -2 3 rlineto 1 2 rlineto 10 18 rlineto 10.5 5 rlineto } def %%%%%%%%%%%%%%%% IS-MECH-ARMOR %%%%%%%%%%%%%%%% % 0 head 1 ct 2 r/lt 3 r/la 4 r/ll /is-head-armor { gsave 0.5 setlinewidth 67 172 translate 0 0 smallbubble is 0 get 2 ge { 4 0 smallbubble } if is 0 get 3 ge { 2 -4 smallbubble } if stroke grestore } def /is-center-armor { gsave 0.5 setlinewidth 58 153 translate /x 0 def /y 0 def 1 1 is 1 get {pop x y smallbubble /x x 4 add def x 24 ge {/x 0 def /y y 4 sub def} if } for stroke grestore } def /is-torso-armor { gsave 0.5 setlinewidth 48 172 translate /x 0 def /y 0 def is 2 get 21 ge {/asdf 21 def} {/asdf is 2 get def} ifelse 1 1 asdf {pop x y smallbubble /x x 4 add def x 12 ge { /x 0 def /y y 4 sub def -1.4 0 translate } if } for is 2 get 22 ge {/asdf is 2 get 22 sub def} {/asdf 0 def} ifelse 1.4 0 translate 1 1 asdf {pop 1.8 0 translate x y smallbubble /y y 4 sub def } for stroke grestore } def /is-arm-armor { gsave 0.5 setlinewidth 27 162 translate /x 0 def /y 0 def is 3 get 18 ge {/asdf 17 def} {/asdf is 3 get def} ifelse 1 1 asdf {pop x y smallbubble /x x 1.7 sub def /y y 4 sub def } for /x x 4.5 add def /y y 1 add def 18 1 is 3 get {pop x y smallbubble /x x 3.5 add def /y y 2 sub def } for stroke grestore } def /is-leg-armor { gsave 0.5 setlinewidth 45 100 translate /x 0 def /y 0 def 1 1 is 4 get {pop x y smallbubble /x x 1 sub def /y y 4 sub def } for stroke grestore } def /is-armor {gsave is-head-armor is-center-armor is-torso-armor is-arm-armor is-leg-armor gsave xmark3 2 mul 0 translate -1 1 scale is-torso-armor is-arm-armor is-leg-armor grestore grestore} def gsave 5.5 inch 5.5 inch translate is-half-mech stroke gsave xmark3 2 mul 0 translate -1 1 scale is-half-mech stroke grestore is-armor grestore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %/reararmor 3 array def %reararmor 0 (13) put %reararmor 1 (13) put %reararmor 2 (13) put %/cp 8.5 inch 4 div def %/lm 0.5 inch def %/rm 4.25 inch lm sub def %12 bold %0 10 inch moveto enter (ARMOR) rcenter %10 bold %enter %/tablen 2.5 inch def %(Location) stab (Value) right return %fsize roman %(head) stab frontarmor 0 get right return %(center torso) stab frontarmor 1 get right return %(right torso) stab frontarmor 2 get right return %currentpoint 0 -2.5 rmoveto rm lm sub 0 rlineto stroke moveto %(left torso) stab frontarmor 3 get right return %(right arm) stab frontarmor 4 get right return %(left arm) stab frontarmor 5 get right return %(right leg) stab frontarmor 6 get right return %(left leg) stab frontarmor 7 get right return %12 bold %enter %%currentpoint exch pop 3.75 inch 2 div 0.5 inch add exch %% (Rear Armor) center %(REAR ARMOR) rcenter %10 bold %enter %(Location) stab (Value) right return %fsize roman %(center torso) stab reararmor 0 get right return %(right torso) stab reararmor 1 get right return %(left torso) stab reararmor 2 get right return %enter %10 bold %%currentpoint exch pop 3.75 inch 2 div 0.5 inch add exch %% (Internal Structure) center %(INTERNAL STRUCTURE) rcenter %10 bold %enter %(Location) stab (Value) right return %fsize roman %(head) stab is 0 get right return %(center torso) stab is 1 get right return %(right torso) stab is 2 get right return %currentpoint 0 -2.5 rmoveto rm lm sub 0 rlineto stroke moveto %(left torso) stab is 3 get right return %(right arm) stab is 4 get right return %(left arm) stab is 5 get right return %(right leg) stab is 6 get right return %(left leg) stab is 7 get right return /bubble-radius 2.5 def /bubble-dist bubble-radius 3 mul def /bubble {/y-bub exch def /x-bub exch def newpath x-bub bubble-radius add y-bub moveto x-bub y-bub bubble-radius 0 360 arc stroke} def /bubble-row {/num exch def /yy exch def /xx exch def 0 1 num 1 sub {bubble-dist mul xx add yy bubble} for } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 12 bold /cp 8.5 inch 4 div def /lm 0.5 inch def /rm 3.75 inch def 0 5.5 inch moveto enter (CRITICALS) rcenter %0 5 inch moveto enter /tablen 4 inch 3 div def /beep {/rs exch def /cs exch def /ls exch def %mark1 ls stab cs stab rs return %ls return xmark1 ymark1 moveto cs ncenter %xmark1 ymark1 moveto rs right return } def /cat {/cat2 exch def /cat1 exch def /cat3 cat1 length cat2 length add string def cat3 0 cat1 putinterval cat3 cat1 length cat2 putinterval cat3} def 8.4 bold (LEFT ARM) (HEAD) (RIGHT ARM) beep fsize roman (1:) c-la 0 get cat (1:) c-hd 0 get cat (1:) c-ra 0 get cat beep (2:) c-la 1 get cat (2:) c-hd 1 get cat (2:) c-ra 1 get cat beep (3:) c-la 2 get cat (3:) c-hd 2 get cat (3:) c-ra 2 get cat beep (4:) c-la 3 get cat (4:) c-hd 3 get cat (4:) c-ra 3 get cat beep (5:) c-la 4 get cat (5:) c-hd 4 get cat (5:) c-ra 4 get cat beep (6:) c-la 5 get cat (6:) c-hd 5 get cat (6:) c-ra 5 get cat beep enter (1:) c-la 6 get cat () (1:) c-ra 6 get cat beep (2:) c-la 7 get cat () (2:) c-ra 7 get cat beep (3:) c-la 8 get cat () (3:) c-ra 8 get cat beep (4:) c-la 9 get cat () (4:) c-ra 9 get cat beep (5:) c-la 10 get cat () (5:) c-ra 10 get cat beep (6:) c-la 11 get cat () (6:) c-ra 11 get cat beep enter fsize bold (LEFT TORSO) (CENTER TORSO) (RIGHT TORSO) beep fsize roman (1:) c-lt 0 get cat (1:) c-ct 0 get cat (1:) c-rt 0 get cat beep (2:) c-lt 1 get cat (2:) c-ct 1 get cat (2:) c-rt 1 get cat beep (3:) c-lt 2 get cat (3:) c-ct 2 get cat (3:) c-rt 2 get cat beep (4:) c-lt 3 get cat (4:) c-ct 3 get cat (4:) c-rt 3 get cat beep (5:) c-lt 4 get cat (5:) c-ct 4 get cat (5:) c-rt 4 get cat beep (6:) c-lt 5 get cat (6:) c-ct 5 get cat (6:) c-rt 5 get cat beep enter (1:) c-lt 6 get cat (1:) c-ct 6 get cat (1:) c-rt 6 get cat beep (2:) c-lt 7 get cat (2:) c-ct 7 get cat (2:) c-rt 7 get cat beep (3:) c-lt 8 get cat (3:) c-ct 8 get cat (3:) c-rt 8 get cat beep (4:) c-lt 9 get cat (4:) c-ct 9 get cat (4:) c-rt 9 get cat beep (5:) c-lt 10 get cat (5:) c-ct 10 get cat (5:) c-rt 10 get cat beep (6:) c-lt 11 get cat (6:) c-ct 11 get cat (6:) c-rt 11 get cat beep enter fsize bold (LEFT LEG) () (RIGHT LEG) beep fsize roman (1:) c-ll 0 get cat (Engine Hits) (1:) c-rl 0 get cat beep (2:) c-ll 1 get cat () (2:) c-rl 1 get cat beep (3:) c-ll 2 get cat (Gyro Hits) (3:) c-rl 2 get cat beep (4:) c-ll 3 get cat () (4:) c-rl 3 get cat beep (5:) c-ll 4 get cat (Sensor Hits) (5:) c-rl 4 get cat beep (6:) c-ll 5 get cat () (6:) c-rl 5 get cat beep 1.85 inch 76 3 bubble-row 1.85 inch 58 2 bubble-row 1.85 inch 40 2 bubble-row %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 4.25 inch 0 translate 12 roman 0 5 inch moveto enter notes GO showpage /lm 0.5 inch def %lm dup moveto 8.5 inch lm 2 mul sub 0 rlineto 0 11 inch lm 2 mul sub %rlineto 8.5 inch lm 2 mul sub neg 0 rlineto closepath stroke %4.25 inch 0 moveto 0 11 inch rlineto stroke %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% setup-norm 12 bold 0 10.5 inch moveto enter (STATS) rcenter 10 roman /tablen 130 def enter (Design:) stab fsize bold stats 0 get return fsize roman (Tonnage:) stab stats 1 get return (Movement Points:) stab stats 2 get show (/) show stats 3 get show (/) show stats 4 get return (Heat Sinks:) stab stats 5 get return (Armor Factor:) stab stats 6 get return enter /tablen 65 def mark1 fsize bold ( WEAPONS) return fsize roman /weap-len weapons length 1 sub def 0 1 weap-len {weapons exch get 0 get return} for /old-lm lm def /lm lm 130 add def /tablen 40 def lm ymark1 moveto /tabpos lm def /asdf {/ra exch def /ht exch def /dam exch def /loc exch def loc stab dam stringwidth pop neg 0 rmoveto dam stab ht stringwidth pop neg 0 rmoveto ht stab ra stringwidth pop neg 0 rmoveto ra return } def (Loc) (Dam) (Heat) (Range) asdf 0 1 weap-len {/i exch def weapons i get 1 get weapons i get 2 get weapons i get 3 get weapons i get 4 get asdf } for /lm old-lm def enter /tablen 170 def fsize bold ( AMMUNITION) return fsize roman (AC Rounds:) stab ammo 0 get show ( MG: ) show ammo 1 get return (S.R.M. Packs:) stab ammo 2 get return (L.R.M. Packs:) stab ammo 3 get return enter fsize bold ( WARRIOR) return fsize roman /tablen 1.25 inch def (Name: ) show warrior 0 get stab tab (Edge: ) show warrior 4 get return (Gunnery: ) show warrior 1 get stab (Piloting: ) show warrior 2 get stab (Hits Taken: ) show warrior 3 get return /tablen 0.63 inch def %8 roman (1st) stab (2nd) stab (3rd) stab (4th) stab (5th) stab (6th) return ((3)) stab ((5)) stab ((7)) stab ((10)) stab ((11)) stab ((Dead)) return (Kills: ) show warrior 4 get stab tab (Influence: ) show warrior 6 get stab tab (Money: ) warrior 7 get return lm 3.75 inch moveto (HIT LOCATION TABLE) show (MISSILE HIT TABLE) right return /tablen 26 def /foo {/m20 exch def /m15 exch def /m10 exch def /m6 exch def /m5 exch def /m4 exch def /m2 exch def /rs exch def /fb exch def /ls exch def /d6 exch def d6 stab ls stab fb stab rs stab m2 stab m4 stab m5 stab m6 stab m10 stab m15 stab m20 return } def currentpoint 0 -2 rmoveto tablen 11 mul 0 rlineto moveto (2d6) (LS) (F/B) (RS) (2) (4) (5) (6) (10) (15) (20) foo (2) (LT!) (CT!) (RT!) (1) (1) (1) (2) ( 3) ( 5) ( 6) foo (3) (LL) (RA) (RL) (1) (2) (2) (2) ( 3) ( 5) ( 6) foo currentpoint 0 -2 rmoveto tablen 11 mul 0 rlineto moveto (4) (LA) (RA) (RA) (1) (2) (2) (3) ( 4) ( 6) ( 9) foo (5) (LA) (RL) (RA) (1) (2) (3) (3) ( 6) ( 9) (12) foo (6) (LL) (RT) (RL) (1) (2) (3) (4) ( 6) ( 9) (12) foo currentpoint 0 -2 rmoveto tablen 11 mul 0 rlineto moveto (7) (LT) (CT) (RT) (1) (3) (3) (4) ( 6) ( 9) (12) foo (8) (CT) (LT) (CT) (2) (3) (3) (4) ( 6) ( 9) (12) foo (9) (RT) (LL) (LT) (2) (3) (4) (5) ( 8) (12) (16) foo currentpoint 0 -2 rmoveto tablen 11 mul 0 rlineto moveto (10) (RA) (LA) (LA) (2) (3) (4) (5) ( 8) (12) (16) foo (11) (RL) (LA) (LL) (2) (4) (5) (6) (10) (15) (20) foo (12) (HD) (HD) (HD) (2) (4) (5) (6) (10) (15) (20) foo enter mark2 stroke xmark2 ymark2 moveto tab (PUNCH TABLE) stab tab tab (KICK TABLE) return /bar {/rs2 exch def /fb2 exch def /ls2 exch def /rs exch def /fb exch def /ls exch def /d6 exch def d6 stab ls stab fb stab rs stab ls2 stab fb2 stab rs2 return } def currentpoint 0 -2 rmoveto tablen 7 mul 0 rlineto moveto (1d6) (LS) (F/B) (RS) (LS) (F/B) (RS) bar ( 1 ) (LT) (LA) (RT) (LL) (RL) (RL) bar currentpoint 0 -2 rmoveto tablen 7 mul 0 rlineto moveto ( 2 ) (LT) (LT) (RT) (LL) (RL) (RL) bar ( 3 ) (CT) (CT) (CT) (LL) (RL) (RL) bar currentpoint 0 -2 rmoveto tablen 7 mul 0 rlineto moveto ( 4 ) (LA) (RT) (RA) (LL) (LL) (RL) bar ( 5 ) (LA) (RA) (RA) (LL) (LL) (RL) bar ( 6 ) (HD) (HD) (HD) (LL) (LL) (RL) bar stroke /lm 4.25 inch def lm ymark2 moveto (Movement Mods) return (Rough: 2 MP) return (Rubble: 2 MP) return (Dropping: 1 MP) return (Standing: 2 MP) return (Building: 1 MP +1/Light,) return ( 2/Medium, 3/Heavy,) return ( 4/Hardened) return %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% shiftover 0 10.5 inch moveto 12 bold enter (MODIFIERS) rcenter 10 roman enter ( BASE TO-HIT NUMBERS:) return warrior 1 get (5) eq { (Short 5, Medium 7, Long, 9) return } if warrior 1 get (4) eq { (Short 4, Medium 6, Long, 8) return } if warrior 1 get () eq { (Short 4, Medium 6, Long, 8) return } if warrior 1 get (3) eq { (Short 3, Medium 5, Long, 7) return } if warrior 1 get (2) eq { (Short 2, Medium 4, Long, 6) return } if enter ( TERRAIN MODIFIERS TO FIRE:) return (Light woods: +1 per hex) return (Heavy woods: +2 per hex) return (Water, Level 1: -1, attack as Punch) return (Water, Level 2: no firing in nor out) return (Partial cover: +3, attack as punch) return (Firing when down: +2) return (Firing at prone targets: -2 from adjacent hex; -1 all others) return (Firing at second target: +1) return enter ( MOVEMENT MODIFIERS TO FIRE:) return (Attacker stationary: +0 Walked: +1 Ran: +2) return (Attacker Jumped N hexes: +N, min 3) return (Target moved 0-2 hexes: +0 3-4: +1 5-6: +2 7-9: +3 10+: +4) return (Target jumped: +1) return enter ( CRITICAL HIT EFFECTS (2d6):) return (2-7: 0 8-9: 1 10-11: 2 12: Limb blown off or 3 criticals) return enter ( HEAT POINTS) return (Walking: +1 Running: +2 Jumping: +1/hex, minimum 3) return (Standing: +1/attempt) return (1st engine hit: +5 2nd hit: +10) return (Fire: Walking through: +2/hex Standing in: +5/turn) return lm 5.1 inch moveto /tablen 3 inch def tab (30) stringwidth pop neg 0 rmoveto (HEAT SCALE) return /counter 30 def /foo {tab counter ( ) cvs dup stringwidth pop neg 0 rmoveto show (: ) show /counter counter 1 sub def } def foo (Shutdown) return foo enter foo (Ammo 8+) return foo enter foo (Shut 10+) return foo (-5 MP) return foo (+4 Fire) return foo (Ammo 6+) return foo (Shut 8+) return foo enter foo (-4 MP) return foo (Ammo 4+) return foo (Shut 6+) return foo (+3 Fire) return foo enter foo (-3 MP) return foo (Shut +4) return foo (+2 Fire) return foo enter foo enter foo (-2 MP) return foo enter foo (+1 Fire) return foo enter foo enter foo (-1 MP) return foo enter foo enter foo enter foo enter showpage