:ClrHome :Disp "THIS prgm NEEDS :Disp "AT LEAST 1090 :Disp "RAM TO RUN. :Disp "(PRESS 2nd) :While getKeyĝ21 :End :ClrList L,L‚,Lƒ,L„,L… :Normal:Float:FullScreen:Func :{5,3}üdim [A] :{5,3}üdim [B] :{5,3}üdim [E] :2üdim L† :iPart 100randüL†(2) :PlotsOff :FnOff :StoreGDB GDB6:AxesOff:GridOff:RectGC:ZoomSto :ZInteger :ú1üA :ClrDraw :Shade(ú29rand,Ymax :Text(27,25,"darK deSIGnS :Shade(ú1,4,1,Xmin,Xmax :For(A,0,50):End :0üA :While A<250 and getKey=0 :A+1üA :Text(iPart 57rand,iPart 80rand," " :Text(iPart 57rand,iPart 94rand," " :End :ClrDraw :ClrHome :For(A,16,4,ú1 :Output(4,A,"M :End :For(A,16,5,ú1 :Output(4,A,"A :End :For(A,16,6,ú1 :Output(4,A,"G :End :For(A,16,7,ú1 :Output(4,A,"E :End :Output(4,8," " :For(A,16,9,ú1 :Output(4,A,"F :End :For(A,16,10,ú1 :Output(4,A,"I :End :For(A,16,11,ú1 :Output(4,A,"R :End :For(A,16,12,ú1 :Output(4,A,"E :End :ClrHome :While getKeyĝ105 :Output(1,1,"+ + + + + + + + :Output(8,1," * * * * * * * * :Output(3,3,"+ + + + + + :Output(4,3," MAGE FIRE " :Output(5,3,"+ + +2+ + + :Output(4,3,"* :Output(4,13,"* :Output(3,3," * * * * * " :Output(5,3," * * 2 * * " :Output(1,1," * * * * * * * * " :Output(8,1,"+ + + + + + + + +" :End :Lbl E :ClrHome :Disp "1:INSTRUCTIONS :If L†(1)>0 and [E](1,1)+[E](1,2)+[E](1,3)+[E](2,1)+[E](2,2)+[E](2,3)+[E](3,1)+[E](3,2)+[E](3,3)+[E](4,1)+[E](4,2)+[E](4,3)+[E](5,1)+[E](5,2)+[E](5,3)=L†(1) :Disp "2:PLAY :Disp "3:NEW PARTY :Disp "4:CREDITS :Disp "5:EXIT :Input "MAIN{1-5}>",A :iPart AüA :If A<1 or A>5 :Goto E :ClrHome :If A=5:Then:{1,1}üdim [A]:[A]ü[B]:Output(1,1," "):PlotsOff :FnOff :ZoomRcl:RecallGDB GDB6:Disp :Return:End :If A=1:Then :Disp "MAGE FIRE 2 :Disp "IS A FANTASY :Disp "DUEL FOR 2 :Disp "PLAYERS WITH THE :Disp "LINK or 1 :Disp "PLAYER. :Disp "FORM A PARTY OF :Pause :ClrHome :Disp "OF 3 CHARACTERS :Disp "BEFORE YOU PLAY. :Disp "DO NOT DELETE :Disp " or CHANGE [E] :Disp " or L†.If YOU :Disp "SAVED,DON'T :Disp "DEL or CHANGE :Pause :ClrHome :Disp "[D]. YOU CAN :Disp "SAVE IN :Disp "1-PLAYER MODE. :Disp "TO PLAY,YOU :Disp "SELECT A HERO :Disp " and CHOOSE :Disp "AN ACTION. :Pause :ClrHome :Disp "EACH HAS UNIQUE :Disp "ABILITIES. :Disp "---------------- :Disp "ABBREVIATIONS: :Disp "HP-LIFE :Disp "MP-MAGIC :Disp "SP-STRENGTH :Pause :ClrHome: :Disp "STATS- :Disp "HP/MP/SP :Disp "MERC:9/0/4 :Disp "DEMON:4/1/7 :Disp "WIZARD:4/7/2 :Disp "BARBARIAN:9/0/9 :Pause :ClrHome :Disp "ELDER MAGE: :Disp "10/5/1 :Pause :Goto E :End :If A=3:Then :{5,3}üdim [E] :Fill(0,[E] :Lbl H :For(B,1,3) :ClrHome :Disp "CHARACTER :Output(1,11,B :Disp "1:MERCENARY :Disp "2:DEMON :Disp "3:WIZARD :Disp "4:BARBARIAN :Disp "5:ELDER MAGE :Input "CLASS{1-5}>",A :iPart AüA :If A>4 and A<1 :Goto H :Aü[E](1,B :End :0üB :While B<3 :B+1üB :[E](1,B)üC :If C=1:Then :9ü[E](2,B :4ü[E](4,B :End :If C=5:Then :10ü[E](2,B :5ü[E](3,B :1ü[E](4,B :End :If C=4:Then :8ü[E](2,B :9ü[E](4,B :End :If C=3:Then :.8ü[E](5,B :2ü[E](4,B :4ü[E](2,B :7ü[E](3,B :End :If C=2:Then :7ü[E](4,B :1ü[E](3,B :4ü[E](2,B :End :End :[E](1,1)+[E](1,2)+[E](1,3)+[E](2,1)+[E](2,2)+[E](2,3)+[E](3,1)+[E](3,2)+[E](3,3)+[E](4,1)+[E](4,2)+[E](4,3)+[E](5,1)+[E](5,2)+[E](5,3)üL†(1) :Goto E :End :If A=4 :Then :Disp "*ORIGINAL GAME* :Disp "PROGRAMMING- :Disp "IndpntAsk :Output(3,1," dar :Disp " de :Output(4,6,"sinh :Output(4,8,"getKey :Output(4,9,"nsinh :Output(4,11," " :Disp "ANIMATIONS- :Disp "d.d. and MYTH- :Disp "ING LINK :Pause :ClrHome :Disp "*CURRENT GAME* :Disp " d.d. :Disp " :Disp " FIRST RELEASE :Disp " VERSION 2.31 :Disp "ôCOPYRIGHT 1995 :Pause :ClrHome :Goto E :End :If A=2 :Then :ClrHome :If [E](1,1)+[E](1,2)+[E](1,3)+[E](2,1)+[E](2,2)+[E](2,3)+[E](3,1)+[E](3,2)+[E](3,3)+[E](4,1)+[E](4,2)+[E](4,3)+[E](5,1)+[E](5,2)+[E](5,3)=L†(1) :Then :Disp "1:1-PLAYER :Disp "2:2-PLAYER LINK :Disp "3:LOAD GAME :Disp "---------------- :Disp "4:MAIN :Input "PLAY MODE{1-4}>",A :iPart AüA :If A>4 or A<1 :Goto E :If A=1:Then :1üK :Goto F :End :If A=4 :Goto E :If A=3 :Then :[D]ü[A] :{5,3}üdim [A] :{5,3}üdim [B] :3üB :While B<6 :B+1üB :[D](2,B)ü[B](2,B-3 :[D](3,B)ü[B](3,B-3 :[D](4,B)ü[B](4,B-3 :End :1üK :1üA :Goto A :End :If A=2 :Then :ClrHome :Disp "PLAY AS... :Disp "1:PLAYER 1 :Disp "2:PLAYER 2 :Disp "---------------- :Disp "3:MAIN :Input "PLAYER{1-3}>",K :iPart KüK :If K>2 or K<1 :Goto E :If K=1 :2üK :If K=2 :3üK :Goto F :End :Else :Disp "ERR:MATRIX :Disp "[E] IS MESSED :Disp "UP. FORM A NEW :Disp "PARTY and :Disp "START OVER. :Pause :Goto E :End :End :Lbl F :If K=1:Then :Fill(0,[B] :{5,3}üdim [B] :0üB :While B<3 :B+1üB :iPart 9rand+1ü[B](2,B :iPart 9rand+1ü[B](4,B :End :End :4üQ :5üS :1üB :If K=1 or K=2:Then :[E]ü[A] :Get([B] :1üA :End :If K=3:Then :[E]ü[B] :2üA :Get([A] :Goto D :End :Lbl A :0üH :ClrHome :If K=1 or K=2 :"([A](4,1)+[A](4,2)+[A](4,3))/3"üY‚ :If K=3 :"([B](4,1)+[B](4,2)+[B](4,3))/3"üY‚ :"int (.5*N)"üYƒ :"N"üY„ :If (A=1 and (K<3) or (K=3 and A=2):Then :dim [E]üL:If sum Lĝ8:Then:Disp "ERR:MATRIX":Disp "YOUR MATRIX,[E]":Disp "IS NOT VALID.":Disp "MAKE A NEW":Disp "PARTY + TRY AGAIN." :Pause :ClrHome:Goto E:End :ClrHome :Disp "YOUR MOVE: :If K<3:Then :Get([B] :Disp int [A] :End :If K=3:Then :Disp int [B] :Get([A] :End :Output(2,1,"HERO... 1 2 3 " :Output(6,16," " :Output(3,1,"HP :Output(4,1,"MP :Output(5,1,"SP :Output(6,1,"Q:QUIT " :If K=1 :Disp "S:SAVE :0üH :Input "HERO{1-3,Q,S}>",B :iPart BüB :If B=1 or B=2 or B=3 :Goto N :If B=4 :Goto E :If B=5 and K=1:Then :ClrHome :Disp "SAVING... :[A]ü[D] :{5,7}üdim [D] :0üB :While B<3 :B+1üB :[B](1,B)ü[D](1,B+3 :[B](2,B)ü[D](2,B+3 :[B](3,B)ü[D](3,B+3 :[B](4,B)ü[D](4,B+3 :[B](5,B)ü[D](5,B+3 :End :Kü[D](1,7 :Goto A :End :Goto A :End :If B<1 or B>3 :Goto A :Lbl N :If K=1 or K=2 :[A](4,B)üN :If K=3 :[B](4,B)üN :ClrHome:Disp "":If K=1 or K=2:Then:Disp [A](2,B):Disp [A](3,B):Disp N:End :If K=3:Then:Disp [B](2,B):Disp [B](3,B):Disp N:End :Output(2,3,"HP :Output(3,3,"MP :Output(4,3,"SP :If K=2 or K=1 :[A](1,B)üL :If K=3 :[B](1,B)üL :If L=1:Goto 1 :If L=2:Goto 2 :If L=3:Goto 3 :If L=4:Goto 4 :If L=5:Goto 5 :If L=0 or L>7:Then:ClrHome:Disp "NO ONE THERE! :Pause :Goto A:End :End :Stop :Lbl 1 :Output(1,3,"MERCENARY... :Disp "1:ATTACK :Disp "2:RALLY GROUP :Input "MOVE{1-2}>",C :iPart CüC :If C<1 or C>2 :Goto A :If C=1 :Then :1üD :2üF :1üE :"Y„"üY :Goto B :End :If C=2 :Then :0üE :0üD :8üF :"Y‚"üY :Goto B :End :Lbl B :If D=0 :Goto C :ClrHome :If Dĝ0:Then :Disp "SELECT TARGET: :If K=1 or K=2 :Disp int [B] :If K=3 :Disp int [A] :Output(3,1,"HP :Output(4,1,"MP :Output(5,1,"SP :Output(2,1,"ENEMY 1 2 3 " :Output(6,1,"YOUR DAMAGE= " :Output(6,13,int Y :Input "TARGET{1-3}>",E :iPart EüE :If E<1 or E>3 :Goto A :End :Lbl C :int 15randüG :ClrHome :If GùF:Then :1üI :Disp "YOU HIT! :If E>0 and (K=1 or K=2 :[B](2,E)-int Yü[B](2,E :If E>0 and K=3 :[A](2,E)-int Yü[A](2,E :If E=0:Then :If K=1 or K=2:Then :[B](2,1)-int Yü[B](2,1 :[B](2,2)-int Yü[B](2,2 :[B](2,3)-int Yü[B](2,3 :End :If K=3:Then :[A](2,1)-int Yü[A](2,1 :[A](2,2)-int Yü[A](2,2 :[A](2,3)-int Yü[A](2,3 :End :End :Else :Disp "YOU FAILED! :0üI :End :Lbl I :0üB :If K=1 or K=2:Then :While B<3 :B+1üB :If [B](2,B)÷0:Then :Output(B+1,1,"R.I.P. ENEMY :Output(B+1,14,B :0ü[B](1,B :0ü[B](2,B :0ü[B](3,B :0ü[B](4,B :0ü[B](5,B :End :End :End :If K=3:Then :While B<3 and K=3 :B+1üB :If [A](2,B)÷0:Then :Output(B+1,1,"R.I.P. ENEMY :Output(B+1,14,B :0ü[A](1,B :0ü[A](2,B :0ü[A](3,B :0ü[A](4,B :0ü[A](5,B :End :End :End :Lbl O :If (K=1 or K=2) and [B](2,1)+[B](2,2)+[B](2,3)÷0 :Then :Lbl Á :Pause :ClrHome :Disp "GAME OVER! :Disp "YOU WIN! :Pause :Goto E :End :If K=3 and [A](2,1)+[A](2,2)+[A](2,3)÷0 :Goto Á :Pause :Lbl D:If K=2:2üA:If K=3:1üA:ClrHome :If K=1:Then :Lbl M :iPart 4randüB :iPart 3rand+1üE :iPart 3randüC :iPart 6randüG :0üH :If B<1 :1üB :If E<1 :1üE :If C<1 :1üC :If [B](2,B)÷0 or [A](2,E)÷0 :Goto M :"[B](4,B)"üY :If G>1:Then :1üI :[A](2,E)-[B](4,B)ü[A](2,E :Else :0üI :End :0üM :While M<3 :M+1üM :If [A](2,M)÷0:Then :0ü[A](1,M :0ü[A](2,M :0ü[A](3,M :0ü[A](4,M :0ü[A](5,M :End :End :End :ClrHome :Disp "ENEMY'S MOVE: :If K<3 :Disp int [B] :If K=3 :Disp int [A] :Output(2,8," 1 2 3 " :Output(3,1,"HP :Output(4,1,"MP :Output(5,1,"SP :Output(6,1," " :Output(7,1,"WAIT... :If K=2:Then :While A=2 :Get(A :End :End :If K=3:Then :While A=1 :Get(A :End :End :Get(I :Get(B :Get(N :Get([A] :Get([B] :Get(E :Get(H :Get(Y :Disp "(PRESS ENTER) :Pause :ClrHome :If Hĝ1 and Hĝ0 :0üH :Disp "ENEMY :Output(1,7,B :If H=0 :Then :Disp "ATTACKS HERO :Output(2,14,E :Disp "FOR DAMAGE. :Output(3,5,int Y :If I=1 :Disp "HIT! :If I=0 :Disp "MISS! :If E=0 :Output(2,9,"PARTY " :End :If H=1 :Disp "HEALS. :Disp "(PRESS ENTER) :Pause :ClrHome :If K<3 and [A](1,1)+[A](1,2)+[A](1,3)÷0:Then :Lbl L :Disp "GAME OVER! :Disp "YOU LOSE! :Pause :ClrHome:Goto E :End :If [B](1,1)+[B](2,1)+[B](3,1)÷0 and K=3:Then :Goto L:End :Goto A :Lbl 2 :Output(1,3,"DEMON... :Disp "1:CLAWS :Disp "2:INFERNO-1MAGIC :Input "MOVE{1-2}>",C :If C=1:Then :"Y„"üY :If K=1 or K=3 :4üF :1üE :1üD :Goto B :End :If C=2 :Then :0üE :0üD :8üF :If K<3 :[A](3,B)-1ü[A](3,B :If K=3 :[B](3,B)-1ü[A](3,B :"Y„"üY :Goto B :End :Lbl 3 :Output(1,3,"WIZARD... :Disp "1:FIREBLAST :If ((K=2 or K=1) and [A](3,B)>0) or (K=3 and [B](3,B)>0) :Disp "2:HEAL-1MAGIC :If K=1 or K=2 :[A](3,B)üN :If K=3 :[B](3,B)üN :Input "MOVE{1-2}>",C :If C=1:Then :"Y„"üY :1üD :6üF :Goto B :End :If C=2 and ((K=3 and [B](3,B) or ((K=1 or K=2) and [A](3,B)>0)) :Then :ClrHome :Disp "HEAL HERO: :Input "HEAL{1,2,3}>",E :iPart EüE :If E<1 or E>3 :Goto A :If K=3:Then :[B](3,B)-1ü[B](3,B) :If [B](2,E)+1<10 and [B](2,E)>0 :[B](2,E)+1ü[B](2,E) :End :If K=1 or K=2:Then :[A](3,B)-1ü[A](3,B :If [A](2,E)+1<10 and [A](2,E)>0 :[A](2,E)+1ü[A](2,E :1üH :End :Goto I :End :Goto A :Lbl 4 :Output(1,3,"BARBARIAN... :Disp "1:CLUB :Input "MOVE{1}>",C :iPart CüC :If Cĝ1 :Goto A :1üD :6üF :"Y„"üY :Goto B :Lbl 5 :Output(1,3,"ELDER MAGE... :Disp "1:THRUST DAGGER :If (K<3 and [A](3,B)ù3) or (K=3 and [B](3,B)ù3):Then :Disp "2:STEAL LIFE :Disp " -3MAGIC :End :Input "MOVE{1-2}>",C :iPart CüC :If C=1:Then :1üF :"Y„"üY :1üD :Goto B :End :If C=2 and (K<3 and [A](3,B)ù3 or ([B](3,B)ù3):Then :ClrHome :Disp "SELECT TARGET... :If K<3 :Disp int [B] :If K=3 :Disp int [A] :Output(2,8," 1 2 3 " :Output(3,1,"HP :Output(4,1,"MP :Output(5,1,"SP :Output(6,1,"YOUR DAMAGE=3 " :Disp "YOUR GAIN=3 :Input "TARGET {1-3}>",E :iPart EüE :If E>3 or E<1 :Goto A :If K=1 or K=2:Then :[A](3,B)-3ü[A](3,B :[A](2,B)+3ü[A](2,B :[B](2,E)-3ü[B](2,E :End :If K=3:Then :[B](3,B)-3ü[B](3,B :[A](2,E)-3ü[A](2,E :[B](2,B)+3ü[B](2,B :End :Goto I :End :Goto A