1 ONERR GOTO 40000 2 DIM KA%(8),KB%(8),KC%(8),OB$(9),OB%(9,6) 3 POKE 7471,0 10 & READ "USER.PLAYER": INPUT NM$,NA%,NU%,CY%,CX%,CL%,RA 20 FOR I = 1 TO 8: INPUT KA%(I),KB%(I),KC%(I): NEXT I 30 INPUT GP%,XP%,AR%,PA%,PR%,EN%,OB%,LP% 40 IF OB% = 0 THEN 90 50 FOR I = 1 TO OB%: INPUT OB$(I): FOR J = 1 TO 6: INPUT OB%(I,J): NEXT J: NEXT I 90 & END 91 IF NA% = 0 THEN COM$ = "COM-" + STR$ (NU%): & RECALL COM$,22707:A$ = "DJN." + STR$ (NU%):DJN$ = A$: POKE 18771,NU% + 4: GOTO 93 92 A$ = "MAP." + STR$ (NU%):MAP$ = A$: POKE 18767,NU% 93 POKE 18766,NA%: & RECALL A$,20224: POKE 23,CY%: POKE 24,CX% 94 IF CL% < 3 THEN SP% = 34 + CL%: GOTO 99 95 SP% = 30 + CL% 99 POKE 16476,SP%: REM SPRITE PERSO 100 CO% = 0: DEF FN S(X) = RND (1) * X * (X + 5) 110 DIM SO$(9),SO%(10,5,2),PI$(6),PI%(6,4),CH$(10),MO$(6),ST$(3),EQ$(20),EQ%(20,6),TR%(9,2) 120 FOR I = 0 TO 9: READ SO$(I): NEXT I 130 FOR I = 1 TO 3: READ ST$(I): NEXT I 140 FOR I = 1 TO 6: READ PI$(I): NEXT I 150 FOR I = 0 TO 7: READ CH$(I): NEXT I 160 FOR I = 1 TO 6: READ MO$(I): NEXT I 170 FOR I = 1 TO 20: READ EQ$(I): FOR J = 1 TO 6: READ EQ%(I,J): NEXT J: NEXT I 200 PK = 8064: REM SPELLS 210 FOR I = 1 TO 10: FOR J = 1 TO 5:SO%(I,J,1) = PEEK (PK):SO%(I,J,2) = PEEK (PK + 1):PK = PK + 2: NEXT J: NEXT I 300 PK = 8165: REM TRAPS 310 FOR I = 1 TO 6: FOR J = 1 TO 4:PI%(I,J) = PEEK (PK):PK = PK + 1: NEXT J: NEXT I 320 FOR I = 1 TO 9: FOR J = 1 TO 2: READ TR%(I,J): NEXT J: NEXT I 1000 DATA Paralysie,Gu{rison,Eclair,Puissance,Vitesse,Protection,Exorcisme,Adresse,D{tection,Faiblesse 1010 DATA Assez loin,Assez proche,Tres proche 1020 DATA Une fosse,Un pi}ge @ feu,Un pi}ge @ loup,Des dards,Des gazs nocifs,Un bloc broyeur 1030 DATA Combattre,Changer d'arme,Sort,Utiliser,Avancer,Reculer,R{dition,d{trousser 1040 DATA Il rend son der-nier souffle,Il va rejoindre ses anc~tres,Il mord la pous-si}re,Il succombe dansun dernier rale,Sa derni}re heu-re est venue,Cette charogne finit par crever 1050 DATA Crane,41,0,0,0,0,0 1060 DATA Clef,42,0,0,0,0,0 1070 DATA Parchemin,43,0,0,0,0,0 1080 DATA Princesse,44,0,0,0,0,0 1090 DATA Muryaden,45,10000,0,0,0,0 1100 DATA Ceinture,47,0,0,0,0,0 1110 DATA Masse lourde,2,60,22,10,10,6 1120 DATA Ep{e,1,30,20,15,8,8 1130 DATA Trident,1,25,20,17,9,7 1140 DATA Fouet,1,50,20,20,9,5 1150 DATA Potion 1,20,10,0,0,20,1 1160 DATA Baguette,30,500,15,0,1,7 1170 DATA Parchemin 1,20,10,15,0,20,6 1180 DATA Peau de Wyrm,10,100,15,10,4,1 1190 DATA Aegis,3,100,15,10,8,1 1200 DATA Cestes,0,150,20,15,8,8 1210 DATA Double fl{au,2,120,25,20,16,6 1220 DATA Anneau FOR,20,170,10,10,5,15 1230 DATA Prisme AURA,20,200,15,10,5,25 1240 DATA Hache-rang,5,350,20,15,10,10 1250 REM TRESORS 1260 DATA 80,0,120,0,0,15,100,0,0,16,0,17,0,18,0,19,0,20 1900 GOTO 4000 2000 B$ = "" 2010 GET C$ 2020 IF ASC (C$) = 13 THEN RETURN 2025 IF ASC (C$) = 8 AND LEN (B$) > 0 THEN 2080 2030 IF ASC (C$) < L1% OR ASC (C$) > L2% THEN 2010 2040 PRINT C$; 2050 B$ = B$ + C$ 2060 IF LEN (B$) = L3% THEN RETURN 2070 GOTO 2010 2080 P% = PEEK (36) - 1 2090 POKE 36,P%: PRINT " ";: POKE 36,P% 2100 IF LEN (B$) = 1 THEN B$ = "": GOTO 2010 2110 B$ = LEFT$ (B$, LEN (B$) - 1) 2120 GOTO 2010 2200 REM PRINCESSE 2210 PRINT : PRINT "La princesse" 2220 IF CO% < > 0 THEN 2300 2225 IF KC%(5) < 5 THEN PRINT "Pas touche, pinede nain.": GOTO 27500 2230 PRINT "Vous compl{tez son {ducation. Sa langue est un peu rapeuse, mais la succion est convenable." 2240 PRINT : PRINT "Vitalit{..:-5":KC%(5) = KC%(5) - 5 2290 PRINT "Exp{rience:+15":XP% = XP% + 15: GOTO 4150 2300 IF US% = 3 THEN PRINT "Elle vous fait un bras d'hon- neur !!!": GOTO 10010 2305 US% = US% + 1 2310 PRINT "s'interpose et lutte au corps @corps avec votreennemi. Elle triomphe et re- vient les jambesarqu{es!" 2370 POKE 18780,1: GOTO 4150 2400 REM PARCH 2410 PRINT : PRINT "Parchemin" 2420 PRINT "Le maitre n'est jamais bien loindes disciples" 2430 GOTO 27200 2500 REM SAUVE LE JEU 2510 PL$ = "PLAYER": GOSUB 3000: GOTO 3071 2600 CALL 50688 3000 REM SAUVEGARDE 3002 IF XP% > 9999 THEN XP% = 9999 3004 IF GP% > 9999 THEN GP% = 9999 3010 A = USR (0): & DEL PL$: & DEF PL$,2: & PRINT PL$ 3020 PRINT NM$:NA% = PEEK (18766): PRINT NA%: IF NA% = 1 THEN PRINT PEEK (18767): GOTO 3030 3025 PRINT PEEK (18771) - 4 3030 PRINT PEEK (23): PRINT PEEK (24): PRINT CL%: PRINT RA: FOR I = 1 TO 8: PRINT KA%(I): PRINT KB%(I): PRINT KC%(I): NEXT I 3040 PRINT GP%: PRINT XP%: PRINT AR%: PRINT PA%: PRINT PR%: PRINT EN%: PRINT OB%: PRINT LP% 3050 IF OB% = 0 THEN 3070 3060 FOR I = 1 TO OB%: PRINT OB$(I): FOR J = 1 TO 6: PRINT OB%(I,J): NEXT J: NEXT I 3070 & END : RETURN 3071 IF NA% = 0 THEN CR$ = DJN$: & DEL DJN$: & STORE DJN$,20224,2483: GOTO 3073 3072 CR$ = MAP$: & DEL MAP$: & STORE MAP$,20224,2483 3073 FOR I = 1 TO 3:AA$ = "MAP-" + STR$ (I):BB$ = "DJN-" + STR$ (I): & DEL AA$: & DEL BB$: NEXT I 3074 & DEL "MAP-4" 3075 FOR I = 1 TO 4:AA$ = "MAP." + STR$ (I):BB$ = "MAP-" + STR$ (I): & RECALL AA$,20224: & STORE BB$,20224,2483: NEXT I 3076 FOR I = 1 TO 3:AA$ = "DJN." + STR$ (I):BB$ = "DJN-" + STR$ (I): & RECALL AA$,20224: & STORE BB$,20224,2483: NEXT I 3080 & RECALL CR$,20224 3099 A = USR (1): GOTO 4150 3500 V% = 0 3510 IF OB% = 0 THEN 4150 3520 FOR I = 1 TO OB% 3530 IF OB%(I,1) = 42 THEN V% = 1 3540 NEXT I 3550 IF V% = 1 THEN 3600 3555 & MUSIC1,0,15: PRINT "T'as pas la clefT~te de nain !!" 3560 GOTO 4150 3600 REM SI ON A LA CLEF, FAIRE CALL OPENDOOR 3610 PRINT "La porte s'ouvre" 3620 CALL 19324: REM OPENDOOR 3630 GOTO 4150 4000 REM MAIN 4100 A = USR (1):A = USR (3) 4110 & SCRN1,1: & CADRE: & WINDOW24,16,8,24: HTAB 25: VTAB 24 4120 GOSUB 26100 4140 CALL 16384 4150 CO% = 0: GOSUB 26200 4155 CALL 16640 4160 PC% = PEEK (18770) 4170 ON PC% GOTO 4175,4190,4200,4600,15030,10400,10300,15000,15100,5000,2500,17000,30000,3500 4175 A = USR (0): & DEL MAP$: & STORE MAP$,20224,2483 4180 MAP$ = "MAP." + STR$ ( PEEK (18767)): & RECALL MAP$,20224:A = USR (1): GOTO 4140 4190 M% = PEEK (18769): FOR I = 1 TO 6:M1%(1,I) = PEEK (19803 + M% + 30 * (I - 1)):M1%(0,I) = M1%(1,I): NEXT I 4195 FOR I = 7 TO 14:M2%(1,I - 6) = PEEK (19803 + M% + 30 * (I - 1)):M2%(0,I - 6) = M2%(1,I - 6): NEXT I 4196 GOTO 20000 4200 A = USR (0): & DEL MAP$: & STORE MAP$,20224,2483 4210 PC% = PEEK (18771): ON PC% GOTO 4300,4300,4300,4300,4500,4500,4500 4300 REM VILLES+CHATEAU 4310 PL$ = "USER.PLAYER": GOSUB 3000: REM SAUVEGARDE PERSO 4320 TWN$ = "TOWN-" + STR$ (PC%): & RUN TWN$,24576 4500 PC% = PC% - 4:COM$ = "COM-" + STR$ (PC%):DJN$ = "DJN." + STR$ (PC%): & RECALL COM$,22707: & RECALL DJN$,20224:A = USR (1): GOTO 4140 4600 REM QUITTER DONJON 4610 A = USR (0): & DEL DJN$: & STORE DJN$,20224,2483: GOTO 4180 5000 REM OUVRIR COFFRE 5005 AD% = 17143 5010 V% = PEEK (18781): PRINT 5020 IF TR%(V%,1) < > 0 THEN PRINT "Vous trouvez :": PRINT TR%(V%,1);" PO":GP% = GP% + TR%(V%,1): PRINT : GOSUB 26200 5030 IF TR%(V%,2) < > 0 THEN W% = TR%(V%,2): GOTO 16000 5040 GOTO 16120 5100 REM SI DE LA PLACE POUR 1 OBJET EN PLUS, CALL COFFRVID 8000 FOR I = 1 TO 6:OB%(0,I) = 0: NEXT I 8010 PRINT "Armure : "; 8020 GOSUB 27400: IF A$ = "0" THEN PR% = 0: GOTO 8100 8030 IF OB%(V%,1) < > 10 THEN 8020 8040 IF OB%(V%,3) > KC%(3) OR OB%(V%,4) > KC%(4) THEN 8020 8070 PR% = V% 8080 PRINT : PRINT OB$(V%) 8100 PRINT "Arme : "; 8105 GOSUB 27400: IF A$ = "0" THEN AR% = 0: GOTO 8200 8110 IF OB%(V%,1) > 5 OR OB%(V%,1) < 0 OR OB%(V%,1) = 3 THEN 8105 8140 IF OB%(V%,3) > KC%(3) OR OB%(V%,4) > KC%(4) THEN 8105 8150 AR% = V%: PRINT : PRINT OB$(V%) 8170 IF OB%(V%,1) = 2 OR OB%(V%,1) = 4 THEN PA% = 0: GOTO 8290 8200 PRINT "Bouclier : "; 8205 GOSUB 27400: IF A$ = "0" THEN PA% = 0: GOTO 8290 8240 IF OB%(V%,1) < > 3 THEN 8205 8250 IF OB%(V%,3) > KC%(3) OR OB%(V%,4) > KC%(4) THEN 8205 8260 PA% = V% 8270 PRINT : PRINT OB$(V%) 8290 EN% = OB%(PA%,6) + OB%(PR%,6): RETURN 8300 REM JETER 8305 PRINT "Jeter : "; 8310 GOSUB 27400: IF A$ = "0" THEN RETURN 8315 IF V% = AR% OR V% = PA% OR V% = PR% THEN 8310 8320 PRINT : PRINT OB$(V%) 8330 PRINT "D'accord(O/N)"; 8340 GET A$ 8350 IF A$ = "N" THEN 8450 8360 IF A$ = "O" THEN 8380 8370 GOTO 8340 8380 OB% = OB% - 1 8384 IF PA% > V% THEN PA% = PA% - 1 8385 IF AR% > V% THEN AR% = AR% - 1 8386 IF PR% > V% THEN PR% = PR% - 1 8390 IF OB% = 0 OR V% = OB% + 1 THEN 8440 8400 FOR I = V% TO OB% 8410 OB$(I) = OB$(I + 1) 8420 FOR J = 1 TO 6:OB%(I,J) = OB%(I + 1,J): NEXT J 8430 NEXT I 8440 FOR I = OB% + 1 TO 9:OB$(I) = "": NEXT I 8450 PRINT : RETURN 10000 REM COMBAT 10010 GOSUB 26200 10015 IF KC%(4) < EN% THEN KC%(4) = EN% 10020 IF KC%(5) < 0 THEN PRINT : PRINT "Vous ~tes mort": GOTO 18000 10030 P% = PEEK (37) + 2: IF P% = 25 THEN PRINT :P% = 24 10040 V% = 0 10050 VTAB P%: HTAB 1: PRINT SPC( 15): HTAB 1: PRINT CH$(V%); 10060 GET A$:PC% = PEEK ( - 16384) 10070 IF PC% = 21 THEN V% = V% + 1: IF V% > 7 THEN V% = 0 10080 IF PC% = 8 THEN V% = V% - 1: IF V% < 0 THEN V% = 7 10090 IF PC% = 13 THEN 10110 10100 GOTO 10050 10110 VTAB P%: HTAB 1: PRINT SPC( 15);: HTAB 1 10150 ON V% + 1 GOTO 27100,10200,10300,10400,10500,10600,10720,10800 10200 GOSUB 8100 10210 GOTO 27200 10300 REM SORT 10310 PRINT "Sort : ";: GET A$:S1% = VAL (A$) 10320 IF S1% > 9 OR S1% < 0 THEN PRINT : GOTO 27500 10330 PRINT : PRINT SO$(S1%);" : ";: GET A$:S2% = VAL (A$) 10340 IF S2% < 1 OR S2% > 5 THEN PRINT : GOTO 27500 10350 IF SO%(S1%,S2%,1) > KC%(1) OR SO%(S1%,S2%,2) > KC%(2) THEN PRINT : GOTO 27500 10360 IF KC%(6) < S2% THEN 27500 10370 PM% = S2%: PRINT PM%: PRINT 10380 ON S1% + 1 GOTO 14900,14010,14100,14200,14300,14400,14500,14600,14700,14800 10400 REM UTILISER 10410 PRINT "Utiliser : "; 10415 GOSUB 27400: IF A$ = "0" THEN 27500 10430 IF OB%(V%,1) = 44 THEN 2200 10435 IF OB%(V%,1) = 43 THEN 2400 10445 IF OB%(V%,3) > KC%(1) OR OB%(V%,4) > KC%(2) THEN 10415 10450 IF OB%(V%,1) = 20 THEN PRINT : GOTO 21010 10460 IF OB%(V%,1) = 30 THEN PRINT : GOTO 21500 10480 GOTO 10415 10500 PRINT "Vous avancez": REM AVANCER 10510 IF CO% = 3 THEN 10590 10520 IF CO% < > 1 THEN 10560 10530 IF M2%(0,1) < M2%(1,1) THEN 10570 10540 IF M1%(0,6) = 0 OR M1%(0,6) = 5 OR M1%(0,6) = 6 THEN 10580 10560 IF CO% = 2 AND M2%(1,8) > M2%(1,7) THEN 10580 10570 IF RND (1) * M2%(0,4) > = RND (1) * (KC%(4) - EN%) THEN 10590 10580 PRINT "avec succ}s": & NOISE10,40,10:CO% = CO% + 1: GOTO 27200 10590 PRINT "sans succ}s": GOTO 27200 10600 REM RECULER 10610 PRINT "Vous reculez" 10620 IF CO% = 1 AND M2%(1,8) < M2%(1,7) THEN 10690 10630 IF RND (1) * M2%(0,4) < RND (1) * (KC%(4) - EN%) THEN 10690 10680 PRINT "sans succ}s": GOTO 10710 10690 PRINT "avec succ}s": & NOISE10,40,10:CO% = CO% - 1 10700 IF CO% = 0 THEN PRINT "Vous fuyez" 10710 GOTO 27200 10720 REM REDITION 10730 IF M1%(0,1) = 1 OR M1%(0,1) = 4 THEN PRINT "Il refuse": GOTO 10010 10740 IF M%(0,1) < M%(1,1) / 2 THEN "Il accepte": GOTO 4150 10790 GOTO 20510 10800 REM DETROUSSER 10810 IF M1%(0,1) = 1 OR M1%(0,1) = 4 THEN PRINT "Il refuse": GOTO 10010 10820 IF M2%(0,1) / M2%(1,1) > = KC%(5) / KA%(5) THEN PRINT "Il refuse": GOTO 10010 10830 PRINT "Il vous donne son or":GP% = GP% + M1%(0,3): GOTO 4150 11000 REM COMBAT A DISTANCE 11010 IF OB%(AR%,1) < 4 THEN 10050 11020 PRINT "Vous visez": GOSUB 27900 11030 SC% = RND (1) * (KC%(3) + KC%(4)) / 2 - RND (1) * M2%(0,4) 11040 DG% = SC% - RND (1) * M2%(0,6) / 2 + RND (1) * OB%(AR%,5) 11050 A$ = "et touchez" 11060 GOTO 27600 11500 REM MONSTRE 11502 GOSUB 26200 11505 IF M2%(0,1) < 0 THEN 26000 11510 IF M2%(0,1) < M2%(1,1) / 2 AND M2%(0,2) < > 1 THEN 11700 11515 IF M1%(0,6) < > 0 THEN 25000 11520 PRINT "Il avance" 11530 PRINT "D'accord(O/N)"; 11535 GET A$: IF A$ = "N" OR A$ = "O" THEN PRINT 11540 IF A$ = "O" THEN 11600 11550 IF A$ = "N" THEN 11570 11560 GOTO 11535 11570 IF RND (1) * (KC%(4) - EN%) > RND (1) * M2%(0,4) THEN PRINT "sans succ}s": GOTO 10010 11600 PRINT "Il se rapproche": & NOISE10,40,10 11610 CO% = CO% + 1: GOTO 10010 11700 REM RECUL 11710 PRINT "Il recule" 11720 PRINT "D'accord(O/N)"; 11725 GET A$: IF A$ = "O" OR A$ = "N" THEN PRINT 11730 IF A$ = "O" THEN 11800 11740 IF A$ = "N" THEN 11760 11750 GOTO 11725 11760 IF RND (1) * (KC%(4) - EN%) = < RND (1) * M2%(0,4) THEN 11800 11770 PRINT "sans succ}s" 11780 GOTO 10010 11800 PRINT "Il r{ussit": & NOISE10,40,10 11810 CO% = CO% - 1 11820 IF CO% = 0 THEN PRINT "et fuit": GOTO 4150 11830 GOTO 10010 12000 REM COMBAT DE MELEE 12010 IF OB%(AR%,1) = 4 THEN 10050 12020 PRINT "Vous attaquez": GOSUB 27900 12030 SC% = RND (1) * KC%(3) - RND (1) * M2%(0,4) 12040 DG% = SC% - RND (1) * M2%(0,6) + RND (1) * OB%(AR%,5) 12050 A$ = "et frappez" 12060 GOTO 27600 12500 REM MONSTRE 12502 GOSUB 26200 12505 IF M2%(0,1) < 0 THEN 26000 12507 IF M2%(0,1) < M2%(1,1) / 2 AND M1%(0,1) < > 1 THEN 11700 12510 IF M2%(0,8) > M2%(0,7) THEN 11520 12515 IF RND (1) * M2%(0,2) > RND (1) * M2%(0,1) AND M1%(0,6) < > 0 THEN GOTO 25000 12525 PRINT "Il attaque" 12530 SC% = RND (1) * M2%(0,3) - RND (1) * (KC%(4) - EN%) 12550 A$ = "et frappe" 12560 DG% = SC% - RND (1) * (OB%(AR%,6) + OB%(PA%,5)) + RND (1) * M2%(0,7) 12570 GOTO 27800 13000 REM COMBAT RAPPROCHE 13010 IF OB%(AR%,1) < > 0 THEN GOTO 10050 13020 PRINT "Vous luttez": GOSUB 27900 13030 SC% = RND (1) * KC%(3) - RND (1) * M2%(0,4) 13040 DG% = SC% - RND (1) * M2%(0,6) / 2 + RND (1) * OB%(AR%,5) 13050 A$ = "avec succ}s" 13060 GOTO 27600 13500 REM MONSTRE 13502 GOSUB 26200 13505 IF M2%(0,1) < 0 THEN 26000 13510 IF M2%(0,1) < M2%(1,1) / 2 AND M1%(0,1) < > 1 THEN 11700 13540 PRINT "Il lutte" 13560 SC% = RND (1) * M2%(0,3) - RND (1) * (KC%(4) - EN%) 13580 A$ = "avec succ}s" 13590 DG% = SC% + RND (1) * M2%(0,8) - OB%(PA%,5) * RND (1) 13600 GOTO 27800 14000 REM SORTS 14010 REM GUERISON 14020 KC%(5) = KC%(5) + FN S(S2%) + 1 14030 IF KC%(5) > KA%(5) THEN KC%(5) = KA%(5) 14040 GOTO 27300 14100 REM ECLAIR 14110 IF CO% = 0 THEN 4150 14120 DG% = FN S(S2%) + RND (1) * KC%(7) - RND (1) * M2%(0,4) 14170 KC%(6) = KC%(6) - PM% 14180 & SOUND255,7 * S2% 14190 GOTO 27750 14200 REM FORCE 14210 IF CO% = 0 THEN 4150 14220 KC%(3) = KA%(3) + FN S(S2%) + 1 14240 GOTO 27300 14300 REM VITESSE 14310 IF CO% = 0 THEN 4150 14320 KC%(4) = KA%(4) + FN S(S2%) + 1 - EN% 14340 GOTO 27300 14400 REM PROTECTION 14410 IF PR% > = 3 + S2% THEN 27200 14420 PR% = 3 + S2% 14440 GOTO 27300 14500 REM EXORCISME 14505 IF CO% = 0 THEN 4150 14510 M2%(0,2) = M2%(0,2) - FN S(S2%) - 1 14520 IF M2%(0,2) < 0 THEN M2%(0,2) = 0 14530 IF M2%(0,2) = 0 AND (M% = 20 OR M% = 21) THEN M2%(0,1) = - 1 14540 GOTO 27300 14600 REM ADRESSE 14620 KC%(7) = KA%(7) + FN S(S2%) + 1 14640 GOTO 27300 14700 REM DETECTION 14710 IF CO% < > 0 THEN 10020 14720 KC%(8) = KA%(8) + FN S(S2%) + 1 14740 GOTO 27300 14800 REM FAIBLESSE 14810 IF CO% = 0 THEN 4150 14820 M2%(0,3) = M2%(0,3) - FN S(S2%) - 1 14830 IF M2%(0,3) < 0 THEN M2%(0,3) = 0 14840 GOTO 27300 14900 REM PARALYSIE 14910 IF CO% = 0 THEN 4150 14920 M2%(0,4) = M2%(0,4) - FN S(S2%) - 1 14930 IF M2%(0,4) < 0 THEN M2%(0,4) = 0 14940 GOTO 27300 15000 GOSUB 8300 15010 GOTO 4150 15030 IF OB% = 0 THEN 4150 15035 A = USR (2) 15040 FOR I = 1 TO OB% 15045 PRINT I;")"; 15050 IF I = AR% OR I = PR% OR I = PA% THEN INVERSE 15060 PRINT OB$(I) 15070 NORMAL : CALL 6138 15080 NEXT I 15090 A = USR (3): GOTO 4150 15099 REM EQUIPEMENT 15100 GOSUB 8000: GOTO 4150 16000 REM TROUVER OBJET 16010 PRINT "Vous trouvez :" 16020 PRINT EQ$(W%): PRINT 16030 IF OB% = 9 THEN 16500 16040 PRINT "Prendre (O/N)"; 16050 GET A$ 16060 IF A$ = "O" THEN PRINT : GOTO 16090 16070 IF A$ = "N" THEN PRINT : GOTO 4150 16080 GOTO 16050 16090 OB% = OB% + 1 16100 OB$(OB%) = EQ$(W%) 16110 FOR I = 1 TO 6:OB%(OB%,I) = EQ%(W%,I): NEXT I 16120 IF AD% < > 0 THEN CALL AD% 16190 GOTO 4150 16500 PRINT "T'as d{j@ 9 ob- jets, Nabot!!": PRINT 16510 PRINT "Faire de la place (O/N)"; 16520 GET A$ 16530 IF A$ < > "O" AND A$ < > "N" THEN 16520 16540 IF A$ = "N" THEN PRINT : GOTO 4150 16550 PRINT : GOSUB 8300 16560 IF OB% = 9 THEN PRINT : PRINT "Tu te d{cides, raclure de nain": PRINT : GOTO 16510 16590 PRINT : GOTO 16040 17000 W% = PEEK (18781):AD% = 16974 17010 IF W% = 1 THEN W% = 2: GOTO 16030 17020 IF W% = 2 THEN W% = 3: GOTO 16030 17030 IF W% = 3 THEN W% = 5: GOTO 16030 17060 GOTO 16030 18000 PRINT : PRINT "Reprendre (O/N)"; 18010 GET A$ 18020 IF A$ = "N" THEN TEXT : HOME : CALL 50688 18030 IF A$ < > "O" THEN 18010 18040 PRINT : PRINT "Ins{rez la face de BOOT et pres-sez une touche"; 18050 GET A$ 18060 A = USR (0): & READ "PLAYER": INPUT F$: & END :A = USR (1) 18070 IF F$ < > "*START*" THEN 18040 18080 CLEAR : & SCRN0,0: & WINDOW0,40,0,24: HOME : TEXT :A = USR (0): & RUN "LINKER.CONT",24576 20000 REM MONSTRE 20010 A$ = "":CO% = 2 20035 IF RND (1) * (M1%(0,2) + KC%(8)) > RND (1) * (KC%(4) + M2%(0,4)) THEN CO% = 1 20040 IF KC%(4) < EN% THEN KC%(4) = EN% 20050 IF RND (1) * (KC%(4) + KC%(8) - EN%) < RND (1) * (M1%(0,2) + M2%(0,4)) THEN 20100 20060 PRINT : PRINT "Vous combattez ? (O/N)"; 20070 GET A$ 20080 IF A$ = "O" THEN PRINT : GOTO 10010 20085 IF A$ = "N" THEN PRINT : GOTO 20100 20090 GOTO 20070 20100 PRINT : REM REACTION 20105 ON M1%(0,1) GOTO 20120,20200,20300,20400,20500,20600,20700 20110 PRINT : REM ATTAQUE 20120 PRINT "Il engage le com-bat": GOTO 27200 20200 REM HOSTILE 20210 IF INT ( RND (1) * 20) + 1 > KA%(5) THEN PRINT "Il vous ignore": GOTO 20900 20220 GOTO 20120 20300 REM AMICAL 20310 IF INT ( RND (1) * 20) < KA%(6) THEN PRINT "Il vous salue": GOTO 20900 20320 GOTO 20510 20400 REM GOLEM 20410 V% = 0 20415 FOR I = 1 TO OB% 20420 IF OB%(I,1) = 43 THEN V% = 1 20425 NEXT I 20430 IF V% = 1 THEN 20450 20440 PRINT "Vous n'avez pas le parchemin": GOTO 10000 20450 PRINT "Il disparait" 20460 CALL 19329 20490 GOTO 4150 20500 REM BANDIT 20510 PRINT "Il veut votre or (O/N)"; 20520 GET A$ 20530 IF A$ = "N" THEN PRINT : GOTO 20110 20540 IF A$ = "O" THEN PRINT : GOTO 20560 20550 GOTO 20520 20560 GP% = GP% - M1%(0,3) - M1%(0,4): IF GP% < 0 THEN GP% = 0 20590 GOTO 4150 20600 REM BARBARE 20610 IF KA%(1) > = 15 THEN PRINT "Mort au sorcier": GOTO 20120 20620 IF RA% = 5 GOTO 20200 20640 GOTO 20300 20700 REM PRETRE 20710 PRINT "Faites un don aux pauvres": PRINT 20720 PRINT "Combien donnez vous : "; 20725 L1% = 48:L2% = 57:L3% = 2: GOSUB 2000:DO% = VAL (B$): PRINT 20730 IF DO% > GP% THEN DO% = GP% 20740 GP% = GP% - DO% 20750 IF DO% = 0 AND GP% > 0 THEN PRINT : GOTO 20300 20760 PRINT : PRINT "Il vous b{nit" 20770 S2% = INT (DO% / 10) + 1: IF S2% > 5 THEN S2% = 5 20780 CO% = 0:PM% = 0: GOTO 14010 20890 GOTO 4150 20900 REM REACTION 20905 PRINT 20906 IF A$ = "O" OR A$ = "N" THEN 20930 20910 PRINT "Vous combattez ? (O/N)"; 20920 GET A$ 20930 IF A$ = "O" THEN PRINT : GOTO 10010 20940 IF A$ = "N" THEN PRINT : GOTO 4150 20960 GOTO 20920 21000 REM UTILISER 21010 REM OBJ.MAG. 21020 IF OB%(V%,5) > 20 THEN 27500 21030 IF INT ( RND (1) * 20) + 1 = < OB%(V%,5) THEN OB%(V%,5) = OB%(V%,5) + 20 21035 PM% = 0 21040 S1% = (OB%(V%,6) - 1) / 5 + 1 21050 S2% = OB%(V%,6) - S1% * 5 + 5 21065 PRINT OB$(V%) 21070 ON S1% GOTO 14010,14100,14200,14300,14400,14500,14600,14700,14800,14900 21500 REM FOCUS 21510 PM% = OB%(V%,5) 21520 IF PM% > KC%(6) THEN 27500 21530 GOTO 21040 22000 REM EFFET DES COUPS 22010 IF DG% = < PV% / 8 THEN PRINT "Une {gratignure": & NOISE1,40,50: RETURN 22020 IF DG% = < PV% / 4 THEN PRINT "Un coup l{ger": & NOISE1,40,100: RETURN 22030 IF DG% = < PV% / 2 THEN PRINT "Un coup grave": & NOISE1,40,150: RETURN 22040 PRINT "Un coup d{cisif": & NOISE1,40,255: RETURN 25000 ON M1%(0,6) GOTO 25100,25200,25300,25400,25500,25600 25100 REM MANTICORE 25110 PRINT "Il lance un dard" 25130 SC% = RND (1) * M2%(0,4) - RND (1) * (KC%(4) - EN%) 25140 A$ = "et touche" 25150 DG% = SC% + RND (1) * 10 - RND (1) * PA% 25160 GOTO 27800 25200 REM MAGE 25210 PRINT "Il entonne un sortil}ge" 25215 & SOUND27,100 25220 M2%(0,6) = M2%(0,6) - 1 25230 DG% = RND (1) * 6 + RND (1) * M2%(0,4) - RND (1) * (KC%(4) - EN%) - OB%(PR%,5) 25250 GOTO 27860 25300 REM NECROMANT 25305 IF M% = 24 THEN PRINT "Il envoie une boule de feu": GOTO 25315 25310 PRINT "Il emploie sa baguette" 25315 & SOUND46,100 25320 M2%(0,6) = M2%(0,6) - 1 25330 DG% = RND (1) * 18 + RND (1) * M2%(0,4) - RND (1) * (KC%(4) - EN%) - OB%(PR%,5) 25340 GOTO 27860 25400 REM XORN 25405 IF AR% = 0 OR OB$(AR%) = "Ferraille" THEN 27250 25410 PRINT "Il mange votre arme" 25420 OB%(AR%,5) = 0:OB%(AR%,6) = 0 25430 OB$(AR%) = "Ferraille":OB%(AR%,2) = 0 25490 GOTO 10010 25500 REM ZOMBIE 25505 IF M2%(0,2) = < M2%(0,1) THEN GOTO 27250 25510 PRINT "Il r{g{n}re" 25515 & NOISE99,70,7 25520 IF M2%(0,1) > M2%(0,2) THEN GOTO 10010 25530 M2%(0,1) = RND (1) * (M2%(0,2) - M2%(0,1)) + M2%(0,1) 25540 GOTO 10010 25600 REM PRETRE 25605 IF M2%(0,1) > = M2%(1,1) THEN 27250 25610 PRINT "Il marmonne une pri}re" 25615 & NOISE5,1,100 25620 M2%(0,2) = M2%(0,2) - 1 25630 M2%(0,1) = M2%(0,1) + RND (1) * 6 + 1 25640 IF M2%(0,1) > M2%(1,1) THEN M2%(0,1) = M2%(1,1) 25650 GOTO 10010 26000 REM FIN COMBAT 26010 PRINT MO$( INT ( RND (1) * 6) + 1): IF M% < > 22 THEN POKE 18780,1: REM BUTE 26020 GP% = GP% + M1%(0,3): PRINT : PRINT "Argent....:+"M1%(0,3) 26030 XP% = XP% + M1%(0,4): PRINT "Exp{rience:+"M1%(0,4): PRINT 26040 & SOUND40,40: & SOUND40,40: & SOUND100,50 26050 FOR I = 1 TO 4 26060 IF KC%(I) > KA%(I) THEN KC%(I) = KA%(I) 26070 NEXT I 26080 IF M1%(1,5) < > 0 THEN AD% = 0:W% = M1%(1,5): GOTO 16010 26090 GOTO 4150 26100 REM MISE A JOUR 26105 P% = PEEK (37) 26110 VTAB 2: HTAB 2: PRINT NM$; 26120 VTAB 3: HTAB 2: PRINT "Vit:"; 26130 HTAB 9: PRINT "Mag:"; 26140 VTAB 4: HTAB 2: PRINT "Arg:"; 26150 VTAB 5: HTAB 2: PRINT "Exp:"; 26190 GOTO 26205 26200 P% = PEEK (37) 26205 VTAB 3: HTAB 6: PRINT KC%(5);" "; 26210 HTAB 13: PRINT KC%(6);" "; 26220 VTAB 4: HTAB 6: PRINT GP%;" "; 26230 VTAB 5: HTAB 6: PRINT XP%;" "; 26240 VTAB 7: HTAB 2: PRINT SPC( 14) 26245 IF CO% = 0 THEN VTAB 6: HTAB 2: PRINT SPC( 14): GOTO 26270 26260 VTAB 7: HTAB 2: PRINT ST$(CO%) 26270 VTAB P% + 1: HTAB 1 26300 RETURN 27000 REM SOUS-PROG 27100 REM RETOUR COMBAT PERSO 27110 ON CO% + 1 GOTO 4150,11000,12000,13000 27200 REM RETOUR COMBAT MONSTRE 27210 IF CO% < > 0 THEN PRINT 27220 ON CO% + 1 GOTO 4150,11500,12500,13500 27250 ON CO% GOTO 11520,12525,13540 27300 REM RETOUR SORT 27310 KC%(6) = KC%(6) - PM% 27320 IF CO% < > 0 THEN PRINT 27330 & SOUND255,7 * S2% 27340 ON CO% + 1 GOTO 4150,11500,12500,13500 27400 REM CHOIX OBJET 27410 GET A$:V% = VAL (A$) 27420 IF V% < 0 OR V% > OB% THEN 27410 27430 IF A$ = "0" THEN PRINT : RETURN 27440 IF V% = 0 THEN 27410 27450 RETURN 27500 REM ERREUR DU PERSO 27510 ON CO% + 1 GOTO 4150,10010,10010,10010 27600 REM 27640 IF SC% > 0 THEN 27660 27650 PRINT "et ratez": & NOISE10,55,20: GOTO 27200 27660 PRINT A$ 27730 IF DG% = < 0 THEN PRINT "Il pare": & SOUND35,2: GOTO 27200 27750 DG% = DG% - M2%(0,5) 27760 IF DG% = < 0 THEN PRINT "Sans effet": & NOISE1,255,90: GOTO 27200 27770 M2%(0,1) = M2%(0,1) - DG% 27780 PV% = M2%(1,1): GOSUB 22000 27790 GOTO 27200 27800 REM COMBAT MONSTRE 27810 IF SC% > 0 THEN 27830 27820 PRINT "et rate": & NOISE10,55,20: GOTO 27500 27830 PRINT A$ 27840 IF DG% = < 0 THEN PRINT "Vous parez": & SOUND35,2: GOTO 27500 27850 DG% = DG% - OB%(PR%,5) 27860 IF DG% = < 0 THEN PRINT "Sans effet": & NOISE1,255,90: GOTO 27500 27870 KC%(5) = KC%(5) - DG% 27880 PV% = KA%(5): GOSUB 22000 27890 GOTO 27500 27900 REM ARMES 27910 IF AR% = 0 THEN PRINT "@ mains nues": RETURN 27920 IF RIGHT$ (OB$(AR%),1) = "s" THEN PRINT "avec vos": GOTO 27940 27930 PRINT "avec votre" 27940 PRINT OB$(AR%): RETURN 30000 REM PIEGES 30100 REM DETECTER 30110 V% = PEEK (18781): REM NUMERO PIEGE 30120 PRINT : PRINT PI$(V%) 30130 IF RND (1) * KC%(8) + 1 > = PI%(V%,1) THEN 30150 30140 GOTO 30200 30150 PRINT "Vous avez rep{r{le pi}ge" 30160 PRINT : PRINT "D{samorcer (O/N)"; 30170 GET A$ 30180 IF A$ = "O" THEN PRINT : GOTO 30300 30190 IF A$ = "N" THEN PRINT : GOTO 4150 30195 GOTO 30170 30200 REM DEGATS 30210 PRINT "Le m{canisme se d{clenche" 30220 SC% = RND (1) * PI%(V%,3) - RND (1) * (KC%(4) - EN%) 30230 DG% = SC% + RND (1) * PI%(V%,4) 30240 A$ = "Vous vous ~tes laiss{ avoir" 30250 CO% = 0: GOTO 27800 30260 GOTO 4150 30300 REM DESAMORCER 30310 IF INT ( RND (1) * KC%(7) + 1) < PI%(V%,2) THEN 30200 30320 PRINT "Vous r{ussissez" 30330 CALL 19329: REM CALL REMPLAS0 30340 GOTO 4150