home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.ee.pdx.edu
/
2014.02.ftp.ee.pdx.edu.tar
/
ftp.ee.pdx.edu
/
pub
/
frp
/
char-sheets
/
paranoia.ps
< prev
next >
Wrap
Text File
|
1991-10-13
|
16KB
|
666 lines
Ok. Here it is. I THINK I fixed all the bugs in it. It's divided into
three files that need to be "cat"'ed together before being sent to the
printer; that is:
$ cat <file1> <file2> <file3> | lpr -opost ... (or whatever)
The second file is the actual character data. You need to manually
do this for each character, but it's not a big deal. It'll figure out
the skill bases for you (2nd ed rules).
Enjoy!
____
/|\ | Scott H. Novack (Captain Napalm) | scottn@cs.columbia.edu
\|_\| "Art is not nice." -- Sting as Mac the | Columbia U. CS Dept.
\ Knife in "Three Penny Opera" | New York, NY
\_____/ Disclaimer: Oh Lord, please don't let me be misunderstood.
-------------------file 1, 1st page of char sheet-----------------------
/FONT
{exch findfont exch scalefont setfont} def
/centershow % show string centered at arguments x, y
{dup stringwidth pop
0 exch sub 2 div
0 rmoveto
show} def
/showWithVertLine % 3 arguments: ht of vert line, end of line, string
{currentpoint 3 -1 roll .002 in 0 3 -1 roll ashow
exch 3 -1 roll add exch lineto
0 exch rlineto stroke} def
/showWithLine % 2 arguments: end of line, string
{currentpoint 3 -1 roll
show
exch 3 -1 roll add exch
lineto stroke} def
/lineShow % show with line
{gsave
0.5 setlinewidth
0.05 in exch 3 -1 roll showWithVertLine
grestore} def
/in % inch->point converter
{72 mul} def
/ret % carriage return
{0 -0.222 in rmoveto} def
/LM % left margin
{.125 in} def
/RM % right margin
{7.4 in} def
/border % border of sheet
{newpath
LM .72 in moveto
LM 10.55 in lineto
RM 10.55 in lineto
RM .72 in lineto
closepath stroke} def
/topline % thick top line of sheet
{LM .01 in sub 10.58 in moveto
RM .01 in add 10.58 in lineto
stroke} def
/divisions1 % section division lines, page 1
{LM 10 in moveto % bottom of top header
RM 10 in lineto
LM 9.15 in moveto % bottom of "Name" area
RM 9.15 in lineto
LM 6.72 in moveto % top of skills area
RM 6.72 in lineto
3.35 in 6.72 in moveto % division next to attribute area
3.35 in 9.15 in lineto
3.35 in 7.29 in moveto % division for Armor area
RM 7.29 in lineto
stroke} def
/divisions2
{LM 9.705 in moveto
RM 9.705 in lineto
1.455 in 8.265 in moveto
1.455 in 5.76 in lineto
2.91 in 8.265 in moveto
2.91 in 5.76 in lineto
LM 5.76 in moveto
RM 5.76 in lineto
stroke} def
/Sheet % "PARANOIA Character Sheet" header
{newpath
LM 10 in moveto
RM 10 in lineto
RM 10.55 in lineto
LM 10.55 in lineto
closepath
gsave
0.85 setgray fill
/Helvetica-BoldOblique 24 FONT
0 setgray
3.75 in 10.17 in moveto
(PARANOIA Character Sheet) centershow
grestore} def
/Secret % "PARANOIA (Secret Stuff)" header
{newpath
LM 9.705 in moveto
RM 9.705 in lineto
RM 10.55 in lineto
LM 10.55 in lineto
closepath
gsave
0.85 setgray fill
/Helvetica-BoldOblique 24 FONT
0 setgray
3.75 in 10.2 in moveto
(PARANOIA Character Sheet) centershow
3.75 in 9.85 in moveto
((Secret Stuff)) centershow
grestore} def
/Attrib % "Attributes" header
{newpath
LM 8.855 in moveto
3.35 in 8.855 in lineto
3.35 in 9.15 in lineto
LM 9.15 in lineto
closepath
gsave
0 setgray fill
/Helvetica-BoldOblique 16 FONT
1 setgray
1.75 in 8.92 in moveto
(Attributes) centershow
grestore} def
/Etc
{newpath
LM 8.56 in moveto
RM 8.56 in lineto
RM 8.265 in lineto
LM 8.265 in lineto
closepath
gsave
0 setgray fill
/Helvetica-BoldOblique 12 FONT
1 setgray
0.7275 in 8.325 in moveto
(Damage Status) centershow
2.1825 in 8.325 in moveto
(Credits) centershow
5.0925 in 8.325 in moveto
(Personal Equipment) centershow
grestore} def
/Skills % "Skills" header
{newpath
LM 6.425 in moveto
RM 6.425 in lineto
RM 6.72 in lineto
LM 6.72 in lineto
closepath
gsave
0 setgray fill
/Helvetica-BoldOblique 16 FONT
1 setgray
3.75 in 6.49 in moveto
(Skills) centershow
grestore} def
/Notes
{newpath
LM 5.76 in moveto
RM 5.76 in lineto
RM 5.465 in lineto
LM 5.465 in lineto
closepath
gsave
0 setgray fill
/Helvetica-BoldOblique 16 FONT
1 setgray
3.75 in 5.53 in moveto
(Notes) centershow
grestore} def
/DexSkills % Dexterity Skills
{2.8 in 5.77 in moveto
(Energy Weapons) 2 in lineShow ret
(Field Weapons) 2 in lineShow ret
(Laser Weapons) 2 in lineShow ret
(Primitive Missile Weapons) 2 in lineShow ret
(Projectile Weapons) 2 in lineShow ret
(Vehicle Aimed Weapons) 2 in lineShow ret
(Vehicle Field Weapons) 2 in lineShow ret
(Vehicle Launched Weapons) 2 in lineShow ret} def
/MechSkills % Mechanical Aptitude Skilss
{2.8 in 3.55 in moveto
(Autocar Op. & Maint.) 2 in lineShow ret
(Copter Op. & Maint.) 2 in lineShow ret
(Crawler Op. & Maint.) 2 in lineShow ret
(Docbot Op. & Maint.) 2 in lineShow ret
(Flybot Op. & Maint.) 2 in lineShow ret
(Habitat Engineering) 2 in lineShow ret
(Hover Op. & Maint.) 2 in lineShow ret
(Jackobot Op. & Maint.) 2 in lineShow ret
(Scrubot Op. & Maint.) 2 in lineShow ret
(Transbot Op. & Maint.) 2 in lineShow ret
(Vulturecraft Op. & Maint.) 2 in lineShow ret} def
/MoxieSkills % Moxie Skills
{5.1 in 5.77 in moveto
(Biochemical Therapy) 2 in lineShow ret
(Biosciences) 2 in lineShow ret
(Chemical Engineering) 2 in lineShow ret
(Data Analysis) 2 in lineShow ret
(Data Search) 2 in lineShow ret
(Demolition) 2 in lineShow ret
(Electronic Engineering) 2 in lineShow ret
(Mechanical Engineering) 2 in lineShow ret
(Medical) 2 in lineShow ret
(Nuclear Engineering) 2 in lineShow ret
(Security) 2 in lineShow ret
(Stealth) 2 in lineShow ret
(Surveillance) 2 in lineShow ret
(Survival) 2 in lineShow ret} def
/AgilitySkills % Agility skills
{0.5 in 5.77 in moveto
(Force Sword) 2 in lineShow ret
(Grenade) 2 in lineShow ret
(Neurowhip) 2 in lineShow ret
(Primitive Melee Weapons) 2 in lineShow ret
(Truncheon) 2 in lineShow ret
(Unarmed) 2 in lineShow ret} def
/ChutzSkills % Chutzpah skills
{0.5 in 3.994 in moveto
(Bootlicking) 2 in lineShow ret
(Bribery) 2 in lineShow ret
(Con) 2 in lineShow ret
(Fast Talk) 2 in lineShow ret
(Forgery) 2 in lineShow ret
(Interrogation) 2 in lineShow ret
(Intimidation) 2 in lineShow ret
(Motivation) 2 in lineShow ret
(Oratory) 2 in lineShow ret
(Psychescan) 2 in lineShow ret
(Spurious Logic) 2 in lineShow ret} def
/Stats % Character Statistics
{/Helvetica 8.5 FONT
LM .16 in add 8.65 in moveto
(Strength) 1.2 in lineShow ret ret
(Endurance) 1.2 in lineShow ret
(Agility) 1.2 in lineShow ret
(Dexterity) 1.2 in lineShow ret
(Moxie) 1.2 in lineShow ret
(Chutzpah) 1.2 in lineShow ret
(Mechanical Apt.) 1.2 in lineShow ret
(Power) 1.2 in lineShow ret} def
/Secondary % Secondary attributes
{/Helvetica-Oblique 8.5 FONT
LM .16 in add 1.4 in add 8.65 in moveto
(Carrying Capacity) 1.4 in lineShow ret
(Damage Bonus) 1.4 in lineShow ret
(Macho Bonus) 1.4 in lineShow ret
(Agility Skill Base) 1.4 in lineShow ret
(Dexterity Skill Base) 1.4 in lineShow ret
(Moxie Skill Base) 1.4 in lineShow ret
(Chutzpah Skill Base) 1.4 in lineShow ret
(Mech. Skill Base) 1.4 in lineShow ret} def
/TopInfo1 % Information in area above attribute area
{/Helvetica-Bold 8.5 FONT
LM .16 in add 9.32 in moveto
(Security Clearance:) show
0.25 setlinewidth
LM .16 in add 9.64 in moveto
3.3 in (Name) showWithLine
3.8 in 9.64 in moveto
3.3 in (Player) showWithLine
3.8 in 9.32 in moveto
3.3 in (Service Group) showWithLine
RoyGBiv} def
/RoyGBiv % for printing security clearances
{/Helvetica 8.8 FONT
1.45 in 9.32 in moveto
8 0 8#040 ((IR) R O Y G B I V (UV)) widthshow} def
/TopInfo2 % Information in area above attribute area
{/Helvetica-Bold 8.5 FONT
0.25 setlinewidth
LM .16 in add 9.345 in moveto
3.4 in (Name) showWithLine
LM .16 in add 9.025 in moveto
3.4 in (Secret Society) showWithLine
3.8 in 9.345 in moveto
3.4 in (Player) showWithLine
3.8 in 9.025 in moveto
3.4 in (Degree) showWithLine
LM .16 in add 8.705 in moveto
7.015 in (Mutant Power) showWithLine} def
/Copyright % copyright notice
{/Helvetica-BoldOblique 5.7 FONT
LM .72 in 9 sub moveto
(Copyright 1987, West End Games, Inc. Permission granted to photocopy for personal use --- The Computer is your friend.) show
/Symbol 5.7 FONT
LM (Copyright ) stringwidth pop add .72 in 9 sub moveto
(\343) show
/Helvetica-BoldOblique 5.7 FONT
LM .72 in 20 sub moveto
(PostScript version by Novack Productions Ltd. 1988) show} def
/TriLine % draws the 3 piece line. 3 args: items, startx, starty
{1.5 setlinewidth
moveto
0.222 in mul 0 exch rlineto
2.11 in 0 rlineto
0 0.11 in rlineto stroke} def
/SkillBase % 4 args: str, # items, x, y. Draws lines and Skill Base string
{/starty exch def /startx exch def /items exch def
startx items 0.222 in mul starty 0.06 in add add moveto show
items startx starty TriLine} def
/FiveLines
{/lngth exch def
5
{lngth 0 rlineto
lngth -1 mul -0.2775 in rmoveto} repeat
stroke} def
/Weapons
{/Helvetica-Bold 8 FONT
gsave
0.25 setlinewidth
4 in 8.855 in moveto
(Weapon) centershow
3.515 in 8.585 in moveto
0.97 in FiveLines
4.85 in 8.855 in 10 add moveto
(Skill) centershow
4.85 in 8.855 in moveto
(Number) centershow
4.65 in 8.585 in moveto
0.4 in FiveLines
5.39 in 8.855 in moveto
(Type) centershow
5.215 in 8.585 in moveto
0.32 in FiveLines
5.865 in 8.855 in 10 add moveto
(Damage) centershow
5.865 in 8.855 in moveto
(Rating) centershow
5.665 in 8.585 in moveto
0.4 in FiveLines
6.36 in 8.855 in moveto
(Range) centershow
6.2 in 8.585 in moveto
0.32 in FiveLines
6.855 in 8.855 in 10 add moveto
(Experi-) centershow
6.855 in 8.855 in moveto
(mental?) centershow
6.655 in 8.585 in moveto
0.4 in FiveLines
grestore} def
/Armor
{/Helvetica-Bold 8 FONT
gsave
/down1 8.585 in -0.2775 in 6 mul -.05 in add add def
/down2 8.585 in -0.2775 in 5 mul -.05 in add add def
0.25 setlinewidth
3.515 in down1 moveto
0.97 in 0 rlineto stroke
4 in down2 moveto
(Armor) centershow
4.65 in down1 moveto
0.97 in 0 rlineto stroke
5.135 in down2 moveto
(Rating) centershow
grestore} def
/Equipment
{2.91 in .16 in add 8.043 in dup /ht exch def moveto
11 {RM .16 in sub ht lineto
2.91 in .16 in add ht 0.222 in sub dup /ht exch def moveto} repeat
stroke} def
/AllSkillBases
{/Helvetica-BoldOblique 9 FONT
(Dexterity Skill Base:) 8 2.69 in 4.216 in SkillBase
(Mechanical Skill Base:) 11 2.69 in 1.33 in SkillBase
(Agility Skill Base:) 6 0.39 in 4.66 in SkillBase
(Chutzpah Skill Base:) 11 0.39 in 1.774 in SkillBase
(Moxie Skill Base:) 14 4.99 in 2.884 in SkillBase} def
/AllSkills
{/Helvetica 8.5 FONT
AgilitySkills
ChutzSkills
DexSkills
MechSkills
MoxieSkills} def
/AllAttributes
{Stats
Secondary} def
%
% main program
%
.25 in 0 translate % move over a bit
0 setgray % color is black
Sheet Attrib Skills % draw the headers
0.75 setlinewidth border divisions1 % border and divisions at width 1
4 setlinewidth topline % thick line at top at width 4
TopInfo1
AllSkillBases
AllSkills
AllAttributes
Weapons
Armor
Copyright
%showpage This is commented out. Do not uncomment.
/initarray
{dup length /len exch def
len {0} repeat len 1 add -1 roll astore clear} def
/skillpts 5 array def
/agpts 6 array def agpts initarray
/dexpts 8 array def dexpts initarray
/moxpts 14 array def moxpts initarray
/chupts 11 array def chupts initarray
/mechpts 11 array def mechpts initarray
agpts dexpts moxpts chupts mechpts skillpts astore
clear
------------------2nd file (example)--------------------------
(David-R-URK) (R) (David Urk) (CPU)
(Death Leopard) (Pyrokinesis)
16 %Str
4 %End
11 %Agi
12 %Dex
3 %Mox
16 %Chu
20 %Mec
7 %Power
%SKILLS
% The last line is the number of skills adding points to.
% Each skill should be prefaced with the skill type number:
% 0 - Agility, 1 - Dex, 2 - Moxie, 3 - Chutzpah, 4 - Mech
% and ended with the number of the skill under the type
% and the number of points investing.
% (i.e. "1 3 6" to add 6 pts to the Dex skill of Laser Weapons)
%
%Type Skill Pts Comment
1 3 6 %Laser
1 6 3 %V Aimed Weap.
1 8 3 %V Launch Weap.
2 2 3 %BioSci
3 1 3 %Bootlicking
3 5 3 %Forgery
3 6 6 %Interrogation
4 1 3 %Autocar
%-----------------
%Total 30
8
%WEAPONS for weapon area. The last line is number of weapons
%Weapon Skill Type Damage Exper?
%---------------------------------------------
(Laser Pistol) (9) (L) (8) (N)
(Stun Gun) (3) (E) (---) (N)
(Grenade) (2) (P) (8) (N)
3
%ARMOR
%Armor Rating
%---------------------
(Reflec) (L4)
%Character done
%It's a good idea to put the character's equipment and background under
%here. All commented like this, of course
-------------------------------3rd and last file-----------------------
/stat 8 array def
/str 40 string def
/top 6 array def
/weap 6 array def
/item1 5 array def
/item2 5 array def
/item3 5 array def
/item4 5 array def
/item5 5 array def
/arm 2 array def
arm astore pop
item1 item2 item3 item4 item5 weap astore pop
weap 0 get -1 1 {weap exch get astore pop} for
{exch 3 -1 roll skillpts exch get exch 1 sub 3 -1 roll put} repeat
7 -1 0 {stat exch 3 -1 roll put} for
5 -1 0 {top exch 3 -1 roll put} for
/colors 7 array def
/cc 9 array def
/bonus 20 array def
/base 20 array def
/pcbases 5 array def
25 5 65 {} for cc astore clear
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 bonus astore clear
0 0 0 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5 base astore clear
2 1 6 {base stat 3 -1 roll get 1 sub get} for pcbases astore clear
(R) (O) (Y) (G) (B) (I) (V) colors astore clear
/printbonus
{gsave bonus stat 3 -1 roll get 1 sub get str cvs centershow grestore ret} def
/printclearance
{0.25 setlinewidth
LM 1.84 in add /tx -0.12 in def 9.36 in moveto
0 1 6 {top 1 get exch colors exch get eq
{currentpoint exch tx add exch .12 in 0 360 arc}
{0.2345 in 0 rmoveto} ifelse} for
stroke} def
/printtop
{LM 1.7 in add 9.66 in moveto
top 0 get centershow
5.5 in 9.66 in moveto
top 2 get centershow
5.5 in 9.34 in moveto
top 3 get centershow
printclearance} def
/printtop2
{LM 1.7 in add 9.365 in moveto
top 0 get centershow
5.5 in 9.365 in moveto
top 2 get centershow
LM 2.2 in add 9.045 in moveto
top 4 get centershow
3.75 in 8.725 in moveto
top 5 get centershow} def
/printsecond
{LM 2.85 in add 8.67 in moveto
gsave cc stat 0 get 12 le {0} {stat 0 get 12 sub} ifelse get
str cvs centershow grestore ret
0 printbonus
1 printbonus
0 1 4 {gsave pcbases exch get str cvs centershow grestore ret} for} def
/printstat
{LM 1.205 in add 8.67 in moveto
gsave stat 0 get str cvs centershow grestore ret ret
1 1 7 {gsave stat exch get str cvs centershow grestore ret} for} def
/printarray
{/Palatino-BoldItalic 16 FONT
dup gsave pcbases exch get dup /keep exch def str cvs centershow grestore ret
skillpts exch get
dup 0 1 3 -1 roll length 1 sub {exch dup 3 -1 roll
gsave /Palatino-BoldItalic 12 FONT
get keep add str cvs centershow grestore ret} for
pop} def
/printitem
{/y exch def
6.855 in y moveto centershow
5.865 in y moveto centershow
5.39 in y moveto centershow
4.85 in y moveto centershow
4 in y moveto centershow} def
/printweap
{/Helvetica 8.5 FONT
1 1 weap 0 get
{dup weap exch get aload pop
6 -1 roll 1 sub -0.2775 mul in 8.6 in add printitem} for
} def
/printarm
{/Helvetica 8.5 FONT
arm aload pop
5.135 in 8.6 in -0.2775 in 6 mul add moveto centershow
4 in 8.6 in -0.2775 in 6 mul add moveto centershow
} def
/printallskills
{2.2 in 6.012 in moveto 0 printarray
4.5 in 6.012 in moveto 1 printarray
6.8 in 6.012 in moveto 2 printarray
2.2 in 4.236 in moveto 3 printarray
4.5 in 3.792 in moveto 4 printarray} def
/printItAll
{/Palatino-BoldItalic 12 FONT
0 setgray
printtop
printstat
printsecond
printweap
printarm
printallskills} def
printItAll %comment this line to not print info
showpage %prints the first page
% prints secret stuff page
0.25 in 0 translate
0 setgray
Secret Etc Notes
0.75 setlinewidth border divisions2
4 setlinewidth topline
0 setgray
TopInfo2
Equipment
/Palatino-BoldItalic 12 FONT
printtop2 % comment this line to not print info on pg 2
showpage % prints the 2nd page