home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1978-05-13 | 7.3 KB | 557 lines |
- '
- ' Gunfighter
- '
- Global C1,C2,SPEED,L$,CX1,CX2,CY1,CY2,LOD,X1,X2,Y1,Y2,WIN1,WIN2
- ' Delete these variables when finished...
- Global C1,C2,I1,I2,A
- '
- Amos Lock
- Bob Update Off
- Extension_5_003A
- Hide
- '
- _INTRO
- '
- C1=1
- C2=1
- '
- CX1=57 : CY1=62
- '
- CX2=57 : CY2=159
- '
- Do
- '
- Bob Update Off
- '
- _OPTIONS
- '
- LOD=0
- '
- For GAMES=1 To 5
- '
- _DUEL
- '
- LOD=1
- '
- Next GAMES
- '
- If WIN1>WIN2 Then Load "PL_2_WIN",1
- If WIN2>WIN1 Then Load "PL_1_WIN",1
- '
- Unpack 1 To 0
- '
- Wait 300
- '
- Fade 1
- '
- Loop
- '
- Procedure _INTRO
- '
- Load "Title.abk",9
- Load "Hank_The_Hat_Background",10
- Load "Logo.abk",11
- Load "Present.abk",12
- Load "Samples.abk",5
- Load "Hank.abk"
- '
- Dim X(Length(1))
- Dim Y(Length(1))
- '
- A=1
- '
- Open In 1,"Hank.txt"
- '
- For I=1 To Length(1)
- Input #1,X(I)
- Input #1,Y(I)
- Hot Spot I,X(I),Y(I)
- Next I
- '
- Close 1
- '
- A=13
- '
- For I=11 To 12
- '
- Unpack I To 0
- Erase I
- Wait 100
- Fade 1
- Wait 15
- '
- Next I
- '
- Unpack 9 To 1
- Erase 9
- Unpack 10 To 0
- Erase 10
- Double Buffer
- Bob 1,190,55,1 : A=1
- Bob 2,130,55,13+$8000 : B=13
- Update
- Fade 1 To -1
- Wait 15
- Wait 20
- Sam Play 15,4,19000
- Wait 20
- '
- T=0
- '
- Do
- '
- Bob 1,190,55,A
- Bob 2,130,55,B+$8000
- '
- Inc A : Inc B
- If A=14 Then A=13
- If B=15 Then Sam Play 9,1,8000
- If A=5 Then Sam Play 6,1,8000
- If B=28 and T=15 Then Sam Play 9,2,9000
- If B=28 and T<60 Then Inc T : B=27
- If B=35 Then Sam Play 9,3,8000
- Update
- If B=36 Then Goto _END
- Wait Vbl
- '
- Loop
- '
- _END:
- '
- Wait 50
- '
- Fade 1
- '
- Wait 15
- '
- Screen 1
- '
- Fade 1
- '
- Wait 15
- '
- Screen Close 1
- Screen Close 0
- '
- Erase 1
- Erase 5
- '
- Load "Control_1.abk",2
- Load "Control_2.abk",3
- '
- Auto View Off
- '
- Repeat
- '
- Inc TIMMYTIMER
- '
- Unpack 2 To 0
- Screen Show 0
- View
- Wait Vbl
- Unpack 3 To 1
- Screen Show 1
- View
- Wait Vbl
- '
- Until TIMMYTIMER=4
- '
- Auto View On
- View
- Fade 1
- Wait 15
- Screen Close 0
- Screen Close 1
- Erase 2
- Erase 3
- '
- End Proc
- '
- Procedure _OPTIONS
- '
- Randomize Timer
- '
- Load "Options.abk",10
- Load "Boxes.abk"
- '
- Unpack 10 To 0
- Erase 10
- Double Buffer
- '
- TIMMYTIMER=0
- '
- Repeat
- '
- Inc TIMMYTIMER
- '
- If Key State(64)=-1 Then Gosub MOV1
- If Key State(68)=-1 Then Gosub MOV2
- '
- Bob 1,CX1,CY1,1
- Bob 2,CX2,CY2,2
- Update
- '
- Wait 5
- '
- Until TIMMYTIMER=50
- '
- Goto _END
- '
- MOV1:
- '
- If CX1=57 Then CX1=129 : C2=2 : Return
- If CX1=129 Then CX1=201 : C2=3 : Return
- If CX1=201 Then CX1=57 : C2=1
- '
- Return
- '
- MOV2:
- '
- If CX2=57 Then CX2=129 : C1=2 : Return
- If CX2=129 Then CX2=201 : C1=3 : Return
- If CX2=201 Then CX2=57 : C1=1
- '
- Return
- '
- _END:
- '
- Fade 1
- Wait 15
- Screen Close 0
- '
- If CX1=201 Then C2=Rnd(1)+1
- If CX2=201 Then C1=Rnd(1)+1
- '
- End Proc
- '
- Procedure _DUEL
- '
- If LOD=1 Then Goto LOD
- '
- ' Load Background
- '
- RAN=Rnd(1)
- '
- If RAN=0 Then Load "Hank_The_Hat_Background",10
- If RAN=1 Then Load "Indian_Background",10
- '
- ' Load Sound FX
- '
- Load "Samples.abk",5
- '
- ' Load Player 1 Character
- '
- If C1=1 Then L$="Hank.abk" : Y1=55
- If C1=2 Then L$="Joe.abk" : Y1=49
- '
- Load L$
- '
- Dim X1(Length(1))
- Dim Y1(Length(1))
- '
- L$=L$-".abk"
- '
- Open In 1,L$+".txt"
- '
- For I=1 To Length(1)
- Input #1,X1(I)
- Input #1,Y1(I)
- Hot Spot I,X1(I),Y1(I)
- Next I
- '
- Close 1
- '
- ' Load Player 2 Character
- '
- A=Length(1)
- '
- If C2=1 Then L$="Hank.abk" : Y2=55
- If C2=2 Then L$="Joe.abk" : Y2=49
- '
- Load L$,1
- '
- Dim X2(Length(1))
- Dim Y2(Length(1))
- '
- L$=L$-".abk"
- '
- Open In 1,L$+".txt"
- '
- For I=A+1 To Length(1)
- Input #1,X2(I)
- Input #1,Y2(I)
- Hot Spot I,X2(I),Y2(I)
- Next I
- '
- Close 1
- '
- Unpack 10 To 0
- Erase 10
- Screen Display 0,,100,,
- Double Buffer
- Make Mask
- '
- LOD:
- '
- ' Set Up Background
- '
- Bob Update On
- Autoback 2
- '
- ' Play Mini - Tune
- '
- ' tune code goes here!!!
- '
- ' Set Up Gunfight Variables
- '
- I1=1 : Rem Player 1 Start Image
- I2=A+1 : Rem Player 2 Start Image
- '
- LOCK1=0 : Rem Player 1 Cheat lock
- LOCK2=0 : Rem Player 2 Cheat lock
- '
- _FREE1=1 : Rem Player 1 Shoot lock (stops player holding down fire)
- _FREE2=1 : Rem Player 2 Shoot lock
- '
- _FIRE_1=0 : Rem Is player 1 firing?
- _FIRE_2=0 : Rem As above for player 2
- '
- DIE_1=0 : Rem Is player 1 dieing?
- DIE_2=0 : Rem As above for player 2
- '
- '
- ' Draw!
- '
- Bob 1,190,Y1,I1
- Bob 2,130,Y2,I2+$8000
- '
- Wait Vbl
- '
- Fade 1 To -1
- Wait 15
- Gosub _UPDATE
- '
- For I=0 To Rnd(200)
- Wait 1
- If Key State(68)=-1 Then LOCK1=1
- If Key State(64)=-1 Then LOCK2=1
- Next I
- '
- Sam Play 15,4,19000
- '
- If LOCK1=1 and LOCK2=1 Then Wait 40 : Sam Play 15,2,9000 : Goto _END
- '
- Do
- '
- Gosub _FREE
- '
- If DIE_1=0 Then Gosub DEATH_1
- '
- If DIE_2=0 Then Gosub DEATH_2
- '
- Gosub _ANIMATE_1
- '
- Gosub _ANIMATE_2
- '
- If LOCK1=0 and _FREE1=1 and Key State(68)=-1 and DIE_1=0 Then Gosub _SHOOT_1
- '
- If LOCK2=0 and _FREE2=1 and Key State(64)=-1 and DIE_2=0 Then Gosub _SHOOT_2
- '
- Gosub _UPDATE
- '
- Gosub SOUND_1
- '
- Gosub SOUND_2
- '
- Loop
- '
- _FREE:
- '
- If Key State(68)=0 Then _FREE1=1
- If Key State(64)=0 Then _FREE2=1
- '
- Return
- '
- _SHOOT_1:
- '
- If C1=1 Then If I1=1 or I1=4 or I1=13 or I1=14 Then _FIRE_1=1 : _FREE1=0 : Inc I1
- If C1=2 Then If I1=1 or I1=5 Then _FIRE_1=1 : _FREE1=0 : Inc I1
- '
- Return
- '
- _SHOOT_2:
- '
- If C2=1 Then If I2=A+1 or I2=A+4 or I2=A+13 or I2=A+14 Then _FIRE_2=1 : _FREE2=0 : Inc I2
- If C2=2 Then If I2=A+1 or I2=A+5 Then _FIRE_2=1 : _FREE2=0 : Inc I2
- '
- Return
- '
- DEATH_1:
- '
- If C2=2 Then Goto _C2
- '
- If I2<>A+7 and I2<>A+17 Then Return
- '
- If C1=1 Then Gosub DHANK_1
- If C1=2 Then Gosub DJOE_1
- '
- Return
- '
- _C2:
- '
- If I2<>A+6 Then Return
- '
- If C1=1 Then Gosub DHANK_1
- If C1=2 Then Gosub DJOE_1
- '
- Return
- '
- DHANK_1:
- '
- If I1<10 Then I1=10 : DIE_1=1
- If I1>12 Then I1=18 : DIE_1=1
- '
- Return
- '
- DJOE_1:
- '
- I1=9 : DIE_1=1
- '
- Return
- '
- DEATH_2:
- '
- If C1=2 Then Goto _C22
- '
- If I1<>7 and I1<>17 Then Return
- '
- If C2=1 Then Gosub DHANK_2
- If C2=2 Then Gosub DJOE_2
- '
- Return
- '
- _C22:
- '
- If I1<>6 Then Return
- '
- If C2=1 Then Gosub DHANK_2
- If C2=2 Then Gosub DJOE_2
- '
- Return
- '
- DHANK_2:
- '
- If I2<A+10 Then I2=A+10 : DIE_2=1
- If I2>A+12 Then I2=A+18 : DIE_2=1
- '
- Return
- '
- DJOE_2:
- '
- I2=A+9 : DIE_2=1
- '
- Return
- '
- _ANIMATE_1:
- '
- If C1=1 Then Gosub HANK_1
- If C1=2 Then Gosub JOE_1
- '
- Return
- '
- HANK_1:
- '
- If I1>9 and I1<13 Then Inc I1 : If I1=13 Then DIE_1=0
- If I1>17 and I1<35 Then Inc I1 : If I1=35 Then DIE_1=0
- '
- If _FIRE_1=1 and I1>1 and I1<8 Then Inc I1 : If I1=8 Then I1=4 : _FIRE_1=0
- If _FIRE_1=1 and I1>13 and I1<18 Then Inc I1 : If I1=18 Then I1=14 : _FIRE_1=0
- '
- Return
- '
- JOE_1:
- '
- If I1>8 and I1<25 Then Inc I1
- '
- If _FIRE_1=1 and I1>1 and I1<9 Then Inc I1 : If I1=9 Then I1=5 : _FIRE_1=0
- '
- Return
- '
- _ANIMATE_2:
- '
- If C2=1 Then Gosub HANK_2
- If C2=2 Then Gosub JOE_2
- '
- Return
- '
- HANK_2:
- '
- If I2>A+9 and I2<A+13 Then Inc I2 : If I2=A+13 Then DIE_2=0
- If I2>A+17 and I2<A+35 Then Inc I2 : If I2=A+35 Then DIE_2=0
- '
- If _FIRE_2=1 and I2>A+1 and I2<A+8 Then Inc I2 : If I2=A+8 Then I2=A+4 : _FIRE_2=0
- If _FIRE_2=1 and I2>A+13 and I2<A+18 Then Inc I2 : If I2=A+18 Then I2=A+14 : _FIRE_2=0
- '
- Return
- '
- JOE_2:
- '
- If I2>A+8 and I2<A+25 Then Inc I2
- '
- If _FIRE_2=1 and I2>A+1 and I2<A+9 Then Inc I2 : If I2=A+9 Then I2=A+5 : _FIRE_2=0
- '
- Return
- '
- _UPDATE:
- '
- Bob 1,190,Y1,I1
- Bob 2,130,Y2,I2+$8000
- '
- Wait Vbl
- '
- SOUND_1:
- '
- If C1=2 Then Goto _C222
- '
- If I1=7 or I1=17 Then Sam Play 4,1,8000
- If I1=27 Then Sam Play 4,2,9000
- If I1=35 Then Inc WIN2 : Sam Play 2,3,8000 : Goto _END
- '
- Return
- '
- _C222:
- '
- If I1=6 Then Sam Play 4,1,8000
- If I1=22 Then Sam Play 2,3,8000
- If I1=25 Then Inc WIN2 : Goto _END
- '
- Return
- '
- SOUND_2:
- '
- If C2=2 Then Goto _C2222
- '
- If I2=A+7 or I2=A+17 Then Sam Play 8,1,8000
- If I2=A+27 Then Sam Play 8,2,9000
- If I2=A+35 Then Sam Play 1,3,8000 : Inc WIN1 : Goto _END
- '
- Return
- '
- _C2222:
- '
- If I2=A+6 Then Sam Play 8,1,8000
- If I2=A+22 Then Sam Play 1,3,8000
- If I2=A+25 Then Inc WIN1 : Goto _END
- '
- Return
- '
- _END:
- '
- Wait 50
- '
- Fade 1
- '
- Wait 13
- '
- End Proc
- '