home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 526-550 / apd529 / subhunt / subhunt.amos / subhunt.amosSourceCode < prev   
AMOS Source Code  |  1993-11-29  |  5KB  |  164 lines

  1. '--------------------------------------
  2. '              SUB HUNT
  3. '
  4. '                 by 
  5. '
  6. '                TEX 
  7. '
  8. '             KWIK-GAME-3
  9. '
  10. '              05-10-90
  11. '
  12. '--------------------------------------
  13. SUBHUNT
  14. Procedure SUBHUNT
  15.    Make Mask 
  16.    Dim NDC(2),SIU(5),LIU(5),M(2),SOS(5) : Randomize Timer
  17.    BEGIN:
  18.    Gosub TITLEPAGE
  19.    Gosub GAMESETUP
  20.    MAINL:
  21.    Gosub BIPLANE
  22.    Gosub HITMNE
  23.    If Chanan(14)=0 Then Bob Off 14
  24.    If SUBS>0 Then Gosub DROPMNS
  25.    Gosub SUBMARINES
  26.    Gosub MNEFIN
  27.    If NDCIU=1 Then Inc DCC
  28.    If Jleft(1)=-1 Then XX=XX-1 : SD=1 : If XX=<38 Then XX=38
  29.    If Jright(1)=-1 Then Add XX,1 : SD=2 : If XX>=314 Then XX=314
  30.    If Fire(1)=-1 and NDCIU<2 Then Gosub DROPDEPTHCHARGE
  31.    Bob 1,XX,,SD
  32.    If NDC(1)=1 and Chanmv(2)=0 Then DC=1 : Gosub HITFLOOR
  33.    If NDC(2)=1 and Chanmv(3)=0 Then DC=2 : Gosub HITFLOOR
  34.    Goto MAINL
  35.    DROPDEPTHCHARGE:
  36.    If NDCIU=1 and DCC<20 Then Return : If DCC=>20 Then DCC=0
  37.    If NDC(1)=0 Then NDC(1)=1 : DC=2 : Goto DDC
  38.    If NDC(2)=0 Then NDC(2)=1 : DC=3
  39.    DDC:
  40.    Bob DC,XX,77,11 : Channel DC To Bob DC : Amal DC,DC$ : Amal On DC
  41.    Inc NDCIU : Inc NDU : 
  42.    Return 
  43.    HITFLOOR:
  44.    Sam Play 1 : Bob Off DC+1
  45.    NDC(DC)=0 : Dec NDCIU
  46.    Return 
  47.    GAMESETUP:
  48.    Unpack 6 To 0 : Flash Off : Hide On 
  49.    Double Buffer 
  50.    SM$="L: M 0,3,30; M 0,-3,30; J L "
  51.    A1$="M 450,0,"
  52.    A2$="M 0,-450,"
  53.    DC$="A 0,(9,5)(10,5)(11,5)(12,5); M 0,195,960"
  54.    M$="A 50,(13,8)(14,8)(15,8); M 0,-" : M2$="Loop: M 0,5,40; M 0,-5,40; Jump Loop"
  55.    DS$="A 1,(24,5)(25,5)(26,5)(27,5)(28,5)(29,5)(30,5)(31,5)(32,5)(33,5)(34,5)"
  56.    XX=175 : NDC(1)=0 : NDC(2)=0 : DCC=0 : NDCIU=0 : SC=0 : SUBS=0 : BOMB=0 : MN=0 : For X=1 To 5 : LIU(X)=0 : SIU(X)=0 : Next X
  57.    NDU=0 : NSH=0 : 
  58.    Bob 1,175,77,1
  59.    Channel 1 To Bob 1 : Bob Update : Amal 1,SM$ : Amal On 1
  60.    Return 
  61.    BIPLANE:
  62.    If Chanmv(15)=-1 Then Goto BOMB
  63.    BI=Rnd(1000) : DD=Rnd(1000) : If BI=DD Then Goto BP Else Return 
  64.    BP:
  65.    BI=0
  66.    BI1$="A 0,(16,5)(17,5)(18,5)(19,5); M -380,0,380"
  67.    BI2$="A 0,(20,5)(21,5)(22,5)(23,5); M 380,0,380"
  68.    LRR=Rnd(1) : Inc LRR
  69.    On LRR Goto L,R
  70.    L:
  71.    Bob 15,350,10,16 : Channel 15 To Bob 15 : Amal 15,BI1$ : Amal On 15 : Return 
  72.    R:
  73.    Bob 15,-20,10,16 : Channel 15 To Bob 15 : Amal 15,BI2$ : Amal On 15 : Return 
  74.    BOMB:
  75.    If BOMB=1 Then Goto CHECKHIT
  76.    BX=X Bob(1)-15 : BBX=BX+30
  77.    If X Bob(15)<BX or X Bob(15)>BBX Then Return 
  78.    On LRR Goto DL,DR
  79.    DL:
  80.    Bob 4,X Bob(15)+10,Y Bob(15)+10,36 : BOMB=1
  81.    Channel 4 To Bob 4 : Amal 4,"M -20,58,120" : Amal On 4 : Return 
  82.    DR:
  83.    Bob 4,X Bob(15)+10,Y Bob(15)+10,35 : BOMB=1
  84.    Channel 4 To Bob 4 : Amal 4,"M 20,58,120" : Amal On 4 : Return 
  85.    CHECKHIT:
  86.    If Y Bob(4)<65 Then Return 
  87.    ZC=Bob Col(4) : If Col(1)=-1 Then MH=4 : Goto SHIPHIT
  88.    If Chanmv(4)=0 Then Bob Off 4 : Amal Off 4 : BOMB=0 : Return 
  89.    SUBMARINES:
  90.    Gosub HITSUB
  91.    For X=1 To 5
  92.       If SIU(X)=1 and Chanmv(X+5)=0 Then Gosub SUBOK
  93.    Next X
  94.    If SUBS=5 Then Return 
  95.    SB1=Rnd(100) : SB2=Rnd(100) : If SB1=SB2 Then Goto SUB Else Return 
  96.    SUB:
  97.    For X=1 To 5 : If LIU(X)=0 Then SY=(X*40)+60 : LIU(X)=1 : Goto SUB1
  98.    Next X : Return 
  99.    SUB1:
  100.    SI=Rnd(2) : Inc SI
  101.    SS=Rnd(3) : SS=SS*210
  102.    LR=Rnd(1) : Inc LR
  103.    For WS=1 To 5 : If SIU(WS)=0 Then Goto SC Else Next WS
  104.    Return 
  105.    SC:
  106.    SIU(WS)=1
  107.    Add WS,5 : Inc SUBS
  108.    On LR Goto SL,SR
  109.    SL:
  110.    SUB$="M -420,0,"+Mid$(Str$(SS),2) : SOS(WS-5)=SS
  111.    Bob WS,380,SY,4 : Channel WS To Bob WS : Amal WS,SUB$ : Amal On WS : Return 
  112.    SR:
  113.    SUB$="M 420,0,"+Mid$(Str$(SS),2)
  114.    Bob WS,-40,SY,3 : Channel WS To Bob WS : Amal WS,SUB$ : Amal On WS : Return 
  115.    SUBOK:
  116.    LIU(X)=0 : SIU(X)=0 : Dec SUBS : Return 
  117.    HITSUB:
  118.    M1=Bob Col(2) : DC=2
  119.    For X=6 To 11
  120.       If Col(X)=-1 Then Gosub BLOWUP : Goto HS
  121.    Next X
  122.    HS:
  123.    M2=Bob Col(3) : DC=3
  124.    For X=6 To 11
  125.       If Col(X)=-1 Then Gosub BLOWUP
  126.    Next X
  127.    Return 
  128.    BLOWUP:
  129.    MX=X Bob(DC) : MY=Y Bob(DC) : 
  130.    Bob Off DC : Bob 14,MX,MY,24 : Channel 14 To Bob 14 : Amal 14,DS$ : Amal On 14
  131.    Sam Play 1 : Bob Off X : LIU(X-5)=0 : SIU(X-5)=0 : Dec SUBS
  132.    Return 
  133.    DROPMNS:
  134.    Z=Rnd(20) : If Z<>Rnd(20) Then Return 
  135.    Z=Rnd(4)+1 : If Chanmv(Z+5)=0 Then Return 
  136.    If X Bob(Z+5)<10 or X Bob(Z+5)>310 Then Return 
  137.    If MN=2 Then Return 
  138.    For X=1 To 2 : If M(X)=0 and Chanan(MN+12)=0 Then Goto M
  139.    Next X : Return 
  140.    M:
  141.    Inc MN : M(X)=1 : MX=X Bob(Z+5) : MY=Y Bob(Z+5)
  142.    Bob MN+11,MX,MY,13 : DI=MY-77 : SS=DI*6 : SS$=Mid$(Str$(SS),2)
  143.    DI$=Mid$(Str$(DI),2) : M1$=M$+DI$+","+SS$+"; "+M2$
  144.    Channel MN+11 To Bob MN+11 : Amal MN+11,M1$ : Amal On MN+11
  145.    Return 
  146.    HITMNE:
  147.    HS=Bob Col(12) : If Col(1)=-1 Then Pop : MH=12 : Goto SHIPHIT
  148.    HS=Bob Col(13) : If Col(1)=-1 Then Pop : MH=13 : Goto SHIPHIT
  149.    Return 
  150.    SHIPHIT:
  151.    MX=X Bob(MH) : MY=Y Bob(MH) : Bob Off MH
  152.    Bob 14,MX,MY,19 : Channel 14 To Bob 14 : Amal 14,DS$ : Amal On 14
  153.    Sam Play 1 : Repeat : Until Chanan(14)=0 : Bob Off 14 : Amal 1,"M0, 220,440" : Channel 1 To Bob 1 : Amal On 
  154.    Repeat : Until Y Bob(1)>180 : Fade 8 : Wait 8*15 : Goto BEGIN
  155.    MNEFIN:
  156.    If MN=0 Then Return 
  157.    If M(1)=1 and Chanan(12)=0 Then M(1)=0 : Dec MN : Bob Off 12
  158.    If M(2)=1 and Chanan(13)=0 Then M(2)=0 : Dec MN : Bob Off 13
  159.    Return 
  160.    TITLEPAGE:
  161.    Hide On 
  162.    Fade 2 : 
  163.    Load "subhunt-title.abk",7 : Unpack 7 To 1 : Erase 7 : Repeat : Until Fire(1)=-1 : Fade 5 : Wait 5*15 : Return 
  164. End Proc