forked from funkaoshi/randomcharacter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
demoncity.py
1274 lines (1246 loc) · 41.1 KB
/
demoncity.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import math
import random
import mixins
import dice
class Character(mixins.AppearanceMixin):
def __init__(self, *args, **kwargs):
super(Character, self).__init__(*args, **kwargs)
self.role = random.choice(self.ROLES)
self.occupation = random.choice(self.OCCUPATIONS)
self.generate_attributes()
self.generate_skills()
self.contacts = max(self.attributes["appeal"], self.attributes["cash"])
if self.role == "Investigator":
self.contacts += 1 + (7 - self.raw_skills)
self.contacts_list = [self.occupation] + random.sample(
self.OCCUPATIONS, self.contacts - 1
)
def generate_attributes(self):
attributes = {
a.lower(): int(math.ceil(1.0 * dice.d(10) / 2.0)) for a in self.ATTRIBUTES
}
if self.role == "Victim":
attributes["calm"] = max(attributes["calm"], 4)
elif self.role == "Problem":
attributes["calm"] = max(attributes["calm"], 3)
elif self.role == "Investigator":
attributes["cash"] = max(attributes["cash"], 3)
elif self.role == "Friend":
attribute = random.choice(["perception", "calm"])
attributes[attribute] = attributes[attribute] + 1
self.attributes = attributes
def generate_skills(self):
self.raw_skills = 5
self.skills = [
("Occupational", self.attributes["perception"] + 1, self.occupation)
]
if self.role == "Victim":
self.skills += [("Persuasion", self.attributes["appeal"] + 1, "appeal")]
elif self.role == "Investigator":
# The investigator gets an additional skill, and another extra skill
# or contact
self.raw_skills += random.choice([1, 2])
elif self.role == "Curious":
knowledge_skills = random.sample(self.SKILLS["Knowledge"], 3)
score = self.attributes["knowledge"] + 1
self.skills += [(skill, score, "knowledge") for skill in knowledge_skills]
current_skills = set([skill for skill, _, _ in self.skills])
possible_skills = [
skill for skill in self.SKILLS_LIST if skill[0] not in current_skills
]
for skill, attribute in random.sample(possible_skills, self.raw_skills):
# split up attribute into lower case list if there are multiple
# options, e.g. "Toughness or Agility"
attributes = [x.lower() for x in attribute.split(" or ")]
# sort the list and grab the last one, the highest score
attribute = sorted(
(self.attributes[attribute] + 1, attribute) for attribute in attributes
)[-1]
if skill != "Exotic Weapon":
self.skills.append((skill, attribute[0], attribute[1]))
if skill == "Humanities":
# Get an additional specific humanity skill at +2 knowledge
self.skills.append(
(random.choice(self.HUMANITIES), attribute[0] + 1, attribute[1])
)
elif skill == "Science":
# Get an additional specific science skill at +2 knowledge
self.skills.append(
(random.choice(self.SCIENCES), attribute[0] + 1, attribute[1])
)
elif skill == "Athletics":
# Get an additional sport skill at +2 Toughness or Agility
self.skills.append(
(random.choice(self.ATHLETICS), attribute[0] + 1, attribute[1])
)
elif skill == "Exotic Weapon":
# Skilled in a specific weird old weapon at +2
self.skills.append(
(
"%s - %s" % (skill, random.choice(self.WEAPONS)),
attribute[0] + 1,
attribute[1],
)
)
ROLES = [
"Curious",
"Friend",
"Investigator",
"Problem",
"Victim",
]
ATTRIBUTES = [
"Calm",
"Agility",
"Toughness",
"Perception",
"Appeal",
"Cash",
"Knowledge",
]
RANKS = {
0: "Terrible",
1: "Bad",
2: "Average",
3: "Good",
4: "Very good",
5: "World class",
}
SKILLS = {
"Agility": [
"Burglary & Theft",
"Fancy Driving",
"Firearms",
"Pilot",
"Stealth",
"Exotic Weapon", # See Sub-List
"Motorcycle",
"Boat",
"Helicopter",
"Plane",
],
"Perception": [
# "Occupational",
"Outdoor Survival/Tracking",
"Streetwise",
"Therapy",
],
"Appeal": [
"Deception",
"Persuasion",
],
"Knowledge": [
"Electronics",
"Hacking",
"Humanities",
"Local Knowledge",
"Mechanics",
"Other Languages",
"Paranormal",
"Science",
"Explosives",
"Law",
],
"Perception or Knowledge": [
"Forgery",
"Medic",
"Research",
],
"Toughness or Agility": [
"Hand to Hand Combat",
"Athletics",
],
}
# Generate flat list of skills
SKILLS_LIST = set(
(s, attribute) for attribute, skills in SKILLS.items() for s in skills
)
OCCUPATIONS = [
"Able Seamen",
"Account Collector",
"Accounting Specialist",
"Adjustment Clerk",
"Administrative Assistant",
"Administrative Law Judge",
"Administrative Service Manager",
"Admiralty Lawyer",
"Adult Literacy and Remedial Education Teachers",
"Advertising Account Executive",
"Advertising Agency Coordinator",
"Aeronautical & Aerospace Engineer",
"Aerospace Engineering Technician",
"Agricultural Crop Farm Manager",
"Agricultural Engineer",
"Agricultural Equipment Operator",
"Agricultural Inspector",
"Agricultural Product Sorter",
"Agricultural Sciences Professor",
"Agricultural Technician",
"Air Crew Member",
"Air Crew Officer",
"Air Traffic Controller",
"Aircraft Assembler",
"Aircraft Body and Bonded Structure Repairer",
"Aircraft Cargo Handling Supervisor",
"Aircraft Examiner",
"Aircraft Launch and Recovery Officer",
"Aircraft Launch and Recovery Specialist",
"Aircraft Mechanic",
"Airfield Operations Specialist",
"Airline Flight Attendant",
"Airline Flight Control Administrator",
"Airline Flight Operations Administrator",
"Airline Flight Reservations Administrator",
"Airport Administrator",
"Airport Design Engineer",
"Alcohol & Drug Abuse Assistance Coordinator",
"Alumni Relations Coordinator",
"Ambulance Drivers",
"Amusement Park & Recreation Attendants",
"Anesthesiologist (MD)",
"Animal Breeder",
"Animal Control Worker",
"Animal Husbandry Worker Supervisor",
"Animal Keepers and Groomers",
"Animal Kennel Supervisor",
"Animal Scientist",
"Animal Trainer",
"Animation Cartoonist",
"Answering Service Operator",
"Anthropology and Archeology Professor",
"Anti-Terrorism Intelligence Agent",
"Appeals Referee",
"Aquaculturist (Fish Farmer)",
"Aquarium Curator",
"Architecture Professor",
"Area, Ethnic, and Cultural Studies Professor",
"Armored Assault Vehicle Crew Member",
"Armored Assault Vehicle Officer",
"Art Appraiser",
"Art Director",
"Art Restorer",
"Art Therapist",
"Art, Drama, and Music Professor",
"Artillery and Missile Crew Member",
"Artillery and Missile Officer",
"Artists Agent (Manager)",
"Athletes' Business Manager",
"Athletic Coach",
"Athletic Director",
"Athletic Trainer",
"ATM Machine Servicer",
"Atmospheric and Space Scientist",
"Audio-Visual Collections Specialist",
"Audiovisual Production Specialist",
"Automobile Mechanic",
"Automotive Body Repairer",
"Automotive Engineer",
"Automotive Glass Installer",
"Avionics Technician",
"Baggage Porters and Bellhops",
"Baker (Commercial)",
"Ballistics Expert",
"Bank and Branch Managers",
"Bank Examiner",
"Bank Teller",
"Benefits Manager",
"Bicycle Mechanic",
"Billing Specialist",
"Bindery Machine Set-Up Operators",
"Bindery Machine Tender",
"Biological Technician",
"Biology Professor",
"Biomedical Engineer",
"Biomedical Equipment Technician",
"Boat Builder",
"Book Editor",
"Border Patrol Agent",
"Brattice Builder",
"Bridge and Lock Tenders",
"Broadcast News Analyst",
"Broadcast Technician",
"Broker's Floor Representative",
"Brokerage Clerk",
"Budget Accountant",
"Budget Analyst",
"Building Inspector",
"Building Maintenance Mechanic",
"Bulldozer / Grader Operator",
"Bus and Truck Mechanics",
"Bus Boy / Bus Girl",
"Bus Driver (School)",
"Bus Driver (Transit)",
"Business Professor",
"Business Service Specialist",
"Cabinet Maker",
"Camp Director",
"Caption Writer",
"Cardiologist (MD)",
"Cardiopulmonary Technologist",
"Career Counselor",
"Cargo and Freight Agents",
"Carpenter's Assistant",
"Carpet Installer",
"Cartographer (Map Scientist)",
"Cartographic Technician",
"Cartoonist (Publications)",
"Casino Cage Worker",
"Casino Cashier",
"Casino Dealer",
"Casino Floor Person",
"Casino Manager",
"Casino Pit Boss",
"Casino Slot Machine Mechanic",
"Casino Surveillance Officer",
"Casting Director",
"Catering Administrator",
"Ceiling Tile Installer",
"Cement Mason",
"Ceramic Engineer",
"Certified Public Accountant (CPA)",
"Chaplain (Prison, Military, Hospital)",
"Chemical Engineer",
"Chemical Equipment Operator",
"Chemical Plant Operator",
"Chemical Technicians",
"Chemistry Professor",
"Chief Financial Officer",
"Child Care Center Administrator",
"Child Care Worker",
"Child Life Specialist",
"Child Support Investigator",
"Child Support Services Worker",
"City Planning Aide",
"Civil Drafter",
"Civil Engineer",
"Civil Engineering Technician",
"Clergy Member (Religious Leader)",
"Clinical Dietitian",
"Clinical Psychologist",
"Clinical Sociologist",
"Coatroom and Dressing Room Attendants",
"College/University Professor",
"Commercial Designer",
"Commercial Diver",
"Commercial Fisherman",
"Communication Equipment Mechanic",
"Communications Professor",
"Community Health Nurse",
"Community Organization Worker",
"Community Welfare Worker",
"Compensation Administrator",
"Compensation Specialist",
"Compliance Officer",
"Computer Aided Design (CAD) Technician",
"Computer and Information Scientists, Research",
"Computer and Information Systems Managers",
"Computer Applications Engineer",
"Computer Controlled Machine Tool Operators",
"Computer Customer Support Specialist",
"Computer Hardware Technician",
"Computer Operators",
"Computer Programmer",
"Computer Science Professor",
"Computer Security Specialist",
"Computer Software Engineers",
"Computer Software Technician",
"Computer Systems Engineer",
"Congressional Aide",
"Conservation Scientist",
"Construction Driller",
"Construction Laborer",
"Construction Manager",
"Construction Trades Supervisor",
"Contract Administrator",
"Contract Specialist",
"Control Center Specialist (Military)",
"Controller (Finance)",
"Cook (Cafeteria)",
"Cook (Fast Food)",
"Cook (Private Household)",
"Cook (Restaurant)",
"Cook (Short Order)",
"Copy Writer",
"Corporation Lawyer",
"Correction Officer",
"Correspondence Clerk",
"Cosmetologist (Hair Stylist)",
"Cost Accountant",
"Cost Analysis Engineer",
"Cost Estimator",
"Costume Attendant",
"Counseling Psychologist",
"Counter and Rental Clerks",
"County or City Auditor",
"Couriers and Messengers",
"Court Administrator",
"Court Clerk",
"Court Reporter",
"Craft Artist",
"Crane Operator",
"Credit Adjuster",
"Credit Analyst",
"Credit Reporter",
"Criminal Investigator (Detective)",
"Criminal Justice Professor",
"Criminal Lawyer",
"Crop Workers Supervisor",
"Crossing Guard",
"Custom Tailor",
"Customer Service Representative (Utilities)",
"Customer Service Supervisor",
"Customs Inspector",
"Cutting Machine Operators",
"Dairy Technologist",
"Database Administrator",
"Deaf Students Teacher",
"Delivery Driver",
"Demonstrators and Product Promoters",
"Dental / Orthodontic Office Administrator",
"Dental Assistant",
"Dental Hygienist",
"Dental Laboratory Technician",
"Dentist (MD)",
"Dermatologist (MD)",
"Desktop Publishing Specialist",
"Developmental Psychologist",
"Die Cutter Operator",
"Dietetic Technician",
"Dietitian and Nutritionist",
"Directory Assistance Operator",
"Disabled Students Teacher",
"Disk Jockey",
"Dispatcher (Safety Vehicles)",
"Door To Door Salesmen",
"Dry Wall Installer",
"Economics Professor",
"Editorial Writer, Newspapers & Magazines",
"Education and Training Administrator",
"Education Professor",
"Educational Administrator",
"Educational Psychologist",
"Educational Resource Coordinator",
"Educational Therapist",
"EEG Technician/Technologist",
"Electric Meter Installer",
"Electric Motor Mechanic",
"Electrical and Electronic Inspector",
"Electrical Drafter",
"Electrical Engineers",
"Electrical Parts Reconditioner",
"Electrical Technician",
"Electro-Mechanical Technicians",
"Electromechanical Equipment Assembler",
"Electronic Drafter",
"Electronics Engineer",
"Electronics Technician",
"Elementary School Administrator",
"Elementary School Teacher",
"Elevator Mechanic",
"Emergency Management Specialist",
"Emergency Medical Technician",
"Employee Benefits Analyst",
"Employee Training Instructor",
"Employment Administrator",
"Employment and Placement Specialist",
"Employment Interviewer",
"Engine and Machine Assemblers",
"Engineering Managers",
"Engineering Professor",
"English Language and Literature Professor",
"Environmental Compliance Inspector",
"Environmental Disease Analyst",
"Environmental Engineer",
"Environmental Planner",
"Environmental Research Analyst",
"Environmental Science Technician",
"Environmental Science Professsor",
"Environmental Technician",
"Equal Opportunity Representative",
"Etchers and Engravers",
"Excavating Machine Operator",
"Excavating Supervisor",
"Executive Secretary",
"Exercise Physiologist",
"Exhibit Artist",
"Exhibit Designer",
"Experimental Psychologist",
"Explosives Worker",
"Export Agent",
"Fabric and Apparel Patternmakers",
"Facilities Planner",
"Factory Layout Engineer",
"Family Caseworker",
"Family Practitioner (MD)",
"Farm Equipment Mechanic",
"Farm Hand",
"Farm Labor Contractor",
"Farm Manager",
"Farm Products Purchasing Agent",
"Farmers and Ranchers",
"Fashion Artist",
"Fashion Coordinator",
"Fashion Designer",
"Fashion Model",
"Fence Installer",
"Field Contractor",
"Field Health Officer",
"File Clerk",
"Film Editor",
"Film Laboratory Technician",
"Finance Manager",
"Financial Aid Counselor",
"Financial Analyst",
"Financial Examiner",
"Financial Planner",
"Financial Services Sales Agent",
"Fine Artist",
"Fire Inspector",
"Fire Investigator",
"Fire Prevention Engineer",
"Fire Protection Engineer",
"Fire Protection Engineering Technician",
"Fish & Game Warden",
"Fish Hatchery Specialist",
"Fishery Worker Supervisor",
"Fitness Trainer",
"Flight Engineers",
"Floral Designer",
"Food & Drug Inspector",
"Food Batchmaker",
"Food Preparation Worker",
"Food Science Technicians",
"Food Technologist",
"Foreign Exchange Trader",
"Foreign Language Interpreter",
"Foreign Language Teacher",
"Foreign Language Translator",
"Foreign Service Officer",
"Foreign Service Peacekeeping Specialist",
"Foreign Student Adviser",
"Forensic Science Technicians",
"Forensics Psychologist",
"Forest and Conservation Technician",
"Forest Engineer",
"Forest Fire Prevention Supervisor",
"Forest Fire Inspector",
"Forestry and Conservation Professor",
"Forging Machine Operator",
"Forklift and Industrial Truck Operators",
"Fraud Investigator",
"Freight and Stock Handler",
"Fund Raiser",
"Funds Development Administrator",
"Funeral Attendant",
"Funeral Director",
"Furniture Designer",
"Furniture Finishers",
"Game Runner",
"Gas Plant Operator",
"General and Operations Managers",
"General Farmworkers",
"General Internists (MD)",
"Geography Professor",
"Geological Data Technicians",
"Geological Technician (Drafter)",
"Glass Blower",
"Gluing Machine Operators",
"Golf Course Superintendent",
"Government Budget Analyst",
"Government Property Inspectors",
"Government Service Executives",
"Graduate Teaching Assistant",
"Graphic Designer",
"Greenhouse and Nursery Manager",
"Gynecologist (MD)",
"Hand and Portable Tool Mechanic",
"Hand Sewer",
"Harbor Master",
"Harbor, Lake & Waterways Police",
"Hardwood Floor Finisher",
"Hazardous Materials Removal Worker",
"Hazardous Waste Management Analyst",
"Health Care Facilities Inspector",
"Health Case Manager",
"Health Educators",
"Health Psychologist",
"Hearing Officer",
"Heating, A/C, Refrigeration Technician",
"Heavy Equipment Mechanic",
"High School Administrator",
"High School Guidance Counselor",
"High School Teacher",
"Highway Maintenance Worker",
"Highway Patrol Pilot",
"Historic Site Administrator",
"Historical Archivist",
"History Professor",
"Home Appliance Installer",
"Home Appliance Repairer",
"Home Economics Teacher",
"Home Economist",
"Home Entertainment System Installer",
"Home Health Aide",
"Home Health Technician",
"Horticultural Worker Supervisor",
"Horticulture Therapist",
"Horticulturist (Vineyard)",
"Hospital Administrator",
"Hospital Nurse",
"Hosts and Hostesses",
"Hotel and Motel Desk Clerks",
"Hotel Convention/Events Coordinator",
"Hotel Manager",
"Housekeeping Supervisors",
"Human Factors Psychologist",
"Human Resources Management Advisor",
"Human Resources Management Consultant",
"Hydraulic Engineer",
"Immigration Inspector",
"Industrial Air Pollution Analyst",
"Industrial Arts Teacher",
"Industrial Designer",
"Industrial Engineer",
"Industrial Engineering Technician",
"Industrial Health Engineer",
"Industrial Hygienist",
"Industrial Machinery Mechanics",
"Industrial Relations Analyst",
"Industrial Relations Specialist",
"Industrial Therapist",
"Industrial Waste Inspector",
"Industrial-Organizational Psychologist",
"Infantry Officers",
"Instructional Coordinators",
"Instructor, Police-Canine Services",
"Instrument Technician",
"Insulation Installer",
"Insurance Adjuster",
"Insurance Agent",
"Insurance Appraiser (Auto Damage)",
"Insurance Claim Examiner",
"Insurance Claims Adjuster",
"Insurance Claims Clerks",
"Insurance Estate Planner",
"Insurance Lawyer",
"Insurance Policy Processing Clerk",
"Insurance Underwriter",
"Intelligence Specialist (Government)",
"Interior Designer",
"Internal Auditor",
"Interpreter for the Hearing Impaired",
"Irradiated-Fuel Handlers",
"Irrigation Engineer",
"IT Administrator (Information Technology)",
"Janitorial Supervisors",
"Job Analyst",
"Job Development Specialist",
"Job Printer (Graphic Arts)",
"Kindergarten Teacher",
"Labor Relations Advisor",
"Laboratory Tester Land Surveyor",
"Landscape Architect",
"Landscape Contractor",
"Lathe Operator",
"Law Clerks",
"Law Professor",
"Legal Assistant",
"Legal Secretary",
"Legislative Assistant",
"Library Assistant",
"Library Consultant",
"Library Science Professor",
"Library Technician",
"License Clerk",
"Licensed Practical Nurse (LPN)",
"Livestock Commission Agent",
"Loan Counselor",
"Loan Interviewers and Clerks",
"Loan Officer",
"Locomotive Engineers",
"Log Graders and Scalers",
"Logging Tractor Operator",
"Logging Worker Supervisor",
"Machine Feeders and Offbearers",
"Mail Clerk",
"Mail Machine Operators",
"Maintenance Supervisor",
"Makeup Artists - Theatrical",
"Management Consultant (Analyst)",
"Manicurists and Pedicurists",
"Manual Arts Therapist",
"Mapping Technician",
"Marina Boat Charter Administrator",
"Marine and Aquatic Biologist",
"Marine Architect",
"Marine Cargo Surveyor",
"Marine Drafter",
"Marine Engineer",
"Marine Surveyor",
"Marine/Port Engineer",
"Market Research Analyst",
"Marketing Managers",
"Marking Clerk",
"Marriage and Family Therapists",
"Massage Therapist",
"Materials Engineer",
"Materials Inspector",
"Materials Scientist",
"Math Professor",
"Mathematical Technician",
"Meat Packers",
"Meat, Poultry, and Fish Trimmers",
"Mechanical Drafter",
"Mechanical Engineer",
"Mechanical Engineering Technician",
"Mechanical Inspector",
"Medical Administrative Assistant",
"Medical and Public Health Social Workers",
"Medical and Scientific Illustrator",
"Medical Appliance Technician",
"Medical Assistant",
"Medical Equipment Preparer",
"Medical Examiner/Coroner",
"Medical Insurance Claims Analyst",
"Medical Laboratory Technician",
"Medical Photographer",
"Medical Records Administrator",
"Medical Records Technician",
"Medical Secretary",
"Medical Technologist",
"Medical Transcriptionist",
"Mental Health Counselor",
"Mentally Retarded Students Teacher",
"Merchandise Displayer",
"Metal Casting Machine Operator",
"Metal Fabricator",
"Meter Mechanic",
"Middle School Administrator",
"Middle School Guidance Counselor",
"Middle School Teacher",
"Military Analyst",
"Military Officer",
"Military-Enlisted Personnel",
"Mill Worker",
"Mine Cutting Machine Operator",
"Mine Inspector",
"Mining Engineer",
"Mining Machine Operator",
"Mining Shovel Machine Operator",
"Missing Person Investigator",
"Missionary Worker (Foreign Country)",
"Model Maker",
"Model Makers, Metal and Plastic",
"Motion Picture Director",
"Motion Picture Projectionist",
"Motor Vehicle Inspector",
"Motorboat Mechanic",
"Motorcycle Mechanic",
"Municipal Fire Fighting Supervisor",
"Museum Curator",
"Museum Technicians and Conservators",
"Music Arrangers and Orchestrators",
"Music Director",
"Music Teacher",
"Music Therapist",
"Musical Instrument Tuner",
"Narcotics Investigator (Government)",
"New Accounts Clerk (Banking)",
"Newspaper Editor",
"Newspaper/Magazines Writer",
"Non-Retail Sales Supervisor",
"Nuclear Engineer",
"Nuclear Equipment Operation Technician",
"Nuclear Fuels Research Engineer",
"Nuclear Medicine Technologist",
"Nuclear Monitoring Technician",
"Nuclear Power Reactor Operator",
"Nuclear Technicians",
"Numerical Tool Programmer",
"Nurse Practitioner",
"Nurse's Aide",
"Nursery Workers",
"Nursing Professor",
"Obstetrician (MD)",
"Occupational Analyst",
"Occupational Physician (MD)",
"Occupational Safety & Health Inspector",
"Occupational Therapist",
"Occupational Therapy Assistant",
"Oceanographic Assistant",
"Office Clerk",
"Office Machine Mechanic",
"Office Supervisor",
"Offset Press Operators",
"Operating Engineers",
"Operations Management Analyst",
"Ophthalmic Laboratory Technician",
"Ophthalmologist (MD)",
"Oral and Maxillofacial Surgeons",
"Order Clerk",
"Order Fillers, Wholesale and Retail Sales",
"Ordinary Seamen",
"Ornamental-Metalwork Designer",
"Orthodontic Assistant",
"Orthodontic Laboratory Technician",
"Orthodontist (MD)",
"Outdoor Education Teacher",
"Overhead Door Installer",
"Package Designer",
"Packaging Machine Operator",
"Packers and Packagers, Hand",
"Industrial Painter",
"Park Naturalist",
"Parking Enforcement Officer",
"Parking Lot Attendant",
"Parole Officer",
"Parts Salesperson",
"Paste-Up Worker (Graphic Arts)",
"Patent Agent",
"Patent Lawyer",
"Pathologist (MD)",
"Payroll and Timekeeping Clerks",
"PBX Installer and Repairer",
"Peace Corps Worker (Volunteer)",
"Pediatric Dentist",
"Pediatrician (MD)",
"Personal Service Supervisor",
"Personnel Administrator",
"Personnel Assistant",
"Personnel Recruiter",
"Pest Control Workers",
"Pesticide Handlers",
"Petroleum Engineer",
"Petroleum Geologist",
"Petroleum Laboratory Assistant",
"Petroleum Refinery Operator",
"Petroleum Technician",
"Pharmacy Aides",
"Pharmacy Technician",
"Philosophy and Religion Professor",
"Photo-Optics Technician",
"Photoengravers (Graphic Arts)",
"Photogrammetric Engineer",
"Photographic Equipment Mechanic",
"Photographic Process Workers",
"Physical Education Instructor",
"Physical Therapist",
"Physical Therapist Aides",
"Physical Therapy Assistant",
"Physician's Assistant (PA)",
"Physician's Office Nurse",
"Physics Professor",
"Pilot (Commercial Airlines)",
"Plant Breeder",
"Plant Manager (Manufacturing)",
"Plasterers and Stucco Masons",
"Plastic Surgeon",
"Platemakers (Graphic Arts)",
"Plumber (Plumbing Contractor)",
"Poets and Lyricists",
"Police and Detectives Supervisor",
"Police Artist",
"Police Identification and Records Officers",
"Police Officer",
"Political Science Professor",
"Political Scientist",
"Postal Service Clerks",
"Postal Service Mail Carriers",
"Postal Service Mail Sorter",
"Postmasters and Mail Superintendents",
"Power Plant Operators",
"Power-Line Installer and Mechanic",
"Precision Devices Inspectors and Testers",
"Preschool Administrator",
"Preschool Teacher",
"Pressing Machine Operator",
"Pressure Vessel Inspectors",
"Printing/Graphic Arts Reproduction Technician",
"Printmaker (Artist)",
"Private Detectives and Investigators",
"Private Nurse",
"Private Sector Executives",
"Probate Lawyer",
"Probation Officer",
"Procurement Clerks",
"Product Planner",
"Product Safety Engineer",
"Production Planner",
"Production, Planning, and Expediting Clerks",
"Professional Sports Scout",
"Proofreaders and Copy Markers",
"Property Accountant",
"Property Assessor",
"Property Managers",
"Props and Lighting Technicians",
"Prosthetic Technician",
"Psychiatric Aide",
"Psychiatric Technician",
"Psychiatrist (MD)",
"Psychology Professor",
"Public Health Service Officer",
"Public Relations Manager",
"Public Relations Specialist",
"Public Transportation Inspector",
"Publications Editor",
"Purchasing Agent",
"Purchasing Manager",
"Quality Control Coordinator",
"Quality Control Engineer",
"Quality Control Inspector",
"Quality Control Technician",
"Quarry Worker",
"Radar and Sonar Technicians",
"Radiation Protection Engineer",
"Radiation Therapists",
"Radio & TV Announcer",
"Radio & TV News Commentator",
"Radio & TV Newscaster",
"Radio & TV Producer",
"Radio & TV Program Director",
"Radio & TV Sports Announcer",
"Radio & TV Station Administrator",
"Radio & TV Talk Show Host",
"Radio Mechanics",
"Radio Operators",
"Radiologic Technicians",
"Radiologic Technologist",
"Radiologist (MD)",
"Rail Yard Engineers",
"Railroad Conductors and Yardmasters",
"Railroad Engineer",
"Railroad Inspector",
"Range Manager",
"Real Estate Appraiser",
"Real Estate Assessor",
"Real Estate Broker",
"Real Estate Lawyer",
"Real Estate Sales Agents",
"Recreation Leader",
"Recreational Protective Service Worker",
"Recreational Therapist",
"Recreational Vehicle Mechanic",
"Umpire",
"Refuse and Recyclable Material Collectors",
"Registrar Administrator",
"Reliability Engineer",
"Religious Institution Education Coordinator",
"Reservation Ticket Agent",
"Residence Counselor",
"Resource Recovery Engineer",
"Resource Teacher",
"Respiratory Care Technician",
"Respiratory Therapist",
"Respiratory Therapy Technicians",
"Restaurant Food Coordinator",
"Restaurant Manager",
"Retail Buyer",
"Retail Customer Service Representative",
"Retail Inventory Control Analyst",
"Retail Sales Department Supervisor",
"Retail Salespersons",
"Retail Store Manager",
"Revenue Agent (Government)",
"Safety Inspector",
"Sales Engineers",
"Sales Floor Stock Clerk",
"Sales Managers",
"Sales Promoter",
"Sales Representative (Aircraft)",
"Sales Representative (Chemicals & Drugs)",
"Sales Representative (Computers)",
"Sales Representative (Graphic Arts)",
"Sales Representative (Hotel Furnishings)",
"Sales Representative (Medical Equipment)",
"Sales Representative (Printed Advertising)",
"Sales Representative (Radio & TV Time)",
"Sales Representative (Telecommunications)",
"Sales Representative (Teleconferencing)",
"Sales Representative ( Education Programs)",
"Sales Representatives (Agricultural Products)",
"Sales Representatives (Instruments)",
"Sales Representatives (Mechanical Equipment)",
"Sales Representitive (Psychological Tests)",
"Sanitary Engineer",
"Sawing Machine Operator",
"Scanner Operators",
"School Nurse",
"School Plant Consultant",
"School Psychologist",
"Scientific Linguist",
"Scientific Photographer",
"Screen Printing Machine Operators",
"Screen Writer",
"Script Editor",
"Securities Broker",
"Security and Fire Alarm Systems Installers",