rem Monthra I rem by Fort Apocalypse set kernel_options no_blank_lines playfieldpos=4 set smartbranching on b=65 c=50 d=$C0 e=$CB f=23 s=0 i=0 titlescr scorecolor = 0 if x<>79 then x=x+7 if player1y&3=1 then AUDC1=2 else AUDC1=3 AUDF1=c if player1y<>68 then player1x=75 : player0y=50 : player1y=player1y-63 : AUDV0 = 1 : AUDV1 = 1 else if player0y<>189 then player0y=189 : AUDV0 = 0 : AUDV1 = 0 : s=15 gosub sounds if player1x<67 then player1x=75 COLUP1=n if n&3=1 then COLUP0=n : REFP0=8 : player0x=x else COLUP0=254-n : REFP0=0 : player0x=150-x w=player0x gosub title if joy0fire then goto initgame if switchreset then goto initgame if switchselect then goto selecting drawscreen goto titlescr selecting AUDC1=2 AUDF1=f if n<64 then AUDV1=1 else AUDV1=0 player0y=179 player1x = 43 player1y = 70 missile1x = 70 missile1y = 70 s=0 gosub sounds gosub creature player0y=189 if joy0fire then goto initgame if switchreset then goto initgame if joy0left then e=e-1 : f=f-3 if joy0right then e=e+1 : f=f+3 if joy0up then d=d-3 : i=i+1 if joy0down then d=d+3 : i=i-1 COLUP1=e COLUPF=d COLUBK=i scorecolor=f missile1height=2 NUSIZ1=$10 CTRLPF=$31 pfclear pfvline 0 0 10 on pfhline 0 0 30 on pfvline 30 0 10 on pfhline 0 10 30 on drawscreen goto selecting initgame if bally&3=1 then AUDC1=2 else AUDC1=3 AUDF1=b if bally&3=1 then AUDV1=1 else AUDC1=0 m=0 score=0 missile1x=24 missile1y=83 player1x = 43 player1y = 50 COLUBK=i COLUPF=d COLUP0=d COLUP1=e scorecolor=f player0x=80 player0y=179 ballx=160 bally=179 p=255 gosub maze drawscreen mainloop if switchreset then goto initgame if switchselect then goto selecting gosub sounds gosub sensor gosub creature if n&7=1 then gosub pacing if player1x64 then if n<172 then s=1 if collision(player1,playfield) then player1x=player1x+t+t : player1y=player1y+s+s if collision(missile1,ball) then s=4 : goto lose if collision(missile1,player1) then s=4 : goto lose j=rand if n=j then player1x=120-player1x if !switchleftb then ballx=ballx+1 : if ballx > 120 then ballx = 0 : bally = rand&63 if !switchrightb then player0y=player0y-1 : if player0y > 250 then player0y=64 : player0x=rand if switchleftb then bally=179 if switchrightb then player0y=179 if player1x<30 then player1x=31 if player1x>120 then player1x=119 if player1y<10 then player1y=11 if player1y>80 then player1y=79 if missile1x<20 then missile1x=21 if missile1x>160 then missile1x=159 if missile1y<2 then m=m+1 : missile1x=24 : missile1y=83 : gosub maze : score=score+1 : if m=47 then goto win if missile1y>83 then gosub maze : missile1x=24 : missile1y=83 COLUBK=i COLUPF=d COLUP0=d COLUP1=e scorecolor=f missile1height=2 NUSIZ1=$10 CTRLPF=$31 g=0 h=0 if joy0fire then p=p-1 : gosub maze if joy0left then missile1x=missile1x-1 : g=255 if joy0right then missile1x=missile1x+1 : g=1 if joy0up then missile1y=missile1y-1 : h=255 if joy0down then missile1y=missile1y+1 : h=1 drawscreen if collision(missile1,playfield) then gosub blckmsl1 goto mainloop blckmsl1 if g=255 then missile1x=missile1x+2 if g=1 then missile1x=missile1x-2 if h=255 then missile1y=missile1y+2 if h=1 then missile1y=missile1y-2 return pacing if n<128 then player1y=player1y+t else player1y=player1y-t return sounds n=n+1 if s=0 then AUDV0=0 : return AUDC0 = 8 : AUDF0 = n * 4 AUDV0=s if n&3=1 then s=s-1 : c=c+1 return maze if m=5 then gosub boss1 : return if m=10 then gosub boss2 : return if m=15 then gosub boss3 : return if m=20 then gosub boss4 : return if m=25 then gosub boss5 : return if m=30 then gosub boss6 : return if m=35 then gosub boss7 : return if m=40 then gosub boss8 : return if m=45 then gosub boss9 : return if missile1x > 50 then missile1x = missile1x - 2 AUDF0 = p AUDV0 = p pfclear pfvline 0 0 10 on pfhline 0 0 28 on pfvline 30 0 10 on pfhline 2 10 30 on x=0 y=2 mazea x=x+2 if x>28 then x=2 : y=y+2 pfpixel x y on a = rand if a