'
'
'
'                  Call of Cthulhu  Character Generator
'
'                  USE  Load Menu - Merge ASCII in AMOS
'
'
Dim OCCUPATION$(9),SKILL$(60),SKILL(60)
'
Gosub INIT
'
'
For A=1 To 9 : Read OCCUPATION$(A) : Next A
For A=1 To 60 : Read SKILL$(A) : Next A
For A=1 To 60 : SKILL(A)=0 : Next A
'
'
'
'   ------------------------- START OF PROGRAM ------------------------
'
'
'
Gosub CREATE_CHARS
Gosub BONUS
Gosub SKILLS
Gosub SCHOOL
'
'
'
' ---------------------------  MAIN LOOP ----------------------------
'
'
'Repeat  
'
'Cls 
'Gosub TIME
'Gosub MOVEMENT
'Gosub ENCUMBRANCE 
'Gosub MELEE 
'Gosub STRIKE
'Gosub HIT_LOCATION
'
'Until DEATH 
'
'
Gosub DELAY
'
Print "Saving To Disk"
Gosub DISK
'
Gosub FINISH
'
End 
'
'
'
' ************************************************************************** 
'
'
INIT:
Randomize Timer
Screen Open 0,640,256,16,Hires
Curs Off 
Cls 0
Hide 
Flash Off 
Palette 0,0
'
Return 
'
'
' -------------------------------------------------------------------------- 
'
'
CREATE_CHARS:
'
'
'
STR=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
CON=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
SIZ=(Rnd(5)+1)+(Rnd(5)+1)+6
IQ=(Rnd(5)+1)+(Rnd(5)+1)+6
POW=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
DEX=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
APP=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
EDU=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+3
'
'
Print "Strength         ";STR
Print "Constitution     ";CON
Print "Size             ";SIZ
Print "Intelligence     ";IQ
Print "Power            ";POW
Print "Dexterity        ";DEX
Print "Appearance       ";APP
Print "Education        ";EDU
'
Print 
If EDU>=16 Then Print "You have also graduated from university with a degree"
'
'
OKAY=0
Print 
Repeat 
Repeat 
Input "Enter Sex (M/F) ";SEX$
Until SEX$<>""
'
If SEX$="M" Then OKAY=1
If SEX$="F" Then OKAY=1
'
Until OKAY=1
'
'
IDEA=IQ*5
LUCK=POW*5
KNOW=EDU*5
SAN=LUCK
SAN_MOST=99-MYTH_KNOW
HP=(SIZ+CON)/2
MP=POW
'
'
Return 
'
'
' -------------------------------------------------------------------------- 
'
'
BONUS:
'
'
If STR+SIZ<=12 Then BONUS=-(Rnd(5)+1)
If STR+SIZ<=16 Then If STR+SIZ>=13 Then BONUS=-(Rnd(3)+1)
If STR+SIZ<=32 Then If STR+SIZ>=25 Then BONUS=(Rnd(3)+1)
If STR+SIZ<=40 Then If STR+SIZ>=33 Then BONUS=(Rnd(5)+1)
If STR+SIZ<=56 Then If STR+SIZ>=41 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=72 Then If STR+SIZ>=57 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=88 Then If STR+SIZ>=73 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=104 Then If STR+SIZ>=89 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=120 Then If STR+SIZ>=105 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=136 Then If STR+SIZ>=121 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=152 Then If STR+SIZ>=137 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=168 Then If STR+SIZ>=153 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
If STR+SIZ<=184 Then If STR+SIZ>=169 Then BONUS=(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)+(Rnd(5)+1)
'
'
Return 
'
'
' -------------------------------------------------------------------------- 
'
'
SKILLS:
'
'
'                           Select an Occupation 
'
Cls 
For A=1 To 9 : Print A,OCCUPATION$(A) : Next A
'
Print 
Print "Pick number that responds to chosen profession ";
Repeat 
Input OCC
Until OCC<10
'
Cls 
Print "The skills of a ";OCCUPATION$(OCC);" are "
Print 
'
'
'
'                          Occupation Skills 
'
If OCC=1 Then Print "Bargain     ","History    ","Law     ","Library Use","Make Maps","Other Language"
If OCC=2 Then Print "History","Library Use","Oratory","Psychology","Own Language","Other Language"
If OCC=3 Then Print "Any"
If OCC=4 Then Print "Credit Rating","Diagnose Disease","First Aid    ","Pharmacy","Psychoanalysis  ","Latin      ","Treat Disease","Treat Poison"
If OCC=5 Then Print "Debate    ","Fast Talk","Oratory    ","Psychology","Other Language","Own Language"
If OCC=6 Then Print "Accounting","Credit Rating","Debate    ","Fast Talk    ","Law     ","Library Use ","Oratory   ","Psychology","Latin      "
If OCC=7 Then Print "Anthropology","Archaelogy","History    ","Library Use","Occult     ","Pyschoanalysis  ","Psychology","Other Language"
If OCC=8 Then Print "Accounting","Conceal    ","Credit Rating","Fast Talk ","First Aid  ","Hide       ","Law        ","Listen      ","Psychology","Sneak       ","Spot Hidden","Handgun Attack"
If OCC=9 Then Print "Anthropology","Archaelogy","Astronomy","Botany   ","Chemistry","Debate","Geology ","History  ","Library Use","Linguist","Occult    ","Other Language","Zoology   "
'
Print 
Print "You have a total of ";EDU*15;" to invest into the above skills"
Print 
Print 
Print 
'
'
'
'                       Personal Interest Skills 
'
For A=1 To 15 : Print SKILL$(A);"      ";SKILL$(A+15);"      ";SKILL$(A+30);"      ";SKILL$(A+45) : Next A
'
Print 
Print "You have a total of ";IQ*5;" to invest in the above skills"
'
'
'
'
'
'
'Magic Points
'  Speciality: 
'  Skill:
'  Base: 
'
'
'
Return 
'
'
' -------------------------------------------------------------------------- 
'
'
SCHOOL:
'
'
'Additional schooling? 
'Schooling paid off. 
'Schooling had no effect.
'
'
Return 
'
'
' -------------------------------------------------------------------------- 
'
'
'
'
'
'Return  
'
'
' -------------------------------------------------------------------------- 
'
'
'
'Return  
'
'
'
' -------------------------------------------------------------------------- 
'
'
'
'
'Return  
'
'
' -------------------------------------------------------------------------- 
'
'
FINISH:
Clw 
Wind Close 
Clw 
Curs Off 
'
'
' -------------------------------------------------------------------------- 
'
'
DELAY:
Print 
Print "PRESS ANY KEY TO CONTINUE"
Repeat 
I$=Inkey$
Until I$<>""
Return 
'
'
' -------------------------------------------------------------------------- 
'
'
'
DISK:
Cls 
Locate 0,10 : Centre "Save (Y/N)?"
Repeat 
I$=Inkey$
Until I$<>""
If I$="n" Then Cls : Print "Program Terminted..." : End 
If I$="y" Then Goto FILENAME
Goto DISK
'
'
'
FILENAME:
Locate 10,12
Input "Filename (Specify Drive) :";F$
If F$="" Then Goto DISK
'
'
' If you require a printer output then replace   Print "   with    LPrint "
'
' If you want to save character to disk, then remove  '  from the
' Open Out 1,F$   line below and then replace   Print "    with    Print #1,"
'
'
' Open Out 1,F$
'
'
' ************************************************************************** 
'
'
'
Print "   ------------------------------------------------------------------------ "
Print "         CALL OF CTHULHU                               Character Card"
Print "   ------------------------------------------------------------------------ "
Print 
Print "   Name           "
Print "   Occupation                           Sex            Age  "
Print "   Nationality                          Residence           "
Print "   Schools        "
Print "   Degrees        "
Print 
Print 
Print "   STR ";STR;"    DEX ";DEX;"    INT ";IQ;"    Idea ";IDEA
Print "   CON ";CON;"    APP ";APP;"    POW ";POW;"    Luck ";LUCK
Print "   SIZ ";SIZ;"    SAN ";SAN;"    EDU ";EDU;"    Know ";KNOW
Print 
Print 
Print "   MAGIC POINTS           ";MP
Print "   HIT POINTS             ";HP
Print "   SANITY POINTS (Max=";SAN_MOST;") ";SAN
Print "   DAMAGE BONUS           ";BONUS
Print 
Print 
'
Gosub DELAY
'
Print "   ------------------------------------------------------------------------ "
Print 
Print "                               INVESTIGATOR SKILLS"
Print 
Print "   Accounting(10)      ....  Jump(25)           ....  Psychology(05)    ...."
Print "   Anthropology(00)    ....  Law (05)           ....  Read/Write (EDUx5)...."
Print "   Archaeology(00)     ....  Library Use(25)    ....  Read/Write    (00)...."
Print "   Art                 ....  Listen(25)         ....  Read/Write    (00)...."
Print "   Astronomy(00)       ....  Locksmith          ....  Read/Write    (00)...."
Print "   Bargain(05)         ....  Make Maps(10)      ....  Ride(05)          ...."
Print "   Biology             ....  Martial Arts       ....  Sing(05)          ...."
Print "   Chemistry(00)       ....  Mechanic Repair(20)....  Sneak(10)         ...."
Print "   Climb(40)           ....  Medicine           ....  Speak         (00)...."
Print "   Conceal(25)         ....  Natural History    ....  Speak         (00)...."
Print "   Credit Rating(15)   ....  Navigate           ....  Spot Hidden(25)   ...."
Print "   Cthulhu Mythos(00)  ....  Occult(05)         ....  Swim(25)          ...."
Print "   Debate(10)          ....  Op Hvy Machine(00) ....  Throw(25)         ...."
Print "   Dodge (DEXx2)       ....  Oratory(05)        ....  Track Handgun     ...."
Print "   Drive Auto(20)      ....  Latin              ....  Track(10)         ...."
Print "   Electric Repair(10) ....  Persuade           ....  Treat Disease(05) ...."
Print "   Fast Talk(05)       ....  Pharmacy(00)       ....  Treat Poison(05)  ...."
Print "   First Aid(30)       ....  Photography(10)    ....  Zoology(00)       ...."
Print "   Geology(00)         ....  Physics            ....  "
Print "   Hide(10)            ....  Pilot(00)          ....  "
Print "   History(20)         ....  Psychoanalysis(00) ....  "
Print 
'
Gosub DELAY
'
Print "   ------------------------------------------------------------------------ "
Print 
Print "   INCOME AND SAVINGS"
Print 
Print "   Yearly Income ";CASH
Print "   Savings       ";SAV
Print 
Print "   Weapon         Attk%   Damage   Impale   Parry%   Hit Points"
Print 
Print 
'
'
'
'
'
'
' ************************************************************************** 
'
'
'
'
' ************************************************************************** 
'
'
' Version 3 rules have only 9 occupations
'
'
Data "Antiquarian/Historian"
Data "Author"
Data "Dilettante"
Data "Doctor Of Medicine"
Data "Journalist"
Data "Lawyer"
Data "Parapsychologist"
Data "Private Investigator"
Data "Professor"
'
'
' ************************************************************************** 
'
'
'
'   Available skills 
'
Data "Accounting","Anthropology","Archaeology","Art         ","Astronomy"
Data "Bargain   ","Biology    ","Botany     "
Data "Chemistry","Climb    ","Conceal","Credit Rating"
Data "Debate   ","Diagnose Disease","Dodge      ","Drive Auto"
Data "Electrical Repair","Fast Talk   ","First Aid   "
Data "Geology   ","Handgun Attack","Hide     ","History  ","Jump         "
Data "Latin        ","Law          ","Library Use","Linguist   ","Listen   ","Locksmith"
Data "Make Maps","Martial Arts","Mechanical Repair","Medicine"
Data "Natural History","Navigate  "
Data "Occult   ","Oratory     ","Operate Heavy Machinery"
Data "Other Language","Own Language"
Data "Persuade   ","Pharmacy","Photography","Physics   ","Pilot     "
Data "Psychoanalysis","Psychology"
Data "Ride     ","Rifle Attack","Shotgun Attack","Sneak     ","Spot Hidden","Swim     "
Data "Treat Disease","Treat Poison   "
Data "Throw    ","Track Handgun","Zoology    "
'
'
' ************************************************************************** 
'
'
' Version 5 has 26 occupations 
'
'Data "Antiquarian","Artist","Athlete","Author"
'Data "Clergyman","Criminal","Dilettante","Doctor Of Medicine" 
'Data "Engineer","Entertainer","Farmer/Woodsman","Foot Soldier"
'Data "Hobo","Journalist","Lawyer","Military Commander","Missionary","Musician"
'Data "Parapsychologist","Police Detective","Police Patrolman" 
'Data "Private Investigator","Professor","Revolutionary" 
'Data "Tribal Fisherman","Tribal Warrior"
'
'
'
'
'
' ************************************************************************** 
'
'
'
'
' 12 weapons 
'  
Data "Machine Gun","Rifle","Shotgun","Submachine Gun","Fist/Punch","Head Butt"
Data "Kick","Grapple","Nightstick","Cultural Weapon","Boating","Other"
'
'
'
'
' ************************************************************************** 
'
'
'
'
'
' ************************************************************************** 
'
'
'
'
' ************************************************************************** 
'
'
'Print "   MAGIC POINTS                          HIT POINTS" 
'Print 
'Print "    1  2  3  4  5  6  7                   1  2  3  4  5  6  7" 
'Print "    8  9 10 11 12 13 14                   8  9 10 11 12 13 14" 
'Print "   15 16 17 18 19 20 21                  15 16 17 18 19 20 21" 
'Print 
'Print 
'Print "   SANITY POINTS 
'Print 
'Print "   (Insanity .............)    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15"
'Print "   16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39"
'Print "   40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63"
'Print "   64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87"
'Print "   88 89 90 91 92 93 94 95 96 97 98 99"
'
'
'
' ************************************************************************** 
'
'
'
'
'
