10 DIM KA%(8),KB%(8),KC%(8),OB$(9),OB%(9,8) 30 DIM SO%(13),EQ%(5),ENC%(2),WIZ%(21) 40 DIM CRT%(3),LOC%(20),RES%(14) 60 DIM COM$(16) 70 DIM M%(16,1),TAC%(14) 80 DIM OP%(15),OP$(15),OQ$(15) 100 CO% = 0 120 DIM UT%(3) 130 FOR I = 1 TO 15: FOR J = 1 TO 15:OQ$(I) = OQ$(I) + " ": NEXT J:OP$(I) = OQ$(I): NEXT I 140 FOR I = 0 TO 16: READ COM$(I): NEXT I 1000 DATA et frappe,et touche,et vous griffe,et vous mord 1010 DATA et vous fouette,et vous pique,et vous pince,et vous {trangle,et vous encorne 1020 DATA un dard,une fl}che,un shuriken,un rocher,un eclair 1030 DATA un jet de feu,une boule de feu,un mindblast 1040 CALL 16408:A = USR (1):A = USR (3): & SET0: & WINDOW24,16,8,24: HOME 1050 GOSUB 40000:V% = 0: GOSUB 40100 1500 REM FONCTIONS 1510 DEF FN S(X) = RND (1) * X * (X + 5) 1520 DEF FN EQ(X) = (X = EQ%(1)) OR (X = EQ%(2)) OR (X = EQ%(3)) OR (X = EQ%(4)) 1530 DEF FN LC1(X) = 3 * LOC%(1) * (X > = 1) + LOC%(2) * (X > = 2) + LOC%(3) * (X > = 3) + LOC%(4) * (X > = 4) + LOC%(5) * (X > = 5) + LOC%(6) * (X > = 6) * 0.5 + LOC%(7) * (X > = 7) * 0.5 + LOC%(8) * (X > = 8) * 0.5 + LOC%(9) * (X > = 9) * .25 + LOC%(10) * (X > = 10) * .25 1540 DEF FN LD(X) = (X > = FN LC1(1)) + (X > = FN LC1(2)) + (X > = FN LC1(3)) + (X > = FN LC1(4)) + (X > = FN LC1(5)) + (X > = FN LC1(6)) + (X > = FN LC1(7)) + (X > = FN LC1(8)) + (X > = FN LC1(9)) + (X > = 0) 1550 DEF FN BL(X) = 1 + (X > PV% * .125) + (X > PV% * .25) + (X > PV% * .5) + (X > PV%) 1560 DEF FN SC(X) = RND (1) * (KC%(3) + KC%(X)) / 2 - RND (1) * (M%(4,0) * NOT ( FN ACT(0)) + FN MPOU(2)) 1570 DEF FN DG(X) = SC% - RND (1) * ((X = 1) * M%(8,0) + ((X = 2) + 0.5 * (X = 3)) * M%(7,0)) + FN ARM(EQ%(2)) + FN ARM(EQ%(3)) 1580 DEF FN IDP(X) = 0.5 * (X + ABS (X)) 1590 DEF FN TEST(X) = ( FN ESQ(0) > RND (1) * M%(X,0)) 1600 DEF FN UT(X) = (CO% = 1) * (OB%(X,1) > 4) * (OB%(X,6) > 0 OR OB%(X,1) > 6) + (CO% = 2) * (OB%(X,1) < > 6 AND OB%(X,1) < > 3 AND (OB%(X,1) < > 5 OR OB%(X,6) > 0)) + (CO% = 3) * (OB%(X,1) = 0 OR OB%(X,1) > 7) 1610 DEF FN ARM(X) = FN UT(X) * RND (1) * OB%(X,5) 1620 DEF FN CRT(X) = (X > 0) + (X > CRT%(1)) + (X > CRT%(1) + CRT%(2)) 1630 DEF FN PR(X) = OB%(EQ%(1),5) + WIZ%(8) 1640 DEF FN ACT(X) = (WIZ%(13) > 0) OR (WIZ%(14) > 0) OR (WIZ%(15) > 0) OR (WIZ%(20) > 0) 1650 DEF FN ESQ(X) = RND (1) * ( FN IDP(KC%(4) - EN%(1)) * (WIZ%(18) = < 0) + FN IDP(WIZ%(11) - M%(14,0) + 10)) 1660 DEF FN PM(X) = INT ( FN IDP(X * (10 + 2 * (X - SO%(1)) + ENC%(2) - OB%(EQ%(4),8) * (OB%(EQ%(4),7) = SO%(6))) * 0.1)) 1670 DEF FN DM(X) = FN UT(X) * RND (1) * OB%(X,6) * (OB%(X,1) < > 5 AND OB%(X,1) < > 6) 1680 DEF FN OB(X) = TAC%(10) + INT ( RND (1) * (TAC%(11) - TAC%(10) + 1)) 1690 DEF FN MTEST(X) = RND (1) * (M%(2,0) + FN PR(0)) > RND (1) * (M%(1,0) + (OB%(EQ%(1),6) + WIZ%(7)) * (X = 2 OR X = 4) + WIZ%(10) * (X = 1) + FN PR(0) * (X = 1 OR X = 2 OR X = 5)) 1700 DEF FN MPOU(X) = M%(12,0) * (M%(11,0) = X) 1710 DEF FN FPA(X) = SQR (X * 0.5 * (KC%(3) + KC%(4))) 1720 DEF FN CAR(X) = X - FN IDP(X - 99) + FN IDP( - 99 - X) 1900 GOTO 4000 1910 ON A GOTO 20300,20400,20500,20600,20700,20800,20900,21000,23100,23200,23300,23400,23500,23600,35100,35200,35300,35400,35500,35600,35700,35800,35900,36000,36100,36200,36300,36400,37100,37200,37300,37400 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 2500 REM EXAMEN 2510 PRINT "INT:";KA%(1) 2520 PRINT "SAG:";KA%(2) 2530 PRINT "FOR:";KC%(3);"/";KA%(3) 2550 PRINT "DEX:";KC%(4);"/";KA%(4) 2560 PRINT "VIT:";KC%(5);"/";KA%(5) 2570 PRINT "MAG:";KC%(6);"/";KA%(6) 2580 PRINT "ADR:";KA%(7) 2590 PRINT "PER:";KA%(8) 2595 GOTO 4150 3000 REM SAUVEGARDE 3001 PRINT "Confirme(O/N)";: GET A$: PRINT 3002 IF A$ < > "O" THEN 4140 3005 GOSUB 3010: GOTO 4140 3010 IF XP% > 9999 THEN XP% = 5000 3020 IF GP% > 9999 THEN GP% = 5000 3030 A = PEEK (837): IF A < > 0 THEN GOSUB 41010 3040 GOSUB 40200 3050 V% = PEEK (837): GOSUB 40500:A = USR (1): RETURN 4000 REM 4030 CALL 16396 4120 GOSUB 26100 4140 WIZ%(1) = WIZ%(1) - FN IDP(WIZ%(1) - 255): POKE 16439,WIZ%(1): CALL 16387 4150 CO% = 0: GOSUB 26200 4155 POKE 16436,WIZ%(17): FOR I = 16439 TO 16444:WIZ%(I - 16438) = WIZ%(I - 16438) - FN IDP(WIZ%(I - 16438) - 255): POKE I,WIZ%(I - 16438): NEXT I 4157 POKE 16445,KA%(5): IF KC%(5) < 0 THEN POKE 16438, ABS (KC%(5)) + 128: GOTO 4159 4158 POKE 16438,KC%(5) 4159 CALL 16384:WIZ%(17) = PEEK (16436): FOR I = 16439 TO 16444:WIZ%(I - 16438) = PEEK (I): NEXT I 4160 KC%(5) = PEEK (16438): IF KC%(5) > 99 THEN KC%(5) = - (KC%(5) - 128) 4170 I = PEEK (830): ON I GOTO 40600,20000,4180,4600,15000,33000,32000,4330,4340,4360,14520,5000,3000,16600,30000,7000,17000,4180,2500,0,6000 4180 V% = 1: GOSUB 40100:A = USR (1): GOTO 4140 4200 REM VILLE/CHATEAU... 4320 REM JETER 4330 GOSUB 9000: GOTO 4150 4340 REM EQUIPEMENT 4350 GOSUB 8000: GOTO 4150 4360 REM BATEAU 4365 IF WIZ%(21) + GP% < 5 THEN PRINT "Repasse quand tuauras du fric, clochard !": GOTO 4150 4370 PRINT "Allongez 5 P.O. pour passer": GOSUB 30700 4380 IF V% = 0 THEN 4150 4381 WIZ%(21) = WIZ%(21) - 5: IF WIZ%(21) < 0 THEN GP% = GP% + WIZ%(21):WIZ%(21) = 0 4390 CALL 16393: GOTO 4140 4600 REM PENETRER&QUITTER 4610 V% = 1: GOSUB 40100:A = USR (1): GOTO 4140 5000 REM OUVRIR COFFRE 5010 V% = PEEK (836) 5020 IF V% > 127 THEN A = INT ( RND (1) * 100 + 50 * (V% - 128) + 35): PRINT "Vous trouvez :": PRINT A;" PO":GP% = GP% + A: PRINT : GOSUB 26200: CALL 16402: GOTO 4150 5030 W% = V%:AD% = 16402: GOSUB 16000: GOTO 4150 6000 ON PEEK (836) GOTO 6100,6200,6300,6400,6500,6610 6100 V% = 54: GOSUB 6700: IF A = 1 THEN GOSUB 9160: GOTO 6600 6110 PRINT "Vous n'avez pas la clef!": GOTO 4150 6200 PRINT "Mantra SVP:":B$ = "": FOR I = 1 TO 4: GET A$: PRINT A$;:B$ = B$ + A$: NEXT I: PRINT 6210 IF B$ < > "SNIF" THEN PRINT "Hors de ma vue, h{r{tique!": GOTO 4150 6220 GOTO 6600 6300 V% = 58: GOSUB 6700: IF A = 1 THEN PRINT "L'acide agit!": GOSUB 9160: GOTO 6600 6310 PRINT "Vous n'avez pas l'acide!": GOTO 4150 6400 V% = 59: GOSUB 6700: IF A = 1 THEN GOSUB 9160: GOTO 6600 6410 PRINT "Entr{e sur invi-tation!": GOTO 4150 6500 V% = 50: GOSUB 6700: IF A = 1 THEN 6520 6510 PRINT "Vous n'avez pas les 2 passes!": GOTO 4150 6520 V% = 51: GOSUB 6700: IF A = 0 THEN 6510 6530 GOSUB 9160:V% = 50: GOSUB 6700: GOSUB 9160 6600 PRINT "Vous passez!": CALL 16426: GOTO 4150 6610 V% = 60: GOSUB 6700: IF A = 0 THEN 6110 6620 GOSUB 9160: GOTO 6600 6700 A = 0: IF OB% = 0 THEN 6720 6705 FOR I = 1 TO OB%: IF OB%(I,1) = V% THEN A = 1:V% = I 6710 NEXT I 6720 RETURN 7000 IF PEEK (836) < > 1 THEN 7030 7010 A = 2: GOSUB 7900: PRINT "ACCEPTE (O/N):";: GET A$: PRINT A$: IF A$ = "N" THEN KC%(5) = - 1:WIZ%(5) = 0: GOTO 14520 7020 NJ% = 1:A = 3: GOSUB 7900: GOSUB 7910: CALL 16411: & SOUND200,10: CALL 16405: GOTO 4170 7030 IF NJ% < > 3 THEN A = 10: GOSUB 7900: GOTO 4150 7040 A = 9: GOSUB 7900: GOSUB 7910:NJ% = 4: CALL 16411: GOTO 4150 7900 PRINT "Lire Paragraphe:";A: RETURN 7910 PRINT " SVP!";: GET A$: PRINT : RETURN 8000 FOR I = 1 TO 8:OB%(0,I) = 0: NEXT I 8005 FOR I = 1 TO 4:EQ%(I) = 0: NEXT I 8010 PRINT "Armure : ":OP% = 0 8020 FOR I = 1 TO OB% 8030 IF OB%(I,1) < > 10 THEN 8060 8040 IF OB%(I,3) > KC%(3) OR OB%(I,4) > KC%(4) THEN 8060 8050 OP% = OP% + 1:OP%(OP%) = I:OP$(OP%) = OB$(I) 8060 NEXT I 8070 IF OP% = 0 THEN 8100 8080 GOSUB 30500 8090 EQ%(1) = OP%(V%): PRINT 8100 PRINT "Main droite :":OP% = 0 8120 FOR I = 1 TO OB% 8130 IF OB%(I,1) > 8 OR OB%(I,1) < 0 OR OB%(I,1) = 3 THEN 8160 8140 IF OB%(I,3) > KC%(3) OR OB%(I,4) > KC%(4) THEN 8160 8150 OP% = OP% + 1:OP%(OP%) = I:OP$(OP%) = OB$(I) 8160 NEXT I 8170 IF OP% = 0 THEN 8200 8180 GOSUB 30500:EQ%(2) = OP%(V%): PRINT 8190 IF OB%(EQ%(2),1) = 6 THEN EQ%(3) = 0: GOTO 8300 8200 PRINT "Main gauche :":OP% = 0 8210 FOR I = 1 TO OB% 8240 IF OB%(I,1) = 6 OR I = EQ%(2) OR OB%(I,1) > 9 THEN 8270 8250 IF (OB%(I,4) + OB%(EQ%(2),4)) > KC%(4) OR (OB%(I,3) + OB%(EQ%(2),3) + 10 * ((OB%(I,1) = 2) + (OB%(EQ%(2),1) = 2))) > KC%(3) THEN 8270 8260 OP% = OP% + 1:OP%(OP%) = I:OP$(OP%) = OB$(I) 8270 NEXT I 8280 IF OP% = 0 THEN 8300 8290 GOSUB 30500:EQ%(3) = OP%(V%): PRINT 8300 ENC%(1) = OB%(EQ%(1),7) + (OB%(EQ%(3),5)) * (OB%(EQ%(3),1) = 3) 8310 ENC%(2) = OB%(EQ%(1),8) + (OB%(EQ%(3),6)) * (OB%(EQ%(3),1) = 3) 8400 PRINT "Focus :":OP% = 0 8410 FOR I = 1 TO OB% 8420 IF OB%(I,1) < > 40 THEN 8460 8430 IF OB%(I,3) > KC%(1) OR OB%(I,4) > KC%(2) THEN 8460 8440 OP% = OP% + 1:OP$(OP%) = OB$(I):OP%(OP%) = I 8460 NEXT I 8470 IF OP% = 0 THEN RETURN 8480 GOSUB 30500:EQ%(4) = OP%(V%) 8490 PRINT : RETURN 9000 OP% = 0: IF OB% = 0 THEN RETURN 9010 FOR I = 1 TO OB% 9020 IF FN EQ(I) THEN 9050 9030 OP% = OP% + 1:OP%(OP%) = I:OP$(OP%) = OB$(I) 9050 NEXT I 9070 IF OP% = 0 THEN RETURN 9080 GOSUB 30500: PRINT 9090 IF V% = 0 THEN RETURN 9100 V% = OP%(V%) 9110 PRINT "D'accord(O/N)"; 9120 GET A$ 9130 IF A$ = "N" THEN 9300 9140 IF A$ = "O" THEN 9160 9150 GOTO 9120 9160 OB% = OB% - 1 9170 FOR I = 1 TO 5 9180 IF EQ%(I) > V% THEN EQ%(I) = EQ%(I) - 1 9190 NEXT I 9200 IF OB% = 0 OR V% = OB% + 1 THEN 9300 9210 FOR I = V% TO OB% 9220 OB$(I) = OB$(I + 1) 9230 FOR J = 1 TO 8:OB%(I,J) = OB%(I + 1,J): NEXT J 9240 NEXT I 9300 IF OB% > = 9 THEN 9380 9310 FOR I = OB% + 1 TO 9 9320 OB$(I) = "" 9330 FOR J = 1 TO 8 9340 OB%(I,J) = 0 9360 NEXT J 9370 NEXT I 9380 FOR I = 1 TO 8:OB%(0,I) = 0: NEXT I 9390 PRINT : RETURN 10000 REM COMBAT 10010 GOSUB 26200: GOTO 14500 10030 OP% = 0 10050 FOR I = 1 TO 9 10060 IF CO% = 1 AND I = 2 THEN IF FN UT(EQ%(2)) + FN UT(EQ%(3)) = 0 THEN 10080 10065 IF I = 6 AND CO% = 3 THEN 10080 10070 OP% = OP% + 1:OP%(OP%) = I: & CH(I),OP$(OP%) 10080 NEXT I 10090 PRINT :V% = - 2: GOSUB 30500: IF V% = 0 THEN 27200 10100 V% = OP%(V%) 10110 PRINT 10150 ON V% GOTO 27220,27100,10200,32000,33000,10500,10600,10720,10800 10200 GOSUB 8100 10210 GOTO 27200 10500 PRINT "Vous avancez": 10510 IF CO% = 3 THEN 10590 10520 IF M%(1,0) = < TAC%(4) THEN 10570 10560 IF CO% < TAC%(3) THEN 10580 10570 IF NOT FN TEST(4) 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% > TAC%(3) THEN 10690 10625 IF M%(1,0) = < TAC%(4) THEN 10690 10630 IF FN TEST(4) 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 M%(1,0) > TAC%(7) OR M%(1,0) < TAC%(8) THEN PRINT "Il refuse": GOTO 10010 10740 IF TAC%(2) = 0 OR TAC%(2) = 1 OR TAC%(2) = 6 THEN TAC%(2) = 5 10790 PRINT "Il accepte": GOTO 20120 10800 REM DETROUSSER 10810 IF M%(1,0) > TAC%(5) THEN PRINT "Il refuse": GOTO 10010 10830 PRINT "Il vous donne son or":GP% = GP% + M%(15,0): PRINT : PRINT "Argent....:+";M%(15,0): GOTO 4150 11000 REM COMBAT A DISTANCE 11050 GOSUB 31000 11120 SC% = FN SC(4) 11130 DG% = FN DG(1) 11140 PRINT "Vous visez": GOSUB 27900 11150 A$ = "et touchez" 11160 GOTO 27600 11500 GOSUB 26200 11510 GOTO 14000 11520 IF WIZ%(18) > 0 THEN 11600 11525 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 FN TEST(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": IF WIZ%(18) > 0 THEN & NOISE10,40,10: GOTO 11810 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 NOT FN TEST(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 GOSUB 31000 12020 SC% = FN SC(3) 12030 DG% = FN DG(2) 12040 PRINT "Vous attaquez": GOSUB 27900 12050 A$ = "et frappez" 12060 GOTO 27600 12500 GOSUB 26200 12510 GOTO 14000 12525 PRINT "Il attaque" 12530 SC% = RND (1) * M%(3,0) - FN ESQ(0) 12550 A$ = COM$(TAC%(12)) 12560 DG% = SC% - RND (1) * ( FN FPA(OB%(EQ%(2),7) + OB%(EQ%(3),7)) + WIZ%(9)) + RND (1) * M%(9,0) 12570 GOTO 27800 13000 REM COMBAT RAPPROCHE 13020 SC% = FN SC(3) 13030 DG% = FN DG(3) 13040 PRINT "Vous luttez": GOSUB 27900 13050 A$ = "avec succ}s" 13060 GOTO 27600 13500 GOSUB 26200 13510 GOTO 14000 13540 PRINT "Il lutte" 13560 SC% = RND (1) * M%(3,0) - FN ESQ(0) + FN IDP( RND (1) * FN MPOU(3) - OB%(EQ%(1),6) - WIZ%(7)) 13580 A$ = "avec succ}s": IF TAC%(13) > 0 THEN A$ = COM$(TAC%(13)) 13590 DG% = SC% + RND (1) * M%(10,0) - RND (1) * 0.5 * (OB%(EQ%(3),1) = 3) * FN FPA(OB%(EQ%(3),7)) 13600 GOTO 27800 14000 REM TEST COMBAT 14010 IF M%(1,0) < 0 THEN 26000 14015 WIZ%(16) = FN IDP(WIZ%(16) - FN MPOU(1)) 14020 M%(1,0) = M%(1,0) - WIZ%(16): IF M%(1,0) < M%(1,1) THEN M%(1,0) = M%(1,0) + FN MPOU(1) 14025 IF CO% = 1 AND FN MPOU(1) > WIZ%(16) THEN PRINT "Il se r{g{n}re": PRINT 14030 IF M%(1,0) < 0 THEN PRINT "Il succombe @ ses blessures": PRINT : GOTO 26020 14040 IF RND (1) * M%(1,0) > WIZ%(13) THEN WIZ%(13) = 0 14050 IF RND (1) * M%(2,0) > WIZ%(14) THEN WIZ%(14) = 0 14060 IF RND (1) * M%(4,0) > WIZ%(20) THEN WIZ%(20) = 0 14070 IF RND (1) * M%(3,0) > WIZ%(15) THEN WIZ%(15) = 0 14080 IF FN ACT(0) THEN PRINT "Il ne peut plus r{agir": GOTO 27520 14100 V% = M%(13,0) / 10:W% = M%(13,0) - V% * 10 14110 IF M%(1,0) = < TAC%(4) THEN 11700 14120 IF CO% = 1 AND V% = 0 AND M%(1,0) = < TAC%(6) AND TAC%(3) < > 1 THEN 11700 14190 IF V% = 0 THEN 14300 14200 REM POUVOIRS 14210 IF V% = 6 AND M%(1,0) > = M%(1,1) THEN 14450 14250 IF V% > 0 AND CO% = 1 THEN 23000 14270 IF CO% = 2 AND V% < > 1 THEN IF FN MTEST(V%) THEN 23000 14290 IF CO% = 3 AND V% = 4 THEN IF FN MTEST(V%) THEN 23000 14300 IF CO% = 2 AND TAC%(3) = 3 AND M%(1,0) = < TAC%(6) THEN 14490 14310 IF CO% = 3 AND M%(1,0) = < TAC%(6) AND TAC%(4) > 0 THEN 11700 14320 IF TAC%(3) = 1 AND CO% < > 1 AND M%(1,0) = < TAC%(6) THEN 11700 14450 IF CO% > 1 AND RND (1) * M%(7 + CO%,0) > RND (1) * M%(12 - CO%,0) THEN 14490 14480 IF CO% < > TAC%(3) THEN ON (3 + (TAC%(3) - CO%) / ABS (TAC%(3) - CO%)) / 2 GOTO 11700,11520 14490 ON CO% GOTO 11520,12525,13540 14500 REM MISE A JOUR 14510 IF WIZ%(6) > 0 THEN KC%(5) = KC%(5) + (CO% = 0): IF KC%(5) > KA%(5) THEN KC%(5) = KA%(5) 14520 IF KC%(5) + WIZ%(5) < 0 THEN PRINT : PRINT "Vous ~tes mort": GOTO 19000 14550 FOR I = 1 TO 6:WIZ%(I) = FN IDP(WIZ%(I) - (CO% = 0)): NEXT I 14570 IF WIZ%(18) > 0 THEN IF 2 * RND (1) * KC%(3) > WIZ%(18) THEN WIZ%(18) = 0: PRINT "La toile c}de vous ~tes libre" 14580 IF WIZ%(18) > 0 THEN PRINT "Vous ne pouvez plus r{agir": GOTO 27200 14590 ON CO% + 1 GOTO 4150,10030,10030,10030 15000 REM 15010 IF OB% = 0 THEN 4150 15020 FOR I = 1 TO OB% 15040 IF FN EQ(I) THEN INVERSE 15050 PRINT OB$(I); 15060 NORMAL 15070 IF OB%(I,1) = 5 OR OB%(I,1) = 6 THEN PRINT ":";OB%(I,6); 15090 PRINT 15100 NEXT I 15110 GOTO 4150 16000 REM TROUVER OBJET 16005 A$ = "": FOR I = 1 TO 15:A$ = A$ + " ": NEXT I 16007 & LOBJ(W%),A$,A%,A%,A%,A%,A%,A%,A%,A% 16010 PRINT : PRINT "Vous trouvez :" 16020 PRINT A$ 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 : RETURN 16080 GOTO 16050 16090 OB% = OB% + 1 16100 B% = OB%:OB$(B%) = "": FOR I = 1 TO 15:OB$(B%) = OB$(B%) + " ": NEXT I 16110 & LOBJ(W%),OB$(B%),OB%(B%,1),OB%(B%,3),OB%(B%,4),OB%(B%,5),OB%(B%,6),OB%(B%,7),OB%(B%,8),OB%(B%,2) 16120 IF AD% < > 0 THEN CALL AD% 16190 RETURN 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 : RETURN 16550 PRINT : GOSUB 9000 16560 IF OB% = 9 THEN PRINT : PRINT "Tu te d{cides, raclure de nain": PRINT : GOTO 16510 16590 PRINT : GOTO 16040 16600 W% = 239 + PEEK (836):AD% = 16399: GOSUB 16000: GOTO 4150 17000 V% = PEEK (836):V% = V% * 100: PRINT : PRINT "Vous gagnez :": PRINT V%;" XP":XP% = XP% + V%: GOSUB 26200: CALL 16411: GOTO 4150 19000 GOSUB 3010: & MODE1,0: PRINT "So long!": GET A$: IF A$ = CHR$ (18) THEN PRINT "Ressuscit{!": & MODE1,1: FOR I = 1 TO 8:KB%(I) = KA%(I):KC%(I) = KA%(I): NEXT I:WIZ%(17) = 0: GOSUB 26100: GOTO 4140 19010 GOTO 19010 20000 FOR I = 1 TO 16: & MM(I),M%(I,0): & MM(I),M%(I,1): NEXT I 20005 FOR I = 1 TO 14: & MRES(I),RES%(I): NEXT I 20010 FOR I = 1 TO 10: & MLOC(I),LOC%(I): & MLOC(I),LOC%(I + 10): NEXT I 20020 FOR I = 1 TO 14: & MTAC(I),TAC%(I): NEXT I 20025 WIZ%(20) = 0: FOR I = 13 TO 16:WIZ%(I) = 0: NEXT I 20026 IF PEEK (837) = 3 THEN TAC%(1) = TAC%(1) + 20 20027 PRINT 20030 A$ = "":CO% = 2:V% = 1: IF WIZ%(3) > 0 THEN 20200 20040 IF RND (1) * M%(14,0) > RND (1) * KC%(8) THEN CO% = TAC%(3) 20050 IF FN ESQ(0) < RND (1) * M%(4,0) THEN 20100 20060 PRINT "Vous combattez": GOSUB 30700 20070 IF V% = 1 THEN 10000 20100 REM REAC MONSTRE 20110 IF TAC%(1) > RND (1) * KA%(6) THEN 14000 20120 & GT(20300 + 100 * TAC%(2)) 20200 REM DETECTION 20210 PRINT "Vous ressentez sa pr{sence" 20220 PRINT "Partez vous" 20230 GOSUB 30700 20240 IF V% = 1 THEN 4150 20250 GOTO 20060 20300 PRINT "Il vous ignore" 20310 IF V% = 0 THEN 4150 20320 PRINT : PRINT "Vous combattez": GOSUB 30700 20330 IF V% = 0 THEN 4150 20340 GOTO 10000 20400 REM PRETRE 20405 IF GP% + WIZ%(21) = 0 THEN 20300 20410 PRINT "Il r{clame un don" 20420 PRINT "Combien raquez vous : "; 20430 L1% = 48:L2% = 57:L3% = 2: GOSUB 2000:DO% = VAL (B$): PRINT 20440 IF DO% = 0 AND GP% + WIZ%(21) > 0 THEN PRINT "Maudit sois tu, sale p{doque d'h{r{tique": GOTO 4150 20445 IF DO% > WIZ%(21) + GP% THEN DO% = GP% + WIZ%(21) 20450 PRINT "Merci keum" 20460 KC%(5) = KC%(5) + RND (1) * DO% * 10: IF KC%(5) > KA%(5) THEN KC%(5) = KA%(5) 20470 WIZ%(21) = WIZ%(21) - DO%: IF WIZ%(21) < 0 THEN GP% = GP% + WIZ%(21):WIZ%(21) = 0 20480 GOTO 4150 20500 REM SUCCUBE 20510 IF KC%(5) < 6 THEN PRINT "Barre toi, sale eunuque": GOTO 4150 20520 PRINT "Elle veut un baiser": GOSUB 30700 20530 IF V% = 0 THEN PRINT "Tu vas morfler, pauvre tantouze": GOTO 10000 20550 KC%(5) = KC%(5) - 5 20560 XP% = XP% + 10 20570 GOTO 4150 20600 REM NECROMANT 20610 PRINT "Il veut un pintede sang pour sesexp{riences" 20620 GOSUB 30700 20630 IF V% = 0 THEN PRINT "Il d{cide de se servir seul": GOTO 10000 20640 KC%(5) = KC%(5) - 5 20650 PRINT "Il vous file 10 P.O.":GP% = GP% + 10 20660 GOTO 4150 20700 REM DRAGON 20705 IF GP% + WIZ%(21) = 0 THEN PRINT "Il n'aime pas les fauch{s": GOTO 10000 20710 PRINT "Il exige tout votre bl{": GOSUB 30700 20720 IF V% = 0 THEN PRINT : GOTO 10000 20730 PRINT "A la prochaine, minus" 20740 GP% = 0:WIZ%(21) = 0 20750 GOTO 4150 20800 REM BANDIT 20805 IF GP% + WIZ%(21) = 0 THEN PRINT "Et en plus T'es fauch{": GOTO 4150 20810 PRINT "Il veut "; 20820 SC% = M%(16,1) + M%(15,1) 20830 IF SC% > GP% + WIZ%(21) THEN SC% = WIZ%(21) + GP% 20840 IF SC% > 99 THEN SC% = 99 20850 PRINT SC%;" P.O." 20860 GOSUB 30700 20870 IF V% = 0 THEN 10000 20880 WIZ%(21) = WIZ%(21) - SC%: IF WIZ%(21) < 0 THEN GP% = GP% + WIZ%(21):WIZ%(21) = 0 20890 GOTO 4150 20900 REM MARCHAND 20910 IF OB% > = 9 THEN 20300 20920 PRINT "Il vous propose" 20930 A% = FN OB(0) 20940 B% = OB% + 1:OB$(B%) = "": FOR I = 1 TO 15:OB$(B%) = OB$(B%) + " ": NEXT I 20950 & LOBJ(A%),OB$(B%),OB%(B%,1),OB%(B%,3),OB%(B%,4),OB%(B%,5),OB%(B%,6),OB%(B%,7),OB%(B%,8),OB%(B%,2) 20960 PRINT OB$(B%): PRINT "Pour ";OB%(B%,2);" P.O." 20970 GOSUB 30700 20980 IF V% = 0 THEN 4150 20990 IF GP% + WIZ%(21) < OB%(B%,2) THEN PRINT "Casse toi va-nu-pieds": GOTO 4150 20992 WIZ%(21) = WIZ%(21) - OB%(B%,2): IF WIZ%(21) < 0 THEN GP% = GP% + WIZ%(21):WIZ%(21) = 0 20994 OB% = OB% + 1 20996 GOSUB 26200: GOTO 4150 21000 REM DEMON 21010 PRINT "Prosterne toi devant ton dieu vil protoplasme microc{phale" 21020 GOSUB 30700 21030 IF V% = 0 THEN PRINT "Blasph}me !!": GOTO 10000 21040 FOR I = 5 TO 6 21050 KC%(I) = FN IDP(KC%(I) + RND (1) * 12 - RND (1) * 12) 21060 NEXT I 21070 & SOUND255,20: PRINT "Vous vous sentezbizarre" 21080 GOTO 4150 22000 REM EFFET DES COUPS 22010 IF FN LC1(10) = 0 THEN LOC% = 0: GOTO 22110 22030 PRINT "Vous atteignez" 22040 LOC% = FN LD( RND (1) * FN LC1(10)) 22050 & LOC(LOC%) 22110 & BL( FN BL(DG%)) 22120 & NOISE1,40,50 * FN BL(DG%): IF CRT% = 0 THEN 22200 22130 IF LOC% > 2 OR FN BL(DG%) < 5 OR LOC% = 0 THEN 22160 22140 A% = RND (1) * 3 + 1: & CRT(LOC%),CRT%,A% 22150 GOTO 22200 22160 IF FN BL(DG%) < 5 OR LOC% = 0 THEN 22300 22170 & ACR(LOC% - 2),CRT% 22200 REM EFFETS DES COUPS 22205 IF FN BL(DG%) < 5 THEN 22300 22210 LOC%(LOC%) = LOC%(LOC%) - 1 22220 IF LOC% = 3 THEN M%(3,0) = FN IDP(M%(3,0) - M%(3,1) / (LOC%(13) + 0.5 * LOC%(15))) 22230 IF LOC% = 5 THEN M%(4,0) = FN IDP(M%(4,0) - 0.5 * M%(4,1) / (LOC%(14) + 0.5 * LOC%(15))):M%(3,0) = FN IDP(M%(3,0) - 0.5 * M%(3,1) / (LOC%(13) + 0.5 * LOC%(15))) 22240 IF LOC% = 4 THEN M%(4,0) = FN IDP(M%(4,0) - M%(4,1) / (LOC%(14) + 0.5 * LOC%(15))) 22250 IF LOC% = 10 THEN M%(14,0) = M%(14,0) * 0.5 22260 IF LOC% = 2 THEN M%(2,0) = FN IDP(M%(2,0) - M%(2,1) / (LOC%(12))) 22270 IF LOC% = 6 AND M%(11,0) = 4 THEN M%(11,0) = 0 22300 IF LOC% = 0 THEN RETURN 22310 IF CRT% = 1 THEN WIZ%(16) = WIZ%(16) + DG% * 0.1 22320 IF CRT% = 2 THEN WIZ%(16) = WIZ%(16) + DG% * 0.2 22330 IF CRT% = 3 THEN WIZ%(13) = WIZ%(13) + DG% 22340 IF (LOC% > 2 OR (LOC% = 2 AND LOC%(2) > 1)) AND M%(1,0) < M%(1,1) * 0.5 THEN 22410 22350 IF LOC% > 2 THEN M%(1,0) = M%(1,0) + DG% * 0.5 22360 IF LOC% > 5 THEN M%(1,0) = M%(1,0) + DG% * 0.25 22370 IF LOC% = 8 THEN WIZ%(13) = WIZ%(13) + RND (1) * DG% 22400 RETURN 22410 M%(1,0) = M%(1,0) + DG% 22420 IF M%(1,0) > M%(1,1) * 0.5 THEN M%(1,0) = M%(1,1) * 0.5 22430 GOTO 22370 23000 REM POUVOIR 23010 V% = M%(13,0) * 0.1 23020 W% = M%(13,0) - V% * 10 23090 & GT(23000 + V% * 100) 23100 REM PROJECTILE 23110 SC% = RND (1) * M%(3,0) - FN ESQ(0) + W% * 5 * RND (1) - WIZ%(10) 23120 A$ = "et touche" 23130 DG% = SC% - RND (1) * ((OB%(EQ%(3),1) = 3) * FN FPA(OB%(EQ%(3),8)) + WIZ%(9)) + RND (1) * W% * 5 23140 PRINT "Il vous envoie": PRINT COM$(TAC%(14)) 23190 GOTO 27800 23200 REM ECLAIR 23210 SC% = RND (1) * M%(4,0) - FN ESQ(0) + RND (1) * W% * 8 23220 A$ = "et touche" 23230 DG% = SC% - OB%(EQ%(1),6) - WIZ%(7) 23240 PRINT "Il vous balance": PRINT COM$(TAC%(14)) 23290 GOTO 27850 23300 REM TOILE 23310 SC% = FN IDP( RND (1) * W% * 6 + RND (1) * M%(4,0) - FN ESQ(0)) 23320 PRINT "Il vous envoie de la toile" 23330 WIZ%(18) = WIZ%(18) + SC%: IF WIZ%(18) > 99 THEN WIZ%(18) = 99 23350 IF WIZ%(18) < 1 THEN PRINT "Vous n'~tes pas affect{" 23390 GOTO 27500 23400 REM DRAINE 23410 PRINT "Il draine votre puissance" 23420 SC% = 0.25 * FN IDP( RND (1) * M%(2,1) - RND (1) * KA%(6) + RND (1) * 6 * W% - OB%(EQ%(1),6) - WIZ%(7)) 23430 DG% = 0.5 * (KC%(3) - FN IDP(KC%(3) - SC%) + KC%(4) - FN IDP(KC%(4) - SC%)) 23440 KC%(3) = FN IDP(KC%(3) - SC%) 23450 KC%(4) = FN IDP(KC%(4) - SC%) 23470 M%(1,0) = M%(1,0) + DG% 23480 IF DG% = 0 THEN PRINT "Vous repoussez l'attaque" 23490 GOTO 27500 23500 REM CHARGE 23502 IF (LOC%(4) + LOC%(5)) / (LOC%(14) + LOC%(15)) < 0.6 THEN 27500 23505 PRINT "Il charge" 23510 IF CO% = 3 THEN 14490 23520 CO% = 2 23530 SC% = RND (1) * M%(3,0) - FN ESQ(0) + RND (1) * 3 * W% 23540 A$ = "et touche" 23550 DG% = SC% - RND (1) * (OB%(EQ%(2),7) + OB%(EQ%(3),7) + WIZ%(9)) + RND (1) * W% * 8 23590 GOTO 27800 23600 REM GUERISON 23610 PRINT "Il entonne une pri}re" 23620 M%(1,0) = M%(1,0) + RND (1) * W% * 10 23630 IF M%(1,0) > M%(1,1) THEN M%(1,0) = M%(1,1) 23690 GOTO 27500 25790 GOTO 27200 26000 REM FIN COMBAT 26010 & MO( INT ( RND (1) * 10) + 1) 26020 GP% = GP% + M%(15,0): PRINT "Argent....:+";M%(15,0) 26030 XP% = XP% + M%(16,0): PRINT "Exp{rience:+";M%(16,0) 26040 & SOUND40,40: & SOUND40,40: & SOUND100,50: POKE 835,1: REM MBUTE 26050 FOR I = 1 TO 4 26060 IF KC%(I) > KA%(I) THEN KC%(I) = KA%(I) 26070 NEXT I 26075 FOR I = TAC%(9) TO 0 STEP - 100 26080 IF I > = RND (1) * 100 THEN W% = FN OB(0):AD% = 0: GOSUB 16000 26081 NEXT I 26082 IF PEEK (829) < > 103 THEN 4150 26083 IF OB% = 0 THEN 4150 26084 V% = 0: FOR I = 1 TO OB%: IF OB$(I) = "Ep{e NIS" THEN V% = 1 26085 NEXT I: IF V% = 0 THEN 4150 26089 A = 23: GOSUB 7900: FOR I = 1 TO 8:KA%(I) = 99:KB%(I) = 99:KC%(I) = 99: NEXT I 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): FOR I = 1 TO 8:KC%(I) = FN CAR(KC%(I)): NEXT I 26205 VTAB 3: HTAB 6: PRINT " ";: HTAB 6: PRINT FN IDP(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: & ST(CO%) 26270 IF WIZ%(17) > 0 THEN VTAB 4: HTAB 12: PRINT "PSN";: GOTO 26290 26280 VTAB 4: HTAB 12: PRINT "BON"; 26290 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 PRINT : GOSUB 26200 27220 ON CO% + 1 GOTO 4140,14000,14000,14000 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 27490 PRINT 27500 REM ERREUR DU PERSO 27520 ON CO% + 1 GOTO 4150,10010,10010,10010 27600 FOR I = 1 TO 3:CRT%(I) = 0: NEXT I 27605 SO%(6) = 0 27610 IF FN UT(EQ%(2)) THEN & LARMEOB%(EQ%(2),8),CRT%(1),CRT%(2),CRT%(3) 27620 IF OB%(EQ%(3),1) < > 3 AND FN UT(EQ%(3)) THEN & LARMEOB%(EQ%(3),8),CRT%(1),CRT%(2),CRT%(3) 27630 CRT% = FN CRT( RND (1) * (CRT%(1) + CRT%(2) + CRT%(3))) 27635 DM% = FN DM(EQ%(2)) + FN DM(EQ%(3)) 27640 IF SC% + DM% > 0 THEN 27660 27650 PRINT "et ratez": & NOISE10,55,20: GOTO 27200 27660 PRINT A$ 27730 IF DM% + DG% = < 0 THEN PRINT "Il pare": & SOUND35,2: GOTO 27200 27740 DM% = FN IDP(DM% - M%(6,0)) 27750 DG% = ( FN IDP(DG% - M%(5,0)) + DM%) * (RES%(SO%(6)) + 10) * 0.1: IF CRT% < > 0 THEN DG% = DG% * (10 + RES%(11 + CRT%)) * 0.1 27760 IF DG% = < 0 THEN PRINT "Sans effet": & NOISE1,255,90: GOTO 27200 27770 M%(1,0) = M%(1,0) - DG% 27780 PV% = M%(1,1): GOSUB 22000 27790 GOTO 27220 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 AND CO% > 0 THEN PRINT "Vous parez": & SOUND35,2: GOTO 27500 27850 DG% = DG% - FN PR(0): GOSUB 35600 27860 IF DG% = < 0 THEN PRINT "Sans effet": & NOISE1,255,90: GOSUB 35650: GOTO 27500 27870 KC%(5) = KC%(5) - DG%: IF CO% = 0 THEN 27880 27873 IF WIZ%(17) = 0 THEN WIZ%(17) = FN MPOU(4) 27875 IF FN MPOU(4) < > 0 AND WIZ%(17) < > 0 THEN WIZ%(17) = 1 + 1 / (1 / WIZ%(17) + 1 / FN MPOU(4)) 27880 PV% = KA%(5):LOC% = 0: GOSUB 22110 27890 GOSUB 35650: GOTO 27520 27900 IF FN UT(EQ%(2)) * EQ%(2) + FN UT(EQ%(3)) * EQ%(3) = 0 THEN 27990 27910 V% = 0: IF EQ%(2) * FN UT(EQ%(2)) = 0 THEN 27960 27920 PRINT "avec votre": PRINT OB$(EQ%(2)):V% = 1 27940 IF EQ%(3) * FN UT(EQ%(3)) = 0 THEN 27980 27950 IF V% = 1 THEN PRINT "et votre": GOTO 27970 27960 PRINT "avec votre" 27970 PRINT OB$(EQ%(3)) 27980 RETURN 27990 PRINT "@ mains nues":DG% = DG% + WIZ%(19) * RND (1): RETURN 30000 REM PIEGES 30100 REM DETECTER 30110 V% = PEEK (836): & PIEGEV%,A$,PI%(1),PI%(2),PI%(3),PI%(4) 30120 PRINT : PRINT A$ 30130 IF RND (1) * KC%(8) + 1 > = PI%(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%(3) - RND (1) * FN IDP(KC%(4) - EN%(1)) * (WIZ%(18) = < 0) 30230 DG% = SC% + RND (1) * PI%(4) 30240 A$ = "Vous vous ~tes laiss{ avoir" 30250 CO% = 0: GOTO 27800 30300 REM DESAMORCER 30310 IF INT ( RND (1) * KC%(7) + 1) < PI%(2) THEN 30200 30320 PRINT "Vous r{ussissez": CALL 16411 30340 GOTO 4150 30500 REM MENUS 30510 & MODE1,2:P% = 1 + PEEK (37): IF P% = 25 THEN PRINT :P% = 24 30520 V% = FN IDP( - V%): IF V% < 1 OR V% > OP% THEN V% = 1 30530 VTAB P%: HTAB 1: PRINT SPC( 15): HTAB 1: PRINT Z$;OP$(V%); 30540 GET A$:PC% = PEEK ( - 16384) 30550 IF PC% = 21 THEN V% = V% + 1: IF V% > OP% THEN V% = 1: GOTO 30530 30560 IF PC% = 8 THEN V% = V% - 1: IF V% < 1 THEN V% = OP%: GOTO 30530 30570 IF PC% = 13 THEN 30680 30580 IF PC% = 27 THEN V% = 0: GOTO 30680 30585 IF VAL (A$) < > 0 AND VAL (A$) = < OP% THEN V% = VAL (A$) 30590 FOR I = 1 TO OP% 30600 IF LEFT$ (OP$(I),1) = A$ THEN V% = I 30610 NEXT I 30650 GOTO 30530 30680 & MODE1,1: FOR I = 1 TO 15:OP$(I) = OQ$(I): NEXT I 30690 RETURN 30700 PRINT "(O/N) ? "; 30710 GET A$ 30720 IF A$ = "N" THEN V% = 0: PRINT : RETURN 30730 IF A$ = "O" THEN V% = 1: PRINT : RETURN 30740 GOTO 30710 31000 FOR I = 2 TO 3 31010 IF OB%(EQ%(I),1) < > 5 AND OB%(EQ%(I),1) < > 6 THEN 31030 31020 IF FN UT(EQ%(I)) THEN OB%(EQ%(I),6) = OB%(EQ%(I),6) - 1 31030 NEXT I 31040 RETURN 32000 REM 32010 OP% = 0 32020 FOR I = 1 TO 15 32030 & LSPELLI,SO%(1),SO%(2),SO%(3),SO%(4),SO%(5) 32040 IF SO%(1) = 0 OR (SO%(2) + SO%(3) + SO%(4) + SO%(5)) = 0 THEN 32060 32050 OP% = OP% + 1:OP%(OP%) = I: & SMAGI,0,OP$(OP%) 32060 NEXT I 32070 IF OP% = 0 THEN PRINT "T'es pas mago sale plouc": GOTO 27500 32080 GOSUB 30500: IF V% = 0 THEN 27490 32090 SO%(6) = OP%(V%) 32100 & LSPELLSO%(6),SO%(1),SO%(2),SO%(3),SO%(4),SO%(5) 32110 OP% = 0: PRINT 32120 FOR I = 1 TO 4 32130 & UTSPELLSO%(6),I,UT%(0),UT%(1),UT%(2),UT%(3) 32140 IF SO%(I + 1) = 0 OR UT%(CO%) = 0 THEN 32160 32150 OP% = OP% + 1:OP%(OP%) = I: & SMAGSO%(6),I,OP$(OP%) 32160 NEXT I 32165 IF OP% = 0 THEN 27500 32170 GOSUB 30500: IF V% = 0 THEN 27490 32180 PRINT :SO%(7) = OP%(V%) 32190 OP% = 0:Z$ = "Puissance : " 32200 FOR I = 1 TO 15 32210 IF FN PM(I) > (KC%(6) + OB%(EQ%(4),5)) THEN 32230 32220 OP% = OP% + 1:OP%(I) = I:OP$(I) = STR$ (I) 32230 NEXT I 32240 IF OP% = 0 THEN PRINT "T'arrives pas @ te concentrer, pauvre loque": GOTO 27500 32250 GOSUB 30500:Z$ = "" 32260 IF V% = 0 THEN 27490 32270 SO%(8) = V% 32280 FOR I = 11 TO 13: & MAG(SO%(6)),SO%(7),I - 10,SO%(I): NEXT I 32290 PRINT 32300 SO%(9) = FN PM(SO%(8)) 32310 OB%(EQ%(4),5) = OB%(EQ%(4),5) - SO%(9) 32320 IF OB%(EQ%(4),5) < 0 THEN KC%(6) = KC%(6) + OB%(EQ%(4),5):OB%(EQ%(4),5) = 0 32330 GOSUB 26200 32340 & SOUND255,7 * LOG (1 + SO%(8)) 32350 & GT(SO%(11) + 35000) 33000 REM OBJ MAG 33020 OP% = 0 33030 FOR I = 1 TO OB% 33040 IF OB%(I,1) > 39 OR OB%(I,1) < 20 THEN 33080 33050 IF OB%(I,3) > KC%(1) OR OB%(I,4) > KC%(2) THEN 33080 33060 IF (OB%(I,1) - 20) > (KC%(6) + OB%(EQ%(4),5)) THEN 33080 33065 IF OB%(I,7) < 1 THEN 33080 33070 OP% = OP% + 1:OP%(OP%) = I:OP$(OP%) = OB$(I) 33080 NEXT I 33090 IF OP% = 0 THEN 27520 33100 GOSUB 30500 33110 IF V% = 0 THEN 27490 33120 SO%(10) = OP%(V%) 33130 SO%(9) = OB%(SO%(10),1) - 20 33150 SO%(8) = OB%(SO%(10),5) 33160 & OBJOB%(SO%(10),6),SO%(6),SO%(2),SO%(3),SO%(4),SO%(5) 33170 OP% = 0 33180 PRINT 33220 FOR I = 1 TO 4 33230 & UTSPELLSO%(6),I,UT%(0),UT%(1),UT%(2),UT%(3) 33240 IF SO%(I + 1) = 0 OR UT%(CO%) = 0 THEN 33260 33250 OP% = OP% + 1:OP%(OP%) = I: & SMAGSO%(6),I,OP$(OP%) 33260 NEXT I 33265 IF OP% = 0 THEN 27520 33270 GOSUB 30500: IF V% = 0 THEN 27490 33280 PRINT :SO%(7) = OP%(V%) 33300 FOR I = 11 TO 13: & MAG(SO%(6)),SO%(7),I - 10,SO%(I): NEXT I 33320 IF OB%(SO%(10),8) < 255 THEN OB%(SO%(10),7) = OB%(SO%(10),7) - 1 33350 GOTO 32310 35000 REM SORTS 35100 REM ECLAIR 35110 DM% = RND (1) * SO%(13) * SO%(8) 35120 SC% = RND (1) * (KC%(3) + KA%(7)) / 2 - RND (1) * (M%(4,0) * NOT ( FN ACT(0)) + M%(12,0) * (M%(11,0) = 2)):DG% = SC% 35130 PRINT : PRINT "Vous d{cochez un projectile magique" 35140 A$ = "et touchez" 35150 CRT% = SO%(12) 35190 GOTO 27640 35200 PRINT : REM EXTERMINATION 35210 IF RND (1) * SO%(13) * (10 + RES%(SO%(6))) * 0.1 * SO%(8) > (M%(16,0) + M%(6,0)) THEN 35230 35220 PRINT "Votre adversairesurvit": GOTO 27200 35230 PRINT "Votre adversaireest {limin{" 35240 M%(1,0) = - 1: GOTO 27200 35300 REM SORTIE DONJON 35310 A$ = "Les {manations sont trop fortes":A = PEEK (837) 35320 SC% = RND (1) * SO%(8) * 10 35340 IF A = 0 THEN PRINT : PRINT "T'es d{j@ dehorsnigaud!": GOTO 27220 35350 IF A = 8 THEN PRINT : PRINT A$: GOTO 27220 35360 DG% = RND (1) * 10 * (1 + A * (A < 10)) 35370 IF SC% < DG% THEN A = 8: GOTO 35350 35390 CALL 16420: GOSUB 26100: GOTO 4170 35400 REM PEUR 35410 SC% = RND (1) * SO%(8) * SO%(13) - RND (1) * (M%(2,0) + M%(16,0)) - M%(6,0) 35420 IF SC% = < 0 THEN PRINT : PRINT "Le sort {choue": GOTO 27200 35430 TAC%(4) = TAC%(4) + SC% 35440 GOTO 27200 35500 REM CHARME 35510 SC% = RND (1) * SO%(8) * SO%(13) - RND (1) * (M%(2,0) + M%(16,0)) - M%(6,0) 35520 IF SC% < 1 THEN 35420 35530 PRINT : PRINT "Il capitule" 35540 IF M%(15,0) > 0 THEN GP% = GP% + M%(15,0): PRINT "Argent....:+";M%(15,0) 35550 GOTO 4150 35600 REM REFLECTION 35620 DV% = RND (1) * WIZ%(12): IF DV% > DG% THEN DV% = DG% 35630 DG% = FN IDP(DG% - DV%) 35640 RETURN 35650 IF WIZ%(12) < 1 OR DV% < 1 OR CO% = 0 THEN RETURN 35660 PRINT : PRINT "L'impact est r{fl{chi" 35670 CRT% = 0:LOC% = 0 35680 DG% = FN IDP(DV% - M%(5,0) - M%(6,0)):PV% = M%(1,1):M%(1,0) = M%(1,0) - DG% 35685 IF DG% = 0 THEN PRINT "Sans effet": RETURN 35690 GOSUB 22110: RETURN 35700 REM REVELATEUR 35710 IF M%(11,0) = 2 THEN M%(12,0) = FN IDP(M%(12,0) - RND (1) * 12 * SO%(8)) 35790 GOTO 27200 35800 REM SOINS 35810 KC%(5) = KC%(5) + FN S(SO%(8)) 35820 IF KC%(5) > KA%(5) THEN KC%(5) = KA%(5) 35830 GOTO 27200 35900 REM RECUPERATION 35910 FOR I = 1 TO 4 35920 IF KC%(I) > KA%(I) THEN 35950 35930 KC%(I) = KC%(I) + FN S(SO%(8)) 35940 IF KC%(I) > KA%(I) THEN KC%(I) = KA%(I) 35950 NEXT I 35990 GOTO 27200 36000 REM GUERISON 36010 WIZ%(17) = WIZ%(17) + RND (1) * SO%(8) * 20: IF WIZ%(17) > 50 THEN WIZ%(17) = 0: PRINT "Vous ~tes gu{ri" 36020 IF WIZ%(17) < > 0 THEN PRINT "le poison agit encore" 36090 GOTO 27200 36100 REM EVASION 36110 SC% = RND (1) * SO%(13) * SO%(8) 36120 IF SC% > M%(4,0) THEN 36140 36130 SC% = - 1: GOTO 35420 36140 PRINT "Vous fuyez": GOTO 4150 36300 REM LIBERATION 36310 WIZ%(18) = WIZ%(18) - SO%(8) * SO%(13) * RND (1) 36320 IF WIZ%(18) < - 200 THEN WIZ%(18) = - 200 36390 GOTO 27200 36400 REM REPOUSSER 36410 SC% = RND (1) * 10 * SO%(8) 36420 SC% = SC% / ( RND (1) * M%(3,0) + 1) 36430 CO% = 1 + FN IDP(CO% - 1 - SC%) 36440 PRINT : GOTO 27200 37000 REM SORTS GENERIQUES 37100 REM AUGMENTER 37110 SC% = KC%(SO%(12)) 37120 IF SC% > KA%(SO%(12)) THEN SC% = KA%(SO%(12)) 37130 SC% = SC% + RND (1) * SO%(8) * SO%(13) 37140 IF SC% > KC%(SO%(12)) THEN KC%(SO%(12)) = SC% 37150 GOTO 27200 37200 REM DIMINUER 37210 SC% = FN IDP( RND (1) * SO%(8) * SO%(13) - M%(6,0)) 37220 M%(SO%(12),0) = FN IDP(M%(SO%(12),0) - SC%) 37230 GOTO 27200 37300 SC% = RND (1) * SO%(8) * (SO%(13)) 37305 IF SO%(6) < 12 THEN SC% = SC% * 0.1 * (10 + RES%(SO%(6)) * (SO%(12) > 12 AND SO%(12) < 17)) 37310 SC% = SC% + WIZ%(SO%(12)) * ((SO%(12) < 7) OR (SO%(12) > 12)) 37320 IF SC% > WIZ%(SO%(12)) THEN WIZ%(SO%(12)) = SC% 37340 GOTO 27200 37400 REM ENCOMBREMENTS 37410 ENC%(SO%(12)) = FN IDP(OB%(EQ%(1),SO%(12) + 6) + (OB%(EQ%(3),SO%(12) + 4)) * (OB%(EQ%(3),1) = 3) - SO%(8)) 37420 GOTO 27200 40000 REM CHARGE PLAYER 40010 A = USR (0): & READ "PLAYER": INPUT NM$,NA%,NM%,CY%,CX%,CL%,RA%,NJ% 40020 FOR I = 1 TO 8: INPUT KA%(I),KB%(I),KC%(I): NEXT I 40030 INPUT GP%,XP%,WZ%: FOR I = 1 TO 21: INPUT WIZ%(I): NEXT I 40040 FOR I = 1 TO 4: INPUT EQ%(I): NEXT I: INPUT ENC%(1),ENC%(2),OB% 40050 IF OB% = 0 THEN 40070 40060 FOR I = 1 TO OB%: INPUT OB$(I): FOR J = 1 TO 8: INPUT OB%(I,J): NEXT J: NEXT I 40070 FOR I = 1 TO 15: INPUT SO%(1),SO%(2),SO%(3),SO%(4),SO%(5):A = USR (1): & ESPELLI,SO%(1),SO%(2),SO%(3),SO%(4),SO%(5):A = USR (0): NEXT I 40080 POKE 826,NA%: POKE 827,NM%: POKE 828,NM%: POKE 837,NA%: POKE 23,CY%: POKE 24,CX%: POKE 16432,CL% 40085 A = USR (1): & MODE1,1: HTAB 25: VTAB 24:A = USR (0) 40090 & END : RETURN 40100 REM CHARGE CARTE 40110 A = USR (0):A = PEEK (826): IF A < > 0 AND V% < > 0 THEN GOSUB 41000 40120 A = PEEK (837): IF A > 9 THEN GOSUB 40200: CLEAR : & RUN "T",20480 40130 V% = PEEK (837): GOSUB 40500:A = PEEK (837): FOR I = 1 TO 3: POKE 236,I:A$ = "BK2." + STR$ (A) + "." + STR$ (I): & RECALL A$,2304: CALL 16417: NEXT I 40140 V% = PEEK (827):A$ = "MAP." + STR$ (A) + "." + STR$ (V%): & RECALL A$,5376: CALL 16408: CALL 16396:A = USR (1) 40150 RETURN 40200 REM SAUVE JEU 40205 A = USR (0):V% = 2: GOSUB 40520 40210 A$ = "PLAYER": & DEL A$: & DEF A$,4: & PRINT A$: PRINT NM$: PRINT PEEK (837): PRINT PEEK (827): PRINT PEEK (23): PRINT PEEK (24): PRINT CL%: PRINT RA%: PRINT NJ%: FOR I = 1 TO 8: PRINT KA%(I): PRINT KB%(I): PRINT KC%(I): NEXT I 40220 PRINT GP%: PRINT XP%: PRINT WZ%: FOR I = 1 TO 21: PRINT WIZ%(I): NEXT I: FOR I = 1 TO 4: PRINT EQ%(I): NEXT I: PRINT ENC%(1): PRINT ENC%(2): PRINT OB% 40225 IF OB% = 0 THEN 40240 40230 FOR I = 1 TO OB%: PRINT OB$(I): FOR J = 1 TO 8: PRINT OB%(I,J): NEXT J: NEXT I 40240 FOR I = 1 TO 15:A = USR (1): & LSPELLI,SO%(1),SO%(2),SO%(3),SO%(4),SO%(5):A = USR (0): PRINT SO%(1): PRINT SO%(2): PRINT SO%(3): PRINT SO%(4): PRINT SO%(5): NEXT I 40300 & END : RETURN 40500 REM CHERCHE FACE 40510 CALL 16408:A = USR (1): & FACEV%,V% 40520 A = USR (0): & READ "FACE": INPUT A: & END 40530 IF A < > V% THEN PRINT "Ins{rez la face "V%" SVP.";: GET A$: PRINT : GOTO 40520 40540 RETURN 40600 REM NEXT MAP(MEME NATURE) 40610 A = USR (0):A = PEEK (837): IF A < > 0 THEN GOSUB 41000 40620 V% = PEEK (827):A$ = "MAP." + STR$ (A) + "." + STR$ (V%): & RECALL A$,5376:A = USR (1): GOTO 4140 41000 A$ = "MAP." + STR$ (A) + "." + STR$ ( PEEK (828)): & DEL A$: & STORE A$,5376,2483: RETURN 41010 A$ = "MAP." + STR$ (A) + "." + STR$ ( PEEK (827)):A = USR (0): & DEL A$: & STORE A$,5376,2483: RETURN