Rem ------------------------------------------------------------- Rem Rem BATAILLE-NAVALE V1.10 Rem Rem A Bonney 27-08-92 Rem Rem Révisé les 06 & 07-12-97 Rem Rem ----------------------- PRG PRINCIPAL ----------------------- Rem Set Buffer 8 Load Iff Dir$+"Data/Tb_Présentation",0 Hide On Led Off Load Dir$+"Data/En_Mer.abk" Music 1 Mvolume 32 Repeat Until Mouse Key<>0 Screen Close 0 DEBUT: Rem Randomize Timer Gosub INITIALISATION Gosub AFFICHAGE Rem FUITE: Rem Screen 0 Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Le navire ennemi a réussi à vous distancer... ",1) Goto FIN Rem BATAILLEGAGNE: Rem Screen 0 Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Félicitations ! Vous avez coulé le bateau ennemi... ",1) JEGAGNE=1 Goto FIN Rem EPAVE: Rem Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Les canots à la mer ! le navire est ingouvernable... ",1) Goto FIN Rem MORT: Rem Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Il n'y a plus un homme vivant à bord ! Reste le chat... ",1) Goto FIN Rem COULE: Rem Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Touché sous la ligne de flotaison ! Au canots... ",1) Goto FIN Rem ECHOUAGE: Rem Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Votre adversaire s'est échoué sur une ile... ",1) JEGAGNE=1 Goto FIN Rem CHOC: Rem Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Vous etes entré en collision avec l'autre vaisseau... ",1) Goto FIN Rem NAUFRAGE: Rem Shift Off Screen 4 Cls Hide On Locate ,1 Centre Border$(" Sauve qui peut ! Le navire s'est échoué sur une ile... ",1) Rem FIN: Locate ,5 Centre Border$(" LA PARTIE EST TERMINEE ",1) Music Off Wait 50 If JEGAGNE=1 Sam Play 1 Else Sam Play 2 End If Wait 150 Screen 0 Fade 5 Wait 100 Reset Zone Td Quit Screen Close 0 Screen Close 1 Screen Close 2 Screen Close 3 Screen Close 4 Erase 3 Erase 5 Rem End Rem Rem -------------------- INITIALISATION ------------------------- Rem INITIALISATION: Rem Load Dir$+"Data/BatNavSamples.abk" Screen Open 0,320,200,16,Lowres Screen Hide 0 Td Clear All Td Dir Dir$+"Data" Td Load "bateau" Td Load "ile1" Td Load "boulet" Td Load "explosion" Double Buffer Autoback 0 Load Iff Dir$+"Data/Ciel",1 Screen Hide 1 Load Iff Dir$+"Data/1°Plan",2 Screen Hide 2 Load Iff Dir$+"Data/Mer",3 Screen Hide 3 Screen Open 4,640,56,4,Hires Screen Hide 4 Load Iff Dir$+"Data/Tb_Commandes",4 Screen Display 4,128,252,640,56 Screen 0 Get Palette(2) Flash Off Screen To Front 0 Td Screen Height 200 Limit Mouse 128,252 To 447,307 Reserve Zone 9 For Q=1 To 9 Read XZ,YZ Set Zone Q,XZ,YZ To XZ+14,YZ+14 Next Q Data 111,4,195,4,111,36,195,36,279,4,299,20,279,36,259,20,279,20 Td Move 0,0,45,0 Td Object 1,"boulet",0,45,0,0,0,0 Td Set Zone 0,0,0,0,0,200 HZ=Rnd(359) Td Object 4,"bateau",3000*Sin(HZ),0,3000*Cos(HZ),0,HZ*182+32760,0 Td Set Zone 4,0,0,0,4,100 For Q=1 To 5 HZ=Rnd(359) Td Object Q+6,"ile1",5000*Q*Sin(HZ),0,5000*Q*Cos(HZ),0,HZ*182,0 Td Set Zone Q+6,0,0,0,Q+6,2000 Next Q VB1=5 VIE2=100 HOMMES=100 VOILES=100 COQUE=100 MXBAD=100 Shift Up 30,4,6,1 VUE=1 Screen Show 0 Screen Show 4 Show On Return Rem Rem ---------------------- AFFICHAGE ----------------------------- Rem AFFICHAGE: Rem Do Inc BADABOUM If BADABOUM>MXBAD BADABOUM=MXBAD End If If BAOUM1>0 Td Kill 3 If BAOUM1=1 Sam Play %1100,4 Else Sam Play %1100,3 If DEGATS2=1 VIE2=VIE2-(1+Rnd(9)) If VIE2<1 VIE2=0 End If Screen 4 Hslider 219,23 To 419,31,100,VIE2,2 Screen 0 DEGATS2=0 End If End If BAOUM1=0 End If If BAOUM2>0 Td Kill 6 If BAOUM2=1 Sam Play %1100,3 Else BADABOUM=0 Sam Play %1100,4 If DEGATS1=1 HOMMES=HOMMES-(5+Rnd(45)) If HOMMES<1 HOMMES=0 End If VOILES=VOILES-(5+Rnd(45)) If VOILES<1 VOILES=0 End If COQUE=COQUE-(5+Rnd(45)) If COQUE<1 COQUE=0 End If Gosub AFFIDEG DEGATS1=0 End If End If BAOUM2=0 End If ANGB1=Td Bearing B(4,0) DR=Sgn(ANGB1)*182 If DR=0 Then DR=-1 If Td Bearing R(4,0)<5000 Td Angle Rel 4,0,DR,0 End If CAP2=Td Attitude B(4)-ANGB1 If CAP2>65520 CAP2=CAP2-65520 End If If CAP2<0 CAP2=CAP2+65520 End If If Td Bearing R(4,0)<5000 and TIR2=0 If CAP2>12190 and CAP2<20570 and BADABOUM=MXBAD TIR2=1 End If If CAP2>44950 and CAP2<53330 and BADABOUM=MXBAD TIR2=1 End If If TIR2=1 BAOUM2=1 BLX2=Td Position X(4) BLZ2=Td Position Z(4) Td Object 6,"explosion",BLX2,20,BLZ2,0,0,0 Td Face 6,0 Td Object 5,"boulet",BLX2,20,BLZ2,0,0,0 Td Face 5,0 Td Set Zone 5,0,0,0,5,10 End If End If VMAX=Int((HOMMES+VOILES+COQUE)/30) If VB1>VMAX VB1=VMAX Gosub AFFIVB1 End If VB2=Int(VIE2/20) Rem ------------------------------------------------------- If Mouse Key CASE=Hzone(X Mouse,Y Mouse-200) If CASE=1 If VB1>0 Td Angle Rel 0,0,-182,0 Td Angle Rel 1,0,-182,0 Dec CAP If CAP<0 CAP=CAP+360 End If Gosub AFFICAP End If End If If CASE=2 If VB1>0 Td Angle Rel 0,0,182,0 Td Angle Rel 1,0,182,0 Inc CAP If CAP>359 CAP=CAP-360 End If Gosub AFFICAP End If End If If CASE=3 Dec VB1 If VB1<0 VB1=0 End If Gosub AFFIVB1 End If If CASE=4 Inc VB1 If VB1>VMAX VB1=VMAX End If Gosub AFFIVB1 End If If CASE=5 VUE=1 REGARD=0 End If If CASE=6 VUE=2 REGARD=16380 End If If CASE=7 VUE=3 REGARD=32760 End If If CASE=8 VUE=4 REGARD=49140 End If If CASE=9 and TIR1=0 If VUE=2 ANGTR1=CAP*182+16380 TIR1=1 End If If VUE=4 ANGTR1=CAP*182-16380 TIR1=1 End If If TIR1=1 BLX1=Td Position X(0) BLZ1=Td Position Z(0) BAOUM1=1 Td Object 3,"explosion",BLX1,20,BLZ1,0,ANGTR1,0 Td Forward 3,100 Td Object 2,"boulet",BLX1,20,BLZ1,0,ANGTR1,0 Td Set Zone 2,0,0,0,2,10 End If End If End If If VIE2=0 Then Goto BATAILLEGAGNE If TIR1=1 If BUT1>6 BAOUM1=2 End If If BUT1=4 BAOUM1=2 DEGATS2=1 End If If Td Range(2,0)<5000 Td Forward 2,200 Else BAOUM1=2 End If If BAOUM1=2 TIR1=0 BLX1=Td Position X(2) BLZ1=Td Position Z(2) Td Object 3,"explosion",BLX1,20,BLZ1,0,0,0 Td Face 3,0 Td Kill 2 End If End If Rem ------------------------------------------------------- If TIR2=1 If BUT2=0 BAOUM2=2 DEGATS1=1 End If If BUT2>6 BAOUM2=2 End If If Td Range(5,4)<5000 Td Forward 5,200 Else BAOUM2=2 End If If BAOUM2=2 TIR2=0 BLX2=Td Position X(5) BLZ2=Td Position Z(5) Td Object 6,"explosion",BLX2,20,BLZ2,0,0,0 Td Face 6,0 Td Forward 6,-200 Td Kill 5 End If End If Rem ------------------------------------------------------- Td Forward 1,VB1 Td Move 0,Td Position X(1),45,Td Position Z(1) Td Angle 0,0,Td Attitude B(1)+REGARD,0 Td Forward 4,VB2 ANGVUE=CAP While ANGVUE>90 ANGVUE=ANGVUE-90 Wend Rem ------------------------------------------------------- Td Cls If VUE=1 Then Td Background 2,0,0,320,99 To 0,100 If VUE=4 Then Td Background 2,0,200,320,55 To 0,144 If VUE=3 Then Td Background 2,0,100,320,99 To 0,100 If VUE=2 Then Td Background 2,0,256,320,55 To 0,144 Td Redraw Td Background 1,ANGVUE*3,0,320,100 To 0,0 Td Background 3,0,0,320,100 To 0,100 Screen Swap Wait Vbl Rem ------------------------------------------------------- If COQUE=0 Then Goto COULE If VMAX=0 or VOILES=0 Then Goto EPAVE If HOMMES=0 Then Goto MORT If Td Collide(0)>6 Then Goto NAUFRAGE If Td Collide(0)=4 Then Goto CHOC If Td Collide(4)>6 Then Goto ECHOUAGE BUT1=-1 If TIR1=1 BUT1=Td Collide(2) End If BUT2=-1 If TIR2=1 BUT2=Td Collide(5) End If If Td Bearing R(4,1)>6000 and VB2>VMAX Then Goto FUITE Loop Return Rem Rem ------------------------------------------------------- Rem AFFICAP: Rem Screen 4 Locate 43,1 : Print " " Locate 42,1 : Print CAP Screen 0 Return Rem Rem ------------------------------------------------------- Rem AFFIVB1: Rem Screen 4 Locate 44,5 : Print " " Locate 43,5 : Print VB1 Screen 0 Return Rem Rem ------------------------------------------------------- Rem AFFIDEG: Rem Screen 4 Hslider 82,6 To 182,15,100,HOMMES,1 Hslider 82,22 To 182,31,100,VOILES,1 Hslider 82,38 To 182,47,100,COQUE,1 Screen 0 Return