home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
451-475
/
apd455
/
short_out
/
short_out.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1992-12-10
|
22KB
|
762 lines
Set Buffer 20
Screen Open 0,340,250,16,Lowres
Screen 0 : Paper 0 : Cls
'
'
'***** FOR NON-SHAREWARE VERSION DELETE FROM ***** HERE *****
'
'
Colour 15,$E3A
Gr Writing 0 : Ink 15
Text 10,10,"This Program is Shareware. If you "
Text 10,20,"decide to keep it, I would be grateful"
Text 10,30,"for any donations. If you send �2.00"
Text 10,40,"to the address below, with your address,"
Text 10,50,"I will send you a list of solutions and" : Rem TO *****
Text 10,60,"Access codes to complete the game."
Text 10,70,"Also, I would be interested to hear"
Text 10,80,"any comments you have on the game."
Text 10,98,"Donations or comments to:"
Ink 12 : Text 10,113," Dave Cherrington."
Text 10,123," 13 Maple Road"
Text 10,133," Bicester,"
Text 10,143," Oxon."
Ink 5 : Text 10,168," HAVE FUN !!"
Wait Vbl
'
'
'*********************************************************** HERE *****
'
'
Auto View Off
Hide On : Curs Off
Load Iff "Screens/First",5 : Screen Hide 5
Load "FX/Music.abk"
Reserve As Work 10,1772 : Bload "FX/Tick",Start(10)
Reserve As Work 11,6200 : Bload "FX/Alarm",Start(11)
Reserve As Work 12,9728 : Bload "FX/Boom",Start(12)
Reserve As Work 13,7244 : Bload "FX/Start",Start(13)
Limit Mouse 130,45 To 435,275
MXLEVELS=10
Dim CLUE$(10,3) : Rem clues for last level
Data "RED","RED","BLUE","GREEN","GREEN","GREEN","RED","BLUE","GREEN","YELLOW"
Data "BLUE","GREEN","RED","RED","BLUE","YELLOW","RED","BLUE","GREEN","RED"
Data "counting down two units","counting down ten units","counting down one unit"
Data "counting down four units","counting down six units","counting down three units"
Data "counting down to half it's present value","counting UP three units"
Data "tripping a tamper device, and detonating the bomb"
Data "counting down 11 units"
For A=1 To 10
Read CLUE$(A,1) : Next A
For A=1 To 10
Read CLUE$(A,2) : Next A
For A=1 To 10
Read CLUE$(A,3) : Next A
Dim XZ(11),XB(11),XC(11),ALC(11),CUT$(11),WIRE$(10),WV(10) : Rem for Endgame
Dim CODE$(MXLEVELS) : Rem code for level entry
Data "RB",-2,"RG",-10,"BR",-1,"GR",-4,"GB",-6,"GY",-3,"YR",-11,"RR",0,"BB",3,"GG",0
Data 191,202,63,210,220,82,226,236,98,244,254,116,261,269,133
Data 278,287,150,297,305,169,311,322,183,329,338,201,346,354,218,364,373,236
For A=1 To 10
Read WIRE$(A),WV(A) : Next A
For A=1 To 11
Read XB(A),XC(A),XZ(A) : Next A
LE1$="768674.78668.8867768.867677.767688.667686.867786.6786878.787788.8768777."
LE2$="69696919375223496652325889741565895757925629794977327534825795290654998"
L=1
For LE=1 To 10
Do
A$=Chr$(10*(Val(Mid$(LE1$,L,1)))+Val(Mid$(LE2$,L,1)))
If Mid$(LE1$,L,1)="." Then Exit
C$=C$+A$ : L=L+1
Loop
CODE$(LE)=C$ : C$="" : L=L+1
Next LE
Dim TIME(MXLEVELS,4) : Rem time limit per level
Dim USED$(100) : Rem combinations used already
Dim CONNECTIONS(MXLEVELS) : PTR=1 : Rem number of connections per level
MC=25 : Rem Max number of useful Combinations
Dim TEST$(MXLEVELS,MC) : Rem combinations having an effect
Dim HELP$(MXLEVELS,MC) : Rem combinations effect for help option
Dim LIGHT(MXLEVELS,5,MC) : Rem (level,a-e,1-combinations)
Dim XL(5) : Rem co-ords for lights
Dim OS(5) : Rem original state of lights
Rem ************************
Rem
Rem Level One Data
Rem
Rem ************************
TEST$(1,1)="12" : TEST$(1,2)="21" : TEST$(1,3)="23" : TEST$(1,4)="31"
CONNECTIONS(1)=3
Data 1,0,1,0,0,0,-1,0,0,0,0,-2,0,0,1,0,1,0,1,0
For A=1 To 4 : For B=1 To 5
Read LIGHT(1,B,A)
Next B : Next A
Data 77,107,137,167,197
For A=1 To 5
Read XL(A) : Next A : Rem XL(1),214toxl(1)+19,226
TIME(1,1)=0 : TIME(1,2)=5 : TIME(1,3)=0 : TIME(1,4)=0
Rem ************************
Rem
Rem Level Two Data
Rem
Rem ************************
TEST$(2,1)="13" : TEST$(2,2)="21" : TEST$(2,3)="23"
TEST$(2,4)="31" : TEST$(2,5)="32"
CONNECTIONS(2)=3
Data 0,-1,0,0,-2,1,-2,0,0,0,0,0,0,0,1,0,1,0,-2,0,0,0,1,0,-2
For A=1 To 5 : For B=1 To 5
Read LIGHT(2,B,A)
Next B : Next A
TIME(2,1)=1 : TIME(2,2)=0 : TIME(2,3)=0 : TIME(2,4)=0
Rem ************************
Rem
Rem Level Three Data
Rem
Rem ************************
TEST$(3,1)="11" : TEST$(3,2)="12" : TEST$(3,3)="13" : TEST$(3,4)="23"
TEST$(3,5)="32" : TEST$(3,6)="41"
CONNECTIONS(3)=3
Data 0,0,0,-2,1,0,1,0,-1,0,1,0,0,0,0,0,0,-2,0,0,0,0,1,0,0,0,0,-1,1,0
For A=1 To 6 : For B=1 To 5
Read LIGHT(3,B,A)
Next B : Next A
Data 77,107,137,167,197
For A=1 To 5
Read XL(A) : Next A : Rem XL(1),214toxl(1)+19,226
TIME(3,1)=1 : TIME(3,2)=5 : TIME(3,3)=0 : TIME(3,4)=0
Rem ************************
Rem
Rem Level Four Data
Rem
Rem ************************
TEST$(4,1)="11" : TEST$(4,2)="13" : TEST$(4,3)="21"
TEST$(4,4)="33" : TEST$(4,5)="41" : TEST$(4,6)="42"
CONNECTIONS(4)=3
Data 0,0,1,0,0,-1,0,0,-2,0,-2,-2,0,0,0,0,-2,1,0,0,1,1,0,0,0,0,0,-1,0,1
For A=1 To 6 : For B=1 To 5
Read LIGHT(4,B,A)
Next B : Next A
TIME(4,1)=2 : TIME(4,2)=0 : TIME(4,3)=0 : TIME(4,4)=0
Rem ************************
Rem
Rem Level Five Data
Rem
Rem ************************
TEST$(5,1)="12" : TEST$(5,2)="15" : TEST$(5,3)="21" : TEST$(5,4)="24"
TEST$(5,5)="35" : TEST$(5,6)="41" : TEST$(5,7)="43" : TEST$(5,8)="53"
CONNECTIONS(5)=5
Data 1,0,-1,0,0,1,-1,0,0,0,0,-2,0,-2,0,0,0,0,-2,-2
Data 0,0,1,0,-1,-1,0,0,1,0,0,0,0,1,1,0,0,1,-1,0
For A=1 To 8 : For B=1 To 5
Read LIGHT(5,B,A)
Next B : Next A
TIME(5,1)=2 : TIME(5,2)=0 : TIME(5,3)=0 : TIME(5,4)=0
Rem ************************
Rem
Rem Level Six Data
Rem
Rem ************************
TEST$(6,1)="13" : TEST$(6,2)="23" : TEST$(6,3)="25" : TEST$(6,4)="32" : TEST$(6,5)="35"
TEST$(6,6)="42" : TEST$(6,7)="45" : TEST$(6,8)="51" : TEST$(6,9)="62" : TEST$(6,10)="64"
CONNECTIONS(6)=5
Data 1,0,1,0,0,0,-1,0,1,0,-2,0,0,0,-1,0,-1,0,0,1,0,-2,-2,0,0,0,1,-1,0,0
Data -1,0,0,0,1,0,0,-2,1,0,0,-2,0,-1,0,0,0,1,0,0
For A=1 To 10 : For B=1 To 5
Read LIGHT(6,B,A)
Next B : Next A
TIME(6,1)=2 : TIME(6,2)=5 : TIME(6,3)=0 : TIME(6,4)=0
Rem ************************
Rem
Rem Level Seven Data
Rem
Rem ************************
TEST$(7,1)="15" : TEST$(7,2)="23" : TEST$(7,3)="43" : TEST$(7,4)="52" : TEST$(7,5)="71"
CONNECTIONS(7)=5
Data -1,0,0,0,0,1,0,1,-1,0,0,-2,-2,0,0,0,-1,-2,1,0,-2,1,0,0,-2
For A=1 To 5 : For B=1 To 5
Read LIGHT(7,B,A)
Next B : Next A
TIME(7,1)=3 : TIME(7,2)=0 : TIME(7,3)=0 : TIME(7,4)=0
Rem ************************
Rem
Rem Level Eight Data
Rem
Rem ************************
TEST$(8,1)="12" : TEST$(8,2)="25" : TEST$(8,3)="32" : TEST$(8,4)="34" : TEST$(8,5)="53"
TEST$(8,6)="61" : TEST$(8,7)="75"
CONNECTIONS(8)=5
Data 0,-2,1,0,0,0,-2,0,0,-2,-2,0,-2,0,0,0,1,0,-2,-2
Data -2,0,0,-2,1,-2,0,-1,1,0,0,0,0,0,-1
For A=1 To 7 : For B=1 To 5
Read LIGHT(8,B,A)
Next B : Next A
TIME(8,1)=3 : TIME(8,2)=0 : TIME(8,3)=0 : TIME(8,4)=0
Rem ************************
Rem
Rem Level Nine Data
Rem
Rem ************************
TEST$(9,1)="13" : TEST$(9,2)="21" : TEST$(9,3)="33" : TEST$(9,4)="41" : TEST$(9,5)="42"
TEST$(9,6)="51" : TEST$(9,7)="53"
CONNECTIONS(9)=5
Data -1,0,1,-1,-2,0,-1,-1,1,1,1,1,-2,0,1,1,-2,0,0,0,0,-1,0,-2,0
Data -2,-2,0,-2,1,-1,1,-2,-2,0
For A=1 To 7 : For B=1 To 5
Read LIGHT(9,B,A)
Next B : Next A
TIME(9,1)=3 : TIME(9,2)=5 : TIME(9,3)=0 : TIME(9,4)=0
Rem ************************
Rem
Rem Level Ten Data
Rem
Rem ************************
TEST$(10,1)="27" : TEST$(10,2)="35" : TEST$(10,3)="54" : TEST$(10,4)="65"
TEST$(10,5)="72" : TEST$(10,6)="96"
CONNECTIONS(10)=7
Data 0,0,1,0,0,0,0,1,1,-2,0,-2,1,-2,0,0,0,0,-1,-2,0,1,-2,0,-1,1,-2,0,-2,0
For A=1 To 6 : For B=1 To 5
Read LIGHT(10,B,A)
Next B : Next A
TIME(10,1)=3 : TIME(10,2)=5 : TIME(10,3)=0 : TIME(10,4)=0
Data 77,107,137,167,197
For A=1 To 5
Read XL(A) : Next A : Rem XL(1),214toxl(1)+19,226
Music 1
For A=1 To 300000 : Next A
Screen 0 : Fade 5 : Wait 75 : Screen Close 0
Screen To Front 5 : Screen Show 5 : Hide On : Auto View On : Screen 5 : Load "Bobs/Open.abk"
Music Off
Wait Vbl
Sam Loop On
Wait Vbl
Sam Raw 15,Start(13),Length(13),10000
For A=1 To 10000 : Next A
Dim N(9)
Data 11,12,13,14,15,16,13,17,15
For A=1 To 9 : Read N(A) : Next A
For B=1 To 9
For C=1 To 2 : For A=1 To 10 : Paste Bob 104+(32*B),47,A
For DE=1 To 600 : Next DE
Next A
Next C
Paste Bob 104+(32*B),47,N(B)
Next B
Sam Raw 15,Start(13),Length(13),12000
For DE=1 To 10000 : Next DE
Screen 5 : Fade 5
For DE=1 To 18000 : Next DE
AFTERDEAD:
Load Iff "Screens/FirstII",5
Screen To Front 5 : Screen Show 5
Clear Key
Screen 5 : Fade 10 To Logic(5) : Hide On
Pen 15 : Paper 7 : Locate 38,25 : Curs Off
PX=38 : PY=25
If GS<1 Then Sam Raw 15,Start(13),Length(13),14000
RBO:
RB=0
Repeat
K$=Inkey$
Clear Key
If Key State(68) Then CR=0 : Exit
If Key State(65) Then RB=1 : TK$="" : Exit
K$=Upper$(K$)
Locate PX-1-Len(TK$),PY : Print TK$
TK$=TK$+K$
CR=0
For A=1 To MXLEVELS
If TK$=CODE$(A) Then CR=A : Exit
Next A
Until(CR>0) or(Len(TK$)>10)
If RB=1 Then Ink 7 : Bar 176,199 To 464,207 : RB=0 : Goto RBO
Sam Loop Off : Wait Vbl
LEVEL=CR : If LEVEL=0 Then LEVEL=1
TK$=""
If GS<1 Then Sam Raw 15,Start(12),Length(12),1000
Paper 15 : Pen 2 : Locate 30,27 : Print "Entering at Level";LEVEL
Screen 5 : Fade 5 : Screen Close 5
Clear Key
Load "Bobs/UXB.abk"
MAIN:
Auto View Off : Load Iff "Screens/Main",0
Screen 0
Screen To Front 0 : Screen Show 0 : Auto View On : Show On
Fade 5 To Logic(0)
Wind Save
Rem for help option:
For A=1 To MC : For B=1 To 5
If LIGHT(LEVEL,B,A)=1 Then HELP$=HELP$+Chr$(B+64)+"+,"
If LIGHT(LEVEL,B,A)=-1 Then HELP$=HELP$+Chr$(B+64)+"-,"
If LIGHT(LEVEL,B,A)=-2 Then HELP$=HELP$+Chr$(B+64)+"^,"
Next B
HELP$(LEVEL,A)=HELP$ : HELP$=""
Next A
Every 10 Gosub TIMEUPDATE
VM=10 : Rem tick volume
GS=1
Reserve Zone 23
For A=0 To 8
Set Zone A+1,183+(A*22),188 To 188+(A*22),193
Next A
N=150
For A=1 To CONNECTIONS(LEVEL)/2
N=N-30
Z=10
Next A
For A=N To N+(30*(CONNECTIONS(LEVEL)-1)) Step 30
Ink 1 : Bar A,100 To A+10,110
Set Zone Z,A,100 To A+10,110 : Z=Z+1
Next A
BN=3
For B=1 To 3
For A=1 To 10
Get Bob BN,((A-1)*30),80+(30*(B-1)) To 30+((A-1)*30),110+(30*(B-1))
BN=BN+1
Next A : Next B
Set Zone 19,208,203 To 253,215 : Rem connct
Set Zone 20,270,203 To 310,215 : Rem cncl
Set Zone 21,175,225 To 193,241 : Rem power
Set Zone 22,267,225 To 285,241 : Rem discnnct all
Set Zone 23,360,249 To 397,269 : Rem HELP
SELECT1:
Bob 1,270,145,1 : Channel 1 To Bob 1 : Amal 1,"A0,(1,10)(2,10)" : Amal On 1
Repeat
Until Mouse Key
T=Zone(X Mouse,Y Mouse)
If T=21 Then Goto POWER
If T=22 Then Goto DISCONN
If T=23 Then Gosub HELP
If(T<1) or(T>9) Then Play 1,10,0 : Goto SELECT1
T1$=Right$(Str$(T),1)
Play 1,50,0
X1=X Screen(X Mouse) : Y1=Y Screen(Y Mouse)
For DE=1 To 5000 : Next DE
SELECT2:
Bob 1,300,100,1
Repeat
Until Mouse Key
T=Zone(X Mouse,Y Mouse)
If T=21 Then Goto POWER
If T=22 Then Gosub DISCONN
If T=23 Then Gosub HELP
X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
T=Zone(X,Y)
If(T<10) or(T>CONNECTIONS(LEVEL)+9) Then Play 1,10,0 : Goto SELECT2
T2$=Right$(Str$(T-9),1)
TT$=T1$+T2$
UC=0
For A=1 To PTR
If TT$=USED$(A) Then UC=1 : Exit
Next A
If UC=1
Play 1,10,0
Wind Open 1,70,110,20,5,1
Paper 0 : Clw
Pen 1 : Print : Print "Already connected"
For DE=1 To 10000 : Next DE
Wind Close
Goto SELECT1
End If
Play 1,70,0
For DE=1 To 5000 : Next DE
Goto ILLUMINATE
CONNORCANCL:
Bob 1,270,162,1
Repeat
Until Mouse Key
T=Zone(X Mouse,Y Mouse)
If T=21 Then Goto POWER
If T=22 Then Goto DISCONN
If T=23 Then Gosub HELP
If(T<19) or(T>20) Then Play 1,10,0 : Goto CONNORCANCL
Play 1,50,0
For DE=1 To 5000 : Next DE
If T=20 Then Goto CANCEL
X2=X : Y2=Y
Ink 8 : Draw X1,Y1 To X2,Y2
Draw X1+1,Y1 To X2+1,Y2
Draw X1+2,Y1 To X2+2,Y2
USED$(PTR)=TT$ : PTR=PTR+1
Goto SELECT1
DISCONN:
BN=3
For B=1 To 3
For A=1 To 10
Paste Bob((A-1)*30),80+(30*(B-1)),BN
BN=BN+1
Next A : Next B
For A=1 To 5
Ink 9 : Bar XL(A),214 To XL(A)+19,226
Next A
For A=1 To PTR : USED$(A)="" : Next A : PTR=1
Goto SELECT1
ILLUMINATE:
Rem show lights
CT=0
For A=1 To MC
If TT$=TEST$(LEVEL,A) Then CT=A : Exit
Next A
For A=1 To 5
PP=Point(XL(A)+2,215)
If PP=8 Then OS(A)=1
If PP=9 Then OS(A)=0
If LIGHT(LEVEL,A,CT)<>0 Then Gosub LIGHTUP
Next A
If CT=0 Then Goto CONNORCANCL
Goto CONNORCANCL
LIGHTUP:
P=LIGHT(LEVEL,A,CT)
Rem 1=on,-1=off,-2= inverse
If P=1 Then Ink 8 : Bar XL(A),214 To XL(A)+19,226
If P=-1 Then Ink 9 : Bar XL(A),214 To XL(A)+19,226
If(P=-2) and(Point(XL(A),214)=8) Then Ink 9 : Bar XL(A),214 To XL(A)+19,226 : Goto SKP
If(P=-2) and(Point(XL(A),214)=9) Then Ink 8 : Bar XL(A),214 To XL(A)+19,226
SKP:
Return
CANCEL:
Rem return lights to original state after cancel
For A=1 To 5
If OS(A)=1 Then Ink 8
If OS(A)=0 Then Ink 9
Bar XL(A),214 To XL(A)+19,226
Next A
Goto SELECT1
TIMEUPDATE:
T1=TIME(LEVEL,1) : T2=TIME(LEVEL,2) : T3=TIME(LEVEL,3) : T4=TIME(LEVEL,4)
T4=T4-1
If T4<0 Then T4=9 : T3=T3-1
If T3<0 Then T3=5 : T2=T2-1 : If VM<=53 Then VM=VM+5
If T2<0 Then T2=9 : T1=T1-1
If(T1=0) and(T2=0) Then VM=63
If T1<0 Then Goto TIMEOUT
If HELP=1 Then Goto MISS : Rem do not print time if window open
Paste Bob 88,19,33+T1
Paste Bob 104,19,33+T2
Paste Bob 126,19,33+T3
Paste Bob 142,19,33+T4
MISS:
TIME(LEVEL,1)=T1 : TIME(LEVEL,2)=T2 : TIME(LEVEL,3)=T3 : TIME(LEVEL,4)=T4
Volume VM
TD=TD+1 : If TD=2 Then TD=0 : Sam Raw 15,Start(10),Length(10),30000
Every On : Return
POWER:
Bob Off
Rem final test here
EX=0
For A=1 To 5
P=Point(XL(A)+2,215) : If P=9 Then EX=1 : Exit
Next A
If EX=1 Then Goto BLOWUP
Rem correct end to game
Every Off
For A=1 To 25
Bell : Wait 2
Next A
Sam Loop On
Sam Raw 15,Start(11),Length(11),19000
Wait 50
Sam Loop Off
Screen 0 : Fade 5
Screen 0
BN=3
For B=1 To 3
For A=1 To 10
Paste Bob((A-1)*30),80+(30*(B-1)),BN
BN=BN+1
Next A : Next B
For A=1 To 5
Ink 9 : Bar XL(A),214 To XL(A)+19,226
Next A
For A=1 To PTR : USED$(A)="" : Next A : PTR=1
Hide On
For DE=1 To 55000 : Next DE : Screen Close 0
Load Iff "Screens/Win",5 : Screen To Front 5 : Screen Show 5
If LEVEL=MXLEVELS Then Goto GMOVER
Screen 5
Gr Writing 0 : Paper 0 : Ink 2
Text 10,10,"Congratulations, you managed to"
Text 10,20,"crack the connections, and defuse"
Text 10,30,"the timing mechanism. The access "
Text 10,40,"code for the next level is :"+CODE$(LEVEL+1)
LEVEL=LEVEL+1
Text 10,52,"Your End game clue this round is: "
Text 10,62,"Cutting a "+CLUE$(LEVEL-1,1)+" wire immediately"
Text 10,72,"before a "+CLUE$(LEVEL-1,2)+" wire, will "
Text 10,82,"result in the timer"
Text 10,92,CLUE$(LEVEL-1,3)
Wind Open 1,80,200,20,5,1 : Border 1,13,1 : Paper 1 : Clw
Pen 15 : Print : Print "Press Mouse Button"; : Curs Off
Repeat : Until Mouse Key
Play 1,70,0
Screen 5 : Cls 0,0,0 To 600,96
Wind Close
Screen Close 5
Goto MAIN
HELP:
HELPCOUNT=HELPCOUNT+1
HELP=1
Wind Open 1,0,0,25,16,1
Paper 0 : Clw
For A=1 To MC
If HELPCOUNT>2 Then Pen 3 : Print "Sorry,I can only help" : Print "you twice." : Print : Print "Otherwise it would" : Print "be too easy !" : Exit
If TEST$(LEVEL,A)="" Then Exit
Pen 3 : Print Left$(TEST$(LEVEL,A),1);"/";Right$(TEST$(LEVEL,A),1); : Pen 1 : Print " .. "; : Pen 2 : Print HELP$(LEVEL,A)
Next A
Print : Print : Print "PRESS MOUSE BUTTON"
Curs Off
Repeat : Until Mouse Key
Wind Close
HELP=0
Return
TIMEOUT:
Bob Off
Rem out of time
Every Off
Sam Loop On
Sam Raw 15,Start(11),Length(11),19000
Wait 50
Sam Loop Off
Gosub XPLOSION
Screen 5
Ink 2 : Gr Writing 0 : Paper 0
Text 10,10,"Unfortunately, you ran out of time "
Text 10,20,"before you made the correct"
Text 10,30,"connections. Speed can only be "
Text 10,40,"obtained by practice, which you"
Text 10,50,"obviously need lots of !!"
Goto FINALSCREEN
BLOWUP:
Rem powered incorrectly
Every Off
Gosub XPLOSION
Screen 5
Ink 2 : Gr Writing 0 : Paper 0
Text 10,10,"Unfortunately, you threw the power"
Text 10,20,"switch before all connections"
Text 10,30,"had been correctly made. Thanks to "
Text 10,40,"your incompetence whole buildings"
Text 10,50,"have been flattened."
Text 10,60,"You need practice"
Goto FINALSCREEN
XPLOSION:
For A=1 To PTR : USED$(A)="" : Next A : PTR=1
For A=1 To 11 : ALC(A)=0 : Next A
X=130 : Y=42
Volume 63 : Sam Raw 15,Start(12),Length(12),1000
For A=1 To 65
Screen Display 0,X,Y,340,256
Paste Bob 20+Rnd(280),20+Rnd(180),43
Paste Bob 20+Rnd(280),20+Rnd(180),44
For DE=1 To 1000 : Next DE
XR=Rnd(100) : YR=Rnd(100)
If XR<50 Then DX=-5 Else DX=5
If YR<50 Then DY=-5 Else DY=5
X=X+DX : Y=Y+DY
Screen Display 0,X,Y,340,256
For DE=1 To 1000 : Next DE
X=X-DX : Y=Y-DY
Next A
Screen Display 0,X,Y,340,256
For DE=1 To 125000 : Next DE
Screen 0 : Fade 5
For DE=1 To 55000 : Next DE
Screen Close 0
Auto View Off : Load Iff "Screens/Lose",5
Screen 5 : Fade 5 : For DE=1 To 55000 : Next DE
Screen To Front 5 : Screen Show 5 : Auto View On
Screen 5 : Fade 10 To Logic(5) : Hide On
Return
FINALSCREEN:
Rem reasons have already been displayed for end
Rem display end messages
Rem score (etc)
Wind Save
Wind Open 1,80,200,20,5,1 : Border 1,13,1 : Paper 1 : Clw
Pen 15 : Print : Print : Print "Press Mouse Button"; : Curs Off
Repeat : Until Mouse Key
Wind Close
Fade 5
Load Iff "Screens/FirstII",5 : Screen Hide 5
TIME(1,1)=0 : TIME(1,2)=5 : TIME(1,3)=0 : TIME(1,4)=0
TIME(2,1)=1 : TIME(2,2)=0 : TIME(2,3)=0 : TIME(2,4)=0
TIME(3,1)=1 : TIME(3,2)=5 : TIME(3,3)=0 : TIME(3,4)=0
TIME(4,1)=2 : TIME(4,2)=0 : TIME(4,3)=0 : TIME(4,4)=0
TIME(5,1)=2 : TIME(5,2)=0 : TIME(5,3)=0 : TIME(5,4)=0
TIME(6,1)=2 : TIME(6,2)=5 : TIME(6,3)=0 : TIME(6,4)=0
TIME(7,1)=3 : TIME(7,2)=0 : TIME(7,3)=0 : TIME(7,4)=0
TIME(8,1)=3 : TIME(8,2)=0 : TIME(8,3)=0 : TIME(8,4)=0
TIME(9,1)=3 : TIME(9,2)=5 : TIME(9,3)=0 : TIME(9,4)=0
TIME(10,1)=3 : TIME(10,2)=5 : TIME(10,3)=0 : TIME(10,4)=0
Limit Mouse 130,45 To 435,275
Goto AFTERDEAD
GMOVER:
Screen 5
Gr Writing 0 : Paper 0 : Ink 2
Text 0,10,"Congratulations, you managed to crack"
Text 0,20,"the code, and defuse the timing"
Text 0,30,"mechanism, You also managed to beat all"
Text 0,40,"ten levels, you must now defuse the"
Text 0,50,"following circuit, using the information"
Text 0,60,"you have been given at each level,"
Text 0,70,"Your End game clue for this round is: "
Text 0,80,"Cutting a "+CLUE$(10,1)+" wire immediately"
Text 0,90,"before a "+CLUE$(10,2)+" wire, will result"
Text 0,100,"in the timer "+CLUE$(10,3)
Wind Open 1,80,200,20,5,1 : Border 1,13,1 : Paper 1 : Clw
Pen 15 : Print : Print "Press Mouse Button"; : Curs Off
Repeat : Until Mouse Key
Screen 5 : Wind Close
Screen 5 : Fade 5 : Screen Close 5
Load Iff "Screens/Endgame",0 : Screen Hide 0 : Screen 0 : Fade 1 : Wait 15
Screen To Front 0 : Screen Show 0
Screen 0 : Wind Save : Show On
Fade 5 To Logic(0) : Wait Vbl
Limit Mouse 190,140 To 439,168
Reserve Zone 12
CUT=1
For A=1 To 11
Set Zone A,XB(A),140 To XC(A),170
Next A
Set Zone 12,391,148 To 437,159
T1=6 : T2=0
TT1=4 : TT2=0
Paste Bob 102,35,33 : Paste Bob 120,35,33 : Paste Bob 141,35,T1+33 : Paste Bob 159,35,T2+33
Paste Bob 118,143,33 : Paste Bob 136,143,33 : Paste Bob 157,143,TT1+33 : Paste Bob 175,143,TT2+33
While T<>12
Repeat
T=Zone(X Mouse,Y Mouse)
Until Mouse Key
Wend
For A=1 To 50 : Bell : Wait Vbl : Next A
CUT=1
Every 20 Gosub EGTIMEUPDATE
Do
While(T<1) or(T>11)
Repeat
Bob 1,X Screen(X Mouse)-20,Y Screen(Y Mouse),45
Until Mouse Key
T=Zone(X Mouse,Y Mouse)
If T=12 Then Goto JMP
If ALC(T)=1 Then T=0
JMP:
Wend
X=X Screen(X Mouse)-20 : Y=Y Screen(Y Mouse)
Bob 1,X,Y,46
For A=1 To 6000 : Next A
Bob Off : Wait Vbl
Ink 15 : Bar XZ(T),104 To XZ(T)+12,120 : Wait Vbl
If(T=1) or(T=3) or(T=5) or(T=8) or(T=11) Then W$="R"
If(T=2) or(T=4) or(T=7) Then W$="B"
If(T=6) or(T=10) Then W$="G"
If T=9 Then W$="Y"
ALC(T)=1
T=0
CUT$(CUT)=W$
If CUT>1 Then Gosub CALC
CUT=CUT+1
Loop
CALC:
TV=(10*T1)+T2 : Rem timevalue
TC$=CUT$(CUT-1)+CUT$(CUT)
WV=0
For A=1 To 10
If TC$=WIRE$(A) Then WV=WV(A)
Next A
TV=TV+WV
If TC$="RR" Then TV=TV/2
If TC$="GG" Then TV=-1000 : Rem double green=death
T1=TV/10 : T2=TV mod(10)
If TV<-800 Then Goto DBLGN
If TV<0 Then Goto PAST
Paste Bob 141,35,T1+33 : Paste Bob 159,35,T2+33
Wind Open 1,0,0,10,10,1 : Paper 1 : Clw
Pen 15
If CUT$(CUT-1)="G" Then A$="Green"
If CUT$(CUT-1)="R" Then A$="Red"
If CUT$(CUT-1)="B" Then A$="Blue"
If CUT$(CUT-1)="Y" Then A$="Yellow"
Print A$ : Print "before"
If CUT$(CUT)="G" Then A$="Green"
If CUT$(CUT)="R" Then A$="Red"
If CUT$(CUT)="B" Then A$="Blue"
If CUT$(CUT)="Y" Then A$="Yellow"
Print A$
If TC$<>"RR" Then Print : Print "=";WV
If TC$="RR" Then Print "Halves"
Curs Off
For A=1 To 11000 : Next A : Wind Close
If TV=0 Then Goto TIMEDOWN
Return
TIMEDOWN:
Rem time on clock is zero
WC=0
For A=1 To 7
If ALC(A)=0 Then WC=A : Exit
Next A
If WC=0 Then Goto YOUWIN : Rem all wires were used
Goto NTCUT
EGTIMEUPDATE:
TT2=TT2-1
If TT2<0 Then TT2=9 : TT1=TT1-1
If TT1<0 Then Goto TIMESOUT
Paste Bob 157,143,33+TT1
Paste Bob 175,143,33+TT2
Volume VM
Sam Raw 15,Start(10),Length(10),30000
Every On : Return
DBLGN:
Rem two greens=death
Every Off : Gosub XPLOSION
Screen 5
Ink 2 : Gr Writing 0 : Paper 0
Text 10,10,"Unfortunately, you cut two green"
Text 10,20,"wires which is the anti-tamper "
Text 10,30,"device. "
Text 10,40,"Learn your clues first !! "
Goto FINALSCREEN
PAST:
Rem overshot zero
Every Off : Gosub XPLOSION
Screen 5
Ink 2 : Gr Writing 0 : Paper 0
Text 10,10,"Unfortunately, you rewound the "
Text 10,20,"timer to below zero, causing "
Text 10,30,"it to self-destruct. "
Text 10,40,"Try again !!"
Goto FINALSCREEN
NTCUT:
Rem not all wires were cut
Every Off : Gosub XPLOSION
Screen 5
Ink 2 : Gr Writing 0 : Paper 0
Text 10,10,"Unfortunately, you still had wires"
Text 10,20,"remaining, so you failed to break "
Text 10,30,"the circuit. All wires must be cut"
Text 10,40,"when the timer reads Zero."
Text 10,50,"Try again !!"
Goto FINALSCREEN
TIMESOUT:
Rem out of time
Every Off : Gosub XPLOSION
Screen 5
Ink 2 : Gr Writing 0 : Paper 0
Text 10,10,"Unfortunately, you ran out of time,"
Text 10,20,"A little more planning is needed"
Text 10,30,"before hitting that start button."
Text 10,40,"Try again !!"
Goto FINALSCREEN
YOUWIN:
Every Off
Fade 5
Wait 75
Screen Close 0
Load "Bobs/Final.abk"
Load Iff "Screens/Final",0 : Screen Hide 0
Screen To Front 0
Screen 0 : Fade 1 : Wait 15
Screen Show 0 : Hide On
Fade 5 To Logic(0)
Repeat : Until Mouse Key
Fade 5 : Wait 75
End