const versiondot:string[5]='2.14'; versiondate:string[10]='10/27/98'; const robot_actions_per_round:array[1..4,1..4,1..4] of byte= ( ((1,1,1,1),(1,1,1,2),(1,2,2,3),(1,2,3,3)), ((1,1,2,3),(1,2,3,3),(1,3,3,4),(2,3,4,4)), ((1,1,2,3),(1,2,3,3),(2,3,3,4),(2,3,4,4)), ((1,1,2,3),(1,2,3,3),(2,3,3,4),(2,3,4,4))); robot_action_check:array[1..4,1..4,1..4] of byte= ( ((2,4,6,8),(7,9,11,13),(8,10,12,14),(9,11,13,15)), ((6,8,10,12),(7,9,11,13),(8,10,12,14),(9,11,13,15)), ((10,12,14,16),(11,13,15,17),(12,14,16,18),(13,15,17,19)), ((14,16,18,19),(15,17,19,21),(16,18,20,22),(17,19,21,24))); robot_situation_dice:array[1..4,1..4] of shortint= ((4,3,2,1),(3,2,1,0),(2,1,0,-1),(1,0,-1,-2)); robot_gear_era:array[1..61] of byte= (0,0,0,0,6,5,6,5,5,6,6,6,6,6,6,7,7,8,8,5,8,7,7,7,5,5,5,7,6,5,5,5,5,6,5,6,6,5,5,5,5,5,5,7,5,5,5,5,5,8,7,5,6,5,5,4,5,6,6,5,5); robot_gear_cost:array[1..61] of shortint= (-3,0,5,10,4, 3,-3,2,0,3, 5,2,4,3,1, 7,3,8,10,1, 35,50,15,30,-2, 4,0,-4,-2,-1, 0,2,4,-2,1, 1,2,0,0,1, 2,2,3,9,0, 2,-2,1,3,3, 2,2,1,1,2, 0,5,4,5,5, 0); robot_gear:array[1..61] of string[20]= ('Marginal Proc.','Ordinary Proc.','Good Processor','Amazing Proc.','Aleeran', 'Hydraulic','Muscle wire','Pneumatic','Servo','T'#39'sa Electro', 'Ablative','Assault','Attack','Battle','Carbonate Fiber', 'Cerametal','Deflector','Displacement','Flickercladding','Kevlar', 'Nanofluidic','Neutronite, heavy','Neutronite, light','Neutronite, moderate','No casing', 'Photocell','Standard casing','under 10 cm','11 to 50 cm','51 cm to 1 m', '1 m to 2 m','2 m to 3 m','Over 3 m','Telepres. Link','Encrypted', 'Socket','Uplink','Wireless','Claw','Hand', 'Toolset','Profess. Tools','Legs','Gravitic','Tracks', 'Pentapod','Wheels','Chemical sniffer','GPS','Gravitic', 'Holo','IR sensor','Life recorder','Metal detector','Motion sensor', 'Pickup/Voicebox','Rangefinder','Sonar','Tactile','Vehicle mount', 'Video'); progress_ages:array[0..8] of string[20]=('Stone Age','Bronze/Iron Age','Middle Ages', 'Age of Reason','Industrial Age','Information Age','Fusion Age','Gravity Age','Energy Age'); cybercosts:array[1..35] of boolean=( true,false,false,true,true, true,true,true,true,true, true,true,true,true,false, false,true,false,true,true, true,true,true,true,true, true,true,true,false,true, true,true,true,true,true); cybersize:array[1..35] of byte= (2,0,0,2,2,1,2,2,1,1, 0,2,1,2,1,1,1,1,3,1, 2,1,1,1,1,0,3,2,0,2, 2,0,0,1,0); cybergear:array[1..35] of string[23]=( 'BattleKlaw', 'BioArt', 'BioWatch', 'Body_Plating', 'Cyberlimb', 'Cyberoptics', 'Fast_chip', 'MusclePlus', 'Nanocomputer', 'NIJack', 'Optic_screen', 'Self_repair_unit', 'Subdermal_comm', 'Subdermal_weapon_mount', 'CK_skinweave', 'Data_slot_passive', 'ER_slot', 'ER_slot_passive', 'Exoskeleton', 'Neural_3D_ext', 'Reflex', 'Subdermal_NIJack', 'Wireless_NIJack', 'Artificial_Ear', 'Artificial_Eye', 'Scanner_implant', 'Endoskeleton', 'Subdermal_armor', 'Systemic_reinforcement', 'Deflection_web', 'General_purpose_implant', 'Comm_port', 'Gunsight', 'System_link', 'Accelerator'); skills:array[0..235] of string[30]= ('Zero', 'Armor_Operation', ' Combat_armor', ' Powered_armor', 'Athletics', ' Climb', ' Jump', ' Throw', ' Athletics_special_1', ' Athletics_special_2', ' Athletics_special_3', 'Heavy_Weapons', ' Direct_fire', ' Indirect_fire', 'Melee_Weapons', ' Blade', ' Bludgeon', ' Powered_weapon', 'Unarmed_Attack', ' Brawl', ' Power_martial_arts', 'Acrobatics', ' Daredevil', ' Defensive_martial_arts', ' Dodge', ' Fall', ' Flight', ' Zero-g_training', ' Acrobatics_special_1', ' Acrobatics_special_2', ' Acrobatics_special_3', 'Manipulation', ' Lockpick', ' Pickpocket', ' Prestidigitation', 'Ranged_Weapons_Modern', ' Pistol', ' Rifle', ' SMG', 'Ranged_Weapons_Prim.', ' Bow', ' Crossbow', ' Flintlock', ' Sling', 'Stealth', ' Hide', ' Shadow', ' Sneak', 'Vehicle_Operation', ' Air_vehicle', ' Land_vehicle', ' Space_vehicle', ' Water_vehicle', 'Movement', ' Race', ' Swim', ' Trailblazing', 'Stamina', ' Endurance', ' Resist_pain', 'Survival', ' Survival_training_1', ' Survival_training_2', ' Survival_training_3', ' Survival_training_4', ' Survival_training_5', 'Biokinesis', ' Bioweapon', ' Control_Metabolism', ' Heal', ' Morph', ' Rejuvenate', ' Transfer_damage', 'Business', ' Corporate', ' Illicit_business', ' Small_business', 'Computer_Science', ' Hacking', ' Hardware', ' Programming', ' Artificial_intelligence', 'Demolitions', ' Disarm', ' Scratch_built', ' Set_explosives', 'Knowledge', ' Computer_operations', ' Deduce', ' First_aid', ' Extra_language_1', ' Extra_language_2', ' Extra_language_3', ' Extra_language_4', ' Extra_language_5', ' Extra_language_6', ' Extra_language_7', ' Extra_language_8', ' Extra_language_9', ' Extra_language_10', ' Extra_language_11', ' Knowledge_special_1', ' Knowledge_special_2', ' Knowledge_special_3', ' Knowledge_special_4', ' Knowledge_special_5', 'Law', ' Court_procedures', ' Law_enforcement', ' Law_special_1', ' Law_special_2', ' Law_special_3', 'Life_Science', ' Biology', ' Botany', ' Genetics', ' Xenology', ' Zoology', 'Medical_Science', ' Forensic_medicine', ' Medical_knowledge', ' Psychology', ' Surgery', ' Medical_treatment', ' Xenomedicine_specific_1', ' Xenomedicine_specific_2', ' Xenomedicine_specific_3', ' Xenomedicine_specific_4', ' Xenomedicine_specific_5', 'Navigation', ' Astrogation_drivespace', ' Astrogation_system', ' Navigation_surface', 'Physical_Science', ' Astronomy', ' Chemistry', ' Physics', ' Planetology', 'Security', ' Protection_protocols', ' Security_devices', 'Spaceship_Operation', ' Communications', ' Defenses', ' Engineering', ' Sensors', ' Weapons', 'Tactics', ' Infantry_tactics', ' Space_tactics', ' Vehicle_tactics', 'Technical_Science', ' Invention', ' Juryrig', ' Repair', ' Technical_knowledge', ' Robotics', 'ESP', ' Battle_Mind', ' Clairaudience', ' Clairvoyance', ' Empathy', ' Mind_Reading', ' Navcognition', ' Postcognition', ' Precognition', ' Psychometry', ' Sensitivity', 'Administration', ' Bureaucracy', ' Management', 'Animal_Handling', ' Animal_riding', ' Animal_training', 'Awareness', ' Intuition', ' Perception', 'Creativity', ' Creativity_special_1', ' Creativity_special_2', ' Creativity_special_3', 'Investigate', ' Interrogate', ' Search', ' Track', 'Resolve', ' Mental_resolve', ' Physical_resolve', 'Street_Smart', ' Criminal_elements', ' Street_knowledge', ' Grid_savvy', 'Teach', ' Teach_special_1', ' Teach_special_2', ' Teach_special_3', 'Telekinesis', ' Electrokinesis', ' Kinetic_Shield', ' Levitation', ' Photokinetics', ' Psychokinetics', ' Pyrokinetics', 'Culture', ' Diplomacy', ' Etiquette_special_1', ' Etiquette_special_2', ' Etiquette_special_3', ' First_encounter', 'Deception', ' Bluff', ' Bribe', ' Gamble', 'Entertainment', ' Act', ' Dance', ' Musical_instrument', ' Sing', 'Interaction', ' Bargain', ' Charm', ' Interview', ' Intimidate', ' Seduce', ' Taunt', 'Leadership', ' Command', ' Inspire', 'Telepathy', ' Contact', ' Datalink', ' Illusion', ' Mind_Blast', ' Mind_Shield', ' Suggest', ' Tire'); enhance_programs:array[1..7] of string[25]= ('Athletics','Melee Weapons', 'Unarmed Attack', 'Acrobatics', 'Manipulation', 'Primitive Ranged Weapons', 'Modern Ranged Weapons'); baseskillcost:array[1..235] of byte= (7,3,4,3,2,1,2,1,1,1, 6,4,4,6,3,3,4,5,3,5, 7,4,5,4,3,2,2,1,1,1, 6,4,4,3,6,4,4,4,7,4, 3,3,4,7,4,4,5,3,5,3, 5,3,3,2,1,3,3,4,4,5, 3,3,3,3,3,6,3,2,4,4, 3,2,4,3,3,3,7,5,4,4,5{artificial intelligence}, 6,4,4,3,3,1,2,2,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,5,3,3,1,1,1, 7,3,3,3,4,3,7,3,3,3, 5,4,3,3,3,3,3,6,4,3, 3,7,3,3,3,3,5,3,3,4, 3,3,3,3,3,6,3,3,3,7, 4,3,3,3,3{robotics},5,4,2,2,1,3, 3,3,4,3,2,4,3,3,3,1, 1,3,3,2,4,1,1,1,7,4, 4,4,5,3,3,5,3,3,5,3,3, 3,3,6,3,2,2,1,3,4,5, 3,2,2,2,3,5,3,3,3,4, 2,2,2,2,3,3,3,3,3,3, 2,4,4,4,5,3,4,3,4,2, 3,3); space_nations:array[1..14] of string[11]= ('Austrin','Borealin','Hatire','Inseer','Nariac', 'Orion','Orlamu','Rigunmor','Starmech','Thuldan', 'Solar','Employee','Concordan','Independent'); var male_and_female:array[1..12] of byte; skill_robot_can_have:array[1..235] of boolean; professional_toolsets,robot_processor,robot_casing:byte; robot_gear_ok,has_robot_gear:array[1..61] of boolean; good_mutation_17_1,good_mutation_17_2:integer; cssbok:array[1..16] of boolean; chosethisa:array[1..235] of boolean; neutronite, have_newrace_psionicists,have_newrace_cyborgs,have_newrace_mutants:boolean; austrin,borealin,hatire,inseer,nariac,orion,orlamu,rigunmor,starmech,thuldan, ship, solar,employee,concordan,independent:boolean; equipping_a_nariac:boolean; star_drive_nations,max_robot_rank:byte; all_psychic_race:boolean; pok:array[1..5] of boolean; dcok,tcok,fcok,ccok:array[1..11] of boolean; modify_this_race:byte; modifying_a_race:boolean; NewRaceMaxStrength, NewRaceMinStrength, NewRaceMaxDexterity, NewRaceMinDexterity, NewRaceMaxConstitution, NewRaceMinConstitution, NewRaceMaxIntelligence, NewRaceMinIntelligence, NewRaceMaxWillpower, NewRaceMinWillpower, NewRaceMaxPersonality, NewRaceMinPersonality,NewRace_Mutant, NewRace_Cyborg,NewRace_Psi,NewRaceFly:array[1..12] of byte; NewRaceBroadSkill:array[1..12,1..6] of byte; NewRaceName:array[1..12] of string[20]; NewRaceDescription:array[1..12,1..4] of string[80]; nextbyte:byte; FX_points:integer; adndok:array[1..8] of boolean; language_list:array[1..11] of string[20]; athletic_list,acrobat_list,law_list,creativity_list, teach_list,etiquette_list:array[1..3] of string[20]; knowledge_list,xenomedicine_list,survival_list:array[1..5] of string[20]; mutantsokay,cyberokay,psiokay:byte; psitalentsokay,mindwalkersokay:boolean; supporting_cast:boolean; hascybergear:array[1..35] of byte; hasenhanceprogram:array[1..7] of byte; qualityokay:array[1..3] of boolean; gearokay:array[1..35] of boolean; cybermaxload, cyberload:integer; strength_mutation,dexterity_mutation,constitution_mutation, intelligence_mutation,will_mutation,personality_mutation:integer; psimutok:array[1..235] of boolean; psimutcount:byte; chopok:array[1..6] of boolean; motiveok:array[1..15] of boolean; hasach:array[1..36] of byte; achok:array[1..36] of boolean; urgeskills:array[1..235] of boolean; Armor_Operation, Combat_armor, Powered_armor, Athletics, Climb, Jump, Throw, Athletics_special_1, Athletics_special_2, Athletics_special_3, Heavy_Weapons, Direct_fire, Indirect_fire, Melee_Weapons, Blade, Bludgeon, Powered_weapon, Unarmed_Attack, Brawl, Power_martial_arts, Acrobatics, Daredevil, Defensive_martial_arts, Dodge, Fall, Flight, Zero_g_training, Acrobatics_special_1, Acrobatics_special_2, Acrobatics_special_3, Manipulation, Lockpick, Pickpocket, Prestidigitation, Ranged_Weapons_Modern, Pistol, Rifle, SMG, Ranged_Weapons_Prim, Bow, Crossbow, Flintlock, Sling, Stealth, Hide, Shadow, Sneak, Vehicle_Operation, Air_vehicle, Land_vehicle, Space_vehicle, Water_vehicle, Movement, Race, Swimskill, Trailblazing, Stamina, Endurance, Resist_pain, Survival, Survival_training_1, Survival_training_2, Survival_training_3, Survival_training_4, Survival_training_5, Biokinesis, Bioweapon, Control_Metabolism, Heal, Morph, Rejuvenate, Transfer_damage, Business, Corporate, Illicit_business, Small_business, Computer_Science, Hacking, Hardware, Programming, Demolitions, Disarm, Scratch_built, Set_explosives, Knowledge, Computer_operations, Deduce, First_aid, Extra_language_1, Extra_language_2, Extra_language_3, Extra_language_4, Extra_language_5, Extra_language_6, Extra_language_7, Extra_language_8, Extra_language_9, Extra_language_10, Extra_language_xi, Knowledge_special_1, Knowledge_special_2, Knowledge_special_3, Knowledge_special_4, Knowledge_special_5, Law, Court_procedures, Law_enforcement, Law_special_1, Law_special_2, Law_special_3, Life_Science, Biology, Botany, Genetics, Xenology, Zoology, Medical_Science, Forensic_medicine, Medical_knowledge, Psychology, Surgery, Medical_treatment, Xenomedicine_specific_1, Xenomedicine_specific_2, Xenomedicine_specific_3, Xenomedicine_specific_4, Xenomedicine_specific_5, Navigation, Astrogation_drivespace, Astrogation_system, Navigation_surface, Physical_Science, Astronomy, Chemistry, Physics, Planetology, Security, Protection_protocols, Security_devices, Spaceship_Operation, Communications, Defenses, Engineering, Sensors, Weapons, Tactics, Infantry_tactics, Space_tactics, Vehicle_tactics, Technical_Science, Invention, Juryrig, Repair, Technical_knowledge, ESP, Battle_Mind, Clairaudience, Clairvoyance, Empathy, Mind_Reading, Navcognition, Postcognition, Precognition, Psychometry, Sensitivity, Administration, Bureaucracy, Management, Animal_Handling, Animal_riding, Animal_training, Awareness, Intuition, Perception, Creativity, Creativity_special_1, Creativity_special_2, Creativity_special_3, Investigate, Interrogate, Search, Track, Resolve, Mental_resolve, Physical_resolve, Street_Smart, Criminal_elements, Artificial_intelligence, Robotics, Grid_savvy, Street_knowledge, Teach, Teach_special_1, Teach_special_2, Teach_special_3, Telekinesis, Electrokinesis, Kinetic_Shield, Levitation, Photokinetics, Psychokinetics, Pyrokinetics, Culture, Diplomacy, Etiquette_special_1, Etiquette_special_2, Etiquette_special_3, First_encounter, Deception, Bluff, Bribe, Gamble, Entertainment, Act, Dance, Musical_instrument, Sing, Interaction, Bargain, Charm, Interview, Intimidate, Seduce, Taunt, Leadership, Command, Inspire, Telepathy, Contact, Datalink, Illusion, Mind_Blast, Mind_Shield, Suggest, Tire:integer; forsale:array[1..10] of integer; ctok:array[1..48] of boolean; moralsok:array[1..13] of boolean; flawok,hasflaw:array[1..50] of boolean; perkok:array[1..46] of boolean; motivation,trait1,trait2,moral_attitude,levvel:byte; energy,hiimpact,loimpact, buytheskillpackage,aridarid,hotcold,thickthin,waterwater,higrav,lograv, maxmin,newbie,hasarmor,hasweapon:boolean; mutAdrenal,mutDermal,mutHealing,mutImmunity,mutDurability, mutReflexes,mutSenses,mutNaturalAttack,mutSTR,mutDEX,mutCON, mutPER,mutWIL,mutINT:boolean; mutations,drawbacks,ordmut,goomut,amamut,orddis,baddis,amadis, mutation_points,drawback_points:byte; mutok:array[1..20] of boolean; hasordinary_mutation,hasgood_mutation,hasamazing_mutation:array[1..20] of byte; hasordinary_drawback,hasbad_drawback,hasamazing_drawback:array[1..8] of byte; rankstartingskills,rankfinalskills:array[1..235] of byte; myskillcost:array[1..235] of byte; bholds:array[1..235] of byte; neededbasic:array[1..235] of byte; columns,w:byte; standard_career,list_all_skills:boolean; hasperk:array[1..46] of boolean; can_have_improved_iron_fists:boolean; action_check_moddyfier,damage_adjustment,trained_count,trained_counter:integer; sprint,run,walk,easyswim,swimspeed,glide,fly:byte; starting_broad_max, starting_broad_count:byte; robot_parts_count:byte; defaults:file of byte; campname:text; file_name:string[12]; moniker:string[30]; player:string[30]; rulesmaster:string[30]; setting:string[30]; progress_level,ship_progress_level:byte; freeskillok:array[1..235] of boolean; aed1,aed2,aed3,dam2,dam3,aem1,aem2:string[55]; stup,deup,coup,iqup,wiup,peup:boolean; fourteens,thirteens,twelves:byte; baseskillcount:byte; squeek:byte;negativo:boolean; achievementpoints,skillpoints,oldskillpoints:integer; broadSkills,specialtyskills,stun_rating,free_agent_resistance_bonus, concordan_resistance_bonus, wound_rating,mortal_rating,fatigue_rating:byte; gender,last_resort_points,costLast_Resorts, actions_per_round,action_check_score:byte; thisskillcount,strengthskillscount,dexterityskillscount, constitutionskillscount,intelligenceskillscount, willskillscount,personalityskillscount:byte; doingStrengthSkills,doingDexteritySkills,doingConstitutionSkills, doingIntelligenceSkills,doingWillSkills,doingPersonalitySkills, donewithskills,cpr,dpr,fpr,tpr,mpr:boolean; racemaxstrength,racemaxdexterity,racemaxconstitution, racemaxintelligence,racemaxwill,racemaxpersonality:byte; pcz:text; weapon_name,damage_done, change:string[60]; spcr:array[0..99] of string[2]; numbergot:integer; ProfessionName:string[11]; careername:string[20]; speciesname:string[20]; psionic_talent_count:byte; combat_spec_sit_bonus,austrin_gun_bonus:integer; gotanumber,combat_spec,ADnDfighter,paladin, ranger,bard,druid,wizard,ADNDthief,ADnDcleric, diplomat,freeagent,techop,mindwalker,psionic_wild_talent, { psi_mutant,}psionic_talent_over_3, biokineticist,biowarrior,espion,mystic, telekineticist,psiguard,telepath,mindknight, bodyguard,Brawler,corporatesecurity,heavygunner,shipgunner, lawenforcer,martialartist,mercenary,soldier, spacehand,ambassador,clergy,entertainer, Administrator, Corporate_Executive, Military_Officer, Naval_Officer, Stellar_Noble, Swindler, Guide_Scout, Investigator, Outlaw, Smuggler, Thief, Crewman, Med_Tech, firstcontactconsul,trader, bounty_hunter,corsair,explorer,gambler,reporter,spy, computertech,doctor,engineer,hacker,pilot, scholar,scientist,human,fraal,mechalus, sesheyan,tsa,weren,riglia,bhruu,deepfallen,robot, xereen,rakon,adnd,askingadnd,halfelf, halforc,elf,gnome,dwarf,halfling,urge:boolean; st,de,co,iq,wi,pe,newrace:byte; systemic_reinforcement,perkcount,flawcount:byte; x,y,z,a,b,q,s,c:integer; psionic_talent_spec_count:byte; procedure turnchangetonumber; label outsky; begin if (length(change)>3) or (length(change)=0) then exit; if copy(change,1,1)='-' then begin negativo:=true; change:=copy(change,2,length(change)); end else negativo:=false; if copy(change,1,1)='+' then change:=copy(change,2,length(change)); numbergot:=0; for squeek:=1 to length(change) do begin if copy(change,squeek,1)='1' then numbergot:=numbergot+1 else if copy(change,squeek,1)='2' then numbergot:=numbergot+2 else if copy(change,squeek,1)='3' then numbergot:=numbergot+3 else if copy(change,squeek,1)='4' then numbergot:=numbergot+4 else if copy(change,squeek,1)='5' then numbergot:=numbergot+5 else if copy(change,squeek,1)='6' then numbergot:=numbergot+6 else if copy(change,squeek,1)='7' then numbergot:=numbergot+7 else if copy(change,squeek,1)='8' then numbergot:=numbergot+8 else if copy(change,squeek,1)='9' then numbergot:=numbergot+9 else if copy(change,squeek,1)='0' then begin end else exit; if squeek=length(change) then begin gotanumber:=true;goto outsky; end else numbergot:=numbergot*10; end; outsky: if negativo=true then numbergot:=numbergot*-1; end; procedure getnumber; begin gotanumber:=false; readln(change); if modifying_a_race=true then if (change='drop') or (change='DROP') or (change='Drop') then begin baserace; numbergot:=0;modifying_a_race:=false;gotanumber:=true; exit; end; if askingadnd=true then begin if (change='dd') or (change='DD') or (change='Dd') then begin adnd:=true;askingadnd:=false;exit;end; if (change='al') or (change='AL') or (change='Al') then begin adnd:=false;askingadnd:=false;exit;end; end; turnchangetonumber; end; const thicknesses:array[1..3] of string[8]=('Light','Moderate','Heavy'); ship_armor:array[1..5] of string[11]=('Polymeric','Alloy','Cerametal', 'Neutronite','Nanifluidic'); armor_numbers:array[1..3,1..5] of string[30]=(( 'd4-1 LI/d4-1 HI/d4-1 En', 'd6-1 LI/d6-1 HI/d4-1 En', 'd6-1 LI/d6-1 HI/d6-1 En', 'd6 LI/d6 HI/d6-1 En', 'd8-1 LI/d8-1 HI/d8 En'),( 'd4 LI/d4 HI/d4-1 En', 'd4+1 LI/d4+1 HI/d4 En', 'd4+1 LI/d4+1 HI/d4+1 En', 'd6+1 LI/d6+1 HI/d6 En', '2d4 LI/2d4 HI/2d4 En'),( 'd4+1 LI/d4+1 HI/d6-1 En', 'd6+1 LI/d6+1 HI/d6 En', 'd8 LI/d8 HI/d8 En', 'd8+1 LI/d8+1 HI/d8+1 En', '2d4+1 LI/2d4+2 HI/2d4+1 En' )); ship_weapons:array[0..21] of string[67]= ('Weapon Dur Pow Acc Range Type Damage Actions', 'Laser cannon 2 2 0 1/2/3 En[e] d4s/d4w/d4+2w 4', 'IR laser 3 2 0 2/4/6 En[e] d4+1s/d4+1w/d6+1w 4', 'Launch rack 2 1 0 ------------ as load ------------- 2', 'Launch tube 3 1 0 ------------ as load ------------- 1', 'Missile, ARN 0 0 -1 10/20/30 LI[g] d8s/2d4+1s/d4+2w 0', 'Missile, CHE 0 0 +1 8/16/24 LI[g] d8s/d6+1w/d4+1m 0', 'Missile, NUK 0 0 -2 10/20/30 En[g] 2d6s/2d6w/2d6m 0', 'Missile, SMP 0 0 -1 18/16/24 HI[g] d6+2s/d6+2w/d6+4w 0', 'Rail cannon 4 3 +1 4/8/12 HI[p] 2d4s/d6+2w/d4+1m 2', 'Turret 1 0 0 ----------- as weapon ---------------', 'X-ray laser 3 2 0 3/6/9 En[e] d6+1s/d4+2w/d4m 4', 'Mass cannon 2 3 0 5/10/15 LI[p] d6+2s/d6+1w/d6+3w 3', 'Mass converter 4 6 0 3/6/9 En[e] d6+3s/d6+3w/d6+2m 2', 'Matter torpedo 5 4 +1 2/5/10 En[e] 2d6s/2d6w/d6+3m 2', 'Missile, MRB 0 0 -1 10/20/30 En[e] 2d4+1s/2d4w/d8+1m 0', 'Particle beam 4 5 0 6/12/18 En[e] d6+3s/d4+1m/d4+3m 2', 'Plasma cannon 3 3 0 4/8/12 En[e] d6+2w/d8+2w/d6+1m 3', 'Tractor beam 2 * -1 3/6/9 En[e] See description 2', 'EM torpedo 3 1 0 3/6/15 En[g] d6+3s/2d8s/d4+2w 2', 'Kinetic lance 2 1 0 5/10/20 HI[e] d4+1w/2d4w/d4+3m 3', 'Maser cannon 4 3 -1 6/12/20 En[e] d6+2w/d4+1m/d6+2m 4'); const hull_name:array[1..12] of string[13]= ('Launch','Courier','Trader','Lt_freighter','Transport','Med_transport', 'Fighter','Cutter','Scout','Attack','Escort','Corvette'); hull_comp:array[1..12] of byte=(2,4,6,8,10,12,2,4,6,8,10,12); hull_dur:array[1..12] of byte=(8,16,24,32,40,48,10,20,30,40,50,60); comp_type_names:array[1..7] of string[11]=('Command','Engineering', 'Weapons','Auxiliary','Electronics','Cargo','Crew'); basics:array[1..4] of string[15]=('Airlock','Reentry capsule', 'Boarding pod','Escape pod'); basics_era:array[1..4] of byte=(6,6,7,7); basics_available:array[1..4] of byte=(1,2,3,1); basics_dur:array[1..4] of byte=(1,1,2,2); armor_era:array[1..5] of byte=(6,6,7,7,8); armor_available:array[1..5] of byte=(1,2,3,3,4); restrict:array[1..4] of string[10]=('Common','Controlled','Military','Restricted'); pows:array[1..5] of string[16]=('Fusion generator', 'Grav-fusion cell','Solar cell','Mass reactor','Matter converter'); pows_era:array[1..5] of byte=(6,6,6,7,8); pows_available:array[1..5] of byte=(2,2,2,2,3); pows_dur:array[1..5] of byte=({3}2,{6}5,3,2,2); engs:array[1..7] of string[24]=('Fusion torch','Ion engine','Photon sail', 'Planetary thruster','Induction engine','Stabilizer','Inertial flux engine'); engs_era:array[1..7] of byte=(6,6,6,6,7,7,8); engs_available:array[1..7] of byte=(2,2,2,2,2,3,3); engs_dur:array[1..7] of byte=({4}3,{3}2,5,1,2,1,1);{fuel tanks} drvs:array[1..2] of string[9]=('Stardrive','Drivewave'); drvs_era:array[1..2] of byte=(7,8); drvs_available:array[1..2] of byte=(1,2); drvs_dur:array[1..2] of byte=(3,1); sups:array[1..5] of string[17]=('Life support unit','Recycler unit', 'Workshop','Accumulator','Autosupport unit'); sups_era:array[1..5] of byte=(6,6,6,7,7); sups_available:array[1..5] of byte=(1,1,1,2,1); sups_dur:array[1..5] of byte=(1,1,2,1,0); sens:array[1..9] of string[38]=( 'Air/Space radar 10 Mm/20 Mm/ 40 Mm', 'EM detector 30 Mm/60 Mm/ 90 Mm', 'IR detector 2 Mm/ 4 Mm/ 6 Mm', 'Mass detector 10 Mm/50 Mm/100 Mm', 'Multiband radar 30 Mm/60 Mm/ 90 Mm', 'Remote network', 'Spectroanalyzer', 'CE passive array 50 Mm/100 Mm/150 Mm', 'Multiphase radar 40 Mm/80 Mm/120 Mm'); sens_era:array[1..9] of byte=(6,6,6,7,7,7,7,8,8); sens_available:array[1..9] of byte=(1,3,2,2,1,3,2,3,3); sens_dur:array[1..9] of byte=(0,0,0,1,0,2,1,2,1); defs:array[1..8] of string[17]=('Armor','Chaff','Damage control', 'Jammer','Point-defense gun','Deflection inducer','Ablative shield', 'Displacer'); defs_era:array[1..8] of byte=(100,6,6,6,6,7,8,8); defs_available:array[1..8] of byte=(0,3,3,4,4,3,3,4); defs_dur:array[1..8] of byte=(0,1,1,0,1,1,2,2); comms:array[1..3] of string[17]=('Laser transceiver', 'Radio transceiver','Mass transceiver'); comms_era:array[1..3] of byte=(6,6,7); comms_available:array[1..3] of byte=(1,1,2); comms_dur:array[1..3] of byte=(0,0,1); compps:array[1..11] of string[24]=('Computer core, Marginal', 'Computer core, Ordinary','Computer core, Good', 'Computer core, Amazing','Battle computer', 'Communications computer','Defense computer','Engineering computer', 'Navigation computer','Science computer','Sensors computer'); compps_era:array[1..11] of byte=(6,6,7,7,6,6,6,6,6,6,6); compps_available:array[1..11] of byte=(1,1,1,1,3,1,2,1,1,1,1); compps_dur:array[1..11] of byte=(0,1,2,3,0,0,0,0,0,0,0); crews:array[1..4] of string[15]=('Crew quarters','Lab section', 'Passenger suite','Sick bay'); crews_era:array[1..4] of byte=(6,6,6,6); crews_available:array[1..4] of byte=(1,1,1,2); crews_dur:array[1..4] of byte=(1,2,1,2); cars:array[1..4] of string[15]=('Cargo space','Fuel tank','Hangar space','Autocargo'); cars_era:array[1..4] of byte=(6,6,6,7); cars_available:array[1..4] of byte=(1,1,1,1); cars_dur:array[1..4] of byte=(1,0,1,1); weapons_era:array[1..21] of byte=(6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8); weapons_dur:array[1..21] of byte=(2,3,2,3,0,0,0,0,4,1,3,2,4,5,0,4,3,2,3,2,4); weapons_available:array[1..21] of byte=(2,3,2,3,3,2,4,3,4,2,3,2,4,4,4,4,3,2,4,3,2); const ADnDSpeciesNames:array[1..7] of string[8]=('Human', 'Half-Elf','Elf','Dwarf','Gnome','Halfling','Half-Orc'); ADnDStrengths:array[1..7] of byte=(14,14,14,14,14,12,15); ADnDDexterities:array[1..7] of byte=(14,14,15,14,14,14,12); ADnDconstitutions:array[1..7] of byte=(14,14,13,15,14,14,15); ADnDintelligences:array[1..7] of byte=(14,14,14,14,14,14,12); ADnDWills:array[1..7] of byte=(14,14,14,14,14,14,14); ADnDPersonalities:array[1..7] of byte=(14,14,14,13,14,14,12); const ProfessionNames:array[1..5] of string[11]=('Combat Spec', 'Diplomat','Free Agent','Tech Op','Mind Walker'); MindWalkerCareers:array[1..8] of string[14]= ('Biokineticist','Biowarrior','ESPion','Mystic', 'Telekineticist', 'PsiGuard','Telepath','Mind Knight'); CombatSpecCareers:array[1..10] of string[18]=('Bodyguard', 'Brawler','Corporate Security','Heavy Gunner','Ship Gunner', 'Law Enforcer', 'Martial Artist','Mercenary','Soldier','Space Hand'); DiplomatCareers:array[1..11] of string[20]=('Administrator', 'Ambassador', 'Clergy','Corporate_Executive','Entertainer','First Contact Consul', 'Free Trader','Military_Officer','Naval_Officer','Stellar_Noble', 'Swindler'); FreeAgentCareers:array[1..11] of string[13]=('Bounty Hunter','Corsair', 'Explorer','Gambler','Guide-Scout','Investigator', 'Outlaw','Reporter','Smuggler','Spy','Thief'); TechOpCareers:array[1..9] of string[13]=('Computer Tech', 'Crewman','Doctor','Engineer','Hacker', 'Med Tech','Pilot','Scholar','Scientist'); environmentsm:array[1..5] of string[16]= ('Arid Climate','Cold Climate','Hot Climate','Thick Atmosphere', 'Thin Atmosphere'); environmentsd:array[1..6] of string[16]= ('Arid Climate','Cold Climate', 'High Gravity','Hot Climate','Low Gravity','Water'); damagetype:array[1..3] of string[20]= ('Energy','High Impact','Low Impact'); ordinary_mutations:array [1..20] of string[30]= ('Adaptation_Environment', 'Adaptation_Gravity', 'Adrenal_Control', 'Biorhythm_Control', 'Dermal_Reinforcement', 'Improved_CON', 'Improved_DEX', 'Improved_Durability', 'Improved_Healing', 'Improved_Immunity', 'Improved_INT', 'Improved_PER', 'Improved_Reflexes', 'Improved_Senses', 'Improved_STR', 'Improved_WIL', 'Night_Vision', 'Psi_Sensitivity', 'Toxin_Tolerance', 'Vascular_Control'); good_mutations:array[1..20] of string[30]=( 'Acid_Touch', 'Dermal_Armor', 'Electric_Aura', 'Enhanced_CON', 'Enhanced_DEX', 'Enhanced_Durability', 'Enhanced_Healing', 'Enhanced_Immunity', 'Enhanced_INT', 'Enhanced_PER', 'Enhanced_Reflexes', 'Enhanced_Senses', 'Enhanced_STR', 'Enhanced_WIL', 'Increased_Metabolism', 'Natural_Attack', 'Psionic_Power', 'Radiation_Tolerance', 'Redundant_Vital_Organs', 'Thermal_Vision'); amazing_mutations:array[1..20] of string[30]=( 'Chameleon_Flesh', 'Dermal_Plating', 'Energy_Absorption', 'Energy_Reflection', 'Flight', 'Hyper_CON', 'Hyper_DEX', 'Hyper_Durability', 'Hyper_Healing', 'Hyper_Immunity', 'Hyper_INT', 'Hyper_Metabolism', 'Hyper_PER', 'Hyper_Reflexes', 'Hyper_Senses', 'Hyper_STR', 'Hyper_WIL', 'Imp_Natural_Attack', 'Poison_Attack', 'Psi_Resistance'); ordinary_drawbacks:array[1..8] of string[32]=( 'Environmental_Sensitivity_Slight', 'Light_Sensitivity', 'Reduced_Ability_Score_Slight', 'Sound_Sensitivity', 'Temporary_Weakness_Slight', 'Thermal_Intolerance', 'Toxin_Intolerance', 'Weak_Immunity'); bad_drawbacks:array[1..8] of string[34]=( 'Environmental_Sensitivity_Moderate', 'Inefficient_Metabolism', 'Minor_Physical_Change', 'Reduced_Ability_Score_Moderate', 'Slow_Reflexes', 'Susceptibility_to_Damage', 'Temporary_Weakness_Moderate', 'Wild_Immunity'); amazing_drawbacks:array[1..8] of string[32]=( 'Deadly_Immunity', 'Environmental_Sensitivity_Severe', 'Highly_Susceptible_to_Damage', 'Major_Physical_Change', 'Reduced_Ability_Score_Severe', 'Temporary_Weakness_Severe', 'Weak_Metabolism', 'Wild_Mutation'); const achben:array[1..36] of string[24]= ('Action Check Bonus','Action Check Increase','Extra Action', 'Increase Strength #1','Increase Dexterity #1','Increase Constitution #1', 'Increase Intelligence #1','Increase Will #1','Increase Personality #1', 'Increase Strength #2','Increase Dexterity #2', 'Increase Constitution #2','Increase Intelligence #2','Increase Will #2', 'Increase Personality #2', 'Fatigue Rating Increase ','Mortal Rating Increase','Stun Rating Increase', 'Wound Rating Increase','Monetary Award','Ambidextrous','Celebrity', 'Concentration','Danger Sense','Fists of Iron','Improved Fists of Iron', 'Fortitude','Observant','Photo Memory','Powerful Ally','Reflexes', 'Reputation','Tough as Nails','Willpower','Zero-G Tolerance', 'Acquire Contact'); combatspeccost:array[1..36] of byte=(10,4,6,10,15,10,15,15,10,20,30,20,30,30,20, 4,8,4,6,6,6,4,5,5,3,6,5,5,5,5,6,4,5,6,5,5); diplomatcost:array[1..36] of byte= (12,4,6,15,15,15,10,10,10,30,30,30,20,20,20,5,10,4,7,5,6,4,5,6,4,8,6,5,4,5,6,5,6,6,5,3); combatspeclevel:array[1..36] of byte= (3,3,6,3,5,3,6,7,4,6, 8,6,9,10,7,3,3,4,5,3, 7,6,5,6,5,5,3,3,8,4,4,4,3,8,3,4); diplomatlevel:array[1..36] of byte= (5,3,6,6,7, 9,5,3,3,9, 10,12,8,6,6, 4,6,4,5,3, 6,3,4,7,9,9, 5,4,5,6,6,5,9,5,6,2); freeagentcost:array[1..36] of byte= (10,3,5,15,10, 15,15,10,10,30, 20,30,30,20,20, 10,20,4,7,6, 5,4,5,5,3, 6,6,5,5,5, 5,5,6,6,5,4); freeagentlevel:array[1..36] of byte= (3,3,4,6,3,5,4,3,5,9,6,8,7,6,8,3,5,3,4,3,3,5,5,3,4,4,5,3,7,4,3,5,6,6,4,3); techopcost:array[1..36] of byte= (10,4,6,15,10,15,10,10,15,30,20,30,20,20,30,10,20,4,7,6,5,4,4,6,4,8,5,6,4,6,5,5,5,6,5,5); techoplevel:array[1..36] of byte= (3,4,5,9,3,6,3,5,7,12,6,9,6,8,10,4,6,5,4,3,6,9,3,7,9,9,5,5,7,7,4,4,5,5,3,4); mindwalkercost:array[1..36] of byte= (10,4,6,15,15,10,10,10,15,30,30,20,20,20,30,6,12,4,8,6,6,4,4,5,4,8,6,5,4,6,6,4,6,5,5,5); mindwalkerlevel:array[1..36] of byte= (3,6,4,9,6,4,3,3,4,12,9,7,6,6,7,5,7,5,6,3,6,8,3,6,9,9,8,5,3,8,6,6,9,4,5,6); perks:array[1..46] of string[23]= ('Alien Artifact','Ambidextrous','Celebrity','Concentration','Danger Sense', 'Faith','Filthy Rich','Fists of Iron','Improved Fists of Iron','Fortitude', 'Good Luck','Great Looks','Heightened Strength','Heightened Dexterity','Heightened Constitution', 'Heightened Intelligence','Heightened Will','Heightened Personality','Observant','Photo Memory', 'Powerful Ally','Psionic Awareness','Reflexes','Reputation','Tough As Nails', 'Vigor (stun)','Vigor (wound)','Vigor (mortal, fatigue)','Willpower','Zero-G Tolerance', 'Animal Friend','Detachable System','Emancipated','Fuzzy Logic','Hidden System', 'Language Module','Lightweight Alloy','Memory Implants','Nanite Self-Repair 1','Nanite Self-Repair 2', 'Nanite Self-Repair 3','Photo Memory','Redundant Systems','Remote Backups','Self-Editing Program', 'Superior Tech'); flaws:array[1..50] of string[17]= ('Alien Artifact','Bad Luck','Clueless #1','Clueless #2','Clueless #3', 'Clumsy','Code of Honor','Delicate','Dirt Poor','Forgetful', 'Fragile','Infamy #1','Infamy #2','Infamy #3','Oblivious', 'Obsessed #1','Obsessed #2','Obsessed #3','Old Injury #1','Old Injury #2', 'Old Injury #3','Phobia #1','Phobia #2','Phobia #3','Poor Looks', 'Powerful Enemy #1','Powerful Enemy #2','Powerful Enemy #3','Primitive #1','Primitive #2', 'Primitive #3','Slow','Spineless #1','Spineless #2','Spineless #3', 'Temper #1','Temper #2','Temper #3','Asimov Circuits','Command Circuitry', 'Doublespeak','Honesty','Incomplete Coding 1','Incomplete Coding 2','Inferior Tech', 'Memory Lapse','Overheat','Secret Orders','Short Circuit','Unarmored'); costperk:array[1..46] of byte= (8,4,3,3,4, 5,6,2,5,4, 3,3,10,10,10, 10,10,10,3,3, 4,3,4,3,4, 2,3,4,4,4, 4,3,5,4,4, 6,3,4,4,7, 10,2,6,5,4, 5); costflaw:array[1..50] of byte= (5,6,2,4,6, 5,3,3,5,5, 3,2,4,6,4, 2,4,6,2,4, 6,2,4,6,3, 2,4,6,2,4, 6,6,2,4,6, 2,4,6,3,4, 2,2,2,4,4, 5,6,3,4,2 ); motivations:array[1..15] of string[24]= ('All for Love','Can'#39't Get Enough','Deeper Meaning', 'Discovery','Find the Truth','Fun First', 'Helping Others','Loose End','On a Mission', 'Personal Power','Staying Alive', 'Trust in a Higher Power','Vengeance', 'Winning is Everything','Yearn to Learn'); moral_attitudes:array[1..13] of string[15]= ('Anti-Authority','Apathetic','Conformist','Corrupt', 'Despicable','Ethical','Gallant','Honorable', 'Just','Selfish','Unscrupulous','Virtuous','Worldly'); character_traits:array[1..48] of string[13]= ('Aggressive','Amoral','Calm','Cheerful','Compassionate', 'Confident','Courageous','Cowardly','Curious','Dependent', 'Egotistical','Energetic','Flippant','Follower','Foppish', 'Friendly','Frivolous','Generous','Hateful','Helpful', 'Honest','Humble','Humorless','Humorous','Illogical', 'Independent','Kind','Lazy','Leader','Logical', 'Mysterious','Ominous','Optimistic','Passive','Peaceful', 'Pessimistic','Precise','Quiet','Rash','Religious', 'Romantic','Rude','Selfish','Skeptical','Suspicious', 'Talkative','Thoughtless','Trusting'); clubx:string[30]='LI/O d4+1s/dw4/d4+1w'; daggerx:string[30]='LI/O d4w/d4+1w/d4+2w'; quarterstaffx:string[30]='LI/O d4+1s/d4+3s/d6w'; spearx:string[30]='LI/O d4w/d4+2w/d4w'; gauntletx:string[30]='LI/O d4+1s/d4+2s/d4-1w'; hand_axe:string[30]='LI/O d4+1w/d4+2w/d4+3w'; macex:string[30]='LI/O d6+1s/d4+1w/d6+1w'; short_swordx:string[30]='LI/O d4w/d6w/d6+2w'; broad_swordx:string[30]='LI/O d4+2w/d6+2w/d4m'; flailx:string[30]='LI/O d6+2s/d4+2w/d4+3w'; great_axe:string[30]='LI/O d6+1w/d6+2w/d4+1m'; nanchakux:string[30]='LI/O d6s/d6+2s/d8+3s'; polearmx:string[30]='LI/O d6+1w/d4+3w/d4+1m'; cutlassx:string[30]='LI/O d4+1w/d6+1w/d6+3w'; katanax:string[30]='LI/O d4+2w/d6+2w/d4+1m'; rapierx:string[30]='LI/O d4w/d4+1w/d4+2w'; saberx:string[30]='LI/O d4w/d4+2w/2d4+1w'; bayonetx:string[30]='LI/O d4w/d4+2w/d4m'; combat_knifex:string[30]='LI/O d4+1w/d4+2w/d4+3w'; stun_batonx:string[30]='En/O d4+1s/d4+3s/d6+4s'; chainswordx:string[30]='LI/O d8+1w/d8+2w/d4+1m'; pulse_batonx:string[30]='En/O d8s/d4+2w/d6+2w'; gravmacex:string[30]='LI/O d8+2s/d6+2w/d8+2w'; power_cestusx:string[30]='LI/O d4+2s/d4w/d4+1w'; star_swordx:string[30]='En/O d6+1w/2d6w/d4+3m'; tristaffx:string[30]='En/O d8+2w/3d4+1w/d6m'; bow_shortx:string[30]='LI/O d4w/d4+2w/d4+3w'; sli_ngx:string[30]='LI/O d4s/d4+2s/d4w'; javelinx:string[30]='LI/O d4w/d4+1w/d4m'; bow_longx:string[30]='LI/O d4+1w/d6+1w/d4m'; cross_bowx:string[30]='LI/O d4+2w/d6+2w/d4+1m'; shurikenx:string[30]='LI/O d4s/d4w/d4+1w'; musket_flintlockx:string[30]='HI/O d6+1w/d6+3w/d6+1m'; pistol_flintlockx:string[30]='HI/O d4+2w/d6+2w/d4+1m'; rifle_longx:string[30]='HI/O d6w/d6+2w/d6m'; derringerx:string[30]='HI/O d4-1w/d6w/d6+2w'; pistol_32_revx:string[30]='HI/O d4w/d6w/d4m'; pistol_45_revx:string[30]='HI/O d4+1w/d4+2w/d6m'; rifle_30_boltx:string[30]='HI/O d4w+2/d6+2w/d4+1m'; rifle_44_levelx:string[30]='HI/O d6w/d8+1w/d6m'; shotgun_12_gaugex:string[30]='HI/O d4w/d6w/d4m'; SMG_45_calx:string[30]='HI/O d4+1w/d4+2w/d6m'; pistol_38_revx:string[30]='HI/O d4w/d4+1w/d4m'; pistol_44_magnumx:string[30]='HI/O d4+2w/d4+3w/d4+2m'; pistol_9mmx:string[30]='HI/O d4+1w/d4+2w/d4m'; rifle_762mmx:string[30]='HI/O d6+1w/2d4+1w/d4+1m'; rifle_assaultx:string[30]='HI/O d4+2w/d6+3w/d4+1m'; SMG_9mmx:string[30]='HI/O d4+1w/d4+2w/d4m'; pistol_9mm_chx:string[30]='HI/O d4+1w/d6+1w/d4m'; pistol_9mm_zero_gx:string[30]='HI/O d4+1w/d6+1w/d4m'; pistol_11mm_chx:string[30]='HI/O d4+2w/d6+2w/d6+1m'; rifle_11mm_chx:string[30]='HI/O d6+1w/d6+3w/d6+1m'; rifle_11mm_zero_gx:string[30]='HI/O d6+1w/d6+3w/d6+1m'; shotgun_autoflecx:string[30]='HI/O d4w/d6w/d4m'; SMG_9mm_chx:string[30]='HI/O d4+1w/d6+1w/d4m'; pistol_15mm_sabotx:string[30]='HI/O 2d4w/2d4+1w/d4+3m'; pistol_laserx:string[30]='En/O d4+1w/d6+1w/d4m'; pistol_massx:string[30]='En/G d6w/d6+2w/d6m'; pistol_stutterx:string[30]='LI/O d6+2s/d8+2s/d8+4s'; rifle_laserx:string[30]='En/O d6+1w/d6+3w/d4+1m'; rifle_massx:string[30]='En/G d6w/d8+1w/d6+1m'; rifle_quantumx:string[30]='En/O d4+3w/d6+4w/d6+1m'; rifle_renderx:string[30]='En/O d6+1s/d6+1w/d4+1m'; SMG_laserx:string[30]='En/O d6w/d6+2w/d4m'; SMG_stutterx:string[30]='LI/O d6+2s/d8+2s/d8+4s'; automaserx:string[30]='En/O d6w/d6+2w/d4m'; pistol_hvy_maserx:string[30]='En/G d6+1w/2d4+1w/d4+1m'; pistol_maserx:string[30]='En/O d6w/d6+2w/d4m'; rifle_hvg_maserx:string[30]='En/G d8+1w/d12w/d6+1m'; rifle_maserx:string[30]='En/O d6+2w/2d4+2w/d4+2m'; flamethrowerx:string[30]='En/O d6w/d6+3w/d8+3w'; grenade_fragx:string[30]='HI/G d4w/d4+2w/d6+2w'; machine_gun_30x:string[30]='HI/G d6w/d6+3w/d6m'; rocket_launcherx:string[30]='HI/G d6w/dw+3w/d4m'; grenade_launcherx:string[30]='as load'; grenade_concusx:string[30]='LI/O d6+2s/d4w/d4+1w'; grenade_incendx:string[30]='En/G d4w/d4+2w/d4+3w'; grenade_smokex:string[30]='special'; hvy_machine_gunx:string[30]='HI/G d6+1w/2d4+2w/d8m'; SAM_handheldx:string[30]='En/G d4w/d6w/d6+4w'; bantam_launcherx:string[30]='as load'; bantam_antiairx:string[30]='HI/G d4w/d4+2w/d4m'; bantam_antiperx:string[30]='En/O d6w/d6+2w/d8+2w'; bantam_antivehx:string[30]='HI/G d4+2w/d4+4w/d4+1m'; grenade_plasmax:string[30]='En/G d4+2w/d6+2w/d4m'; grenade_stunx:string[30]='En/0 d6s/d8s/d8+2s'; hvy_mach_gun_chx:string[30]='HI/G d8w/2d6w/2d4m'; rail_gunx:string[30]='HI/G d6w/d6+2w/d6m'; arc_gunx:string[30]='En/G d8+1s/d8w/d6+3w'; cannon_stutterx:string[30]='LI/O d6+2s/d8+3s/2d6+3s'; cannon_25mm_sabotx:string[30]='HI/G d8w/d4+1m/d6+2m'; grenade_pulsex:string[30]='En/G d4+2s/d6+2s/d8+2s'; grenade_tracerx:string[30]='HI/G d4+2w/d6+2w/d4+2m'; plasma_gunx:string[30]='En/G d8w/d8+3w/d12+3w'; quantum_minix:string[30]='LI/O d8+1w/d8+3w/d6m'; bantam_starloadx:string[30]='En/A d8+2w/d4+1m/d6+1m'; cannon_maserx:string[30]='En/G d8w/d4+1m/d6+2m'; grenade_massx:string[30]='En/G d6+2s/d6+2w/d6m'; mass_launcherx:string[30]='LI/O d6+1w/d6+3w/d4+1m'; hide_armorx:string[20]='O d6-3/d4-3/d6-4'; leather_armorx:string[20]='O d6-2/d6-4/d6-4'; helmx:string[20]='O +1/0/0'; shield_smallx:string[20]='O +1/0/0'; chain_mailx:string[20]='O d6-1/d6-4/d6-4'; plate_fullx:string[20]='O d6+1/d6-3/d6-3'; plate_partialx:string[20]='O d6/d8-5/d6-4'; shield_mediumx:string[20]='O +2/+1/0'; leather_coatx:string[20]='O d6-3/d4-3/d4-2'; flak_jacketx:string[20]='O d6-2/d4-1/d6-3'; assault_gearx:string[20]='O d6-1/d6-1/d6-1'; battle_vestx:string[20]='O d6-3/d6-2/d4-2'; riot_helmetx:string[20]='O +1/+1/0'; riot_shieldx:string[20]='O +1/+1/+1'; assault_gear_hvyx:string[20]='0 d6-1/d6/d6-1'; attack_armorx:string[20]='O d4+1/d6+1/d6-1'; attack_armor_powx:string[20]='G d6+1/d6+2/d6'; battle_jacketx:string[20]='O d6-1/d4+1/d4-1'; CF_long_coatx:string[20]='O d4/d4/d6-2'; CF_short_coatx:string[20]='O d4-1/d4-1/d6-3'; body_tankx:string[20]='G 2d4+1/2d4+1/2d4'; body_tank_reconx:string[20]='G 2d4/2d4/d6+2'; body_tank_0gx:string[20]='G 3d4/3d4/2d4+1'; cerametal_armorx:string[20]='O d6+1/d8+1/d6'; CF_softsuitx:string[20]='O d6/d6/d6-1'; deflection_harnessx:string[20]='O see description'; ablative_harnessx:string[20]='O see description'; body_tank_overx:string[20]='G 2d6+1/2d6+1/2d6'; displacer_softsuitx:string[20]='O see description'; energy_webx:string[20]='O d6-1/d6-1/d6+2'; stealth_softsuitx:string[20]='O see description'; const clothing:array[1..20] of string[19]= ( 'Backpack', 'Bioholster', 'Boots', 'Briefcase', 'Business dress', 'Casual dress', 'Coat', 'Fatigues', 'Formal dress', 'Glasses', 'Goggles, protective', 'Holster / Scabbard', 'Jewelry', 'Pouch', 'Shoes, athletic', 'Shoes, business', 'Shoes, formal', 'Stealth cloak', 'Utility harness', 'Watch'); communications:array[1..6] of string[16]= ('Cellular phone','Comm gear','Command link','Mass transceiver','Orbital uplink','Radio, personal'); medical_gear:array[1..16] of string[17]= ('First aid kit','Forensics kit','Life support pack','Medical gauntlet', 'Medical scanner','Rx anesthetic','Rx antibiotic','Rx antiradiation', 'Rx antivenom','Rx coagulant','Rx Psi_enhancer','Rx sedative', 'Rx stimulant','Surgical kit','Trauma pack I','Trauma pack II'); professional_equipment:array[1..11] of string[20]=('Chain hoist', 'Cutting torch','Demolitions pack','Generator, portable','Instrument pack', 'Rescue pack','Toolkit','Toolkit, special','Walker','Weight neutralizer', 'Workshop, portable'); sensors:array[1..15] of string[17]=('Audiorecorder','Binoculars', 'Compass','Goggles, imaging','Goggles, infrared','GPS receiver', 'Holorecorder','Microphone, para.','Psi-detector','Radar gauntlet', 'Sensor boom','Sensor gauntlet','Surveillance gear','Videorecorder', 'Weapon detector'); miscellaneous_gear:array[1..22] of string[21]=('Animal, guard', 'Animal, mount','Animal, pack','Animal, pet','Biolock','Duct tape', 'Ear plugs','Fire extinguisher','Handcuffs','Holoviewer','Instant glue', 'Lockpick set','Magnetic clamp','Music gauntlet','Musical instrument', 'Padlock','Psi-restraint helm','Psi-restraint collar','Psi-restraint implant', 'Suitcase','Videoviewer','Weapon biokey'); survival_gear:array[1..37] of string[16]=('Bedroll','Boots, magnetic', 'Cabin, portable','Camping unit','Candle','Climbing gear','Cooler', 'Emergency beacon','E-suit, soft','E-suit, hard','Flare','Flashlight', 'Grappling hook','Habitat dome','Heater, portable','Jumpsuit','Lantern', 'Lighter','Machete','Matches','Mirror','Parachute','Raft, inflatable', 'Rations [1 wk.]','Respirator mask','Rope, 50 m','Scuba gear', 'Skis','Stove, portable','Survival gear','Tent','Torch','Vacuum mask', 'Water condenser','Water purifier','Weather monitor','Zero-g web'); clothing_era:array[1..20] of byte=(4,6,2,3,3,3,1,5,3,3,4,1,1,2,5,4,4,8,4,4); communications_era:array[1..6] of byte=(5,7,5,7,5,5); medical_gear_era:array[1..16] of byte=(4,5,7,7,6,4,5,6,5,6,7,5,5,6,6,7); professional_equipment_era:array[1..11] of byte=(4,5,5,5,6,5,4,5,6,7,6); sensors_era:array[1..15] of byte=(5,4,3,5,5,5,7,5,6,7,5,7,5,5,6); miscellaneous_gear_era:array[1..22] of byte =(1,1,1,1,6,5,4,5,4,7,5,4,6,7,3,4,6,6,6,4,5,6); survival_gear_era:array[1..37] of byte= (2,6,7,6,1,4,4,5,5,6,4,4,2,6,4,6,3,4,3,3,1,4,4,4,4,1,4,4,4,4,3,1,6,5,4,6,6); var has_clothing:array[1..20] of byte; clothingokay:array[1..20] of boolean; has_communications:array[1..6] of byte; communicationsokay:array[1..6] of boolean; has_medical_gear:array[1..16] of byte; medical_gearokay:array[1..16] of boolean; has_professional_equipment:array[1..11] of byte; professional_equipmentokay:array[1..11] of boolean; has_sensors:array[1..15] of byte; sensorsokay:array[1..15] of boolean; has_miscellaneous_gear:array[1..22] of byte; miscellaneous_gearokay:array[1..22] of boolean; has_survival_gear:array[1..37] of byte; survival_gearokay:array[1..37] of boolean; thicknesses:array[1..3] of string[8]=('Light','Moderate','Heavy'); ship_armor:array[1..5] of string[11]=('Polymeric','Alloy','Cerametal', 'Neutronite','Nanifluidic'); armor_numbers:array[1..3,1..5] of string[30]=(( 'd4-1 LI/d4-1 HI/d4-1 En', 'd6-1 LI/d6-1 HI/d4-1 En', 'd6-1 LI/d6-1 HI/d6-1 En', 'd6 LI/d6 HI/d6-1 En', 'd8-1 LI/d8-1 HI/d8 En'),( 'd4 LI/d4 HI/d4-1 En', 'd4+1 LI/d4+1 HI/d4 En', 'd4+1 LI/d4+1 HI/d4+1 En', 'd6+1 LI/d6+1 HI/d6 En', '2d4 LI/2d4 HI/2d4 En'),( 'd4+1 LI/d4+1 HI/d6-1 En', 'd6+1 LI/d6+1 HI/d6 En', 'd8 LI/d8 HI/d8 En', 'd8+1 LI/d8+1 HI/d8+1 En', '2d4+1 LI/2d4+2 HI/2d4+1 En' )); ship_weapons:array[0..21] of string[67]= ('Weapon Dur Pow Acc Range Type Damage Actions', 'Laser cannon 2 2 0 1/2/3 En[e] d4s/d4w/d4+2w 4', 'IR laser 3 2 0 2/4/6 En[e] d4+1s/d4+1w/d6+1w 4', 'Launch rack 2 1 0 ------------ as load ------------- 2', 'Launch tube 3 1 0 ------------ as load ------------- 1', 'Missile, ARN 0 0 -1 10/20/30 LI[g] d8s/2d4+1s/d4+2w 0', 'Missile, CHE 0 0 +1 8/16/24 LI[g] d8s/d6+1w/d4+1m 0', 'Missile, NUK 0 0 -2 10/20/30 En[g] 2d6s/2d6w/2d6m 0', 'Missile, SMP 0 0 -1 18/16/24 HI[g] d6+2s/d6+2w/d6+4w 0', 'Rail cannon 4 3 +1 4/8/12 HI[p] 2d4s/d6+2w/d4+1m 2', 'Turret 1 0 0 ----------- as weapon ---------------', 'X-ray laser 3 2 0 3/6/9 En[e] d6+1s/d4+2w/d4m 4', 'Mass cannon 2 3 0 5/10/15 LI[p] d6+2s/d6+1w/d6+3w 3', 'Mass converter 4 6 0 3/6/9 En[e] d6+3s/d6+3w/d6+2m 2', 'Matter torpedo 5 4 +1 2/5/10 En[e] 2d6s/2d6w/d6+3m 2', 'Missile, MRB 0 0 -1 10/20/30 En[e] 2d4+1s/2d4w/d8+1m 0', 'Particle beam 4 5 0 6/12/18 En[e] d6+3s/d4+1m/d4+3m 2', 'Plasma cannon 3 3 0 4/8/12 En[e] d6+2w/d8+2w/d6+1m 3', 'Tractor beam 2 * -1 3/6/9 En[e] See description 2', 'EM torpedo 3 1 0 3/6/15 En[g] d6+3s/2d8s/d4+2w 2', 'Kinetic lance 2 1 0 5/10/20 HI[e] d4+1w/2d4w/d4+3m 3', 'Maser cannon 4 3 -1 6/12/20 En[e] d6+2w/d4+1m/d6+2m 4'); const hull_name:array[1..12] of string[13]= ('Launch','Courier','Trader','Lt_freighter','Transport','Med_transport', 'Fighter','Cutter','Scout','Attack','Escort','Corvette'); hull_comp:array[1..12] of byte=(2,4,6,8,10,12,2,4,6,8,10,12); hull_dur:array[1..12] of byte=(8,16,24,32,40,48,10,20,30,40,50,60); comp_type_names:array[1..7] of string[11]=('Command','Engineering', 'Weapons','Auxiliary','Electronics','Cargo','Crew'); basics:array[1..4] of string[15]=('Airlock','Reentry capsule', 'Boarding pod','Escape pod'); basics_era:array[1..4] of byte=(6,6,7,7); basics_available:array[1..4] of byte=(1,2,3,1); basics_dur:array[1..4] of byte=(1,1,2,2); armor_era:array[1..5] of byte=(6,6,7,7,8); armor_available:array[1..5] of byte=(1,2,3,3,4); restrict:array[1..4] of string[10]=('Common','Controlled','Military','Restricted'); pows:array[1..5] of string[16]=('Fusion generator', 'Grav-fusion cell','Solar cell','Mass reactor','Matter converter'); pows_era:array[1..5] of byte=(6,6,6,7,8); pows_available:array[1..5] of byte=(2,2,2,2,3); pows_dur:array[1..5] of byte=({3}2,{6}5,3,2,2); engs:array[1..7] of string[24]=('Fusion torch','Ion engine','Photon sail', 'Planetary thruster','Induction engine','Stabilizer','Inertial flux engine'); engs_era:array[1..7] of byte=(6,6,6,6,7,7,8); engs_available:array[1..7] of byte=(2,2,2,2,2,3,3); engs_dur:array[1..7] of byte=({4}3,{3}2,5,1,2,1,1);{fuel tanks} drvs:array[1..2] of string[9]=('Stardrive','Drivewave'); drvs_era:array[1..2] of byte=(7,8); drvs_available:array[1..2] of byte=(1,2); drvs_dur:array[1..2] of byte=(3,1); sups:array[1..5] of string[17]=('Life support unit','Recycler unit', 'Workshop','Accumulator','Autosupport unit'); sups_era:array[1..5] of byte=(6,6,6,7,7); sups_available:array[1..5] of byte=(1,1,1,2,1); sups_dur:array[1..5] of byte=(1,1,2,1,0); sens:array[1..9] of string[38]=( 'Air/Space radar 10 Mm/20 Mm/ 40 Mm', 'EM detector 30 Mm/60 Mm/ 90 Mm', 'IR detector 2 Mm/ 4 Mm/ 6 Mm', 'Mass detector 10 Mm/50 Mm/100 Mm', 'Multiband radar 30 Mm/60 Mm/ 90 Mm', 'Remote network', 'Spectroanalyzer', 'CE passive array 50 Mm/100 Mm/150 Mm', 'Multiphase radar 40 Mm/80 Mm/120 Mm'); sens_era:array[1..9] of byte=(6,6,6,7,7,7,7,8,8); sens_available:array[1..9] of byte=(1,3,2,2,1,3,2,3,3); sens_dur:array[1..9] of byte=(0,0,0,1,0,2,1,2,1); defs:array[1..8] of string[17]=('Armor','Chaff','Damage control', 'Jammer','Point-defense gun','Deflection inducer','Ablative shield', 'Displacer'); defs_era:array[1..8] of byte=(100,6,6,6,6,7,8,8); defs_available:array[1..8] of byte=(0,3,3,4,4,3,3,4); defs_dur:array[1..8] of byte=(0,1,1,0,1,1,2,2); comms:array[1..3] of string[17]=('Laser transceiver', 'Radio transceiver','Mass transceiver'); comms_era:array[1..3] of byte=(6,6,7); comms_available:array[1..3] of byte=(1,1,2); comms_dur:array[1..3] of byte=(0,0,1); compps:array[1..11] of string[24]=('Computer core, Marginal', 'Computer core, Ordinary','Computer core, Good', 'Computer core, Amazing','Battle computer', 'Communications computer','Defense computer','Engineering computer', 'Navigation computer','Science computer','Sensors computer'); compps_era:array[1..11] of byte=(6,6,7,7,6,6,6,6,6,6,6); compps_available:array[1..11] of byte=(1,1,1,1,3,1,2,1,1,1,1); compps_dur:array[1..11] of byte=(0,1,2,3,0,0,0,0,0,0,0); crews:array[1..4] of string[15]=('Crew quarters','Lab section', 'Passenger suite','Sick bay'); crews_era:array[1..4] of byte=(6,6,6,6); crews_available:array[1..4] of byte=(1,1,1,2); crews_dur:array[1..4] of byte=(1,2,1,2); cars:array[1..4] of string[15]=('Cargo space','Fuel tank','Hangar space','Autocargo'); cars_era:array[1..4] of byte=(6,6,6,7); cars_available:array[1..4] of byte=(1,1,1,1); cars_dur:array[1..4] of byte=(1,0,1,1); weapons_era:array[1..21] of byte=(6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8); weapons_dur:array[1..21] of byte=(2,3,2,3,0,0,0,0,4,1,3,2,4,5,0,4,3,2,3,2,4); weapons_available:array[1..21] of byte=(2,3,2,3,3,2,4,3,4,2,3,2,4,4,4,4,3,2,4,3,2); var forego_life_support:boolean; acc,cruise:string[4]; has_stardrive,has_drivewave:boolean; maneuver_rating:array[1..4] of integer; power_factors,movement_points,photon_sails,solar_cells:byte; ship_armor_type,ship_armor_thickness:byte; loadable:boolean; load_me:array[1..12] of boolean; canadd:boolean; restricted:byte; first_airlock,first_reentry_capsule,first_life_support, first_power_kind,first_power_place,first_computer_kind, first_engine_kind,first_engine_place, first_sensor_kind,first_sensor_place:byte; seeking_first_life_support,seeking_first_power, seeking_first_engine,seeking_first_sensor:boolean; has_basics:array[1..4,1..12] of byte; basics_okay:array[1..4] of boolean; armor_okay:array[1..5] of boolean; has_weapons:array[1..21,1..12] of byte; weapons_okay:array[1..21] of boolean; has_pows:array[1..5,1..12] of byte; pows_okay:array[1..5] of boolean; has_engs:array[1..7,1..12] of byte; engs_okay:array[1..7] of boolean; has_drvs:array[1..2,1..12] of byte; drvs_okay:array[1..2] of boolean; has_sups:array[1..5,1..12] of byte; sups_okay:array[1..5] of boolean; has_sens:array[1..9,1..12] of byte; sens_okay:array[1..9] of boolean; has_defs:array[1..8,1..12] of byte; defs_okay:array[1..8] of boolean; has_comms:array[1..3,1..12] of byte; comms_okay:array[1..3] of boolean; has_compps:array[1..11,1..12] of byte; compps_okay:array[1..11] of boolean; has_crews:array[1..4,1..12] of byte; crews_okay:array[1..4] of boolean; has_cars:array[1..4,1..12] of byte; cars_okay:array[1..4] of boolean; hull_type,durability_of_armored_ship, durability_of_unarmored_ship,max_compart,min_compart, command_compartments,engineering_compartments, weapons_compartments,auxilliary_compartments, electronics_compartments,cargo_compartments, crew_compartments,total_compartments, available_durability:byte; enough_compartments:boolean; old_cdur:array[1..12] of byte; ctype:array[1..12] of byte; old_cdur_not_used:array[1..12] of byte; cdur:array[1..12] of byte; cdur_not_used:array[1..12] of byte;