10 GOSUB MenuMaker ON BREAK GOSUB NoStop BREAK ON WINDOW 1,"Workbench Screen",(0,0)-(200,110),16 15 LOCATE 2,1:COLOR 2:PRINT "©1998-2004 TERENCE & CO." COLOR 3 PRINT PRINT " Welcome to MyPet2" PRINT " Space Trek V." PRINT COLOR 1:PRINT " Press a key!" BEEP:BEEP SLEEP 5 S=1 TEMP=25 AV=50 CHDIR "BASICGAMES: " CLS PRINT PRINT PRINT " LOADING" OPEN "CRASH" FOR INPUT AS 6 OBJECT.SHAPE 6,INPUT$(LOF(6),6) CLOSE 6 OPEN "WARN" FOR INPUT AS 13 OBJECT.SHAPE 13,INPUT$(LOF(13),13) CLOSE 13 OPEN "DOCKED" FOR INPUT AS 8 OBJECT.SHAPE 8,INPUT$(LOF(8),8) CLOSE 8 OPEN "BORG" FOR INPUT AS 9 OBJECT.SHAPE 9,INPUT$(LOF(9),9) CLOSE 9 40 OPEN "JACKA" FOR INPUT AS 1 OBJECT.SHAPE 1,INPUT$(LOF(1),1) CLOSE 1 LS%=20 OPEN "JACKB" FOR INPUT AS 2 OBJECT.SHAPE 2,INPUT$(LOF(2),2) CLOSE 2 OPEN "JACKC" FOR INPUT AS 3 OBJECT.SHAPE 3,INPUT$(LOF(3),3) CLOSE 3 OPEN "JACKE" FOR INPUT AS 4 OBJECT.SHAPE 4,INPUT$(LOF(4),4) CLOSE 4 OPEN "JACKF" FOR INPUT AS 5 OBJECT.SHAPE 5,INPUT$(LOF(5),5) CLOSE 5 30 GOSUB MenuMaker GOTO 42 MenuMaker: MENU 1,0,1,"OPTIONS" MENU 2,0,1,"CARE" MENU 3,0,1,"GAMES" MENU 4,0,0,"" MENU 1,1,1,"RESTART MY PET" MENU 1,2,1,"RETURN TO DESKTOP" MENU 1,3,S,"SAVE SHIP" MENU 1,4,1,"LOAD SHIP" MENU 2,1,S,"SICK BAY" MENU 2,2,S,"REFUELING" MENU 2,3,S,"TEMPERATURE" MENU 2,4,S,"EDUCATION" MENU 2,5,1,"SYSTEM" MENU 2,6,S,"FIRE WEAPONS" MENU 3,1,S,"SPEED" MENU 3,2,S,"VIRTUAL CASINO" MENU 3,3,S,"VIRTUAL LOTTERY" ON MENU GOSUB CheckMenu MENU ON RETURN 42 FE=250 TA%=0 GOWA%=0 CLS SHIP: IF W<0 THEN W=0 TA%=TA%+1 OBJECT.X 13,170 IF TG>FE/2 THEN ED%=ED%-10 IF TG>FE/3 THEN H%=H%-5 OBJECT.Y 13,2 LOCATE 10,1:COLOR 2:PRINT " AGE:":LOCATE 10,8:COLOR 3:PRINT A%;" ";W;" t" LOCATE 6,3 COLOR 2:PRINT "TEMP=":COLOR 3:LOCATE 6,11:PRINT TEMP;"° " LOCATE 7,1:COLOR 2 PRINT CD$;" " LOCATE 11,1:COLOR 2:PRINT " ";TIME$ IF CD$="CREW EDUCATION" AND CHA%=1 THEN CHA%=0 IF ED%>100 THEN ED%=100 IF ED%<0 THEN ED%=0 LINE (35,65)-(135,75),2,bf LINE (ED%+35,65)-(ED%+35,75),1 LINE (ED%+36,65)-(ED%+36,75),1 LOCATE 9,15 PRINT ED%;"% " END IF IF CD$="CREW HAPPINESS" AND CHA%=1 THEN CHA%=0 IF H%>100 THEN H%=100 IF H%<0 THEN H%=0 LINE (35,65)-(135,75),2,bf LINE (H%+35,65)-(H%+35,75),1 LINE (H%+36,65)-(H%+36,75),1 LOCATE 9,15 PRINT H%;"% " END IF IF CD$="FUEL STORES" AND CHA%=1 THEN CHA%=0 IF F%>100 THEN F%=100 IF F%<0 THEN F%=0 LINE (35,65)-(135,75),2,bf LINE (F%+35,65)-(F%+35,75),1 LINE (F%+36,65)-(F%+36,75),1 LOCATE 9,15 PRINT F%;"% " END IF IF CD$="CREW HEALTH" AND CHA%=1 THEN CHA%=0 IF CH%>100 THEN CH%=100 IF CH%<0 THEN CH%=0 LINE (35,65)-(135,75),2,bf LINE (CH%+35,65)-(CH%+35,75),1 LINE (CH%+36,65)-(CH%+36,75),1 LOCATE 9,15 PRINT CH%;"% " END IF IF A%=>LS% THEN GOTO Dead RTC$=LEFT$(TIME$,2):RTC2$=LEFT$(RTC$,1):RTC$=RIGHT$(RTC$,1) IF TA%=>1000 THEN A%=A%+1:TA%=0 IF RTC$=>"1" AND RTC2$=>"2" THEN OBJECT.ON 8:OBJECT.ON 1:S=0:GOSUB MenuMaker:ASL=1:GOTO COLORSET1 ELSE tc1%=1 IF RTC$=>"0" AND RTC$<"8" AND RTC2$="0" AND tc1%=1 THEN OBJECT.ON 8:OBJECT.ON 1:S=0:GOSUB MenuMaker:GOSUB GetAKeyMain:ASL=1:GOTO COLORSET1 ELSE ASL=0 TG=TG+1 IF TG=>FE AND SP%=0 THEN P=1 F%=F%-10 W=W-1 END IF IF TG=>FE THEN OBJECT.X PI%,0:OBJECT.Y PI%,10:OBJECT.ON PI%:OBJECT.X 9,135:OBJECT.Y 9,5:OBJECT.ON 9 GOSUB GetAKeyMain P=1 IF F%=<0 THEN BEEP:TF=TF+1:OBJECT.ON 13 IF ED%=<0 THEN OBJECT.ON 13 IF H%=<0 THEN OBJECT.ON 13 IF CH%=<0 THEN BEEP:OBJECT.ON 13 IF TF>250 THEN GOTO Dead SP%=SP%+1 IF SP%=50 THEN BEEP END IF IF TG=>FE THEN CH%=CH%-10:F%=F%-10:W=W-5.000000E-01:FE=FE+250 IF TG=>100 AND CH%=0 THEN GOTO Dead IF F%=<0 THEN BEEP:TF=TF+1:OBJECT.ON 13 IF ED%=<0 THEN OBJECT.ON 13 IF H%=<0 THEN OBJECT.ON 13 IF CH%=<10 THEN BEEP:OBJECT.ON 13 IF TF>250 THEN GOTO Dead COLORSET1: IF TEMPAV+50 THEN TT=TT+1 IF TT=>100 AND TEMP200 THEN GOTO Dead IF TT=>100 AND TEMP>AV+50 THEN PALETTE 0,1.000000E+00,6.000000E-01,6.700000E-01 PALETTE 3,8.000000E-01,0.000000E+00,0.000000E+00 PALETTE 2,1.000000E+00,7.300000E-01,0.000000E+00 PALETTE 1,1.000000E+00,1.000000E+00,1.000000E+00 BEEP OBJECT.ON 15 GOTO SHIP2 END IF IF L=1 THEN PALETTE 0,0.000000E+00,0.000000E+00,0.000000E+00 PALETTE 2,4.000000E-01,6.000000E-01,1.000000E+00 PALETTE 3,8.000000E-01,0.000000E+00,9.300000E-01 GOTO SHIP2 END IF IF L=0 THEN PALETTE 2,1.000000E+00,7.300000E-01,0.000000E+00 PALETTE 3,6.000000E-01,6.000000E-01,6.000000E-01 PALETTE 1,1.000000E+00,1.000000E+00,1.000000E+00 PALETTE 0,1.000000E-01,3.000000E-01,8.000000E-01 END IF SHIP2: IF ASL<>0 THEN OBJECT.X 8,76:OBJECT.Y 8,0:OBJECT.X 1,80:OBJECT.Y 1,15:GOTO SHIP IF P<>0 THEN GOTO SHIP IF M%<>0 THEN GOTO SHIP LS%=RND*10+30 IF PI%=4 AND A=4 THEN OBJECT.X 4,60:OBJECT.Y 4,0:OBJECT.ON 4:GOTO BIRD.FISH ELSE IF PI%=4 AND A=5 THEN OBJECT.X 3,60:OBJECT.Y 3,0:OBJECT.X 4,110:OBJECT.Y 4,20:OBJECT.ON 4:GOTO BIRD.FISH2 I%=-8 IF A%=>10 AND A%<20 THEN PI%=3 IF A%=>20 AND A%<30 THEN PI%=4 IF A%=>30 THEN PI%=5 IF A%=>0 AND A%<5 THEN PI%=1 IF A%=>5 AND A%<10 THEN PI%=2 MOVING: LOCATE 11,1:COLOR 2:PRINT " ";TIME$ OBJECT.X PI%,I% OBJECT.Y PI%,10 OBJECT.ON PI% GOSUB GetAKeyMain:GOTO MoveCont GetAKeyMain: afe$=INKEY$ afe$=UCASE$(afe$) IF afe$<>"" THEN IF afe$="E" THEN CHA%=1:CD$="CREW EDUCATION IF afe$="H" THEN CHA%=1:CD$="CREW HAPPINESS" IF afe$="F" THEN CHA%=1:CD$="FUEL STORES" IF afe$="G" THEN CHA%=1:CD$="CREW HEALTH" afe$="" END IF RETURN MoveCont: IF CHA%=1 AND CD$<>"" THEN GOTO SHIP IF I%<160 THEN I%=I%+4:GOTO MOVING GOTO SHIP CheckMenu: MenuId=MENU(0) MenuItem=MENU(1) ON MenuId GOSUB OPT, TASKS, GAMES RETURN OPT: ON MenuItem GOSUB Restart, RetDesk, SavePet, LoadMP RETURN TASKS: ON MenuItem GOSUB Med, FEED, Temperature, HW, Lights, Clean RETURN GAMES: ON MenuItem GOSUB LorR2, Dice, OorE RETURN Restart: WINDOW CLOSE 1 WINDOW 1,"MY PET",(0,0)-(640,180) RUN RetDesk: SYSTEM SavePet: OBJECT.OFF:PRINT "ARE YOU SURE(Y)" INPUT Y$ IF Y$<>"Y" AND Y$<>"y" THEN PRINT " ":PRINT " ":RETURN CLS COLOR 1:PRINT " SAVING" PRINT " ======" PRINT PRINT "SAVE ";A$;" AS ?" COLOR 2:INPUT FILENAME$ OPEN FILENAME$ FOR OUTPUT AS #1 WRITE #1,H%,CH%,ED%,F%,W,A,TG,TT,TF,M%,P%,TEMP,A%,A$,FILE$ CLOSE #1 SYSTEM LoadMP: WINDOW 1,A$,(0,0)-(200,110),16 CLS COLOR 1:PRINT " LOADING" PRINT " =======" PRINT PRINT "WHAT DID YOU SAVE IT" PRINT " AS?" COLOR 2:INPUT FILENAME$ OPEN "I",#1,FILENAME$ WHILE NOT EOF(1) INPUT #1,H%,CH%,ED%,F%,W,A,TG,TT,TF,M%,P%,TEMP,A%,A$,FILE$ WEND CLOSE #1 S=1:GOTO 10 Med: OBJECT.OFF LINE (70,5)-(110,25),1,b LINE (65,25)-(115,35),1,b LINE (80,30)-(100,30),2 LINE (75,10)-(105,10),2 LINE (75,15)-(105,15),3 LINE (75,20)-(105,20),2 LOCATE 1,1:COLOR 2:PRINT "AUTO" LOCATE 2,1:COLOR 3:PRINT "HEALTH" LOCATE 3,1:COLOR 1:PRINT "SYSTEM" FOR J=1 TO 1500:NEXT J CH%=CH%+10 CHA%=1 LOCATE 1,1 PRINT " " PRINT " " PRINT " " PRINT " " RETURN FEED: I=10 IF F%=>100 THEN BEEP:RETURN OBJECT.OFF FEED2: LOCATE 1,8:PRINT "A,B OR C" CHA%=1 LINE (20,5+10)-(10,15+10),1 LINE (10,15+10)-(20,25+10),1 LINE (20,25+10)-(30,15+10),1 LINE (30,15+10)-(20,5+10),1 PAINT (20,25),3,1 LINE (60+20,20+10)-(70+20,25+10),3,bf LINE (45+20,10+10)-(55+20,15+10),3,bf LINE (60+20,5+10)-(65+20,10+10),3,bf LINE (80+40,5+10)-(100+40,30+10),1,b LINE (80+40,10+10)-(100+40,10+10),1 PAINT (85+40,15+10),2,1 GetAKey: afe$=INKEY$ afe$=UCASE$(afe$) IF afe$<>"" THEN afe$=UCASE$(afe$) IF afe$="A" THEN PRINT " ":PRINT " ":PRINT " ":PRINT " ":F%=F%+60:W=W+1.500000E+00:LOCATE 1,1:PRINT " ":RETURN IF afe$="B" THEN PRINT " ":PRINT " ":PRINT " ":PRINT " ":F%=F%+15:W=W+3.200000E+00:LOCATE 1,1:PRINT " ":RETURN IF afe$="C" THEN PRINT " ":PRINT " ":PRINT " ":PRINT " ":F%=F%+25:W=W+2:LOCATE 1,1:PRINT " ":RETURN END IF GOTO GetAKey Temperature: WINDOW 2,"TEMPERATURE",(300,0)-(600,100) WINDOW OUTPUT 2 COLOR 1:PRINT " MY PET" COLOR 2:PRINT "THE CURRENT TEMP. IS:-" COLOR 3:PRINT " ";TEMP COLOR 2:PRINT "THE AVERAGE IS:-" COLOR 3:PRINT " ";AV PRINT:PRINT "WHAT TEMP. DO YOU WANT?" COLOR 3:INPUT TEMP WINDOW OUTPUT 1 WINDOW CLOSE 2 RETURN HW: IF ED%=>100 THEN BEEP:RETURN CHA%=1 OBJECT.OFF LINE (70,5)-(110,25),1,b LINE (65,25)-(115,35),1,b LINE (80,30)-(100,30),2 FOR I=1 TO 600:NEXT I LINE (75,10)-(105,10),2 LINE (75,15)-(105,15),3 LINE (75,20)-(105,20),2 LINE (70,30)-(80,40),2,bf LINE (95,30)-(105,40),2,bf FOR I=1 TO 1800:NEXT I LINE (75,10)-(105,10),0 LINE (75,15)-(105,15),0 LINE (75,20)-(105,20),0 LINE (70,30)-(80,40),0,bf LINE (95,30)-(105,40),0,bf LINE (70,5)-(110,25),1,b LINE (65,25)-(115,35),1,b LINE (80,30)-(100,30),2 FOR I=1 TO 600:NEXT I ED%=ED%+5 LOCATE 1,1 PRINT " " PRINT " " PRINT " " PRINT " " RETURN Lights: IF L=1 THEN L=0:CHA%=1:RETURN IF L=0 THEN L=1:CHA%=1:RETURN RETURN Clean: IF P=0 THEN BEEP:RETURN P=0 LINE (95,15)-(110,15),2 FOR I=1 TO 1500:NEXT I LINE (100,15)-(110,15),0 OBJECT.OFF OBJECT.X 6,60 OBJECT.ON 6 FOR I=1 TO 1500:NEXT I GOSUB Smiley RETURN Smiley: 400 TSC=1 OBJECT.OFF CIRCLE (83,12),15,1 LINE (74,15)-(91,15),3 LINE (74,15)-(72,12),3 LINE (91,15)-(93,12),3 LINE (76,9)-(73,10),1 LINE (89,10)-(88,9),1 SOUND 1318,4,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1318,4,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1318,8.500000E+00,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1318,4,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1318,4,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1318,8.500000E+00,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1318,4,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1568,4,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1.046500E+03,6.500000E+00,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1.174700E+03,2,100,0 SOUND 20,5.000000E-01,1.000000E-04,0 SOUND 1.318500E+03,10,100,0 FOR I=1 TO 7500:NEXT I LOCATE 1,1 PRINT " " PRINT " " PRINT " " PRINT " " OBJECT.OFF RETURN LorR2: LorR: CHA%=1 OBJECT.OFF LOCATE 1,1 COLOR 1:PRINT " <=1 >=2 EXIT=3" COLOR 2:PRINT LOCATE 3,1 IF D%=1 THEN PRINT " < " ELSE PRINT " >" FOR I=1 TO 150:NEXT I GetAKey2: lr$=INKEY$ IF lr$<>"" THEN IF lr$<"1" OR lr$>"3" THEN BEEP:GOTO LorR IF lr$="1" AND D%=1 THEN H%=H%+10:LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":GOSUB Smiley IF lr$="2" AND D%<>1 THEN H%=H%+10:LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":GOSUB Smiley IF lr$="1" AND D%<>1 THEN H%=H%-5:LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":GOSUB Sad IF lr$="2" AND D%=1 THEN H%=H%-5:LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":GOSUB Sad IF lr$="3" THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":RETURN END IF IF D%<>1 THEN D%=1 ELSE D%=4 IF H%=>100 THEN H%=100 GOTO LorR Sad: OBJECT.OFF CIRCLE (83,12),15,1 LINE (74,13)-(91,13),3 LINE (74,13)-(72,16),3 LINE (91,13)-(93,16),3 LINE (76,9)-(73,10),1 LINE (89,10)-(88,9),1 SOUND 300,12,255,0 SOUND 250,12,255,0 SOUND 200,12,255,0 FOR I=1 TO 5500:NEXT I LOCATE 1,1 PRINT " " PRINT " " PRINT " " PRINT " " RETURN Dice: OBJECT.OFF LOCATE 1,1 COLOR 1:PRINT "1=LOW 2=HIGH 3=EXIT" DN%=1 CHA%=1 Dice2: LOCATE 1,1:COLOR 1:PRINT "1=LOW 2=HIGH 3=EXIT" OBJECT.OFF LOCATE 3,9 COLOR 2:PRINT DN% LINE (84,15)-(108,27),1,b FOR I=1 TO 25:NEXT I GetAKey3: lr$=INKEY$ IF lr$<>"" THEN IF lr$="1" AND (DN%=1 OR DN%=2 OR DN%=3) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%+10:GOSUB Smiley IF lr$="2" AND (DN%=4 OR DN%=5 OR DN%=6) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%+10:GOSUB Smiley IF lr$<"1" AND lr$>"3" THEN BEEP:GOTO Dice2 IF lr$="1" AND (DN%=4 OR DN%=5 OR DN%=6) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%-5:GOSUB Sad IF lr$="2" AND (DN%=1 OR DN%=2 OR DN%=3) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%-5:GOSUB Sad IF lr$="3" THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":RETURN END IF IF DN%=6 THEN DN%=1 ELSE DN%=DN%+1 IF H%=>100 THEN H%=100 GOTO Dice2 OorE: OBJECT.OFF CIRCLE (96,21),15,1 CHA%=1 OorE2: LOCATE 1,1 COLOR 1:PRINT "1=EVEN 2=ODD 3=EXIT" A%=RND*(RND*10) IF A%>9 THEN GOTO OorE2 LOCATE 3,9 PRINT A% CIRCLE (96,21),15,1 FOR I=1 TO 100:NEXT I GetAKey4: lr$=INKEY$ lr$=UCASE$(lr$) IF lr$<>"" THEN IF lr$="1" AND (A%=1 OR A%=3 OR A%=5 OR A%=7 OR A%=9) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%+15:GOSUB Smiley IF lr$="2" AND (A%=0 OR A%=2 OR A%=4 OR A%=6 OR A%=8) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%+15:GOSUB Smiley IF lr$="1" AND (A%=0 OR A%=2 OR A%=4 OR A%=6 OR A%=8) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%-5:GOSUB Sad IF lr$="2" AND (A%=1 OR A%=3 OR A%=5 OR A%=7 OR A%=9) THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":H%=H%-5:GOSUB Sad IF lr$="3" THEN LOCATE 1,1:PRINT " ":PRINT " ":PRINT " ":PRINT " ":OBJECT.OFF:RETURN lr$="" END IF IF H%=>100 THEN H%=100 GOTO OorE2 Dead: OBJECT.OFF CLS S=0:GOSUB MenuMaker PALETTE 2,1.000000E+00,7.300000E-01,0 PALETTE 3,8.000000E-01,0.000000E+00,0.000000E+00 OBJECT.X 6,60 OBJECT.ON 6 Dead2: LOCATE 7,5 COLOR 2:PRINT "AGE" LOCATE 7,15 COLOR 3:PRINT A% COLOR 2:PRINT " WEIGHT" LOCATE 8,15 COLOR 3:PRINT W COLOR 2:PRINT " ";TIME$ GOTO Dead2 NoStop: RETURN