10 PRINT "***MECHWARRIOR SKILL ROLL DETERMINATION PROGRAM***" 20 PRINT:PRINT 40 DIM SKILL(25), SKILL$(25), SRT(25), BSRT(12), NSRT(25), SKIL(2,7), NSRTT (2,7) 50 DIM SRTT(2,7) 60 GOSUB 650 70 INPUT "BODY";BODY 80 INPUT "DEX";DEX 90 IF DEX = 8 OR DEX = 9 THEN PIB = PIB +1 100 IF DEX = 10 OR DEX = 11 THEN PIB = PIB + 2 110 IF DEX = 12 THEN PIB = PIB = PIB + 3 120 IF DEX = 4 OR DEX = 5 THEN PIB = PIB - 1 130 IF DEX = 2 OR DEX = 3 THEN PIB = PIB -2 140 INPUT "LRN";LRN 150 IF LRN > = 10 THEN PIB = PIB + 1 160 IF LRN < = 5 THEN PIB = PIB - 1 170 INPUT "CHA";CHA 180 PRINT 190 GOSUB 790 200 INPUT "ENTER THE SKILL#";ZZ 210 IF ZZ<0 OR INT(ZZ)<>ZZ THEN GOTO 190 220 IF ZZ = 0 THEN TT = 1: GOTO 270 230 INPUT "ENTER THE DESIRED SKILL RATING"; SKILL 240 SKILL(ZZ)= SKILL 250 IF ZZ = 1THEN GOSUB 840 260 IF ZZ = 21 THEN GOSUB 960 270 REM * STATUS REPORT 280 PRINT:PRINT:PRINT 290 PRINT TAB(10);"***STATUS REPORT***" 300 PRINT 310 PRINT "ATTRIBUTES","SCORES","SAVING ROLLS" 320 PRINT "BODY",BODY,14-BODY 330 PRINT "DEX",DEX,14-DEX 340 PRINT "LRN",LRN,14-LRN 350 PRINT "CHA",CHA,14-CHA 360 IF TT=1 THEN PIB=PIB+SKILL(24)+INT(SKILL(14)/4):PRINT "PIB",PIB 370 PRINT:PRINT 380 INPUT "PRESS ";ZZZ 390 GOSUB 510 400 PRINT "SKILL";TAB(40);"SKILL LEVEL","SKILL ROLL";TAB(70);"MOD. ROLL" 410 PRINT STRING$(78,"-") 420 FOR ZZ = 1 TO 25 430 IF SKILL(ZZ)>0 THEN PRINT SKILL$(ZZ); TAB(40);SKILL(ZZ),BSRT(NSRT(ZZ)); TAB(70);SRT(ZZ) 440 IF ZZ=1 AND SKILL(ZZ)> THEN GOSUB 1090 450 IF ZZ=22 AND SKILL(ZZ)> THEN GOSUB 1160 460 NEXT ZZ 470 PRINT STRING$(78,"=") 480 PRINT 490 INPUT "PRESS";ZZZ 500 IF TT=1 THEN END ELSE GOTO 190 510 REM*SKILL ROLL TARGET DETERMINATION SUBROUTINE 520 FOR ZZ=1 TO 25 530 IF ZZ=1 THEN NSRT(ZZ)=INT((BODY+DEX)/2) 540 IF ZZ=2ORZZ=6ORZZ=10ORZZ=19ORZZ=20 THEN NSRT(ZZ)=DEX 550 IF ZZ=3ORZZ=23 THEN NSRT(ZZ)=BODY 560 IF ZZ=4ORZZ=7ORZZ=8ORZZ=9ORZZ=12ORZZ=13ORZZ=15ORZZ=16ORZZ=24ORZZ=25 THEN INSERT NSRT(ZZ)=LRN 570 IF ZZ=5ORZZ=14ORZZ=22THEN NSRT(ZZ)=CHA 580 IF ZZ=11 THEN NSRT(ZZ)=INT((LRN+CHA)/2) 590 IF ZZ=17ORZZ=18ORZZ=21THEN NSRT(ZZ)=INT((DEX+LRN)/2) 600 NEXT ZZ 610 FOR ZZ=1TO25 620 SRT(ZZ)=BSRT(NSRT(ZZ))-SKILL(ZZ) 630 NEXT ZZ 640 RETURN 650 REM * SKILL DATA BASES 660 FOR ZZ=1TO25 670 READ SKILL$(ZZ) 680 NEXT ZZ 690 DATA "ATHLETICS","BOW/BLADE","BRAWLING","COMPUTER","DIPLOMACY" 700 DATA "DRIVER","ENGINEERING","GUNNERY/AEROSPACE" 710 DATA "GUNNERY/ARTILLERY","GUNNERY/'MECH","INTERROGATION" 720 DATA "JUMPSHIP PILOTING/NAVIGATION","LAND MANAGEMENT" 730 DATA "LEADERSHIP","MECHANICAL","MEDICAL/FIRST AID" 740 DATA "PILOTING/AEROSPACE","PILOTING/'MECH","PISTOL","RIFLE" 750 DATA "ROGUE","STREETWISE","SURVIVAL","TACTICS","TECHNICIAN" 760 BSRT(2)=:BSRT(3)=11:BSRT(4)=10:BSRT(5)=10:BSRT(6)=9:BSRT(7)=8 770 BSRT(8)=8:BSRT(9)=8:BSRT(10)=7:BSRT(11)=7:BSRT(12)=6 780 RETURN 790 PRINT"SKILL #";TAB(10);"SKILL NAME";TAB(40);"SKILL #";TAB(50);"SKILL NAME" 800 FOR A=1TO13:PRINT A;TAB(10);SKILL$(A);:IF A=13THEN GOTO 820 ELSE PRINT TAB(40);A+13;TAB(50)/SKILL$(A+13) 810 NEXT A 820 PRINT:PRINT 830 RETURN 840 REM * ATHLETICS SUB-SKILL SUBROUTINE 850 AT$(1)="ACROBATICS":AT$(2)="CLIMBIMG":AT$(3)="EQUESTRIAN" 860 AT$(4)="RUNNING":AT$(5)="SWIMMING" 870 FOR JJ=1TO5:PRINT JJ;AT$(JJ):NEXT JJ 880 FOR WW=1TO SKILL 890 PRINT "PICK THREE OF THE ABOVE SKILLS" 900 FOR EE=1TO3 910 INPUT "ENTER A NUMBER";P 920 SKIL(1,P)=SKIL(1,P)+1 930 NEXT EE 940 NEXT WW 950 RETURN 960 REM * ROGUE SUB-SKILL SUBROUTINE 970 RG$(1)="HIDE IN COVER":RG$(2)="LISTEN/EAVESDROP" 980 RG$(3)="STEALTH":RG$(4)="FORGERY":RG$(5)="SECURITY SYSTEMS" 990 RG$(6)="BRIBERY":RG$(7)="DISGUISE" 1000 FOR KK=1TO7:PRINT KK;RG$(KK):NEXT KK 1010 FOR XX=1 TO SKILL 1020 PRINT "PICK FOUR OF THE ABOVE SKILLS" 1030 FOR FF=1TO4 1040 INPUT"ENTER A NUMBER";Q 1050 SKIL(2,Q)=SKIL(2,Q)+1 1060 NEXT FF 1070 NEXT XX 1080 RETURN 1090 REM 1100 FOR I=1TO5 1110 NSRTT(1,I)=INT((BODY+DEX)/2) 1120 SRTT(1,I)=BSRT(NSRTT(1,I))-SKIL(1,I) 1130 IF SKIL(1,I)>0 THEN PRINT TAB(5);AT$(I);TAB(40);SKIL(1,I),BSRT(NSRTT( 1,I));TAB(70);SRTT(1,I) 1140 NEXT I 1150 RETURN 1160 REM 1170 FOR U=1TO7 1180 NSRTT(2,U)=INT((DEX+LRN)/2) 1190 SRTT(2,U)=BSRT(NSRTT(2,U))-SKIL(2,U) 1200 IF SKIL(2,U)>0 THEN PRINT TAB(5);RG$(U);TAB(40);SKIL(2,U),BSRT(NSRTT( 2,U));TAB(70);SRTT(2,U) 1210 NEXT U 1220 RETURN