!% $MAX_DICT_ENTRIES=2000 Constant Story "EKPHRASIS"; Constant Headline "^Les Aventures de Gilbert Fontenelle^^"; Serial "050718"; Release 0; Constant GG_MAPWIN_ROCK 210; Constant MAX_PHONE_LENGTH = 30; Global gg_mapwin = 0; Global gg_musicchan = 0; Attribute Chaud; Attribute jardin; Attribute noir; Attribute france; Include "Parser"; Include "VerbLib"; Include "Infglk"; [ InitGlkWindow winrock; switch (winrock) { GG_STATUSWIN_ROCK: rtrue; } rfalse; ]; !------------------------------------------------------------------------------- ! Routines sympas !------------------------------------------------------------------------------- [ ChooseObjects obj code; if (code<2) { if (obj has scenery) return 2; rfalse; } if (action_to_be==##Eat && obj has edible) return 3; if (obj hasnt scenery) return 2; return 1; ]; [Attend; KeyCharPrimitive(); ]; Array dialled_number -> MAX_PHONE_LENGTH + 1; [ PhoneNumber at length dialled dialled_already i; do { if (wn > num_words) jump number_ended; at = WordAddress(wn); length = WordLength(wn); for (i=0: ii) { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': if (dialled < MAX_PHONE_LENGTH) dialled_number -> (++dialled) = at->i - '0'; '-': ; default: jump number_ended; } } wn++; dialled_already = dialled; } until (false); .number_ended; if (dialled_already == 0) return GPR_FAIL; dialled_number->0 = dialled_already; return GPR_PREPOSITION; ]; [Affiche k; if (gg_mapwin) {} else { gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); } glk_image_draw(gg_mapwin,k, 0, 0); ]; [Joue k; if (gg_musicchan) {} else { gg_musicchan = glk_schannel_create(0); } glk_schannel_play_ext(gg_musicchan, k, 1, 0); ]; [Nettoie; glk_window_clear(gg_mainwin); ]; [ IdentifyGlkObject phase type ref rock res id; res = res; id = id; ! <- These are just warning squashers if (phase == 0) { ! Zero out references to our objects. gg_mapwin = 0; gg_musicchan = 0; } if (phase == 1) { ! Reset our windows, streams and filerefs. switch (type) { 0: switch (rock) { GG_MAPWIN_ROCK: gg_mapwin = ref; } 1: ! stream 2: ! fileref } } if (phase == 2) { ! Update our objects. ! RedrawMapInMapWindow(); ! Or do anything you like... return location.description(); } return; ]; [Gras; ! style Gras glk_set_style(style_Emphasized); ]; [Italique; ! Italique glk_set_style(style_Note); ]; [Normal; ! style normal glk_set_style(style_Normal); ]; !------------------------------------------------------------------------------- ! Lieux - Stockage !------------------------------------------------------------------------------- Object stockage "Lethé"; !------------------------------------------------------------------------------- ! Lieux - Rome !------------------------------------------------------------------------------- Object start "A l'Ombre des Colonnes de St Pierre" with description [;Affiche(1); Joue(208); print "Me voilà à l'ombre de la plus grande basilique chrétienne, foulant des dalles usées par des millions de pelerins à travers les siècles, mais aussi par les plus grands de temps révolus, comme Michel Ange, Bramante, Raphael, imprégnant de leur Génie et instillant leur Présence Terrible dans l'éternité de ces murs sacrés.^";], out_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", s_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", n_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", e_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", w_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", has scenery; Object study "Etude privée du Musée du Vatican" with description [;Affiche(2); print "Cette étude privée est décorée de meubles design et précieux, lui donnant un aspect d'hotel luxueux. Les murs et les plafonds sont recouverts de bois laqué et d'un jeu de miroir subtil aux bordures dorées. Sur le sol un tapis donne à mes pas un bruit onctueux qui renforce l'atmosphére capitonnée et le secret de l'endroit.^^Seuls quelques objets authentiques et une impressionnante collection de livres religieux rappellent la localisation particulière de cet endroit insolite. ^";], out_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", s_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", n_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", e_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", w_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris. ", has scenery; !------------------------------------------------------------------------------- ! Lieux - Florence !------------------------------------------------------------------------------- Object pv "Devant la boutique de Pazzi, Encadreur" with description [;Affiche(3); print "^Le coeur du Ponte Vecchio semble une rue florentine comme une autre, si ce n'était le bruissement continu de l'eau que l'on sent proche.^^Les étages des maisons centenaires vont en s'élargissant jusqu'à presque se toucher d'un bord de la rue à l'autre, portant un léger ombrage et imposant un lourd silence.^^Là se dresse la boutique d'encadrement de Pazzi, aux volets clôts et à l'apparence austère, malgré les couleurs vives de sa façade peinte.^";], s_to dock, n_to "Pour l'instant, j'ai autre chose à faire que de me perdre dans Florence.^", cant_go "^Au sud, c'est la rive de l'Arno d'où je viens. Et ailleurs, je me perdrais !^", has scenery chaud; Object dock "Sur une rive de l'Arno" with description [;Affiche(4);Joue(43);if (portepv.frapped==1) {portepv.frapped=2;Bateauspot();} print "^Les rues pavées de pierre et d'histoire de Florence m'ont mené sur cette vue enchanteresse de l'Arno surplombé par le célébre Ponte Vecchio.^^La végétation fluviale recouvre le quai dont la pente douce plonge en contrebas dans l'eau tranquille.^^Une petite rue plus au nord mène vers le Ponte Vecchio.^";if (bateau.bouged==1) {print "^Et moi, je suis coincé sur un bateau en panne, juste sous le Ponte Vecchio. Super, les vacances en Italie !^";}], s_to "Il me semble qu'il est encore trop tôt pour rentrer à Paris.^^", n_to pv, cant_go "^Le Ponte Vecchio est au nord, et sinon...bon, je vais pas repartir tout de suite. ^", has scenery chaud; Object terrasse "Terrasse Florentine sur l'Arno" with description [;Affiche(5);print "^Cette petite terrasse de pierre platrée de jaune s'ouvre sur le spectacle enchanteur de l'Arno encadré par deux rangées de bâtiments classiques italiens.^^Au fond, un escalier descend dans une pièce sombre.^";if (marco in terrasse) {give self ~chaud;print "^^Mais pour le moment, l'heure n'est pas vraiment à l'extase : je me rattrape à peine tout au bord de cette terrasse, et je me sens glisser !^^";} else {give self chaud;}], react_before [;Go : if (marco in terrasse) {print "^Impossible ! Si je bouge, je tombe !^";}], d_to [;if (marco notin terrasse) {return boutique;}], in_to [;if (marco notin terrasse) {return boutique;}], has scenery; Object boutique "Dans la boutique de Pazzi, encadreur" with description [;Affiche(6);print "^Les volets clos permettent au lieu de garder une certaine fraîcheur et enveloppent l'interieur d'une pénombre que vient éclaircir une faible ampoule grésillante.^^Les parois sont percées de centaines de clous auxquels pendent des coins de cadres de tableau ciselés dans une diversité de bois impressionnante.^^L'atmosphère capitonée d'une odeur de vieux bois cuit par la chaleur, de peinture synthétique, me rappellent les ateliers parisiens de peintres - l'authenticité en plus.^";], out_to "^Ce n'est pas encore le moment de sortir, j'ai encore des questions à régler ici. ^", u_to terrasse, cant_go "^Ce n'est pas encore le moment de sortir (bien que je puisse remonter sur la terrasse). ^", has scenery; !------------------------------------------------------------------------------- ! Lieux - Paris !------------------------------------------------------------------------------- Object sorbonne "Place de la Sorbonne, en face de l'Université" with description [;Affiche(7);Joue(187);print "^Au coeur du 5ème arrondissement, flanquée de bâtiments haussmaniens et d'une place où s'alignent des fontaines d'où s'envolent des nuées de pigeons, l'Université Paris Sorbonne se dresse, élevant dans ses hauteurs un clocher de chapelle et une tour d'observatoire.^^Et dans mon dos roule la rumeur du boulevard Saint Michel, ses voitures et ses touristes venus le temps de l'été remplacer les étudiants sur cette place pavée de pierres anciennes.^";], n_to "^Ah, j'irais bien faire un tour en ville, à Châtelet, ou dans le Marais, visiter le Louvre, pourquoi pas ? Mais j'ai plus urgent d'abord.^", w_to [;print "^(Je traverse rapidement les couloirs recouverts de bois vernis et les cours intérieures pavées pour me rendre dans la section histoire de l'Art)^";Attend();return universite;], e_to "^Oui, j'irais bien faire un tour au Jardin du Luxembourg, mais l'heure n'est pas à la détente. Pas encore, malheureusement. ^", s_to [;if (faxl.lu>1) {return bibliofront;} else {print "^Vers le panthéon, ou la Bibliothèque Sainte Genevieve ? Volontiers, mais pas tout de suite. ^";return 1;}], in_to [;print "^(Je traverse rapidement les couloirs recouverts de bois vernis et les cours intérieures pavées pour me rendre dans la section histoire de l'Art)^";Attend(); return universite;], has scenery france; Object universite "Université de la Sorbonne, section Histoire de l'Art" with description [;Affiche(8);print "^Voilà les murs qui d'ordinaire circonscrivent mon quotidien, des murs aux coins de pierre sculptés en colonnes surmontées de listels aux motifs floraux, de panneaux de bois usé et vernis qui diffuse dans les classes et les couloirs la fragrance des siècles.^^La section de l'art ne contient aucun trésor particulier - nous les réservons pour le Louvre - si ce n'est la compétence de leurs enseignants...et les quelques écrits inédits que je consigne dans mon bureau.^";], each_turn [k; k = random(20); switch(k) { 1: print "^Un collègue de la section Histoire passe d'un pas pressé et résonnant dans les couloirs. Comme je n'ai aucune envie de parler à ce prétentieux de premiere, je détourne rapidement le regard. L'enfer, c'est la prétention de l'autre, comme disait, justement, l'autre, en ces mêmes murs.^^Il s'éloigne en quelques secondes. ^"; 2: print "^Un groupe d'étudiants d'été étrangers passe bruyamment et trouble la quiétude centenaire de ces lieux. Ils tournent le cou pour me dévisager, mais apparemment, je ne leur dis rien, et s'en vont en quelques pas rapides. ^"; 3: print "^Incroyable !^Un couple de touristes déambule comme si nous étions dans, je ne sais pas, la tour Eiffel, et prennent des photos. Mais que fait le gardien ?^Heureusement qu'ils s'éloignent d'un pas plus rapide après mon regard meutrier.^"; 4: print "^Aucun bruit ne vient dissiper la torpeur studieuse de ces lieux centenaires. ^"; 5: print "^Un petit groupe de premières années passent rapidement dans le couloir en me faisant un petit signe de la main. Apparemment, ils viennent de s'inscrire pour la prochaine année. Ils ne perdent rien pour attendre ! ^ "; 6: print "^Un employé administratif vient relever le tableau d'affichage, prend quelques notes, et biffe une petite mention.^Son téléphone portable sonne, et il décroche en s'éloignant à pas rapides. ^"; 7: print "^Un assistant franchit le couloir d'un pas rapide, me sert la main. ^^~Et comment va Maurice ?~^^Pourquoi Maurice et pourquoi pas moi dont on prend les nouvelles ? C'est moi qui ait des soucis ! Je grommelle un vague truc et il s'enfuit presque en courant. ^"; }], n_to "^Les classes seront vides, à cette époque de l'année. ^", w_to portebureau, in_to portebureau, e_to [;print "^(Je traverse rapidement les couloirs recouverts de bois vernis et les cours intérieures pavées pour me rendre devant l'Université)^"; return sorbonne;], s_to "^Notre section d'étude est fermée - et vide, également. ^", out_to [;print "^(Je traverse rapidement les couloirs recouverts de bois vernis et les cours intérieures pavées pour me rendre devant l'Université)^"; return sorbonne;], has scenery france; Object portebureau "porte de mon bureau" universite with description "^Une belle porte en bois donnant accès à mon bureau, aussi appelé Naos de la connaissance, ou, par certains élèves, ~l'antre du Dragon.~^", name 'porte' 'bureau', door_to bureauf, door_dir in_to, with_key clef has scenery female openable door static lockable locked; Object bureauf "Bureau de Gilbert Fontenelle" with description [;Affiche(9); print "^Voici un lieu de paix où je passe le plus clair de mon temps.^^En ces lieux oeuvrèrent d'illustres oubliés auxquels l'histoire de l'art doit tout, et j'ai pour objectif de les rejoindre un jour.^^La surface déjà modeste de l'endroit est diminuée par les nombreux meubles remplis d'ouvrages de consultation et les innombrables thèses inachevées sur divers sujets de l'histoire de l'art. ^";], out_to universite, e_to universite, cant_go "^Je peux juste sortir du bureau (la porte est coté est).^ ", has scenery france; Object bibliofront "Place des Grands Hommes, A l'Ombre du Panthéon, Devant la Bibliothèque Sainte Genevieve" with description [; Affiche(35); print "^Dans ce concentré de culture et d'histoire, cernée par les solennels bâtiments de pierre blanche que sont l'austère faculté de droit, la Sorbonne centenaire et l'auguste et immense Panthéon surplombant le haut de la colline Ste Genevieve se dresse une structure à deux niveaux dont les façades sont gravées aux noms et aux bustes des plus illustres noms de l'histoire des arts français.^^Les routes ici sont pavées, et sur ces mêmes pavés il y a des siècles se rendaient déjà les érudits en ce lieu de secret et de science.^^ Ah, j'y ai passé, du temps, entre ces murs, il y a bien longtemps.^ ";], n_to sorbonne, w_to "^J'irais flâner dans la sympathique rue Mouffetard une autre fois. ", e_to "^Oui, j'irais bien faire un tour au Jardin du Luxembourg, mais l'heure n'est pas à la détente. Pas encore, malheureusement. ^", s_to "^Aha, vers l'institut Océanographique, pourquoi pas ? Mais pas maintenant.^", in_to biblio1, has scenery france; Object biblio1 "Bibliothèque Sainte Genevieve, Rez de Chaussée" with description [; Affiche(36); giuliana.loin=0; print "^Le Hall d'entrée est soutenu par deux rangées de colonnes menant sur un imposant escalier dédoublé, inondé de la lumière filtrant par de longs vitraux, donnant accès à la bibliothèque proprement dite.^^Plus avant, deux tables d'accueil reçoivent, un par un, les nombreux étudiants qui souhaitent accèder aux services de la bibliothèque.^^Les bruits sont ceux de pas feutrés, de chuchotements et d'onctueux froissements de papiers, et quant aux senteurs...bois ancien, poussière centenaire : un vrai musée.^ ";], out_to bibliofront, u_to [;print "^Je m'approche de l'escalier et me fais interpeller par la bibliothécaire :^^~Hé là ! Vous avez votre carte ?~";Attend();if (carte in gilbert) {print "^^Je lui colle la carte de Charles Edouard sous le nez, en masquant la photo avec mon pouce.^^~Oui.~^^Elle serre les poings et pince les lèvres, puis s'en retourne et me laisse gravir les marches.^^(Giuliana reste en retrait, ne pouvant me suivre.)^^";Attend();giuliana.loin=1;return biblio2;} else {print "^^Oh, elle va m'ennuyer longtemps ?^^~Non.~ ^^Elle affiche un sourire sadique et dit d'un ton faussement désolé : ~Alors nous ne pouvons vous laisser accéder à la bibliothèque. Faites une demande en septembre prochain. ~^";Attend();return 1;}], cant_go "^Je peux juste sortir d'ici ou monter à l'étage. ^", has scenery france; Object biblio2 "Bibliothèque Sainte Genevieve, 1er Etage" with description [; Affiche(37); print "^L'escalier donne sur une pièce impressionnante longue d'une centaine de mètres, et haute de trois niveaux ; le 1er et le 2ème niveau sont des étagères recouvertes de livres et protégées par une grille en fer forgé, et le dernier est percé de fenêtres quadrillées de carreaux et déployant la lumière du jour sur les innombrables tables d'études.^^Nombre d'étudiants sont plongés dans la lecture attentive des ouvrages et un silence paisible règne - on n'entend pas le trafic urbain au travers de ces murs épais.^^L'ouvrage que je cherche - L'Ekphrasis n'est pas de ces livres que l'on peut exposer à la lumière du jour, il ne doit pas être par ici, mais vraisemblablement dans un lieu plus sûr.^";], d_to biblio1, cant_go "^Je peux juste descendre au rez-de-chaussée de la Bibliothèque.^ ", has scenery france; !------------------------------------------------------------------------------- ! Lieux - Rêve !------------------------------------------------------------------------------- Object dream "Trouble obscurité séparant la conscience du rêve" with description [; Affiche(55); print "^Un endroit noir et froid, contrastant avec la douce chaleur se répandant dans mon corps depuis mon bras.^^Au loin, je distingue les contours mouvants d'une porte inondée de lumière.^^";], out_to duomo, cant_go "A priori, la seule issue consiste à sortir d'ici...", has scenery; Object duomo "Cathédrale du Duomo" with description [; Affiche(56); print "^Voici la Cathédrale de Florence, le fameux Duomo qui caractèrise l'immortelle cité.^Les murs et les vitraux me semblent d'une couleur et d'un trait issu du passé, mais le mobilier, des allées de bancs de bois noirs, sont eux, bien contemporains.^^Le sacré qui émane des visions ondulantes qui m'entourent est brisé par une musique de guitare électrique surréelle, surgie de partout et de nulle part à la fois.^";], each_turn [;Italique();switch(self.song) { 0 : print "^Une musique surgie de nulle part retentit dans des accents inquietants.^"; 1 : print "^Reach out and touch faith !^"; 2 : print "^Your own Personal Jesus^"; 3 : print "^Someone to hear your prayers^"; 4 : print "^Someone who cares^"; 5 : print "^Your own Personal Jesus^"; 6 : print "^Someone to hear your prayers^"; 7 : print "^Someone who's there^"; 8 : print "^Feeling's unknown and you're all alone^"; 9 : print "^Flesh and bone by the telephone^"; 10 : print "^Lift up the receiver^"; 11 : print "^I'll make you believer^"; 12 : print "^Take second best^"; 13 : print "^Put me to the test^"; 14 : print "^Things on your shest^"; 15 : print "^You need to confess^"; 16 : print "^I will deliver^"; 17 : print "^You know I'm a forgiver^"; 18 : print "^Reach out and touch faith^"; 19 : print "^Your own Personal Jesus^"; 20 : print "^UFeeling's unknown and you're all alone^"; 21 : print "^Flesh and bone by the telephone^"; 22 : print "^Lift up the receiver^"; 23 : print "^I'll make you believer^"; 24 : print "^I will deliver^"; 25 : print "^You know I'm a forgiver^"; 26 : print "^Reach out and touch faith^"; 27 : print "^Your own Personal Jesus^"; 28 : print "^Reach out and touch faith^";self.song=0; } self.song++;Normal();], cant_go "^Je ne vois aucune issue, où qu'elle puisse se trouver !^", song 0, has scenery; Object acheron "Sur l'Achéron (dans la barque de Charon)" with description [; Affiche(59); Joue(43); print "^Dans un paysage cataclysmique, la barque de bois brut du passeur mythique, Charon, s'éloigne d'une rive ou les désespérés se massent dans l'attente du passage vers les contrées des Morts.^^Un lourd brouillard se dresse comme une barrière à l'opposé de la rive, masquant notre destination.^";], before [;Swim, Jump : "^L'Acheron est mortel si l'on est pas fils d'un dieu. ^";], each_turn [k; k = random(12); switch(k) { 1: print "^Une vague brûlante clapote contre un flanc de la barque dans des embruns fumants. ^"; 2: print "^Le bras d'un mort surgit des flots tumultueux de l'Achéron et s'agrippe à la robe de Charon, qui le rejette à l'eau rapidement. ^"; 3: print "^La longue plainte des damnés passe au dessus des flots et vient me glacer le sang. ^"; 4: print "^Un vent glacé souffle depuis les berges désolées hantées par les fantômes. ^"; 5: print "^Dans un ciel uniformément gris, une longue aurore boréale se dénoue vers l'horizon. ^ "; 6: print "^Quelques âmes perdues nagent autour de notre barque, le corps meutris par les flots meurtriers du fleuve des morts. ^"; 7: print "^Un fantôme tourne autour de moi, ombre blanche où se dessine un visage, puis disparait dans le brouillard qui enveloppe les alentours.^"; } ], cant_go "^Ah, j'ai aucune envie de faire la brasse dans le Styx !^", out_to "^Ah, j'ai aucune envie de faire la brasse dans le Styx !^", has scenery; Object plage "Rivage de l'Ile des Morts" with description [; Affiche(65); Joue(183); print "^Moi qui croyais me retrouver dans la Villa Am Meer de Böcklin, me voici sur une pâle copie...^^Une plage de sable glacé borde un océan infini calme comme un miroir ; et dans le reflet de ce miroir, les remous complexes des nuées mouvantes.^^Un vent tranquille souffle et courbe les peupliers, un vent froid, habité de fantômes.^^Un escalier ancien poli par le temps monte vers une maison creusée dans la roche.^";], before [;Swim, Jump : "^L'Acheron est mortel si l'on est pas fils d'un dieu. ^";], cant_go "^Ah, j'ai aucune envie de faire la brasse dans le Styx !^^A priori, je peux juste monter là bas. ^", u_to crypte, has scenery; Object crypte "Crypte" with description [; Affiche(66); Joue(186); print "^Dans la roche de l'île s'étend un long couloir soutenu d'ogives gothiques et illuminées de chandeliers portant leur unique flamme.^^Le vent s'engouffre ici comme une plainte murmurante, me poussant vers l'avant dans une pièce lumineuse.^";], cant_go "^Tout droit, vers le nord, la crypte continue vers une pièce lumineuse, et je peux descendre les marches vers le sud, pour revenir sur la plage. ^", n_to [; if (stgeorge.parled==0) {ApparitionStG();move stgeorge to crypte;stgeorge.parled=1;return 1;} if (stgeorge.parled==1) {print "^Saint George pointe sa lance vers moi, et bien qu'elle soit de toile, elle me semble fort impressionante !^^Je recule de quelques pas. Réflechissons, réflechissons. ^";return 1;} else {return piecemaitres;}], s_to plage, d_to plage, out_to plage, has scenery; Object piecemaitres "Etrange Endroit" with description [; Affiche(69); if (self.entred==0) {print "^A peine ai-je pénétré dans cette pièce de silence que l'ouverture derrière moi se referme et disparait. ^";Attend();self.entred=1;} print "^Voici une pièce couverte de dalles rouges aux accents méditerranéens. Un crépis blanc recouvre tous les murs de cette pièce totalement fermée, illuminée d'une petite lampe posée sur une table.^^Plus que jamais, j'ai l'impression d'être dans un rêve. ^";], cant_go "^La pièce ne semble avoir aucune issue à présent. ^", entred 0, has scenery; !------------------------------------------------------------------------------- ! Lieux - Louvre !------------------------------------------------------------------------------- Object saloncarre "Salon Carré" with description [; Affiche(71); print "^Le Salon Carré du Louvre, la pièce la plus fontenellienne de ce musée immortel.^^Aux murs sont suspendus les plus belles pièces de la pré-renaissance italienne : Perugin, Fra Angelico, et un tableau de uccello qui maintenant me parait trop familier.^^Le sol est de plancher vernis, et les murs blancs s'ouvrent sur un plafond de dorures entrelacées. ^";], each_turn [k l; if (self.ronde==0) { k = random(6); switch(k) { 1 : print "^Deux hommes vétus de costumes noirs longent les murs de la galerie des italiens, regardant les alentours avec circonspection.^"; 2 : print "^Dans la grande galerie des italiens, vous voyez deux types louches.^"; 3 : print "^Dans la grande galerie des italiens, vous voyez deux types louches. L'un d'entre eux ajuste le veston de son complice. ^"; 4 : print "^Vous entendez les pas des deux hommes dans la grande galerie des italiens.^"; 5 : print "^L'un des deux hommes qui surveillent la grande galerie des italiens s'arrête devant un tableau de "; l = random(10); switch(l) { 1 : print "Le Corrège"; 2 : print "Antonello da messina"; 3 : print "Arcimboldo"; 4 : print "Léonard de Vinci"; 5 : print "Caravage"; 6 : print "Botticelli"; 7 : print "Le Titien"; 8 : print "Piero della francesca"; 9 : print "Mantegna"; 10 : print "Pérugin"; } print " et montre quelque chose à son camarade. Ils commencent à commenter le tableau.^";self.ronde++; 6 : print "^Deux hommes vétus de costumes noirs longent les murs de la galerie des italiens, regardant les alentours avec circonspection.^"; } } else {self.ronde++;print "^Les deux types font des commentaires en italien sur tableau.^"; if (self.ronde==4) {self.ronde=0;print "^Puis l'un d'entre eux semble percevoir un bruit et ils se déplacent un peu plus loin.^";}} ], cant_go "^Il n'y a qu'une sortie accessible, la Grande Galerie des Italiens au nord. ^", n_to [;print "^Alors que je m'avance dans la galerie des italiens, Maurice me retient par le bras : ^^~ Attention, Gilbert ! J'ai pu passer en douce car ils n'étaient pas là tout à l'heure, mais ces deux malabars ne me disent rien qui vaille. Tu es sûr de vouloir y aller ?~^^>";if (YesorNo()) { if (self.ronde==0) {print "^Comme deux andouilles, nous nous sommes pointés dans la Grande Galerie des Italiens, où justement, deux italiens farouches nous ont cueillis comme des gamins. ^^"; Attend(); print "Rapidement maîtrisés, nous avons été enlevés dans un lieu inconnu, où, cette fois-ci, nous dûmes collaborer de force, et puis ensuite, au prix de notre vie, jurer le silence. ^^"; Attend(); print "C'est pourquoi, malheureusement, car aujourd'hui encore l'on me surveille, je ne peux dire les incroyables conclusions auxquelles cette aventure me fit parvenir.^^";Attend();deadflag=1;return 1;} else {print "^~Maintenant. ~ chuchotais-je à Maurice.^^Et pendant que hurlu et berlu commentent (fort mal à propos, d'ailleurs) le tableau, nous leur passons dans le dos discrètement. ^";Attend();print "^Nous prenons des chemins détournés pour éviter les sinistres individus qui hantent le musée. C'est une véritable armée qui s'est déplacée !^";Attend();print "^Nous arrivons dans la Galerie des sculptures de Michel Ange.^";Attend();PlayerTo(salleesclave);return 1;} } else {print "^~C'est plus prudent, en effet. Mais il va bien falloir trouver un moyen de s'en sortir. ~^";return 1;}], ronde 0, has scenery france; Object salleesclave "Galerie Michel Ange (derrière l'esclave rebelle)" with description [; Affiche(73); print "^Je suis dans la fameuse galerie Michel Ange, un long et large Hall percé de fenêtres versant à l'extérieur, ou des voitures de police encerclent le musée pour la réunion des actionnaires, et vers l'intérieur, dans la grande salle des sculptures.^^Dans une assymétrie toute contemporaine, mais non sans harmonie sont disposés différents chefs d'oeuvre du Maître.^Au nord un escalier descend dans une autre aile du Musée, tandis que vers le sud, derrière un grand portique, nous retournons vers la Galerie des Italiens. ^";], cant_go "^Il n'y a que deux sorties praticables, le sud vers la Grande Galerie des Italiens d'où nous venons, et le nord, encore. ^", n_to [;if (sinistre1 in salleesclave) {print "^Bien mal m'en prendrait, avec ce type qui surveille. Maurice et moi, avec notre INCROYABLE expérience du combat à mains nues, n'en viendrions pas à bout, même s'il était endormi !^";return 1;} else {return salleegypte;}], s_to [;print "^Nous retournons avec moultes précautions le long des escaliers du Louvre, et passons dans le dos des deux malabars qui hantent la galerie des Italiens.^^Maurice me chuchote : ~On tourne en rond, là !~^^";PlayerTo(saloncarre);return 1;] has scenery france; Object salleegypte "Collection Egyptienne" with description [; Affiche(75); print "^Nous sommes devant l'entrée de l'aile consacré aux innombrables pièces égyptiennes rassemblées au Louvre. ";Italique(); print "(on se demande pourquoi un tel engouement, d'ailleurs)";Normal();print ".^^A quelques pas, nous pouvons emprunter un escalier menant à une cour intérieure recevant des statues, et plus loin, enfin, la sortie. ^"; if (self.vu==0) {self.vu++;print "^Nous passons devant un austère pharaon avant de prendre les derniers escaliers.^^"; Attend();print "Je me penche à la rambarde, et je vois, une vingtaines de mètres plus bas, au milieu des statues, un pauvre Henri ligoté comme je l'étais sur une chaise, et probablement pas dans un meilleur état.^^";Italique(); Attend();print "Quelle surprise...";Normal();print "à ses cotés, je découvre...^^"; Attend();print "...Giuliana ! Et debout devant eux, encore un sinistre personnage.^^"; Attend();print "J'aiguise mon regard pour mieux comprendre, mais Maurice me donne un coup de coude : des voix proviennent d'un couloir adjacent.^^"; Attend();print "Nous nous réfugions rapidement alors que deux hommes en costume noir se postent devant l'entrée, regardant vers la cour.^";}], cant_go "^Nous pouvons juste aller au nord, descendre un escalier qui mène à une cour intérieure couverte, ou revenir (avec quelques détours) vers la galerie Michel Ange, vers le sud. ^", n_to [;if (sinistre3 in salleegypte) {print "^Mauvaise idée : pile dans l'entrée qui mène à la cour intérieure se tiennent deux gars sinistres. ^";return 1;}], s_to [;print "^Je repars vers la galerie Michel Ange. Maintes fois j'ai la certitude que nous avons été repérés, mais heureusement, il n'en est rien.^^~On avance pas des masses, là ~ gromelle Maurice.^^";Attend();print "~Hé, j'essaie de trouver une solution !~^";PlayerTo(salleesclave);return 1;], vu 0, has scenery france; !------------------------------------------------------------------------------- ! Lieux - MonteNegro !------------------------------------------------------------------------------- Object entrance1 "Près de la route vers Budva, devant la Villa Nouée" with description [; Affiche(78); print "^Ce petit contrefort me donne une vue imprenable sur le pittoresque village bordant la méditerannée.^^Un de ces lieux paisibles comme le sont les doux rêves, mais les rêves, comme chacun sait, sont des illusions.^^Au nord, un petit escalier monte sous une arcade naturelle de plantes vivaces pour arriver à un petit promontoire que je distingue à peine d'ici. ^";], cant_go "^La seule issue, c'est le nord, monter l'escalier, ou revenir misérablement à l'aéroport - mais j'ai encore du courage, allons y. ^", n_to entrance2, u_to entrance2, has scenery jardin; Object entrance2 "Devant le portail de la Villa Nouée" with description [; Joue(183); Affiche(79); print "^Ce petit promontoire donne une vue imprenable sur la Méditerannée.^^L'escalier débouche sur un portail en fer forgé derrière lequel s'étend un autre jardin, mieux entretenu que celui qui mène à la route. ^"; if (self.vu==0) {RencontreGalina();}], cant_go "^Je peux redescendre l'escalier vers le sud, ou entrer pour passer le portail - s'il est ouvert, bien entendu. ^", n_to [;if (herse has ~open) {print "^Volontiers, mais une herse de bronze me bloque le passage. Vraiment le type de bibelots qui ruine une visite.^";return 1;} else {return jardin1;}], u_to entrance2, d_to entrance1, s_to entrance1, vu 0, has scenery jardin; Object jardin1 "Jardin de la Villa Nouée" with description [; Affiche(80); print "^Nous voici dans l'entrée du Jardin de la Villa Nouée.^^Le sud donne sur le petit chemin qui descend vers la route, tandis que le jardin s'étend dans trois directions : le nord, où l'on perçoit quelques paisibles clapotis, et l'est comme l'ouest donnent sur d'autres parties de ce complexe jardin. ^";], cant_go "^Je peux aller au nord, au sud, à l'est ou à l'ouest, mais pas ailleurs ! ^", n_to jardin2, w_to jardin16, s_to entrance2, e_to jardin3, has scenery jardin; Object jardin2 "Bassins du Jardin de la Villa Nouée" with description [; Affiche(81); Joue(214); print "^Le chemin débouche sur une poussive copie d'un jardin de l'Alhambra, où deux bassins aux eaux opaques hantées par de placides poissons rouges s'étendent vers des alcôves ombragées. Mais les alentours dallés de briques rouges ne mènent vers aucune autre issue.^";], cant_go "^La seule issue est de remonter la pente vers le sud. ^", s_to jardin1, has scenery; Object jardin3 "Jardin de la Villa Nouée" with description [; Affiche(82); print "^Le sentier du jardin fait ici une courbe sous d'augustes et odorants pittosporums ; les deux issues sont soit l'ouest, vers l'entrée du Jardin, ou le sud, vers un petit chemin en pente disparaissant sous le feuillage dense.^";], cant_go "^Le sentier du jardin fait ici une courbe, dont les deux issues sont soit l'ouest, vers l'entrée du Jardin, ou le sud.^", s_to jardin4, w_to jardin1, has scenery jardin; Object jardin4 "Jardin de la Villa Nouée" with description [; Affiche(83); print "^Un grand escalier s'aggripe à une haute restanque où poussent plantes tropicales, plantes grasses et plantes succulentes, et monte en se tournant vers l'ouest sur une colline qui semble tout dominer. ^";], cant_go "^Je peux aller plein ouest, en montant l'escalier, ou vers le nord. ^", n_to jardin3, w_to jardin5, has scenery jardin; Object jardin5 "Jardin de la Villa Nouée" with description [; Affiche(84); print "^Hum ? Je suis déjà passé par ici ? Tout se ressemble...^^Vers l'est, un escalier descend en se tournant au milieu de plantes grasses, et le chemin continue droit vers l'ouest dans le jardin.^^Un petit sentier monte plus haut sur la colline. ^";], cant_go "^Les seules issues par ici sont l'ouest, le sud et l'est. ^", w_to jardin8, s_to jardin6, e_to jardin4, has scenery jardin; Object jardin6 "Jardin de la Villa Nouée" with description [; Affiche(85); print "^Le sentier grimpe encore plus haut sur la colline, cette fois-ci planté de part et d'autres de lavande et de thym aux odeurs entêtantes. D'ici, la baie de la ville de Budva s'offre à nos yeux dans son azuréenne brillance, ses eaux piquées de yachts aux pavillons du monde entier.^^Le sentier continue vers l'est, pour arriver tout en haut, et redescend vers le nord.^";], cant_go "^Je peux monter vers l'est ou descendre la colline vers le nord. ^", n_to jardin5, e_to jardin7, has scenery jardin; Object jardin7 "Jardin de la Villa Nouée" with description [; Affiche(86); print "^Au sommet de la colline se dresse un petit Tholos d'un style néo-classique (et entouré de bosquets de roses) qui en dit long sur le mauvais goût de son propriétaire. ^";], cant_go "^Pour redescendre d'ici, c'est plein ouest. ^", w_to jardin6, has scenery jardin; Object jardin8 "Jardin de la Villa Nouée" with description [; Affiche(87); print "^Le chemin longe une partie du Jardin ornée de nombreuses plantes méditerranéennes vertes et séches à la fois puis oblique abruptement le long d'un mur de pierre, ne laissant que deux sorties : le nord, ou l'est. ^";], cant_go "^Je ne peux partir que vers le nord ou l'est. ^", n_to jardin9, e_to jardin5, has scenery jardin; Object jardin9 "Jardin de la Villa Nouée" with description [; Affiche(88); print "^Nous voilà sur un large sentier dont la partie ouest baigne dans l'ombre de denses bosquets de buis.^^ ";Italique();print "Apparemment,";Normal();print " les seules issues possibles sont le sud, ou le nord. ^";], cant_go "^Je n'y vois pas très bien avec ce fort contraste ombre / lumière, mais apparamment, les deux seules issues sont le nord et le sud !^", n_to jardin14, w_to jardin15, s_to jardin8, has scenery jardin; Object jardin15 "Jardin de la Villa Nouée - Point de vue laissé à l'abandon" with description [; Affiche(94); print "^Un petit sentier envahi de lierre mène à un endroit laissé à l'abandon - vraisemblablement un point de vue, puisque l'on devine sous les épais taillis de plumbago les vestiges d'un banc de bois.^";], cant_go "^La seule issue est là d'où je viens : le sentier vers l'est. ^", e_to jardin9, has scenery jardin; Object jardin14 "Jardin de la Villa Nouée" with description [; Affiche(93); print "^Le sentier contourne ici un large palmier. Les deux issues sont le sud et l'est, où le sentier redescend en pente douce. ^";], cant_go "^J'ai pas trop le choix, c'est le sud, l'est, ou les buissons piquants ! ^", s_to jardin9, e_to jardin10, has scenery jardin; Object jardin10 "Jardin de la Villa Nouée" with description [; Affiche(89); print "^Une impressionnante collection de cactées et de plantes grasses hautes comme deux hommes bordent ce sentier qui continue à monter en pente douce. Les deux issues qu'il présente sont l'ouest, ou un curieux embranchement vers le sud.^";], cant_go "^Est, sud ou cactus, au choix. Mais autant vous dire : je ne prendrai pas les cactus ! ^", w_to jardin14, s_to jardin13, has scenery jardin; Object jardin13 "Jardin de la Villa Nouée" with description [; Affiche(92); print "^Le sentier venant du sud se divise en un curieux embranchement : vers le nord ouest, où il monte vers une allée bordée de cactus, et vers le nord est, où il monte encore plus abruptement, vers une petite colline où poussent de hauts pins parasols.^";], cant_go "^Soit je vais vers le sud, soit vers le nord ouest ou nord est. Mais dans ce cas là je devrais monter, n'oubliez pas que je suis vieux ! ^", nw_to jardin10, ne_to jardin11, s_to jardin16, has scenery jardin; Object jardin16 "Jardin de la Villa Nouée" with description [; Affiche(95); print "^Le chemin de ciment monte en petites marches confortables vers l'ouest sous une arche de plantes grasses et d'arbres méditerranéens, puis oblique brutalement vers le nord.^";], cant_go "^Vers l'est, c'est l'entrée du jardin, sinon, je peux suivre le chemin qui me mène au nord. ^", n_to jardin13, e_to jardin1, has scenery jardin; Object jardin11 "Jardin de la Villa Nouée" with description [; Affiche(90); print "^Le sentier depuis l'embranchement situé plus au sud oblique rapidement vers l'est dans des marches plus grossières qui montent toujours plus haut. Ca n'en finira donc jamais de grimper ?^";], cant_go "^Soit le sud, soit l'est. ^", s_to jardin13, e_to jardin12, has scenery jardin; Object jardin12 "Jardin de la Villa Nouée" with description [; Affiche(91); print "^L'escalier aboutit sur un mur de pierre soutenant une restanque plantée de pins parasols. Un peu plus au nord, je devine les murs de béton d'une vaste demeure. ^";], cant_go "^Les issues possibles sont le nord, ou l'ouest. ^", w_to jardin11, n_to villae, has scenery jardin; Object villae "Entrée de la Villa" with description [; Joue(183); Affiche(100); print "^Ca alors...moi qui m'attendais à la maison typique méditerranéenne, me voilà devant une batisse Art Deco qui se développe sur trois étages et une surface impressionnante. Je répugne à le penser, mais l'habitant de ces lieux - et aussi ma Némésis - est un homme de goût.^^La bâtisse accuse, tout comme le jardin, un certain manque d'entretien de quelques semaines, et les volets et portes clos pourraient faire penser que les propriétaires sont en voyage, mais je sais que ce n'est pas le cas !^";], cant_go "^Pour retourner dans le jardin, c'est le sud, sinon, je peux entrer dans la maison... dans l'hypothèse ou la porte m'est ouverte. ^", s_to jardin12, in_to [;if (portevilla has open) {return hall;} else {print "^La porte d'entrée est fermée ...^";return 1;}], has scenery jardin; Object hall "Hall d'entrée ?" with description [; Affiche(101); print "^Qu'est ce que c'est que ce truc...^^la porte d'entrée donne sur un long couloir qui se termine par une fenêtre ouverte sur une cour ensoleillée en contrebas.^^Le mur de gauche est peint d'un ciel bleu parsemé de nuages. Deux lustres hideux de papier jaune pendent du plafond jusqu'à hauteur de la poitrine.^^Une porte part depuis le mur est, et une armoire occupe le coin opposé à la porte, seul pièce de mobilier de cet absurde endroit.^^Ah, et bien sûr, les ";Gras();print "ABSURDES";Normal();print " inscriptions sur le sol. ^";], out_to villae, has scenery; Object escher1 "Pièce Déjà Visitée..." with description [; Affiche(102); Joue(185); print "^Oh non...^^Je reconnais cet endroit...pour l'avoir déjà visité en rêve.^^Comment est-ce possible ?^D'ici partent vers ce que je crois être le nord, le sud, l'est et l'ouest quatre couloirs identiques, si identiques que je ne sais même pas duquel je viens.^";], after [;Go : print "^Et mince, je me retrouve dans la même pièce...ou est ce une autre pièce, identique ? ^";], each_turn [;AnimLaby();], cant_go "^Je peux aller partout, sauf par là !^", n_to escher2, w_to escher1, s_to escher1, e_to escher1, progression 0, has scenery; Object escher2 "Pièce Déjà Visitée..." with description [; Affiche(102); Joue(186); print "^Oh non...^^Je reconnais cet endroit...pour l'avoir déjà visité en rêve.^^Comment est-ce possible ?^D'ici partent vers ce que je crois être le nord, le sud, l'est et l'ouest quatre couloirs identiques, si identiques que je ne sais même pas duquel je viens.^";], after [;Go : print "^Et mince, je me retrouve dans la même pièce...ou est ce une autre pièce, identique ?^";], each_turn [;AnimLaby();], cant_go "^Je peux aller partout, sauf par là !^", n_to escher1, w_to escher3, s_to escher1, e_to escher1, has scenery; Object escher3 "Pièce Déjà Visitée..." with description [; Affiche(102); Joue(186); print "^Oh non...^^Je reconnais cet endroit...pour l'avoir déjà visité en rêve.^^Comment est-ce possible ?^D'ici partent vers ce que je crois être le nord, le sud, l'est et l'ouest quatre couloirs identiques, si identiques que je ne sais même pas duquel je viens.^";], after [;Go : print "^Et mince, je me retrouve dans la même pièce...ou est ce une autre pièce, identique ?^";], each_turn [;AnimLaby();], cant_go "^Je peux aller partout, sauf par là !^", n_to escher1, w_to escher1, s_to escher4, e_to escher1, has scenery; Object escher4 "Pièce Déjà Visitée..." with description [; Affiche(102); Joue(186); print "^Oh non...^^Je reconnais cet endroit...pour l'avoir déjà visité en rêve.^^Comment est-ce possible ?^D'ici partent vers ce que je crois être le nord, le sud, l'est et l'ouest quatre couloirs identiques, si identiques que je ne sais même pas duquel je viens.^";], after [;Go : print "^Et mince, je me retrouve dans la même pièce...ou est ce une autre pièce, identique ?^";], each_turn [;AnimLaby();], cant_go "^Je peux aller partout, sauf par là !^", n_to escher1, w_to escher1, s_to escher1, e_to escher5, has scenery; Object escher5 "Pièce Déjà Visitée..." with description [; Affiche(102); Joue(186); print "^Oh non...^^Je reconnais cet endroit...pour l'avoir déjà visité en rêve.^^Comment est-ce possible ?^D'ici partent vers ce que je crois être le nord, le sud, l'est et l'ouest quatre couloirs identiques, si identiques que je ne sais même pas duquel je viens.^";], after [;Go : print "^Et mince, je me retrouve dans la même pièce...ou est ce une autre pièce, identique ?^";], each_turn [;AnimLaby();], cant_go "^Je peux aller partout, sauf par là !^", n_to escher6, w_to escher1, s_to escher1, e_to escher1, has scenery; Object escher6 "Pièce Déjà Visitée..." with description [; Affiche(102); Joue(186); print "^Oh non...^^Je reconnais cet endroit...pour l'avoir déjà visité en rêve.^^Comment est-ce possible ?^D'ici partent vers ce que je crois être le nord, le sud, l'est et l'ouest quatre couloirs identiques, si identiques que je ne sais même pas duquel je viens.^";], after [;Go : print "^Et mince, je me retrouve dans la même pièce...ou est ce une autre pièce, identique ?^";], cant_go "^Je peux aller partout, sauf par là !^", n_to atelier2, w_to escher1, s_to escher1, e_to escher1, has scenery; Object atelier2 "Atelier" with description [; Affiche(105); Joue(185); print "^Voici un atelier de peinture qui a connu son heure de gloire...^^De nombreuses odeurs d'essences et d'huiles froides, mais réchauffées par le soleil diffusant au travers des volets clôts embaument cet endroit hanté par le spectre d'un remarquable talent et d'un vrai effort créatif.^^Un peu plus au nord, dans une pièce encore plus sombre, je perçois une présence. ^";], cant_go "^Je peux aller partout, sauf par là !^", n_to [;print "^Je m'avance vers l'ouverture et Galina pose sa main sur mon bras :^^~Si nous allons plus loin, nous allons le rencontrer, Professeur, vous êtes sur de vouloir y aller ?~^"; if (YesorNo()) {Aristo();return 1;} else {print "Je hoche la tête et fais un pas en arrière. ^"; return 2;}], s_to escher6, has scenery; !------------------------------------------------------------------------------- ! Lieux - Varsovie !------------------------------------------------------------------------------- Object diadzo "Le Diadzo" with description [; Affiche(110); Joue(215); print "^Le Diadzo - le ~grand père~ en Polonais - tient son nom d'une vieille plaisanterie du quartier, quand ses clients expliquaient à leurs épouses qu'ils allaient visiter leur grand père.^^Rien n'est vraiment historique ici : tout a été renové du sol au plafond il y a peu de temps pour lui donner les reflets lounge et clinquants d'un endroit à la fois riche mais mal fréquenté.^";], each_turn [v; v = random(10); switch(v) { 1: print "^Une musique electronique langoureuse plane dans l'air. ^"; 2: print "^Au fond du bar, une hôtesse blonde aux traits slaves me fait signe de la rejoindre. Désolé ma belle, Gilbert Fontenelle n'a qu'un vice, l'étude des fresques de la pré renaissance. ^"; 3: print "^Deux clients en costume sombre me dévisagent depuis l'autre bout de l'endroit. ^"; 4: print "^Une odeur douceâtre de tabac chaud et d'alcool fort plane sur l'endroit. Mon dieu que je n'ai pas l'habitude de ces antres de perdition. ^"; 5: print "^Les rires trop forts de jeunes femmes traversent le bar depuis un recoin obscur. ^"; }], cant_go "^L'endroit est vite visité, et la seule sortie est vers l'extérieur...^", n_to [;if (barman.stop==2) {Joue(200);return tripot;} else { print "^L'endroit est vite visité, et la seule sortie est vers l'extérieur...^";return 1;}], out_to "^Etre allé si loin et abandonner ici ? C'est vrai que cet endroit n'est guère rassurant... mais je tiens bon. Je veux en voir la fin. ^", has scenery; Object tripot "Salle de Jeux du Diadzo" with description [; Affiche(112); print "^La salle de jeux du Diadzo, une antre luxueuse dissimulée au regard des autorités et de la plèbe, un Naos dédié à une idole terrible qui porte le nom de Petit Hanoï. ^"; if (self.vu==0) { print "^Je me souvenais des paroles d'Aristo : ^^";Attend(); Italique(); print "~Le Diadzo et son Boss, Mikolaj, le Boss de tous les réseaux de passeurs de vietnamiens, ne doit pas sa bonne fortune qu'à son commerce de chair humaine : depuis le Vietnam, il a rapporté également le Petit Hanoï, un jeu de cartes à enchères très rapide qui provoque tout aussi rapidement fortune ou endettement sans fin...^^ Si vous saviez comme les asiatiques sont joueurs, Fontenelle...^^Peu importe. Installez vous à une table, et commencez à jouer - à perdre, peu importe encore, de petites sommes. Mettez votre interlocuteur en confiance. Après tout, nous ne sommes pas là pour gagner de l'argent, n'est ce pas ?~^";Attend(); Normal(); print "^La salle est vide, sauf pour un croupier asiatique derrière une table.^^"; Attend(); print "~Monsieur vient jouer...?~^";Attend();print "^~..Petit Hanoï. ~^^"; Attend(); print "Je m'installe a une table pendant que le croupier bat les cartes. ^^"; Attend(); Italique(); print "~C'est un jeu très simple.^";Attend();print "^La banque a deux cartes, vous également. Il faut avoir plus que la banque, mais moins que 16. Vous retournez une ou deux cartes, au choix, comme la banque, et cas d'égalité, c'est elle qui ramasse la mise.^";Attend();print "^Les figures battent toute combinaison de carte, et ne peuvent être battues que par une autre figure, suivant les règles suivantes :^";Attend();print "^ La Dame soumet le Valet, c'est le sù phân bôi, et la mise est multipliée par cinq^";Attend();print " Le Roi renvoie la Dame, c'est le sù ly dî, et la mise est multipliée par dix^";Attend();print " Le Valet remplace le Roi, c'est ngu'oî, et la mise est multipliée par vingt^^"; Attend(); print "Mais seul un as de pique peut tuer le Joker, et la mise est multipliée par mille : c'est le ";Gras();print "Petit Hanoï. ^^"; Attend(); Normal(); print "Je change une moitié de l'argent confié par Aristo en jetons. ^^"; Attend(); Italique(); print " Attention ! Dans ce jeu vous ne touchez pas vos cartes...les mises étant exceptionnelles, les risques de tricherie étaient trop grands. Il faut donc poser les mains sur les tables et donner des ordres verbaux. Voici les termes, apprenez les bien, car toute erreur vous ferait passer pour un pigeon :^^";Attend();print " ~Trai~ pour retourner votre carte de gauche^";Attend();print " ~Tam~ pour votre carte de droite^";Attend();print " ^Il y a d'autres ordres, mais il est trop tôt pour en parler.^";Attend();print "^Commencer par jouer, et perdre un peu, pour attirer le gros poisson.^^"; Normal(); self.vu=1; }], cant_go "^Il y a une petite porte au nord de la pièce, et la porte vers le bar au sud, mais toutes les deux sont fermées. ^", n_to [;print "^Je n'ai pas la possibilité d'aller là bas pour l'instant. ^";], s_to "^Pour l'instant, je ferais mieux d'oublier l'idée de retourner là bas. ^", vu 0, has scenery; !------------------------------------------------------------------------------- ! Personnages - Principaux !------------------------------------------------------------------------------- Object gilbert "Gilbert" start with short_name [; return L__M(##Miscellany, 18);], description [;print "^Je suis Gilbert Fontenelle, et je crois avoir encore le feu sacré de ma passion.^^Depuis 30 ans, je suis modestement reconnu comme le spécialiste de la Pré-Renaissance Italienne, et je consacre l'essentiel de mon temps à des recherches sur ce sujet.^^Je suis un chercheur rigoureux et précis, habitué des bibliothèques et des cercles d'experts.^^Je n'ai ni femme ni enfant ; la plupart de mes interlocuteurs ne comprennent pas mes plaisanteries.^^Je suis un homme de faits et d'observation, de pragmatisme, et de science.^ "; if (bob has worn) {print "^...et je porte un bob ridicule.^";} if (robe has worn) {print "^...et je suis habillé comme un moine. Décidement, cette aventure, c'est un vrai carnaval !^ ";}], before [;], after NULL, life NULL, each_turn [k;if (location has chaud) { k = random(20); switch(k) { 1: print "^Il fait vraiment chaud. J'essuie quelques gouttes de sueur qui perlent sur mon front. ^"; 2: print "^Le silence de la ville figée est soudainement brisé par de vives exclamations, rapidement éteintes. Probablement une occasion de but manquée. ^"; 3: print "^Je m'évente un peu de la main. Quelle chaleur. ^"; 4: print "^Je dessere mon col de chemise. Quelle chaleur, je vais être trempé de transpiration. ^"; 5: print "^L'immobilité de ces lieux millénaires est soudainement brisé par le vol furtif d'un petit oiseau. ^ "; 6: print "^Je sue comme un goret sous ce soleil de plomb. ^"; 7: print "^Quel soleil. Ca me rappelle le stage d'archéologie en Lybie avec Maurice. ^"; }} if (location has jardin) {Animjardin();} if (location has noir) { if (self.pupille<3) {self.pupille++;print "^(mes yeux s'habituent progressivement à l'obscurité)^";}} else {if (self.pupille>0) {self.pupille--;print "^(mes yeux habitués au noir absolu se plissent à la lumière)^";}} ], time_out NULL, describe NULL, capacity 100, parse_name 0, pupille 0, rase 0, cheveux 0, has concealed animate proper transparent light; Object giuliana "Giuliana" start with name "giuliana" "ricasoli" "guide" "conservatrice" "femme" "fille" "bella" "jolie" "soeur" "italienne", description [;Affiche(10); print "^Cette femme est très belle, dans une beauté différente des statues classiques, et tout dans sa posture, son élégance, et l'intelligence vive de son regard m'inspire un respect inhabituel.^ ";], react_before [;Show : if (noun==ecriture) {Firenze();return 2;}], life [; Answer,Ask,Tell: if (self.plot==0) {Rencontre();return 2;} else {PGiuliana();return 2;} Attack : "Je ne veux même pas y penser. ^"; Kiss: "Non, ce n'est plus de mon âge. Ni de mes préoccupations.^ "; Show, Give: "~Pensez vous que cela puisse nous aider, Professeur ? ~^"; ], each_turn [;if (self.plot>0 && giuliana in location) {AGiuliana();}], found_in [;if (self.loin==0) {return location;}], plot 0, loin 0, initial "Une femme me fait un signe de la main.^", has animate female proper; !------------------------------------------------------------------------------- ! Personnages - Florence !------------------------------------------------------------------------------- Object pecheur "homme" dock with name "pecheur" "homme" "italien" "marin" "fan" "footballeur", description [;Affiche(11); print "^Nous sommes à Florence, mais ce type a le profil d'une monnaie romaine.^^Version sesterces, car il n'est plus tout jeune, malgré l'interêt juvénile qu'il porte à la retranscription du match de football. Il est accoutré comme un pour une excursion maritime, mais il ne me convainc pas vraiment.^^Il est penché sur un poste de radio hors d'âge et le fixe comme sa vie en dépendait. ^ ";], life [; Answer,Ask,Tell: "^^M'éclaircissant la voix, j'interpelle l'homme au bateau : ~Bonjour ! Excusez moi de vous déranger, mais...~^^Mais le vieux me coupe rapidement et séchement :^^~Ah, ne me dérangez pas, hein ! J'écoute le match !~^^Et le geste qu'il me fait ensuite, et bien, je comprends qu'il ne faut pas que j'insiste.^^"; Attack : "^Acte de Piraterie, c'est dix ans de prison, Gilbert. ^"; Kiss: "Hum. Non.^ "; Show, Give: "^~Je m'en moque ! Laissez moi tranquille !~^"; ], has animate; Object marco "sombre personnage" terrasse with name "sale" "type" "malandrin" "trafiquant" "italien" "homme" "marco" "totolo" "sombre" "personnage", description [;Affiche(12); print "^Ce bonhomme ne me veut pas du bien apparemment !^Un espèce de grand gaillard genre motard sur le retour, bien anachronique avec le ponte vecchio. ^ ";], life [; Answer,Ask,Tell: switch(self.drama) { 0 : print "^~Hé ! Espèce de malade ! Sortez moi de là !~ que je lui hurle. Vous pensez qu'il répondrait ? C'est tout juste s'il ne ricane pas.^"; 1 : print "^~Mais aidez moi ! Je glisse ! Je glisse !~^^Malheureusement, mes injonctions n'ont pas l'air de l'émouvoir. "; 2 : print "^~S'il vous plaît. Ce n'est pas que je ne sais pas nager, mais...enfin, quoi, je suis un vieil homme.~ devant son silence cynique, je conclus avec rage : ~Vous êtes un bandit, monsieur !~^^"; 3 : print "^Mal assuré, mais reprenant espoir, je réajuste ma prise et déclare : ~Alors ce match, qui gagne ? Il a l'air d'être passionnant, toute l'ITALIE semble calfeutrée à la maison. ~^"; 4 : print "^Je poursuis mon travail de distraction : ~Je suis sûr que vous prenez un vif plaisir à voir un vieil homme ainsi se débattre. Vous aviez des problèmes avec votre père, plus jeune ?~^";Attend(); 5 : print "^~Vous êtes en train de faire une très grave erreur. Je suis un professeur reconnu - un expert en peintures de la Renaissance. Et ...~, hum, je marque une pause. C'est peut être pas très malin de raconter ma vie. ^"; } self.distrait=1;return 2; Attack : "^Si seulement je pouvais, mais toutes mes forces sont concentrées dans le fait de ne pas tomber ! ^"; Kiss: "^ARGH ! C'est pas le moment !^ "; Show, Give: "^Je ne peux rien faire, j'ai les deux mains prises. ^"; ], each_turn [;Affiche(12); switch(self.drama) { 0 : print "^Le sombre individu ne me quitte pas des yeux et semble prendre un grand plaisir à me voir pendu au dessus du fleuve. Il s'allume une cigarette.^"; 1 : print "^Je constate avec effroi que le bateau a dérivé sous le pont ! Si je lache, c'est le grand plongeon !^^L'homme met ses mains dans les poches et ricane.^"; 2 : print "^Incroyable !^^Entre les jambes de l'homme je vois Giuliana approcher à pas de loup ! Comment est elle montée ici ?^^Le sombre individu tire une bouffée de sa cigarette.^";move lgiuliana to terrasse; 3 : print "^En quelques gestes rapides, Giuliana me demande de détouner l'attention du bonhomme pendant qu'elle s'approche. Tu parles. Il se régale de me voir glisser ainsi. ^"; 4 : print "^L'homme fait tomber quelques cendres chaudes sur mes petites mains qui faiblissent.^^Giuliana s'approche d'une grosse pelle posée contre un mur. ^";if (self.distrait>0) {self.distrait=0;print "^L'homme me dit : ~C'est vrai que le match était pas mal. Mais cela aussi, c'est amusant. ~^^Dans un geste souple, Giuliana s'empare discretement de la pelle.^ ";} else {print "^Giuliana s'approche de la pelle, mais l'homme sent sa présence et se retourne !^^";Attend();print "Il l'agrippe par le poignet, et l'envoie rouler sur la terrasse dans ma direction.^";FinPlongeon();} 5 : print "^^Avec un délice pervers, l'homme pose son pied sur mes mains, sans encore les écraser. Un coup d'oeil vers le bas : l'opaque Arno, et personne aux alentours pour me sauver du drame !^^Ou plutôt si : Giuliana, qui s'avance derrière l'homme sans un bruit...^";if (self.distrait>0) {self.distrait=0;print "^L'homme me dit : ~Un petit bain, par cette chaleur, ca ne fera pas de mal...~^^Giuliana brandit la pelle bien haut au dessus de sa tête.^";} else {print "^Giuliana s'approche de plus en plus mais l'homme sent sa présence et se retourne !^^";Attend();print "Il l'agrippe par le poignet, et l'envoie rouler sur la terrasse dans ma direction.^";FinPlongeon();} 6 : if (distrait>0) {Assome();} else {print "";FinPlongeon();} } self.drama++;], distrait 0, drama 0, has animate; Object lgiuliana "Giuliana" with name "giuliana" "ricasoli" "guide" "conservatrice" "femme" "fille" "bella" "jolie" "soeur" "italienne", description [;Affiche(10); print "^Cette femme est très belle, dans une beauté différente des statues classiques, et tout dans sa posture, son élégance, et l'intelligence vive de son regard m'inspire un respect inhabituel.^ ";], life [; Answer,Ask,Tell,Attack,Kiss,Show,Give : "^Ce n'est pas le moment de faire une idiotie. Elle est ma seule chance de m'en sortir. ^"; ], has animate female proper; Object dmarco "malandrin inanimé" with name "malandrin" "trafiquant" "italien" "homme" "marco" "totolo" "sombre" "personnage" "inanimé" "assomé" "assommé", description [;Affiche(13); print "^Voilà mon tortionnaire sadique dans les bras de Morphée.^^";], life [; Answer,Ask,Tell: "^Il est bien assommé. Il décrochera pas un mot.^"; Attack : "^Gilbert Fontenelle ne s'acharne pas sur les hommes à terre. Bon, je donne un petit coup de pied quand même, histoire de me venger de ce qu'il m'a fait tout à l'heure. ^"; Kiss: "^Sans façon, merci. ^ "; Show, Give: "^Il est complétement stone, ca ne lui fera rien. ^"; Wake : "^Il est beaucoup plus agréable ainsi. ^"; ], has animate; Object pazzi "Pazzi" boutique with name "pazzi" "encadreur" "artisan" "trafiquant" "italien" "homme", description [;Affiche(14);print "^Pazzi est un vieil homme au physique travaillé comme les cadres qu'il façonne. Son profil n'est pas italien, mais ses yeux brillent d'une malice toute méditerranéenne.^Une petite radio portable sort de sa poche de chemise et alimente deux écouteurs qu'il porte sur les oreilles. ^^";], life [; Answer,Ask,Tell: "^Pazzi est trop absorbé par son travail et l'écoute de sa radio portative. ^"; Attack : Affiche(14);WakePazzi();return 2; Kiss: "^Hum, non. ^ "; Show, Give: "^Je ne pense pas que ce soit idoine. ^"; ], parled 0, initial "^Tout en écoutant une petite radio portative, Pazzi est penché sur son établi, concentré sur son ouvrage.^ ", has animate proper; !------------------------------------------------------------------------------- ! Personnages - Paris !------------------------------------------------------------------------------- Object eleve "élève" universite with name "eleve" "maladroit" "premiere" "annee" "edouard" "fan" "charles" "etudiant" "étudiant", description [;Affiche(15);print "^Voilà un jeune élève médiocre que la passion a hélas poussé dans les jambes du plus exigeant des professeurs dans la matière la plus difficile.^^Je me montre patient avec ses faiblesses car je sens en lui une mince flamme de feu sacré - et surtout, il achète tous mes livres.^^";], life [; Answer,Ask,Tell: Affiche(15); if (self.rangeant==1) {print "^~Donnez moi deux minutes Professeur, je range rapidement. ~^";} else {if (self.parled==0) {print "^Je connais cet élève. C'est Charles Edouard, un bon gars un peu lent, mais un vrai fan de Fontenelle. Faut croire qu'il y en a qui aiment prendre des coups.^^"; Attend(); print "Il s'avance vers moi et me tend une main moite et humide que je serre en dissimulant mon dégoût.^^"; Attend(); print "~Professeur Fontenelle, quelle chance de vous rencontrer cet été, j'ai attendu des heures devant votre porte, et...enfin, bon. J'ai acheté votre nouveau livre, regardez : ~^^"; Attend(); print "Il me montre mon dernier ouvrage, un opus assez délicat publié chez Plon, subtilement intitulé ";Italique();print " : ~Jeux et Enjeux de L'Iconographie chez Fra Angelico, une autre approche du mystique.~";Normal();Attend();print "^^510 pages.^^"; Attend(); print "~Vous êtes bien le seul à l'avoir acheté. ~^^"; Attend(); print "~Vous pourriez me le dédicacer, Professeur ?~^";self.parled=1;move bouquin to universite;return 2;} else {print "^~Alors, vous pouvez me le dédicacer, Professeur ?~^";}} Attack : "^Noon. Pas sans raison. Pas avant qu'il n'ait fait une grave erreur. Comme confondre deux tableaux de Pérugin. ^"; Kiss: "^Horreur. ^ "; Show, Give: "^Hum, je préfére garder cela pour moi. ^"; ], each_turn [; if (walkman in universite) {print "^Charles Edouard ramasse son walkman : ~Ah, super, il marche encore ! !~^";remove walkman;} else if (walkman in player) {print "^Charles Edouard vous prend son walkman : ~Merci Professeur de l'avoir ramassé pour moi !~^";remove walkman;} else if (cahierbleu in universite) {print "^Charles Edouard s'empare de son cahier d'histoire de l'Art : ~Aha, te voilà toi !~^";remove cahierbleu;} else if (cahierbleu in player) {print "^Charles Edouard vous prend son cahier d'histoire de l'Art : ~Merci Professeur de l'avoir ramassé pour moi !~^";remove cahierbleu;} else if (cahiervert in universite) {print "^Charles Edouard s'empare de son cahier d'histoire de l'Art contemporain : ~Aha, te voilà toi !~^";remove cahiervert;} else if (cahiervert in player) {print "^Charles Edouard me prend son cahier d'histoire de l'Art contemporain : ~Merci Professeur de l'avoir ramassé pour moi !~^";remove cahiervert;} else if (magazine in universite) {print "^Charles Edouard s'empare du magazine : ~Ah, dire que j'ai failli le perdre !~^";remove magazine;} else if (magazine in player) {print "^Charles Edouard me prend son magazine des mains : ~Merci Professeur de l'avoir ramassé pour moi ! Vous avez vu l'article sur Maurice Brock votre confrère ? ~^^Grrr.^";remove magazine;} else if (clefs2 in universite) {print "^Charles Edouard ramasse ses clefs : ~Ouf, je ne les ai pas perdues ! ~^";remove clefs2;} else if (clefs2 in player) {print "^Charles Edouard me prend les clefs des mains : ~Merci Professeur pour les clefs ! ~^^";remove clefs2;} else if (portefeuille2 in universite) {print "^Charles Edouard ramasse son portefeuille : ~Super. ~^";remove portefeuille2;} else if (portefeuille2 in player) {print "^Charles Edouard me prend son portefeuille des mains : ~Merci Professeur, grâce à vous je ne l'ai pas perdu ! Je perds tout, vous savez. ~^^Ah, vraiment ?^^";remove portefeuille2;} else if (bouquin notin universite && self.parled==1) {print "^^Charles Edouard vous tend son ouvrage pour une dédicace.^";move bouquin to universite;} ], rangeant 0, parled 0, article "l'", initial [; if (self.rangeant==1) { print "^Charles Edouard rassemble avec maladresse ses affaires éparpillées sur le sol.^ "; } else { if (self.parled==1) { print "^Charles Edouard me regarde avec des yeux pleins d'espoir, tendant mon ouvrage dans ses mains fébriles. ^"; } else { print "^Un élève me regarde avec émotion et me fait des signes de salutation nerveux. ^"; } } ] has animate; Object libraire "employée de la bibliothèque" biblio1 with name "libraire" "femme" "gardienne" "méchante" "acariatre" "employée" "hotesse" "accueil" "bibliothèque" "employee", description [;Affiche(38); print "^Elle n'a pas l'air très commode. Finalement, d'aussi loin que je me souvienne, toutes les bibliothèques que j'ai connues (et j'en ai connu pas mal !) ont toujours été hantées par ces individus acariatres et hysteriques. ^^";], life [; Answer,Ask,Tell: Affiche(38); print "^Je m'éclaircis la voix et demande :^^~Madame...?~^^~Désolé Monsieur, répond elle sèchement. Je ne peux rien faire pour vous. ~^^Mmmm. Il y a des recommandés et des gueulantes qui se perdent ici.^";return 2; Attack : "^Elle le mériterait, franchement.^"; Kiss: "^Non, j'aime les filles farouches, mais pas stupides. ^ "; Show, Give: Affiche(38); if (noun==carte) {print "^(ses traits se radoucissent un instant, puis elle reprend son air pincé :^^ ~Formidable. Vous avez accès à notre bibliothèque. ~^";return 2;} else {print "^~Regardez un peu ceci, mademoiselle. ~ ^^~Fascinant. Mais la seule chose qui m'interesse, c'est votre carte de bibliothèque. ^";return 2;} ], parled 0, each_turn [k; k = random(7); switch(k) { 1: print "^L'employée de la bibliothèque dit de façon péremptoire à un jeune homme dépité : ~Désolé monsieur, il vous faut une carte de bibliothèque pour pouvoir accéder à notre salle de lecture.~^"; 2: print "^La jeune femme à l'accueil tamponne la carte d'un étudiant. ^";Joue(176); 3: print "^Une personne passe vivement dans le Hall et se fait intercepter par l'employée de l'accueil : ~^Monsieur ? Monsieur ? Votre carte s'il vous plaît.~ ^"; }], article "l'", has animate female; Object vigile "vigile" biblio2 with name "vigile" "gardien" "surveillant" "employé", description [;Affiche(39);Joue(42); print "^Voilà l'humble gardien du Naos de la connaissance.^^";], life [; Answer,Ask,Tell: Affiche(39); print "^Je m'approche du gardien et lui dis :^^~Vous savez, monsieur. Je suis Gilbert Fontenelle.~^^~Grand bien vous en fasse. ~^";return 2; Attack : "^Violence inutile et fort peu Fontenellienne.^"; Kiss: "^Juste les filles, s'il vous plaît. ^ "; Show, Give: Affiche(39);print "^^~Hum, fascinant. ~^";return 2; ], parled 0, each_turn [k; if (piledelivre.tombed==1 && vigile.distracted==0) {print "^Le gardien ramasse tous les livres tombés et refait méticuleusement une pile parfaite.^";piledelivre.tombed=0;} if (vigile.distracted==0) { k = random(7); switch(k) { 1: print "^Le gardien du niveau arpente d'un pas lent les traverses. ^";Joue(42); 2: print "^Le surveillant de la bibliothèque aide une jeune fille à ramasser ses affaires en souriant. ^"; 3: print "^Le gardien ramasse un livre laissé sur la table et va le porter sur la table de dépôt. ^"; }}], daemon [;if (location==biblio2) {print "^Le vigile se penche sur le téléphone et répète : ~Allo ?~, ~Allo ?~^";} self.distracted++; if (self.distracted==4) {print "^Le vigile raccroche avec dépit. ^";self.distracted=0;Stopdaemon(vigile);} ], distracted 0, has animate; Object responsable "responsable de l'étage" biblio2 with name "responsable" "bibliothécaire" "étage" "employée" "femme" "bibliothecaire", description [;Affiche(40); print "^La troisième tête de Cerbère. Serais je en Hadès ?^^";], life [; Answer,Ask,Tell: Affiche(40); print "^Bah, tentons le coup. Je m'approche de la responsable de l'étage et l'interromps entre deux coups de tampons : ^^~Excusez moi ?~^^Elle lève péniblement les yeux vers moi, et tend la main pour récupérer un livre.^^~Je viens consulter un ouvrage, en fait. Un incunable in quarto manuscrit, un original de...~^^"; Attend(); print "Les collections privées sont ouvertes sur rendez vous, avec une autorisation de la bibliothéque de France, aprés entretien avec notre directeur de collection. Désolé Monsieur. ~^^"; Attend(); print "Bien sûr, je pourrais m'énerver, taper du poing, tourner en rond, ameuter la moitié des experts de l'Histoire de l'Art, mais on va dire que ce sera le plan B. ^^"; Attend(); print "Super Gilbert va bien trouver un moyen de se faufiler discrétos dans la collection privée.^";return 2; Attack : "^Plus tard, avec une plume plus forte que mes épées.^"; Kiss: "^Jamais ! ^ "; Show, Give: Affiche(40); print "^^~Je ne prends que les livres agréés par la Bibliothèque, Monsieur. ~^";return 2; ], parled 0, each_turn [k;if (responsable in biblio2) { k = random(7); switch(k) { 1: print "^Le téléphone sonne tout doucement et la responsable décroche et murmure quelques mots. ^";Joue(175); 2: print "^L'employée derrière le bureau prend un livre sur le haut de la pile qui oscille dangereusement, l'ouvre, le tamponne fort bruyamment, puis le range dans un casier. ^"; 3: print "^La responsable de l'étage frappe dans ses mains pour rappeler à l'ordre deux personnes qui parlent trop fort. ^"; }}], has animate; !------------------------------------------------------------------------------- ! Personnages - Rêve !------------------------------------------------------------------------------- Object laurent "Laurent Le Magnifique" duomo with name "laurent" "lorenzo" "lorrenzo" "médicis" "medicis" "prince" "silhouette" "auguste", description [;Affiche(57);print "^Il me semble qu'il s'agit de Laurent de Médicis prince de Florence, le plus grand des Mécènes.^^Ou un type en costume. Son apparence change sans cesse.^";], life [; Answer,Ask,Tell: Affiche(57); if (self.parle==1) { if (savonarole in duomo && self.alerted==0 && savonarole.plot==4) { print "^~Sainte Vierge ! ";Italique();print "Un assassin !~^^";Attend();Normal(); print "Le conjuré se rapproche enfin et pointe sa dague dans ma direction :"; Attend(); Affiche(58); print "^^~La boite, mon Prince. Je suis juste venu chercher la boite.~^^"; Attend(); print "Laurent tire son épée et la jette à mes pieds. Elle résonne d'un cliquetis incessant tandis qu'il crie : "; Attend(); Affiche(57); print "^~Défends toi mon frère !~^";move epee to duomo;self.alerted=1;return 2;} else {print "^Laurent se tourne vers moi et me parle en me souriant, mais aucun son ne sort de sa bouche.^";return 2;}} else {print "^ Une apparition étrange, aux contours changeants, s'approche de moi.^^"; Attend(); print "~Gilbert...";Italique();print "Giuliano,";Normal();print " Giuliano, tu dors ? Viens, viens avec moi. Ils sont tous venus acclamer le Prince de Venise ! Pour toi, mon frère !~"; Attend(); print "^^Son frère ? ";Italique();print "Julien de Médicis ?";Normal();print " Je m'aperçois que je suis dans le Duomo, et un terrible préssentiment m'étreint. Pourvu que nous ne soyons pas ";Italique();print "ce fameux jour...^";Normal(); Attend(); self.parle=1;return 2;} Attack : "^Je vais pas lui faire de mal. C'est grace à lui qu'il y a eu tous ces tableaux pendant la période de...ah, j'ai la tête qui tourne...^"; Kiss: "^Naan, je lui dois beaucoup mais quand même...^ "; Show, Give: if (noun==pandoradream) { if (savonarole notin duomo) { print "^Je montre la boite à Laurent.^^"; Attend(); print "Celui ci la repousse sous ma toge, le visage livide, et me chuchote :^^"; Attend(); Affiche(57); print "~Espèce de fou ! Tu as apporté le ";Italique();print "Cassone";Normal();print " ici ! Tu sais que l'Eglise, les Pazzi, les Pitti et tous les autres ne veulent que cela ! Je t'ai dit de la cacher ! Et si quelqu'un...~^^"; Attend(); print "Mais tout d'un coup, un flash de lumière que Laurent ne semble pas voir m'aveugle et les doubles portes du Duomo s'ouvrent sur un puits de lumière, pour laisser entrer une sombre figure qui chuchote :^^"; Attend(); Affiche(58); print "~Ses pupilles sont dilatées. Je crois que la dose était trop forte. ~^"; move savonarole to duomo;return 2;} else {print "^^Non, Laurent m'a dit de la cacher !^";return 2;} } else {print "^Inutile. ^";return 2;} ], each_turn [; if (self.parle==1) { switch(self.evol) { 0 : print "^Laurent s'avance au milieu des allées vides et s'exclame : ~Bonjour à tous !~^^Je perçois au creux de mon oreille le chuchotement d'une voix invisible :^^~Tu penses qu'il est prêt à parler, maintenant ?~^"; 1 : print "^Laurent de Médicis serre des mains invisibles.^"; 2 : print "^J'entends, d'une voie venue du fond de mon cerveau : ~Professeur Fontenelle, pourriez vous me dire si...~^^Mais la voix s'éteint, étouffée par les exclamations de Laurent me faisant signe de venir.^ "; } self.evol++; } ], parle 0, evol 0, alerted 0, has animate proper; Object savonarole "conjuré" with name "savonarolle" "pazzi" "conjuré" "sombre" "assassin" "figure" "homme", description [;Affiche(58);print "^Je suis certain qu'il s'agit de l'assassin de Julien de Médicis. ^^";], life [; Answer,Ask,Tell: Affiche(58);print "^~Je suis votre sujet, mon noble Prince. Ha ha ha !~^";return 2; Attack : if (epee in gilbert) { if (self.plot==5) {Gras(); print "^~Pour les Médicis !~";Normal();print" criais-je en avançant, épée levée, vers mon assassin.^";Attend(); print "Mais celui-ci se rue sur Laurent et pointe sa lame sur le cou de mon frère.^^";Attend();Affiche(58);print "~A présent, dit-il, donne moi la boite, et j'épargnerais peut être ... ";Italique();print "Professeur Fontenelle ?";Normal();Attend();print " Vous m'entendez ? Nous aimerions savoir ce que vous avez lu dans l'Ekphrasis qui justifie...j'épargnerais donc la vie de messire votre frère. ~^^";Attend(); print "~Laurent de Médicis est le coeur de la Renaissance Italienne, la raison d'être de chefs d'oeuvre de la peinture qui bouleverseront à jamais l'histoire de l'art. Touche à un seul de ses cheveux et je t'étripe !~^^";Attend();print "Et Laurent renchérit :";Attend();Affiche(57);print "^^~Ne lui donne pas...je crois qu'il est complétement out, là. Et merde. On va passer un sale quart d'heure.~^";savonarole.plot=6;return 2;} else {print "^^Trop risqué pour Laurent. ";return 2;}} else {print "^^Avec mes mains ? Plutôt dangereux...";return 2;} Show, Give: if (noun==pandoradream) { if (self.plot==6) {Barque();return 2;} else {print "^Jamais !^";return 2;}} else {print "^Je ne crois pas que cela soit ce qu'il veuille...^";return 2;} ], each_turn [; if (self.plot<3) {self.plot++;} if (self.plot==3) { print "^Le conjuré sort une petite dague de sa manche !^^";move dague1 to duomo;self.plot++;} if (self.plot==4) {print "^Dague en main, le conjuré se rapproche de moi à pas lents, mais semble ne pas avancer, comme s'il faisait du sur place !^"; } if (self.plot>5) {print "^Mon assassin a une pointe aiguisée de dague sur le cou de Laurent.^";} ], plot 0, article "le", has animate; Object charon "Charon" acheron with name "charon" "passeur", description [;Affiche(61);print "^Charon, le passeur des morts, fils de la Nuit et des Ténèbres, naviguant pour l'éternité sur le fleuve Styx. ^";], life [; Answer,Ask,Tell: Affiche(61);print "^Charon déclare de sa voix grave et calme :^^~Pour passer, Monsieur Fontenelle, il vous faudra vous acquitter d'une obole, et vous vétir de votre linceuil. Il n'y a pas d'exception. ~^";return 2; Attack : "^Non, d'autres que moi auront besoin de lui. ^"; Show, Give: if (noun==ecu) {print "^Charon accepte votre ducat et le glisse dans une petite bourse.^"; Attend(); print "Il ajoute :^^"; Attend(); Affiche(61); print "~Je suis désolé, Monsieur Fontenelle, mais je ne rends pas la monnaie. ~^^"; Attend(); print "Bah. Cet argent ne m'aurait plus servi à rien.^^"; remove ecu; return 2; } else { print "^Charon vous déclare doucement : ~Je n'accepte que le numéraire, mais vous avez le choix de votre devise. ~^";return 2; } ], each_turn [; if (ecu notin acheron && toge has worn) {ToIsle();} else {print "^Charon attend, les bras croisés, sa rame posée à ses pieds.^";} ], has animate proper; Object virgile "Virgile" acheron with name "virgile" "poete" "poète" "grec" "drapé", description [;Affiche(62);print "^Virgile, le poète que l'on aurait pu croire immortel...^^Il se tient devant moi, auguste et plein de morgue, les yeux troublés par la vision de ces âmes perdues et criant à l'aide, drapé dans sa toge. ^";], life [; Answer,Ask,Tell: Affiche(62);print "^~Ô poète immortel, sais tu que tu seras tout au long des siècles, l'objet d'oeuvres d'art qui rivaliseront en beauté ? ~^^Virgile hausse les épaules sous sa toge :^^~Certes, mais dans un monde qui n'est plus le mien...~^";return 2; Attack : if (second==rame) {print "^J'assomme le poète avec un grand coup de rame.^^ ";Joue(203); Attend(); print "Alors, ca c'est du ";Gras();print "Arma Virumque Canto";Normal();print ", pas vrai mon petit gars ?^^"; Attend(); print "Mais le latin, d'une solide constitution, se remet sur un genou. Je lui tire sa toge et le fais basculer d'un autre coup de rame dans le néant du Styx.^^";Joue(203); Attend(); print "Bah, mes collègues de la section Littérature Classique ne m'en voudront pas.^^"; Attend();Italique(); print " Aprés tout, il était déjà mort, non ?";Normal(); remove self; move toge to gilbert; return 2;} else {print "^Pourquoi pas, s'il ne me dépassait pas de deux têtes ! Ah, si Delacroix l'avait peint plus petit ! ^";return 2;} ], each_turn [k; k = random(10); switch(k) { 1: print "^Virgile se serre dans sa toge et regarde d'un air morne le brouillard nous enveloppant. ^"; 2: print "^Virgile réajuste sa toge tandis que le passage d'un fantôme ébouriffe ses cheveux. ^"; 3: print "^Virgile déplie et replie sa toge. ^"; 4: print "^Virgile murmure un vers latin, semble chercher de quoi noter dans sa toge, sans rien trouver. ^"; } ], has animate proper; Object dante "Dante" acheron with name "dante" "poete" "italien" "alighieri", description [;Affiche(63);print "^Dante Alighieri, le poète, le philosophe, l'homme politique, l'homme universel, le phare de la renaissance, venu explorer les contrées des morts à la recherche de son amour, guidé par Virgile en ces enfers. ^^";], life [; Answer,Ask,Tell: Affiche(63);print "^Dante ignore mes paroles, absorbé dans ses réflexions sur la vie, la mort et l'amour. ^";return 2; Attack : "^Bien que Dante ne soit pas d'une condition d'Athlète, il me semble bien plus costaud que moi, et même avec une arme, je ne pense pas faire le poids !^ "; ], before [;Push : if (dante.piece>1 && dante.piece<4) {Joue(43); print "^Avec un sentiment un peu coupable, je profite de l'inattention de Dante, concentré sur le vol de sa pièce, pour le pousser dans les eaux tourbillonantes du Styx qui l'avale en un instant comme une bête affamée.^^La pièce tombe en rebondissant sur le plancher rude de la barque.^"; remove self; return 2; } else {print "^Si je le pousse à l'eau, il tombera avec la pièce, ce qui serait regrettable. Pour la pièce aussi, bien entendu.^";return 2;}], each_turn [; switch(self.piece) { 0: print "^Dante fait tourner un ducat en or entre ses doigts. ^";self.piece++; 1: print "^Dante tient entre deux doigts une pièce d'or italien, seul scintillement dans la nuit des morts.^";self.piece++; 2: print "^D'un coup de pouce, Dante envoie le ducat en or voler dans le ciel sombre en tournoyant. ^";self.piece++; 3: print "^Le ducat en or monte haut dans ce ciel surréel, occultant un instant le soleil blafard. ^";self.piece++; 4: print "^Le ducat en or retombe dans la main de Dante. ^";self.piece++; 5: print "^Dante soupire.^";self.piece=0; } ], piece 0, has animate proper; Object simonetta "femme" plage with name "femme" "simonetta" "vespucci" "venus" "giuliana", description [;Affiche(67);print "^Cette apparition, qui, de, loin, s'incruste en noir dans un tableau de Böcklin, se mue à mon approche en une muse ancienne à la fois lointaine et familière.^^Je crois un instant lui deviner les traits de Simonetta Vespucci, la muse de Botticelli, la Gloire du Quattrocento, immortalisée sur un autre rivage célèbre, au creux d'un gigantesque coquillage.^^Mais elle me rappelle aussi quelqu'un d'autre, ";Italique();print "mais qui ?^";Normal();], life [; Answer,Ask,Tell: Affiche(67);if (self.parled==0) {SimonettaTalks();self.parled=1;return 2;} else {print "^ La femme tourne son visage vers moi et penche la tête, puis murmure des mots qui se perdent dans le vent. ^";return 2;} ], parled 0, has animate female; Object stgeorge "Saint George" with name "chevalier" "tableau" "peinture" "george" "st" "saint george" "cheval" "lance" "armure" "tableau", description [;Affiche(68);print "^C'est le chevalier St George, issu tout droit lui aussi du Quatrocentto !^^Mais ici la toile du tableau s'est déchirée et animée, et bloque le passage d'une lance menaçante.^^Et bien qu'il soit fin comme la toile fine du tableau, il n'en reste pas moins très impressionnant. ^";], life [; Answer,Ask,Tell: Affiche(68);print "^~Halte là, Dragon ! Et viens te battre avec Saint Georges !^";return 2; Attack : Affiche(68);print "^A peine m'avance-je que Saint Georges pointe sa lance sur moi : ^^~Bats toi avec le feu, Dragon !~^";return 2; ], each_turn [k; k = random(10); switch(k) { 1: print "^Le Chevalier de toile lisse un coin de son heaume de toile peinte. ^"; 2: print "^Saint George entonne un petit psaume. ^"; 3: print "^Une brise légére fait onduler la toile de Saint George. ^"; 4: print "^Saint George secoue sa lance, comme pour bien la déplier. ^"; } ], parled 0, has animate proper; Object maitres "tableau" piecemaitres with name "tableau" "maitre" "maître" "maitres" "maîtres" "portrait" "portraits" "toile", description [;Affiche(70);print "^Je reconnais ce tableau, je crois l'avoir vu dans le salon carré du Louvre, non loin de la galerie des italiens...^^Mais les maîtres du tableau semblent presque vivants, comme s'ils pouvaient me parler. Etrange impression...^";], life [w; Answer,Ask,Tell: Affiche(70); if (self.parled==1) { wn=consult_from; w=NextWord(); switch (w) { 'giotto' ,'Giotto' : if (self.question==2) {Reveil();return 2;} 'Donatello','donatello' : if (self.question==1) {print "^~Le Gattamelata, un guerrier au visage dur et fier, c'est Donatello qui l'a réalisée~ affirmais-je sûr de moi. Etrangement, j'avais l'impression de reprendre contact avec l'autre réalité, la vraie réalité, hors de ce rêve étrange.^^"; Attend(); print "Le temps d'un bref éclair je vis même les contours sur salon carré du Louvre. Serais-je dans un autre ailleurs, en proie à un délire proche de ce qui s'appelle le Syndrome de Florence ? Quelle ironie, pour un professeur suspendu au Ponte Vecchio la veille !^^"; Attend(); print "Donatello applaudit et dit : ~C'est bien Gilbert, concentre toi, encore une autre question.~^"; Attend(); print "Et Giotto lui coupe la parole en demandant : ~Quel célébre éléve de Cimabue a réalisé les fresques du cycle de Saint François dans l'église supérieure de Assisi ?~^"; self.question++;return 2;} 'uccello','uccello' : if (self.question==0) {print "^^~C'est toi, c'est Uccello qui a peint la bataille de San Romano. ~^^"; Attend(); print "Uccello ne peut dissimuler un petit sourire satisfait et opine :^^"; Attend(); print "~Et j'en suis assez fier. Ils m'ont toujours appelé ~le bizzare~, le saviez vous ? Mais j'étais un précurseur, un précurseur, Gilbert. La perspective n'était qu'une science balbutiante, à l'époque. ~^^"; Attend(); print "Donatello lui donne un coup de coude :^^ ~Assez parlé de toi, à moi maintenant ; Gilbert, réponds à ceci : quel célèbre et taluentueux sculpteur florentin a réalisé à Padoue la sculpture équestre dite du Gattamelata ?~^"; Attend(); self.question++;return 2;} default : print "^Les maîtres soupirent avec mépris. ^";return 2; } return 2;} if (self.parled==0) {self.parled=1;print "^Intrigué par ce portrait familier de personnages qui me semblent si vivants, je me surprends à leur demander :^^"; Attend(); print "~Alors, augustes maîtres, sauriez vous me dire où se trouve la sortie ?~^^"; Attend(); print "Et à ma grande surprise, Uccello cligne des yeux, s'étire, et répond : ^^"; Attend(); print "~Mon vieux Gilbert, tu m'as l'air dans le cirage. ~^^"; Attend(); print "Donatello ajoute :^^"; Attend(); print "~Complètement stone.~^^"; Attend(); print "Manetti prend la parole et tourne ses yeux sur moi :^^"; Attend(); print "~Gilbert, souviens toi : tu es Gilbert Fontenelle, professeur d'histoire de l'art.~^^"; Attend(); print "~Mais cela je le sais !~ repondais-je aussitôt.^^"; Attend(); print "Uccello reprends alors :^^~Réponds à cette question, Gilbert, qui a peint la bataille de San Romano ? Allez, il a été enterré avec Cosme de Médicis.~^";return 2;} return 2; ], each_turn [k l; if (self.parled==0) {print "^Un silence mortel plane sur cet endroit vide. ^";} else { k = random(10); switch(k) { 1: print "^Le portrait de Giotto "; 2: print "^Le portrait de uccello "; 3: print "^Le portrait de Donatello "; 4: print "^Le portrait de Manetti"; 5: print "^Le portrait de Brunelleschi"; } l = random(10); switch(k) { 1: print "sifflote un petit air de yo-yo ma.^"; 2: print "tousse.^^~Excusez moi, dit il, mais ces courants d'air...~^"; 3: print "renifle.^"; 4: print "se gratte le nez, sous le regard réprobateur de son voisin.^"; 5: print "baille d'ennui.^"; } } ], parled 0, question 0, has animate; !------------------------------------------------------------------------------- ! Personnages - Louvre !------------------------------------------------------------------------------- Object maurice "Maurice Brock" saloncarre with name "maurice" "brock" "ami" "collegue" "expert" "professeur", description [;Affiche(72);print "^Voici Maurice Brock...éminent, ";Italique();print "émiiiiiinent";Normal();print" professeur d'histoire de l'art, et également directeur du Centre de la Renaissance à Tours.^^Nous sommes collègues de promotion, et nous avons toujours gardé le contact et une certaine amitié, malgré, bien évidemment, quelques tensions de bon aloi...il y a peu de place, sur le sommet de nos montagnes.^";], life [;Answer,Ask,Tell: Affiche(72); if (location==salleesclave && esclave.poussed==1) { if (fragment.vu==1) { print "^~Maurice,~ je chuchote. ~On va pousser la statue sur ce sale type, comme ca on pourra passer.~^^"; Attend(); print "Maurice opine, et nous approchons doucement et poussons d'un coup le Michel Ange.^^Il tombe avec fracas sur le bonhomme, l'envoyant sinon dans les bras de Pluton, dans ceux de Morphée.^^"; remove sinistre1;remove esclave;move sinistre2 to salleesclave;move esclave2 to salleesclave;esclave.poussed++;return 2;} else { print "^~Maurice,~ je chuchote. ~On va pousser la statue sur ce sale type, comme ca on pourra passer.~^^"; Attend(); print "Maurice me regarde d'un air horrifié :^^"; Attend(); print "~Pousser l'Esclave Mourant de Michel Ange, mais tu es fou ? Arrache moi le coeur, ca me fera moins mal !~^^"; Attend(); print "Je tente de le rassurer : ^^"; Attend(); print "~Mais non, c'est une copie, tu crois pas qu'ils vont le laisser là, à la merci de tous les visiteurs. ~^^"; Attend(); print "~Du flan ! Ca m'a l'air tout à fait un original, et depuis quand tu es expert de Michel Ange ? C 'est ";Gras();print "MOI";Normal();print ", l'expert. Et l'expert ne poussera pas.~^^"; Attend(); print " C'est pas gagné. ^"; return 2;}} else {ParleBrock();return 2;} Attack : print "^^Je donne un coup de poing dans l'épaule de Brock.^^"; Attend(); print "~Hey !~^^"; Attend(); print "~Ca, c'est pour m'avoir envoyé à Rome à ta place. ~^^"; Attend(); print "~Et alors, regarde où je suis, tu crois que c'aurait été différent ? Non, mon vieux, nous serions tous les deux dans la même galère. ~^^"; Attend(); print "~Ha ! Tu n'as pas connu la joie d'être suspendu au Ponte Vecchio ! ~^^";return 2; Give,Show : if (noun==fragment) {print "^Je tends le fragment à Maurice :^^";Attend();print "~Tiens môônsieur l'expert, jette un oeil. ~^^"; Attend();print " Le visage de mon collègue se décompose quand il réalise que je l'ai pris sur la statue de Michel Ange, puis après un rapide examen, il est estomaqué : ^^";Attend();print "~Mais c'est une copie. ~^^";Attend();print "~Tu crois qu'il vont laisser les originaux à portée de main du public ? De millions et de millions de visiteurs ?~";Attend();print "^^~Mais...le Louvre...~^";Attend();print "^~Ca fait longtemps que les originaux sont tous dans des coffres. Tu le sais bien. ~^";fragment.vu=1;remove fragment;return 2;} ], each_turn [k; k = random(10); switch(k) { 1: print "^Maurice ressere son noeud de cravate.^"; 2: print "^Maurice remarque un détail sur une oeuvre, et prend une note dans son carnet.^ "; 3: print "^Maurice regarde les alentours et murmure : ~Quand même, sacré musée !~^"; 4: print "^Maurice feuillette son carnet de notes sur Bronzino et ajoute une idée qu'il vient d'avoir. ^"; 5: print "^Maurice croise les bras et me regarde avec doute.^ "; } ], found_in [;if (self.louvre==1) {return location;}], louvre 0, has animate proper; Object sinistre1 "sinistre personnage" salleesclave with name "sinistre" "personnage" "acolyte" "maffieux" "méchant" "homme" "costume", description "^Encore un os, si l'on peut dire. La galerie Michel Ange est ~surveillée~ par un autre homme de main nonchalamment accoudé contre l'Esclave Mourant. Sacrilège !^", life [;Answer,Ask,Tell: print "^Mieux vaut ne pas se faire remarquer !^";;return 2; Attack : print "^Il aurait le dessus de Gilbert le gros plein de soupe et de Brock le vieillard en quelques secondes. Bon, je suis également aussi vieux que Brock, mais bon. ^";return 2; ], each_turn [k; k = random(10); switch(k) { 1: print "^L'homme de main baille bruyamment. Comment peut on s'ennuyer quand on est entouré de chefs d'oeuvres ?^"; 2: print "^L'homme pousse un soupir et réajuste sa position, appuyé contre l'Esclave Mourant de Michel Ange. ^ "; 3: print "^Le sinistre personnage se gratte la tête, et baille. ^"; 4: print "^L'homme fait quelques pas, regarde sans émotion la nuit enveloppant Paris, les cars de police encerclant le musée et revient à sa place, accoudé à l'Esclave Mourant. ^"; 5: print "^L'homme fouille ses poches.^ "; } ], has animate; Object sinistre3 "deux gardes" salleegypte with name "gardes" "gardiens" "garde" "gardien" "homme" "hommes", description "^Deux armoires à glaces joyeuses comme des portes de prison encadrent notre sortie vers la cour. De mieux en mieux. Vraiment, JAMAIS je n'oublierais cette virée nocturne au Louvre. ^^", life [;Answer,Ask,Tell: print "^Oui, je vais leur faire un petit discours sur les dynasties égyptiennes. Oh et puis non, finalement. D'une part parce qu'ils vont encore me mettre la main dessus et m'attacher, et tout le tintouin déplaisant, mais surtout parce que je DETESTE l'Egypte. ^";;return 2; Attack : print "^Excellente idée, mais mon kung-fu est un peu rouillé, et Brock n'est pas une arme vivante non plus. ^";return 2; ], each_turn [k; if (self.fume==0) { k = random(10); switch(k) { 1: print "^L'un des deux hommes fait les cents pas le long de l'entrée, et revient à sa position. ^"; 2: print "^Un des gardes dit : ~Pff, c'est long. ~ ^ "; 3: print "^Un des gardes dit à l'autre :^^~Hey, tu aurais pas une cigarette ?~^^~Non, je te l'ai dit j'ai prété mon paquet à l'autre, là. Le type qui s'occupe du vieux.~^^Hé bien. J'espère qu'ils ne parlent pas de moi.^"; 4: print "^Un des gardes dit à l'autre :^^~Hey, tu aurais pas une cigarette ?~^^~Non, je te l'ai dit j'ai prété mon paquet à l'autre, là. Le type qui s'occupe du vieux.~^^";Italique();print "Hé bien. J'espère qu'ils ne parlent pas de moi.^";Normal(); 5: print "^Un des gardiens dit : ~T'as pas entendu un bruit ?~^^~Non. ~^ "; }} else {print "^Les deux bandits fument une cigarette, appuyés sur le socle de la statue. ^";} ], fume 0, has animate pluralname; Object sinistre4 "deux gardes" saloncarre with name "gardes" "gardiens" "garde" "gardien" "homme" "hommes" "types" "louches", description "^Deux armoires à glaces joyeuses comme des portes de prison sillonnent la galerie des italiens. De mieux en mieux. Vraiment, JAMAIS je n'oublierais cette virée nocturne au Louvre. ^^", life [;Answer,Ask,Tell: print "^Euh, non, mauvaise idée. ^";;return 2; Attack : print "^Excellente idée, mais mon kung-fu est un peu rouillé, et Brock n'est pas une arme vivante non plus. ^";return 2; ], has animate pluralname scenery; !------------------------------------------------------------------------------- ! Personnages - MonteNegro !------------------------------------------------------------------------------- Object galina "Galina" with name "galina" "femme" "russe" "fille" "slave", description [;Affiche(96);print "^Une femme étrange, vive de mouvements et d'esprit, d'une finesse et d'une habileté intellectuelle bouillonante que l'on devine dans l'expression de son visage ou même dans son regard.^^";], life [;Answer,Ask,Tell: Affiche(96); print "^Elle parle déjà assez comme cela, merci !^";return 2; Give : print "^Galina s'exclame : ~Hé, joli truc ! Vous voulez me le donner ?~^^Euh, non, finalement, je vais le garder pour moi. ";return 2; Kiss : print "^Malheur de malheur. Ce serait le début de la fin. ^";return 2; Attack : print "^Non, elle ne le mérite pas. ^";return 2; ], each_turn [;AnimGalina();], found_in [;if (entrance2.vu==1) {return location;}], k 0, stop 0, has animate proper scenery; !------------------------------------------------------------------------------- ! Personnages - Varsovie !------------------------------------------------------------------------------- Object barman "barman" diadzo with name "barman" "homme" "homme au bar" "serveur", description [;Affiche(111);print "^Le barman du Diadzio m'a l'air d'un dur à cuire. ^";], life [w; Tell,Ask,Answer : Affiche(111); if (barman.stop==0) { wn=consult_from; w=NextWord(); switch(w) { 'special', 'spécial' : print "^Je me penche vers le barman et lui déclare : ^";Attend();print "^~On m'a recommandé votre ";Italique();print "Spécial. ~^";Normal();Attend();print "^Le barman regarde de tous cotés et répond sans croiser mon regard :^";Attend();print "^~Un Spécial, hein ? Ce n'est pas donné à tout le monde, vous avez de quoi payer ?~^";barman.stop=1;return 2; 'boire','whisky','biere','vodka' : print "^Non, j'ai la gorge sèche, mais aucune envie de boire. ^";return 2; default : print "^Le barman ne me laisse pas finir ma question maladroitement posée en anglais.^^~Je ne sers pas de cela ici, vous voulez quoi ?~^";return 2; } } else {print "^Le barman ne dessere pas les dents. ^";return 2;} Kiss : print "^Garde la tête froide, Gilbert. ^";return 2; Attack : print "^Je casserai les tables un peu plus tard. ^";return 2; Show,Give : if (noun==billets) { if (barman.stop==1) {print "^Je lui montre ma petite liasse de grosses coupures en dollars et la range bien vite dans ma veste.^";Attend();print "^~Ca ira ?~^";Attend();print "^~Ca ira.~^";Attend();print "^Il fait un signe au videur qui vient ouvrir une porte au fond de la pièce, tout au nord, puis réintégre sa place.^";Attend();barman.stop=2;return 2;} else {print "^Je ne vais pas montrer tout ce tas d'argent sans bonne raison. ^";return 2;} } ], each_turn [v; if (barman.stop~=1) { v = random(10); switch(v) { 1: print "^Le barman prend une commande. ^"; 2: print "^Le barman remplit consciencieusement deux grands verres de bière avant de les donner à une serveuse. ^"; 3: print "^Le barman essuie un verre en me lançant un regard en coin. ^"; 4: print "^Le barman sert un coktail à un client. ^"; }} else {print "^Le barman ne vous lache pas des yeux, attendant quelque chose. ^";}], stop 0, has animate scenery; Object croupier "croupier" tripot with name "croupier" "homme" "asiatique", description [;Affiche(113);print "^^Cet homme présente un visage impénétrable, complétement dévoué à sa fonction. ";], life [; Tell,Ask,Answer : Affiche(113);print "^Si je veux donner des ordres au croupier, je n'ai qu'à taper directement le mot (par exemple : ~Trai~)^";return 2; Attack : print "^Non, d'ailleurs en fait ce type me fout la trouille. ^";return 2; ], each_turn [; if (self.partie==2) { if (cartej1.retourner==0 && cartej2.retourner==0) {print "^(le croupier attend que j'intervienne)^";} if (((cartej1.retourner==1 && cartej2.retourner==0) || (cartej1.retourner==0 && cartej2.retourner==1)) && carteb2.retourner==0) { if (CheckWin()) {print "^(la banque menant la partie, le croupier n'intervient pas)^";} else {print "^Le croupier retourne sa carte de droite : ";carteb2.retourner=1;Montrecarte(carteb2.valeur,carteb2.signe);} } if (carteb2.retourner==0 && cartej1.retourner==1 && cartej2.retourner==1) { if (CheckWin()) {print "^La banque remporte le pli. Le croupier récupère les jetons et ramasse les cartes. ^"; remove carteb1;remove carteb2;remove cartej1;remove cartej2;self.partie=0;} else { print "^Le croupier retourne sa carte de droite : ";carteb2.retourner=1;Montrecarte(carteb2.valeur,carteb2.signe);} } if (carteb2.retourner==1 && ((cartej1.retourner==1 && cartej2.retourner==0) || (cartej1.retourner==0 && cartej2.retourner==1))) { if (CheckWin()) {print "^(la banque menant la partie, le croupier n'intervient pas)^"; } else {print "^Hé hé, je remporte le pli. Le croupier distribue les jetons et ramasse les cartes. ^";self.gain++; remove carteb1;remove carteb2;remove cartej1;remove cartej2;self.partie=0;} } if (carteb2.retourner==1 && carteb1.retourner==1 && cartej1.retourner==1 && cartej2.retourner==1) { if (CheckWin()) {print "^La banque remporte le pli. Le croupier récupère les jetons et ramasse les cartes. ^"; remove carteb1;remove carteb2;remove cartej1;remove cartej2;self.partie=0;} else {print "^Hé hé, je remporte le pli. Le croupier distribue les jetons et ramasse les cartes. ^";self.gain++; remove carteb1;remove carteb2;remove cartej1;remove cartej2;self.partie=0;} } } if (self.partie==1) {print "^Le croupier distribue deux cartes pour lui et deux cartes pour moi.^^"; self.partie=2;Deal();self.nombre++;print "Le croupier retourne sa carte de gauche : ";carteb1.retourner=1; Montrecarte(carteb1.valeur,carteb1.signe);} if (self.partie==0) {print "Le croupier bat les cartes.^^";self.partie=1;} if (self.gain>3 && mikolaj notin tripot) { Affiche(114); print "La porte du bar s'ouvre doucement, mais une figure en émerge avec énergie.^^Nul doute quant à l'identité de cet individu, et je me rappelle des paroles d'Aristo :^^"; Attend(); Italique(); print "~Plutôt rapidement, Mikolaj va se ramener. Forcément, un inconnu se pointe dans son bar, connaît comment accéder au tripot, sait jouer au Petit Hanoï...en fait, il va croire que c'est moi, Aristo, le faussaire de génie, celui qui gagne, celui qui triche, et qui gagne.~^^"; Attend(); print "~Alors laissez couler, laissez le se poser des questions, et ne gagnez pas trop. Mettez lui des virus mentaux et surtout : ne lui dites rien, rien, rien, rien. Continuez à jouer sans vous soucier de ce que vous perdrez ou gagnerez. ~^^"; Normal(); move mikolaj to tripot; } if (self.gain==6) { Affiche(114); print "Mikolaj s'exclame : ^^~Et bien, tout cela ne vous donne pas faim ni soif ? Ah ! Il ne sera pas dit que le Diadzo soit ingrat avec ses nouveaux hôtes !~^^Il frappe dans ses mains et les paroles d'Aristo me reviennent :^^"; Attend(); Italique(); print "~Rapidement il va être aux petits soins avec vous : alcool, mets, femmes...Mikolaj est un serpent n'acceptez rien ou vous finirez comme finissent toutes ses proies. ~^^"; Normal(); Attend(); print "Le barman pousse dans la pièce un plateau recouvert d'huîtres bien grasses et d'une soupière d'argent débordant de caviar.^^~Servez vous, Monsieur, servez vous !~^^Mikolaj sélectionne une huitre et l'aspire goulûment pendant que le barman finit de servir une coupe de champagne.^^Mmmm...j'en ai l'eau à la bouche.^^"; move flute to tripot; move champagne to tripot; move plateau to tripot; move huitres to tripot; move caviar to tripot; mikolaj.stress=1; self.gain++; } if (self.gain==9) { print "Mikolaj se renfrogne alors que je n'ai pas touché à sa nourriture et que je viens à nouveau de remporter un pli. Aristo m'avait indiqué :^^"; Attend(); Italique(); print "~Dès que vous le sentez un peu crispé, mentionnez nonchalamment mon nom. Cela le cuisinera en attendant l'estocade finale. ~^^"; Normal(); Attend(); print "~Rassurez vous, dis je enfin à Mikolaj alors que le croupier rassemble les cartes. Je ne suis pas Aristo. ~"; Attend(); Affiche(114); print "^^Mikolaj plisse les yeux et me dévisage : ~C'est bien dommage...cet Aristo, insaisissable, doit beaucoup d'argent à mes différentes salles dans Varsovie. Mais non, je ne crois pas que vous le soyez...^^"; mikolaj.stress=2; self.gain++; } if (self.gain==12) {print "La tension est intense comme jamais alors que j'empoche les jetons et que le croupier bat les cartes.^^"; Attend(); print "Les cartes sont distribuées et le croupier retourne son Roi de Pique.^^"; Attend(); print "~Trai.~"; Attend(); print "^^Le croupier retourne ma carte. Valet de Trèfle.^^"; Attend(); print "~Mort du Roi. La mise est multipliée par vingt.~, annonce placidement le croupier, alors que Mikolaj fronce les sourcils.^^"; Attend(); print "Le croupier retourne sa deuxième carte : ";Gras();print "le Joker !^^";Normal(); Attend(); print "M'armant de courage, je décide d'appliquer le plan dicté par Aristo. Je pousse tous mes jetons sur la table : ~Tapis. ~"; Attend(); Affiche(114); print "^^Mikolaj bondit : ";Italique();print "~Tapis ?~^";Normal();Attend();print "^~Oui. A peu près cinq mille dollars. Si ma carte est l'As de Pique, il y a Petit Hanoï, soit mise multipliée par vingt, puis par mille. Votre établissement est solvable ?~^^"; Attend(); print "~";Gras();print "HA !";Normal();print " Quelle plaisanterie ! ~ s'exclame Mikolaj en tapotant sur ma carte. ~ une chance sur cinquante de perdre tout votre argent, Monsieur. Retirez votre somme et jouez raisonnablement. ~^";Attend();print "^~ Je crois que c'est plutôt vous, Mikolaj, qui craignez de tout perdre. Ma carte n'est pas encore retournée toutefois et je souhaiterais vous demander un service.~^^"; Attend(); print "Mikolaj brûle d'interêt :^^~Je vous écoute.~"; Attend(); print "^^~Puisque nous parlons d'Aristo, voilà un homme qui s'est fait subtiliser un colis devant sa maison il y a quelques temps...un cadre de tableau, cela vous dit quelque chose ?~^";Attend();print "^~ C'est possible. ~^";Attend();print "^~Je souhaite me porter acquéreur de l'objet. ~^";Attend();print "^~Impossible, il n'est pas à vendre. ~ ^";Attend();print "^~Oh, même pas pour ";Italique();print "dix millions de dollars ? ~";Normal(); Attend(); print "^^Mikolaj se penche vers moi, et met sa main sur la mienne :^";Attend();print "^~Si vous êtes Aristo, je vous couperai les doigts. Si vous avez triché, je vous couperai les doigts.~^";Attend();print "^Je suis très impressionné mais tente de n'en laisser rien paraître et poursuis : ^";Attend();print "^~Vous m'avez vu jouer. Ai je triché ?~"; Attend(); print "^^Mikolaj réfléchit et déclare : ~Pourquoi pas. Allez, ce cadre est à vous si vous avez l'As de Pique. ~^";Attend();print "^~Et les cinq mille dollars à vous si ce n'est pas le cas. Avant de retourner la carte, puis je vérifier que vous êtes bien en possession du cadre ? J'aimerais par ailleurs prendre quelques minutes pour l'observer de près. ~^";Attend();print "^~Comme cela vous chante, il est dans la remise. ~ déclare Mikolaj en pointant la porte au nord."; Attend(); print "^^Une sueur froide me coule dans le dos : ^";Attend();print "^~J'y vais. Je prends ma carte, si cela ne vous gêne pas : cela m'embeterai qu'elle soit subtilisée ou échangée durant mon absence.~^";Attend();print "^ ~Si vous permettez...~ Mikolaj se penche et signe le dos de la carte d'un mot alambiqué.^^";Attend();print "~Comme cela je suis certain que vous ne l'échangerez pas non plus. A tout de suite, Monsieur. ~^^"; Attend(); print "Terrorisé, je pénètre seul dans la remise. Avant de refermer la porte, j'entends Mikolaj appeler quelqu'un en polonais.^^Mais dans quelle galère je me suis fourré ?^"; Attend(); move carte8 to gilbert; PlayerTo(remise); self.gain++; } ], partie 0, total1 0, total2 0, gain 0, nombre 0, has animate scenery; Object flute "flute" with name "verre" "flute" "champagne", description "^Une flute à champagne remplie d'un liquide doré aux fines bulles...je suis un homme de vins, mais ce champagne m'a tout l'air délicieux...^", before [;Drink,Take : print "^Mmm...je ne peux résister...je prends une petite gorgée de champagne sous l'oeil bienveillant de Mikolaj, bah, Aristo ne m'en voudra pas plus que cela...^";FinMikolaj();return 2;], has female; Object champagne "bouteille de champagne" with name "dom ruinart" "bouteille" "champagne", description "^Oh oh, un Dom Ruinart, une référence prestigieuse...quel dommage qu'ils ne servent pas de vin !^", before [;Take : print "^Je ne vais pas l'emporter avec moi ! Une flute à champagne est déjà versée...^";return 2;], has female; Object plateau "plateau roulant" with name "plateau" "roulant", description "^C'est le plateau roulant sur lequel l'on m'a servi champagne et caviar. ^", before [;Push : print "^Je n'ai pas envie de m'amuser à cela...^";return 2;], has static; Object huitres "huitres" with name "huitres" "huitre" "fruits de mer", description "^Mmm, elles m'ont l'air très grasses et d'une bonne couleur...j'en ai sacrément envie. ^", before [;Eat,Take : print "^Mmm...je ne peux résister...je saisis une belle huître que j'avale sous l'oeil bienveillant de Mikolaj, bah, Aristo ne m'en voudra pas plus que cela...^";FinMikolaj();return 2;], has female pluralname; Object caviar "caviar" with name "caviar" "esturgeon" "oeuf", description "^Un caviar luisant et épais, délicieusement odorant. ^", before [;Eat,Take : print "^Mmm...je ne peux résister...je prends une petite cuillerée de caviar que j'avale sous l'oeil bienveillant de Mikolaj, bah, Aristo ne m'en voudra pas plus que cela...^";FinMikolaj();return 2;], article "du", has female pluralname; Object mikolaj "Mikolaj" with name "mikolaj" "homme" "mafia" "boss", description [;Affiche(114);print "^^Sans qu'il se présente, j'ai tout de suite deviné l'identité de cet homme vis à vis duquel Aristo m'a dit d'observer la plus grande prudence.^^Son origine est incertaine, avec des traits de l'est, mais moyen orientaux, également, et son regard, comme son visage, semble éprouvé par une intelligence usée par les évenements.^^";], life [; Tell,Ask,Answer : print "^Aristo m'a demandé de ne pas communiquer avec lui. ^";return 2; Attack : print "^Mauvais plan. Un geste de ma part et ses sbires rappliquent. ^";return 2; ], each_turn [;AnimMikolaj();], stress 0, compteur 0, has animate proper scenery; Object jetons "jetons" tripot with name "jetons" "argent" "jeton", description [;print "^^Mmm, je ne sais pas si la situation se présente si bien que cela...pour l'instant, j'ai gagné ",croupier.gain," plis sur ",croupier.nombre, " parties. ";], has pluralname scenery; [MontreCarte x y; Gras(); if (x==0) {print " rien ";} else { switch(x) { 1 : print " l'As "; 2 : print " le Deux "; 3 : print " le Trois "; 4 : print " le Quatre "; 5 : print " le Cinq "; 6 : print " le Six "; 7 : print " le Sept "; 8 : print " le Huit "; 9 : print " le Neuf "; 10 : print " le Dix "; 11 : print " le Valet "; 12 : print " la Dame "; 13 : print " le Roi "; } print "de"; switch(y) { 1 : print " Trèfle "; 2 : print " Coeur "; 3 : print " Pique "; 4 : print " Carreau "; } } Normal(); print "^"; ]; [CheckWin; if ( (carteb1.retourner==1 && carteb1.valeur>10) || (carteb2.retourner==1 && carteb2.valeur>10) || (cartej1.retourner==1 && cartej1.valeur>10) || (cartej2.retourner==1 && cartej2.valeur>10) ) { if ((carteb1.retourner==1 && carteb1.valeur==11) || (carteb2.retourner==1 && carteb2.valeur==11)) { if ((cartej1.retourner==1 && cartej1.valeur<11) || (cartej2.retourner==1 && cartej2.valeur<11)) {print "^Le Valet de la banque domine le jeu.^";return true;} if ((cartej1.retourner==1 && cartej1.valeur==12) || (cartej2.retourner==1 && cartej2.valeur==12)) {print "^Ma Dame soumet le Valet de la Banque, et la mise est multipliée par cinq.^";return false;} if ((cartej1.retourner==1 && cartej1.valeur==13) || (cartej2.retourner==1 && cartej2.valeur==13)) {print "^Le Valet de la banque tue mon Roi, et la mise est multipliée par vingt !^";return true;} } if ((carteb1.retourner==1 && carteb1.valeur==12) || (carteb2.retourner==1 && carteb2.valeur==12)) { if ((cartej1.retourner==1 && cartej1.valeur<11) || (cartej2.retourner==1 && cartej2.valeur<11)) {print "^La Dame de la banque domine le jeu.^";return true;} if ((cartej1.retourner==1 && cartej1.valeur==11) || (cartej2.retourner==1 && cartej2.valeur==11)) {print "^La Dame de la Banque soumet mon Valet, et la mise est multipliée par cinq. ^";return true;} if ((cartej1.retourner==1 && cartej1.valeur==13) || (cartej2.retourner==1 && cartej2.valeur==13)) {print "^Mon Roi renvoie la Dame de la Banque. La mise est multipliée par dix. ^";return false;} } if ((carteb1.retourner==1 && carteb1.valeur==13) || (carteb2.retourner==1 && carteb2.valeur==13)) { if ((cartej1.retourner==1 && cartej1.valeur<11) || (cartej2.retourner==1 && cartej2.valeur<11)) {print "^Le Roi de la banque domine le jeu.^";return true;} if ((cartej1.retourner==1 && cartej1.valeur==11) || (cartej2.retourner==1 && cartej2.valeur==11)) {print "^Mon Valet tue le Roi de la Banque, la mise est multipliée par vingt ! ^";return false;} if ((cartej1.retourner==1 && cartej1.valeur==12) || (cartej2.retourner==1 && cartej2.valeur==12)) {print "^Le Roi de la banque soumet ma Dame. La mise est multipliée par dix. ^";return false;} } if ((carteb1.retourner==1 && carteb1.valeur<11) || (carteb2.retourner==1 && carteb2.valeur<11)) {print "^Je domine le jeu.^";return false;} } else { croupier.total1=0; croupier.total2=0; if (carteb1.retourner==1) {croupier.total1=croupier.total1+carteb1.valeur;} if (carteb2.retourner==1) {croupier.total1=croupier.total1+carteb2.valeur;} if (cartej1.retourner==1) {croupier.total2=croupier.total2+cartej1.valeur;} if (cartej2.retourner==1) {croupier.total2=croupier.total2+cartej2.valeur;} if (croupier.total1>16 && croupier.total2<17) {print "^Le total des cartes de la Banque est supérieur à 16, je domine le jeu. ";return false;} else if (croupier.total2>16 && croupier.total1<17) {print "^Le total de mes cartes est supérieur à 16, la Banque domine. ";return true;} else if (croupier.total2>16 && croupier.total1>16) {print "^Le total de mes cartes ainsi que celui de la banque est supérieur à 16, nous sommes à égalité. ";} else if (croupier.total1>=croupier.total2) {return true;} else {return false;} } ]; Object cartej1 "la première carte de Gilbert", with name 'premiere carte de Gilbert', description [;print "^C'est ma 1ere carte. ^";if (self.retourner==0) {print "Pour l'instant, elle est retournée face cachée contre la table.^";} else {print "^Elle représente ";MontreCarte(self.valeur,self.signe); print "^";}], before [;Take : print "^Non, sauf si je veux m'attirer des ennuis.^"; return 2;], each_turn [;if (self.retourner==0) {print "^Ma 1ere carte est retournée. ";} else {print "^Ma 1ere carte est ";MontreCarte(self.valeur,self.signe);}], retourner 0, valeur 0, signe 0, has proper female; Object cartej2 "la deuxième carte de Gilbert", with name 'deuxième carte de Gilbert', description [;print "^C'est ma 2ème carte. ^";if (self.retourner==0) {print "Pour l'instant, elle est retournée face cachée contre la table.^";} else {print "^Elle représente ";MontreCarte(self.valeur,self.signe); print "^";}], before [;Take : print "^Non, sauf si je veux m'attirer des ennuis.^"; return 2;], each_turn [;if (self.retourner==0) {print "^Ma 2ème carte est retournée. ";} else {print "^Ma 2ème carte est ";MontreCarte(self.valeur,self.signe);}], retourner 0, valeur 0, signe 0, has proper female; Object carteb1 "la premiere carte de la banque", with name 'premiere' 'carte' 'de' 'la' 'banque', description [;print "^C'est la 1ere carte de la banque. ^";if (self.retourner==0) {print "Pour l'instant, elle est retournée face cachée contre la table.^";} else {print "^Elle représente ";MontreCarte(self.valeur,self.signe); print "^";}], before [;Take : print "^Non, sauf si je veux m'attirer des ennuis.^"; return 2;], each_turn [;if (self.retourner==0) {print "^La 1ere carte de la banque est retournée. ";} else {print "^La 1ere carte de la banque est ";MontreCarte(self.valeur,self.signe);}], retourner 0, valeur 0, signe 0, has proper female; Object carteb2 "la deuxième carte de la banque", with name 'deuxieme carte de la banque', description [;print "^C'est la 2ème carte de la banque. ^";if (self.retourner==0) {print "Pour l'instant, elle est retournée face cachée contre la table.^";} else {print "^Elle représente ";MontreCarte(self.valeur,self.signe); print "^";}], before [;Take : print "^Non, sauf si je veux m'attirer des ennuis.^"; return 2;], each_turn [;if (self.retourner==0) {print "^La 2ème carte de la banque est retournée. ";} else {print "^La 2ème carte de la banque est ";MontreCarte(self.valeur,self.signe);}], retourner 0, valeur 0, signe 0, has proper female; Object carte8 "carte à jouer", with name 'carte' 'jouer', description "Mon atout...un valet de trèfle. Autant dire que j'ai perdu cinq mille dollars. Mais bon, cela fera un beau porte bonheur.^^Au dos de la carte j'ai la signature alambiquée de Mikolaj, le patron de la mafia polonaise.^", has female; [Deal; move carteb1 to tripot; move carteb2 to tripot; move cartej1 to tripot; move cartej2 to tripot; carteb1.retourner=0; carteb2.retourner=0; cartej1.retourner=0; cartej2.retourner=0; carteb1.valeur=0; carteb2.valeur=0; cartej1.valeur=0; cartej2.valeur=0; carteb1.signe=0; carteb2.signe=0; cartej1.signe=0; cartej2.signe=0; while ( (carteb1.valeur==carteb2.valeur && carteb1.signe==carteb2.signe) || (carteb1.valeur==cartej1.valeur && carteb1.signe==cartej1.signe) || (carteb1.valeur==cartej2.valeur && carteb1.signe==cartej2.signe) || (carteb2.valeur==cartej1.valeur && carteb2.signe==cartej1.signe) || (carteb2.valeur==cartej2.valeur && carteb2.signe==cartej2.signe) || (cartej1.valeur==cartej2.valeur && cartej1.signe==cartej2.signe) ) { carteb1.valeur=random(13); carteb2.valeur=random(13); cartej1.valeur=random(13); cartej2.valeur=random(13); carteb1.signe=random(4); carteb2.signe=random(4); cartej1.signe=random(4); cartej2.signe=random(4); } ]; Object remise "remise du Diadzo", with description [; Affiche(115); print "^La remise du Diadzo, où l'on stocke tout ce qui ne doit pas apparaître aux clients du Bar.^^L'envers du décor, quoi. ^"; ], each_turn [; self.compteur++; switch(self.compteur) { 1 : print "^J'entends un éclat de voix contenu depuis la salle de jeu. Je ferais mieux de verrouiller l'endroit. ^"; 2 : print "^Aux voix, je devine qu'une autre personne vient d'arriver dans la salle de jeu. Ca craint. ^"; 3 : if (porteremise has locked) {print "^On pousse la poignée de la porte. Ouf. J'ai bien fait de la verrouiller. ^";} else {FinRemise();} 4 : print "^J'entends d'autres voix, rageuses, depuis la salle de jeu. Ils doivent être en colère. ^"; 5 : print "^Silence. Ca doit réfléchir dur, de l'autre coté. Bon, à mon tour de réfléchir également. ^"; 6 : Gras();print "^BOM ! On essaye d'enfoncer la porte !^";Normal(); 7 : Gras();print "^BOM !";Normal();print" Le verrou tressaute sous l'impact, mais tient bon. Pour combien de temps encore ?^"; 8 : Gras();print "^BOM !";Normal();print " Le verrou s'arrache à moitié, mais maintient suffisamment la porte pour qu'ils ne s'aperçoivent pas qu'elle est pratiquement déverouillée. Le prochain coup sera le bon. ^"; 9 : if (armoire4.poussed==1) {Gras();print "^BOM !";Normal();print " Le verrou saute mais la porte reste solidement fermée par l'armoire. Hé Hé. Bien joué Gilbert.^";} else {FinRemise();} } if (self.compteur>10) {if (random(3)==1) {print "^BOM ! L'armoire bouge de quelques millimètres. ^";}} ], cant_go "^Pas de sortie apparente par là. ^", d_to [;if ((trappe in remise) && (trappe has open)) {if (cadrevrai in player) {print "^Malédiction ! Je ne peux passer dans la trappe avec le cadre !^";return 1;} else {return egout1;}} else {return 1;}], compteur 0, has scenery; Object porteremise "porte" remise with name 'porte' 'verrou' 'serrure', description "^La porte de la remise est fermée. Elle est munie d'un gros verrou.^ ", before [;Open : print "^Hum, non, les autres m'attendent derrière. ^";return 2; Close, Lock : if (self has locked) {print "^Le verrou est déjà bien fermé, pas la peine d'insister. ^";return 2;} else {print "^Je ferme le lourd verrou qui s'obture dans un clac sonore. Une bonne chose de faite !^";give self locked;return 2;}], has scenery static openable lockable female; Object armoire4 "armoire" remise with name 'armoire' 'etagere' 'meuble' 'magazines', description [;Affiche(133);print "Une armoire de métal se tient à coté de la porte d'entrée. Elle est remplie de vieux magazines. ";], before [;Push : if (self.poussed==1) {print "^Je pourrai pas la bouger plus !^";return 2;} else { if (porteremise has locked) {self.poussed=1;print "^A grands coups d'épaule douloureux, poussé par l'urgence, je fais basculer l'armoire devant la porte close.^^";Gras();print "BOOM !";Normal();Attend();print "^^Ca devrait les occuper un moment...et me laisser le temps de trouver une sortie, parce que malin comme je suis, j'espère ne pas m'être enfermé là dedans !^";Attend();print "^Tiens tiens...il y a une sorte de trappe ouverte sur le sol à l'endroit où était l'armoire !^^";move trappe to remise;return 2;} else {print "^Pas bête, mais je pourrais déjà commencer par verrouiller la porte, non ?^";return 2;} }], poussed 0, has static openable lockable female; Object fatras "objets inutiles" remise with name 'fatras' 'bric a brac' 'choses' 'objets', description "Cette petite pièce est encombrée d'objets complétement inutiles. Enfin, inutiles pour le triste héros vieillissant que je suis, je suis persuadé que beaucoup d'autres héros auraient trouvé une folle utilité à une barre à mine marquée d'un lambda, une sorte de peluche de volatile avec une poulie au milieu, un fouet ou je ne sais quoi d'autre ?", has static pluralname; Object trappe "trappe" with name 'trappe' 'sortie' 'plaque' 'metallique', description "^Une trappe s'ouvre dans la remise et plonge dans les ténèbres sous la cité de Varsovie^", before [;Enter : if (cadrevrai in player) {print "^Malédiction ! Je ne peux passer dans la trappe avec le cadre !^";return 1;} else {PlayerTo(egout1);return 2;}], has static female; Object cadrevrai "cadre" remise with name 'cadre' 'tableau', description [;Affiche(137);print "^Je n'arrive pas à croire que je tiens enfin ce cadre qui m'échappe depuis Rome !^^ Et comme pour son faux, il y a bien une petite ecriture sur le dos du cadre !^";]; Object ecriture5 "ecriture" remise with name 'petite' 'ecriture' 'inscription', description [;Affiche(137);print "^J'aiguise mes yeux à la lumière faible de l'ampoule de la remise et j'y lis :^^";Italique();Attend();print " Isola de San Michele, une croix noire montre l'emplacement.^";Normal();Attend();print "^San Michele. L'ile des morts. Une croix. S'il ne s'agissait d'un cimetiere, j'en aurais presque l'excitation de la chasse au trésor.^";self.lu=1;], lu 0, has scenery static; Object grosbras "gros bras" with daemon [; self.compteur++; switch(self.compteur) { 2 : print "^J'entends des exclamations en polonais venant de plus haut. Apparamment, ma petite escapade souterraine a été éventée. ^"; 5 : print "^J'entends quelqu'un descendre le long des echelons metalliques de la trappe. Ils sont à mes trousses !^"; 6 : print "^J'entends des voix en polonais. Mon ou mes poursuivants sont en bas de l'échelle. Je ferais mieux de trouver une issue, moi. ^";if (location==egout1) {FinEgout();} 7 : if (location==egout1) {FinEgout();} 8 : if (location==egout1) {FinEgout();} 9 : print "^J'entends des clapotis et des jurons étouffés, il y a quelqu'un vers la premiere intersection du souterrain.^";if (location==egout2) {if (grille1 has locked && egout2.cote==1) {print "^ (Enfer ! L'âme damnée de Mikolaj passe de l'autre coté de la grille fermée. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";Affiche(123);} else {FinEgout();}} 10 : if (location==egout2) {if (grille1 has locked && egout2.cote==1) {print "^ (Enfer ! L'âme damnée de Mikolaj passe de l'autre coté de la grille fermée. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";Affiche(123);} else {FinEgout();}} 11 : if (location==egout2) {if (grille1 has locked && egout2.cote==1) {print "^ (Enfer ! L'âme damnée de Mikolaj passe de l'autre coté de la grille fermée. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";Affiche(123);} else {FinEgout();}} 12 : print "^~Aristo !~ - J'entends qu'on m'appelle - une voix qui vient de la deuxième intersection, avec la herse qui mène à la lumière du jour. ^";if (location==egout3) {if (grille2 has locked && egout3.cote==1) { print "^ (Enfer ! L'âme damnée de Mikolaj tourne près de la grille fermée et teste la force des barreaux avec ses bras. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";} else {FinEgout();}} 13 : if (location==egout3) {if (grille2 has locked && egout3.cote==1) { print "^ (Enfer ! L'âme damnée de Mikolaj tourne près de la grille fermée et teste la force des barreaux avec ses bras. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";} else {FinEgout();}} 14 : if (location==egout3) {if (grille2 has locked && egout3.cote==1) { print "^ (Enfer ! L'âme damnée de Mikolaj tourne près de la grille fermée et teste la force des barreaux avec ses bras. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";} else {FinEgout();}} 15 : if (grille2 has locked) { print "^J'entends des clapotis rapides dans l'allée principale : mon poursuivant revient sur ses pas en courant !^";self.compteur=8; if (location==egout2) { if (grille1 has locked && egout2.cote==1) {print "^ (Enfer ! L'âme damnée de Mikolaj passe de l'autre coté de la grille fermée. Je me glisse dans un coin d'ombre pour ne pas me faire voir)^";} else {FinEgout();} } } else {print "^J'entends un son dur suivi d'une violente exclamation. De toute évidence, mon poursuivant vient de se cogner la tête contre les canalisations dans le passage sombre^"; if (location==egout4) {FinEgout();} } 16 : if (location==egout4) {FinEgout();} 17 : if (location==egout5) {FinEgout();} 18 : if (location==egout5) {FinEgout();} 19 : print "^J'entends mon poursuivant qui revient à la première intersection depuis le passage sombre. ^"; if (location==egout2) {if (grille1 has locked && egout2.cote==0) {print "^ Hé hé, il est bloqué par la grille fermée à clef. ^";} else {FinEgout();}} 20 : if (grille1 has locked && egout2.cote==0) { if (location==egout2) {if (grille1 has locked && egout2.cote==0) {print "^ Mon poursuivant est bloqué par la grille dont il teste la force des barreaux. ^";} else {FinEgout();} }} else {self.compteur=8;} 21 : if (location==egout5) {FinEgout();} 22 : if (location==egout4) {FinEgout();} 23 : print "^J'entends mon poursuivant qui revient à la deuxième intersection depuis le passage sombre. ^"; if (location==egout3) {if (grille2 has locked && egout3.cote==0) {print "^ Hé hé, il est bloqué par la grille fermée à clef. ^";} else {FinEgout();}} 24 : if (grille2 has locked && egout3.cote==0) { if (location==egout3) {if (grille2 has locked && egout3.cote==0) {print "^ Mon poursuivant est bloqué par la grille dont il teste la force des barreaux. ^";self.compteur=14;} else {FinEgout();} }} else {self.compteur=14;} } ], compteur 0, has scenery; Object egout1 "Egouts de Varsovie" with description [;Affiche(108);print "^Mon vieux Gilbert, parfois, faut toucher le fond pour être sûr qu'on peut remonter.^^ Malheureusement, ce n'est pas le genre de fond dont je rêve la nuit, enfin du moins, quand je ne fais pas de cauchemars : je me retrouve en effet dans un passage vouté de pierres anciennes scellées de métal rouillé et friable, les pieds dans une fange immonde et surtout d'une odeur pestilentielle, à me faire perdre conscience.^^Les égouts de Varsovie, sortie prévisible d'un rat comme Mikolaj.^^Loin à l'ouest, je devine une lumière qui me semble naturelle. Au dessus de moi, une échelle de métal monte vers la remise du Diadzo.^"; if (self.vu==0) {StartDaemon(grosbras);self.vu=1;}], cant_go "^Non, je peux juste aller vers l'ouest, là (je n'ai nulle envie de remonter pour retrouver ces ignobles personnages !) ^", each_turn [;AnimEgout();], w_to egout2, vu 0, has scenery; Object egout2 "Egouts de Varsovie" with description [;Affiche(107);print "^Les égouts de Varsovie, les déchets des polonais qui coulent dans la boue liquide qui me monte jusqu'aux genoux.^^Au loin à l'ouest, je vois une sortie auréolée de lumière, sinon le passage vers l'ouest plonge dans les ténébres et me ramène à la remise de l'épouvantable Diadzo. ^";], each_turn [;AnimEgout();], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", w_to [;if (self.cote==0) {egout3.cote=0;return egout3;} else {if (grille1 has open) {self.cote=0;egout3.cote=0;return egout3;} else {print "^Je ne peux pas ! Cette fichue grille me bloque le passage !^";return 1;}}], e_to [;if (self.cote==0) {return egout1;} else {if (grille1 has open) {self.cote=0;return egout1;} else {print "^Je ne peux pas ! Cette fichue grille me bloque le passage !^";return 1;}}], s_to [;if (self.cote==1) {return egout5;} else {if (grille1 has open) {self.cote=1;return egout5;} else {print "^Je ne peux pas ! Cette fichue grille me bloque le passage !^";return 1;}}], cote 0, has scenery; Object grille1 "grille" egout2 with name 'grille' 'herse' 'porte' 'bronze' 'metal' 'serrure' 'verrou', description [;Affiche(228); print "^Une grille métallique d'épais barreaux entrecroisés et recouverts d'ordures bloque le passage nord / sud. ^^Un épais verrou la ferme solidement.^ ";], before [;Unlock : if (self has locked) {if (second==clefgrille) {print "^Je déverrouille la grille et la serrure obeit dans des miaulements d'animal mourrant. ^";Joue(179);give self ~locked;return 2;} else {print "^Je ne pourrais pas la déverrouiller avec cela. ^";return 2;}} else {print "^Pas besoin : elle est déjà déverrouillée !^";return 2;} Lock : if (self hasnt locked) {if (second==clefgrille) {print "^Je ferme la grille à double tour et la serrure obeit dans des miaulements d'animal mourrant. ^";give self ~open;give self locked;return 2;} else {print "^Je ne pourrais pas la verrouiller avec cela ! ^";return 2;}} else {print "^Pas besoin : elle est déjà fermée à double tour !^";return 2;} Open : if (self hasnt locked) {print "^J'ouvre la grille et je passe rapidement de l'autre coté. La grille se referme doucement derrière moi avec force grincements. ^";egout2.cote=1-egout2.cote;return 2;} else {print "^C'est fermé à clef...Grrr^";return 2;} ], initial [;print "^Une grille de métal "; if (self has ~open) {print "bloque";} else {print "ouverte mène à";} if (egout2.cote==0) {print " un passage plongé dans l'obscurité vers le sud. ^";} else {print " l'artère principale de cet horrible endroit ";}], has static female openable lockable locked; Object clefgrille "lourde clef" egout2 with name 'lourde' 'clef' 'grosse' 'epaisse', description "^C'est l'épaisse clef de métal grossier des égouts de Varsovie.^ ", before [;Take : if (self.prise==0) {if (egout2.cote==0) {print "^Malédiction. Cette satanée clef est de l'autre coté de la grille, dont les barreaux sont bien trop resserés pour que je puisse y passer mon bras. ^";return 2;} else {print "^Et hop, dans la poche.^";self.prise=1; move self to gilbert; return 2;}}], initial [;if (prise==0) { if (egout2.cote==0) {print "^De l'autre coté de la grille, dans la serrure du verrou est fichée une lourde clef. ^";} else {print "^La clef de la grille est fichée dans le verrou.^";}} else {print "^Je peux voir une lourde clef. ^";}], prise 0, has female; Object egout3 "Egouts de Varsovie" with description [;Affiche(153);print "^L'eau diminue par ici, mais les odeurs n'en sont que plus fortes, épongées par les pierres humides griffées de mousses grouillantes d'insectes.^^Droit devant moi, vers l'ouest, je vois une sortie qui débouche sur la lumière du jour, et derrière moi, à l'est, le passage continue pour revenir au Diadzo. ";], each_turn [;AnimEgout();], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", w_to [;if (grille3.cote==0) {print "^Hum, la grille est fermée !^";return 1;} else {return egout6;}], e_to [;if (grille3.cote==1) {print "^Non, maintenant que je suis du bon coté, j'y reste !^";return 1;} else {if (self.cote==0) {return egout2;} else {if (grille2 has open) {self.cote=0;return egout2;} else {print "^Je ne peux pas ! Cette fichue grille me bloque le passage !^";return 1;}}}], s_to [;if (grille3.cote==1) {print "^Non, maintenant que je suis du bon coté, j'y reste !^";return 1;} else {if (self.cote==1) {return egout4;} else {if (grille2 has open) {self.cote=1;return egout4;} else {print "^Je ne peux pas ! Cette fichue grille me bloque le passage !^";return 1;}}}], cote 0, has scenery; Object grille2 "grille" egout3 with name 'grille' 'porte' 'bronze' 'metal' 'serrure' 'verrou', description [;Affiche(228);print "^Une grille métallique d'épais barreaux entrecroisés et recouverts d'ordures bloque le passage nord / sud. ^^Un épais verrou la ferme solidement.^ ";], before [;Unlock : if (self has locked) {if (second==clefgrille) {print "^Je déverrouille la grille et la serrure obeit dans des miaulements d'animal mourrant. ^";Joue(179);give self ~locked;return 2;} else {print "^Je ne pourrais pas la déverrouiller avec cela. ^";return 2;}} else {print "^Pas besoin : elle est déjà déverrouillée !^";return 2;} Lock : if (self hasnt locked) {if (second==clefgrille) {print "^Je ferme la grille à double tour et la serrure obeit dans des miaulements d'animal mourrant. ^";give self ~open;give self locked;return 2;} else {print "^Je ne pourrais pas la verrouiller avec cela ! ^";return 2;}} else {print "^Pas besoin : elle est déjà fermée à double tour !^";return 2;} Open : if (self hasnt locked) {print "^J'ouvre la grille et je passe rapidement de l'autre coté. La grille se referme doucement derrière moi avec force grincements. ^";egout3.cote=1-egout3.cote;return 2;} else {print "^C'est fermé à clef...^";return 2;} ], initial [;print "^Une grille de métal "; if (grille2 has open) {print "entrouverte mène à";} else {print "bloque";} if (egout3.cote==0) {print " un passage plongé dans l'obscurité vers le sud. ^";} else {print " l'artère principale de cet horrible endroit ";}], has static female openable lockable open; Object grille3 "herse" egout3 with name 'herse', description [;Affiche(228);"^Une lourde herse, semblable aux autres grilles, aux barreaux très épais bloque le passage plus loin vers l'ouest. ^^Un épais verrou la ferme solidement.^ ";], before [;Unlock : if (self has locked) {if (second==clefgrille) { self.rouille++; if (self.rouille>3) {Gras();print "^Enfin !^";Normal();Attend(); print "^Je déverrouille la grille et la serrure obeit dans des miaulements d'animal mourrant.^^Je passe immédiatement de l'autre coté. ^";Joue(179);give self ~locked;self.cote=1; StartDaemon(mikolaj2);return 2;} else { print "^Rhha ! C'est la bonne clef, mais la serrure est rouillée et fermée comme une huître.^^Tu parles d'une sortie de secours !^^Je sens que si j'insiste encore quelques fois, la serrure cédera. ^";return 2;}} else {print "^Je ne pourrais pas la déverrouiller avec cela. ^";return 2;}} else {print "^Pas besoin : elle est déjà déverrouillée !^";return 2;} Lock : if (self hasnt locked) {if (second==clefgrille) {print "^Je ferme la grille à double tour et la serrure obeit dans des miaulements d'animal mourrant. ^";give self ~open;give self locked;return 2;} else {print "^Je ne pourrais pas la verrouiller avec cela ! ^";return 2;}} else {print "^Pas besoin : elle est déjà fermée à double tour !^";return 2;}], initial [;print "^Une lourde herse "; if (grille3 has open) {print "ouverte mène au";} else {print "bloque le";} print " passage s'élargissant dans la lumière du jour.^";], rouille 0, cote 0, has static female openable lockable locked; Object mikolaj2 "Mikolaj" with name "mikolaj" "homme" "mafia" "boss", description [;Affiche(114);print "^^Sans qu'il se présente, j'ai tout de suite deviné l'identité de cet homme vis à vis duquel Aristo m'a dit d'observer la plus grande prudence.^^Son origine est incertaine, avec des traits de l'est, mais moyen orientaux, également, et son regard, comme son visage, semble éprouvé par une intelligence usée par les évenements.^^";], life [; Tell,Ask,Answer : Affiche(114);print "^~Je t'aurais, Aristo, ce n'est qu'une question de temps !~^";return 2; Attack : print "^Il le mérite, mais ce n'est pas vraiment prudent. ^";return 2; ], daemon [j; if (location==egout6 && self.balles>0 && self.balles<6) {Attend();print "^Malheureusement, je suis trop lent à prendre le couvert, et bêtement je me plante en plein milieu du couloir en contrejour de la lumière de la sortie.^^";Attend();print " Mikolaj avait raison, il vise parfaitement et dès qu'il fait feu une douleur intolérable me transperce la cuisse.^";Attend();print "^Je ne sais pas ce qu'il va t'arriver, mon vieux Gilbert, mais pour toi, c'est la fin du voyage...";deadflag=1;Joue(197);} if (mikolaj2 notin egout1 && mikolaj2 notin egout3) {move mikolaj2 to egout1;Attend();print "^Oh non, j'entends encore quelqu'un descendre de l'échelle de la remise. Aux exclamations de grosses voix, je devine sans mal qu'il s'agit de Mikolaj en personne !^";Attend();print "^Je ferais mieux de décamper et de surveiller mes arrières !^";Attend();print "^";} else if (location==egout6 && self.balles==6) {StopDaemon(grosbras);move mikolaj2 to egout3; Joue(204); print "^Alors que je cours vers la sortie un coup de feu retentit et un projectile vient éclater une pierre au dessus de ma tête :^";Attend(); Affiche(114);print "^~On ne bouge plus, Aristo !~^";Attend();print "^ ";Italique();print "~Je ne suis pas Aristo !~^";Normal();print "^Bigre ! Je ferais mieux de me planquer fissa !^";self.balles--;Attend(); if (grille3 has locked) {print "^Mikolaj tente de pousser la herse mais celle-ci reste fermée.^^Ses yeux se plissent méchamment alors qu'il dit :^";Attend();Affiche(114);print "^~Petit Malin...ne bouge pas ! Lance moi la clef ! Je peux t'abattre sur le champ !";Attend();print "^";} else {print "^Mikolaj pousse la herse et vient me rejoindre en quelques pas lourdauds. Il me répond d'une voix sifflante par l'effort d'avoir courru :^";Attend();Affiche(114);print "^ ~Cela n'a pas d'importance. Vous allez venir avec moi, et me dire pourquoi vous vouliez tant obtenir ce cadre. ~^^";Attend();print "J'ai du donc le suivre et suis remonté dans le Diadzo.^";Attend();print "^ Hélas, plus personne ne revit Gilbert Fontenelle par la suite.^^";deadflag=1;Joue(197);}} else if (location==egout3 && self.balles>0 && self.balles<6) {print "^Je me rapproche de Mikolaj qui pointe une arme à feu sous mon nez au travers des barreaux :^";Attend();Affiche(114);print "^~Ne bouge pas, Aristo. ~^"; Attend(); print "^~Vous vous trompez, je vous l'ai déjà dit : je ne suis pas Aristo. ~^"; Attend(); print "^Malheureusement, en ce monde, c'est celui qui tient le pistolet qui a raison. Je lui tendis la clef de la herse quand il me la demanda et dut le suivre sous la menace jusqu'au Diadzo.^";Attend();print "^ Et le monde n'entendit plus parler de Gilbert Fontenelle. ^";deadflag=1;Joue(197);} if (location==egout8 && self.balles>0) {print "^Je cours pour ma liberté, et pour ma vie...mais pas assez rapidement, malheureusement...^";Attend();print "^Mikolaj avait raison, il vise parfaitement et dès qu'il fait feu une douleur intolérable me transperce la cuisse.^";Attend();print "^Je ne sais pas ce qu'il va t'arriver, mon vieux Gilbert, mais pour toi, c'est la fin du voyage...";deadflag=1;Joue(197);} else if (location==egout7) { j=random(10); switch(j) { 1 : print "^~Sortez de votre trou, Aristo, je sais que cette sortie a été murée !~^"; 2 : print "^~Tu essayes de gagner du temps, Aristo, mais c'est peine perdue !~^"; 3 : print "^~Tu ne t'échapperas pas !~^"; } } else if (location==egout3 && self.balles==0) { print "^Je me rapproche, curieux, de Mikolaj qui bouillone derrière sa grille. Il explose :^"; Attend();Affiche(114); print "^~Tu ne perds rien pour attendre, escroc !~^"; Attend(); print "^~Mieux vaut être un escroc, qu'un ";Italique();print "meurtrier. ~^";Normal(); Attend(); print "^~Qu'il y avait-il sur ce cadre pour que tu reviennes ici, dans la gueule du loup ?~^"; Attend(); print "^Je fais une petite moue : ~Rien, malheureusement. J'aurais espéré qu'il y ait au moins une toile. Franchement, cela n'en valait pas la peine. ~^"; Attend(); print "^Mikolaj me regarde d'un air méprisant :^^~Oui, bien entendu, tu penses que je vais te croire ! Est ce cette petite écriture, au dos du cadre ? Ce cadre a t il tant de valeur ? Aristo, réponds ! Que dois je faire avec ce cadre ?~^"; Attend(); print "^~Mettez y un beau tableau. Un Botticelli, par exemple. ~^";Attend();print "^Je sors la carte signée de ma poche et lui montre le valet de trèfle : ~Vous n'avez pas tout perdu, mais moi si. Gardez ma mise et restons en là. ~^"; Attend(); print "^Mikolaj hurle : ";Gras();print "~CERTAINEMENT PAS, ARISTO ! ";Normal();print "Tu ne sortiras pas vivant de Varsovie !~^"; Attend(); print "^Vivant, peut être pas, mais propre, certainement pas, effectivement.^^Et dans les malédictions pittoresques du patron de la mafia polonaise, je repars tranquillement vers la sortie...^";Attend(); mikolaj2.carted=1; PlayerTo(egout8); self.parled=1;} if (location==egout8 && self.balles<1) {Joue(30);HotelGalina();} ], balles 6, parled 0, carted 0, has animate proper; Object egout4 "Egouts de Varsovie" with description [;Affiche(128);print "^Le passage est plafonné de vieilles canalisations de plomb et de terre cuite qui me forcent à courber le corps encore plus près de la fange toujours plus immonde.^^Le passage remonte vers le nord dans un couloir principal";if (gilbert.pupille==3) {print ", et je devine maintenant un passage bifurquant vers l'est dans l'obscurité.^";} else {print ". Il y a peut être autre chose, mais l'obscurité est totale. ";Affiche(151);}], each_turn [;AnimEgout();if (gilbert.pupille==3) {print "^Je devine un passage s'enfonçant vers l'est dans des ténèbres absolues. ^";}], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", n_to [;egout3.cote=1;return egout3;], e_to [;if (gilbert.pupille==3) {return egout5;} else {return 1;}], has scenery noir; Object egout5 "Egouts de Varsovie" with description [;Affiche(129);print "^Le passage est plafonné de vieilles canalisations de plomb et de terre cuite qui me forcent à courber le corps encore plus près de la fange toujours plus immonde.^^Le passage remonte vers le nord dans un couloir principal";if (gilbert.pupille==3) {print ", et je devine un passage bifurquant vers l'ouest dans l'obscurité.^";} else {print ". Il y a peut être autre chose, mais l'obscurité est totale. ";Affiche(151);}], each_turn [;AnimEgout();if (gilbert.pupille==3) {print "^Je devine un passage s'enfonçant vers l'ouest dans des ténèbres absolues. ^";}], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", n_to [;egout2.cote=1;return egout2;], w_to [;if (gilbert.pupille==3) {return egout4;} else {return 1;}], has scenery noir; Object egout6 "Egouts de Varsovie" with description [;Affiche(149);Joue(196);print "^Le tunnel s'élargit et je sens un peu d'air frais.^^En revanche, le sol est inégal et je manque de glisser à tout instant sur les pavés inégaux du sol recouverts de mousse humide.^^Le tunnel continue vers l'ouest et la lumière, mais bifurque abruptement également au nord dans un passage plus sombre.^";], each_turn [;AnimEgout();], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", n_to egout7, w_to egout8, e_to egout3, has scenery; Object egout7 "Egouts de Varsovie" with description [;Affiche(150);print "^Et mince, un cul de sac.^^Le passage vouté se termine par un mur récent de parpaings qui obstrue complétement la prolongation du tunnel vers le nord.^^Au sud, je peux voir le passage principal, éclairé par la lumière venant de l'est.^";], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", each_turn [;AnimEgout(); if (gilbert.pupille>2 && paves notin egout7) {remove tasdetruc;move paves to egout7;} else {Affiche(151);} ], s_to egout6, has scenery noir; Object tasdetruc "tas etrange" egout7 with name 'tas' 'chose' 'etrange' 'trucs', description "^Dans cette obscurité, je sens une sorte de tas...de trucs en pierre...mais je n'y vois pas suffisamment pour déterminer ce que c'est. ^ ", has static; Object paves "tas de paves" with name 'tas' 'paves' 'pavés' 'pierre' 'pave' 'pavés' 'pavé', description "^Ah, c'est juste un tas de pavés, utilisés pour la réfection de l'endroit - une opération qui n'a jamais eu lieu apparemment. Ils ont bons dos, les ouvriers polonais tant craints en France ! Voilà en tout cas quelque chose qui ne va pas bien m'être utile, à moins que je trouve un bon slogan contestataire ! ^ ", before [;Take : if (pave in gilbert) {print "^J'en ai déjà un, c'est suffisamment lourd !^";return 2;} else {print "^Bon, ca me fera un souvenir...^";move pave to gilbert;return 2;}], has static; Object pave "pavé" with name 'pavé' 'pave' 'pierre', description [;Affiche(124);"^Un pavé, un parrallèlépipéde rectangle, une pierre de pavage, et hélas, je suis à court de synonymes. Et si je le lancais ?^ ";], before [;Take : if (pave in gilbert) {print "^J'en ai déjà un, c'est suffisamment lourd !^";return 2;} else {print "^Bon, ca me fera un souvenir...^";move pave to gilbert;return 2;} ThrowAt,Drop : print "^J'assure le poids du pavé dans ma main en le soupesant, et je le lance dans le couloir principal en criant : ^";Attend(); switch (mikolaj2.balles) { 5 : print "^~Sous les pavés la plage !~^"; 4 : print "^~Trop tard CRS ! Le Mouvement Populaire n'a pas de temple !~^"; 3 : print "^~Pas de rectangle blanc pour un peuple adulte !~^"; 2 : print "^~Le régime Gaulliste est un régime amaigrissant !~^"; 1 : print "^~J'emmerde la société et elle me le rend bien !~^"; 0 : print "^~Il est interdit d'interdire !~^"; } if (mikolaj2.balles>0) {Attend();Joue(204); print "^Le pavé s'écrase dans la boue avec un gros plouf et Mikolaj tire aussitôt à l'endroit de l'impact. Heureusement que je ne m'y suis pas risqué en personne ^";Attend();print "^Mikolaj grince :^^~Montre toi, Aristo !~^";mikolaj2.balles--; } else {Attend(); print "^Le pavé s'écrase dans la boue avec un gros plouf, mais cette fois-ci, je n'entends aucun coup de feu. Aha, mon poursuivant serait-il à court de munitions ?^"; } remove self; return 2; ], has static scenery; Object egout8 "Egouts de Varsovie" with description [;Affiche(152);"^Je vois enfin le bout du tunnel : au bout, plein ouest, la sortie est brillamment illuminée par la lumière du jour qui aveugle mes yeux habitués au noir de cet effroyable endroit.^^Libertad !";], each_turn [;AnimEgout();], cant_go "^Je n'ai pas l'impression qu'il y ait une issue par là. ^", w_to egout6, e_to egout6, has scenery; Object sdb "Salle de Bain d'un Hotel de Varsovie" with description [;Affiche(126);print "^Sans être luxueuse, me voilà dans une salle de bain tout à fait acceptable pour un hôtel des pays de l'est.^^Les carreaux blancs sont parfaitement entretenus, et le blanc des murs et du plafond est récent ; ajoutez à cela tout le confort et les installations d'une vraie salle de bain, non, Gilbert, on y est mieux qu'à Paris !^";], each_turn [;AnimGalina2();], cant_go "^Je peux sortir de la salle de bain, c'est tout ! (la fenêtre est un peu trop petite pour moi) ^", out_to [; if (costume hasnt worn && (hawaishirt hasnt worn || short hasnt worn)) {print "^Je rentre, nu ou presque, dans la chambre d'hôtel.^^Galina se met à crier en cachant ses yeux :^^~Mon Dieu ! Le professeur nu !~^^~Hé ! Sortez de cette chambre !~^^~C'est MA chambre, Professeur, alors retournez vous habiller !~^^Bon, elle a pas tort après tout.^";return 1;} else if (costume has worn) {print "^En me voyant sortir de la salle de bain, Galina soupire :^^~Professeur, je vous rappelle que vous êtes poursuivi par la mafia de Varsovie. Et en quoi vous vous déguisez avec ce costume ? En Gilbert Fontenelle ! Bien trouvé !~^^Bon, elle a pas tort, je retourne dans la salle de bain.^^";return 1;} else if (gilbert.rase==0) {print "^En me voyant sortir de la salle de bain, Galina soupire :^^~Professeur, je vous rappelle que vous êtes poursuivi par la mafia de Varsovie. Regardez votre barbe : vous avez l'air d'un français à mille kilomètres à la ronde ! Allez, remediez à cela s'il vous plaît !~^^Bon, elle a pas tort, je retourne dans la salle de bain.^^";return 1;} else if (gilbert.cheveux==0) {print "^Galina me regarde sortir de la salle de bain et croise les bras : ^^~Bon, vous ";Gras();print "COMMENCEZ "; Normal();print "à ressembler à autre chose qu'à Gilbert Fontenelle. Faudrait que vous fassiez quelque chose avec vos cheveux, éclaircir le tout, vous voyez ce que je veux dire ?~^^Je retourne dans la salle de bain en soupirant. Elle commence à être lourde.^^";return 1;} else if (lunettessoleil hasnt worn) {print "^Galina me dit, en me voyant sortir de la salle de bain : ~Vous y êtes ";Italique();print "PRESQUE.";Normal();print " Il vous manque...un je ne sais quoi de style, qui peut nous faire oublier le Gilbert que nous connaissons.^^Allez, je suis sûre que vous pouvez trouver.^^";return 1;} else if (westons hasnt worn && converse hasnt worn) {print "^Alors que je sors de la salle de bain en roulant des mécaniques avec mes lunettes de soleil de héros de série télé, Galina montre mes pieds nus et dit : ~Vous êtes sûr de ne rien avoir oublié, Professeur ?~^^";return 1;} else if (westons has worn) {print "^Galina montre mes westons : ~Vous ne faites pas très touriste avec ceci. Je crois avoir une paire plus appropriée dans l'armoire. ~^^";return 1;} else if (bob hasnt worn) {print "^Galina s'exclame : ~Parfait ! J'ai du mal à croire que vous êtes Gilbert le grognon. ~^^~Mieux vaut cela que Gilbert le Dragon. ~^^Galina prend un bob qui traînait sur le lit et me le pose sur la tête :^^~La touche finale. Mikolaj ne vous retrouvera jamais !~^^Ma dignité non plus, apparemment.^^";Attend();move bob to gilbert;give bob worn;return chambrehotel;} else {return chambrehotel;} ], has scenery; Object chambrehotel "Chambre d'un Hotel de Varsovie" with description [;Affiche(127);print "^Galina n'a pas lésiné sur les moyens pour se loger à Varsovie...^^La chambre d'hôtel est propre, lumineuse, meublée avec simplicité mais surtout confortable, accueillante, ~gemutlich~ aurais je pu dire si nous avions été un peu plus à l'ouest d'ici. ^";], cant_go "^Je peux entrer dans la salle de bain ou sortir de la chambre, ou encore sauter par la fenêtre, mais cette dernière alternative ne me remplit pas d'enthousiasme. ^", out_to [;ToJP2();return 1;], in_to sdb, has scenery; Object douche "douche" sdb with name 'douche' 'robinet' 'bain' 'baignoire' 'pomme' 'mosaique', description "^Une douche spacieuse de deux mètres carrés de carreaux peints en une mosaique qui forme des vagues grecques, et surmontée d'une grosse pomme de douche d'acier. La classe. ^ ", has female container enterable transparent open static; Object armoire5 "grande armoire" sdb with name 'grande' 'armoire' 'penderie' , description "^Une armoire blanche est dissimulée dans un des murs. ^ ", has female container enterable openable static; Object evier "evier" sdb with name 'evier' 'robinet' , description "^Un évier de porcelaine etincelante fait face à un miroir. ^ ", has supporter transparent open static; Object miroir "miroir" sdb with name 'miroir' , description "^Mouais. Je vieillis mal. ^ ", has static; Object lunettessoleil "lunettes de soleil" evier with name 'lunettes de soleil' 'soleil' 'lunettes' , description [;Affiche(98);print "^Bigre, des lunettes de soleil style motard des années 70, en amande et à la teinte progressive d'un vert bouteille du plus bel effet...dans les années 70. (c'est à dire, relativement en avance quand même par rapport à mes standards de mode). ^ ";], before [; Wear : Joue(210); Disrobe : if (bob has worn) {print "^Non, je vais les garder pour l'instant. ^";return 2;}], has female pluralname clothing; Object bob "Bob" chambrehotel with name 'bob' 'chapeau' 'zubrowska' , description "^Voilà un article de choix bien loin de mon couvre chef en tweed acheté au bord du Loch Lomond. Non, ce bob est un chapeau ridicule en toile aux couleurs de la Zubrowska, une vodka du pays. Autrement dit : la grande classe. ^ ", before [;Disrobe : if (bob has worn) {print "^Non, je vais le garder pour l'instant. ^";return 2;}], has clothing; Object rasoir "rasoir" evier with name 'rasoir' 'lame' , description "^Un rasoir à lames jetables...je n'ose imaginer l'utilisation que doit en faire Galina. ^ "; Object savon "savon" evier with name 'savon' 'savonette' , description "^Un savon dont le blanc immaculé rassure sur son efficacité. ^ "; Object eauo2 "flacon" evier with name 'flacon' 'etiquette', description "^Un flacon contenant un liquide transparent et muni d'une étiquette en polonais qui ne me dit pas grand chose, si ce n'est la formule chimique : H2O2. ^ ", before [; Smell : print "^Cela sent l'eau. ^";return 2; Drink : print "^Et pourquoi pas avaler du schampooing ou des lames de rasoir ? Je ne sais pas ce que c'est, mais je suis sûr d'une chose : c'est que ce qui est mangeable se trouve dans une cuisine, pas dans une salle de bain. ^";return 2; EmptyT,PutOn : if (second==gilbert) {if (gilbert.cheveux==1) {print "^J'ai eu ma dose, merci. ^";return 2;} else {print "^Bien. Ca me remplit pas de joie, mais...^^ (je mets consciencieusement de l'eau oxygénée sur mes cheveux...au bout de quelques minutes, je rince, pour découvrir une charmante chevelure blond platine. Cette fois-ci, je suis ";Gras();print "CERTAIN";Normal();print " de ne plus être en photo dans les magazines sur l'histoire de l'art. Quoique...)^";gilbert.cheveux=1; return 2;}}]; Object costume "costume gris" armoire5 with name 'costume' 'gris' , description "^Aha, mon bon vieux costume de travail. Le rassurant gris du labeur, de la fonctionnalité, et de l'efficacité : la blouse blanche des bibliothèques. ^ ", before [;Wear : if (hawaishirt has worn || short has worn) {print "^Je ne peux pas mettre mon costume par dessus ce que j'ai déjà sur le dos !^";return 2;}], has clothing; Object hawaishirt "chemise hawaienne" armoire5 with name 'chemise' 'fleurs' 'hawaienne' 'chemise hawaienne' 'chemise a fleurs' 'fleur' , description [;Affiche(99);print "^Oh oh, alerte au mauvais goût ! Voici une chemise vert vif imprimée de larges motifs floraux rouges et jaunes. Un accoutrement qui aurait parfaitement sa place...à l'autre bout de la planète. ^ ";], before [;Wear : if (costume has worn) {print "^Je ne peux pas mettre cette chemise par dessus mon costume !^";return 2;} else {Joue(209);} Disrobe : if (bob has worn) {print "^Non, je vais la garder pour l'instant. ^";return 2;}], has female clothing; Object short "bermuda" armoire5 with name 'bermuda' 'short' , description "^Un morceau (?) de pantalon, d'un rouge bordeau intense, serré au ventre par un élastique - et arrivant sous le genou dans de larges jambes de pantalon. Oeuvre d'un tailleur sous acide, ou résultat de la misère en goût du monde ? ^ ", before [;Wear : if (costume has worn) {print "^Je ne peux pas mettre ce short ridicule par dessus mon costume !^";return 2;} Disrobe : if (bob has worn) {print "^Non, je vais le garder pour l'instant. ^";return 2;}], has clothing; Object converse "paire de Converse" armoire5 with name 'paire' 'chaussures' 'converse' , description [;Affiche(134);print "^Voici une paire de chaussure en toile typique des USA lorsque Norman Rockwell en était le peintre. ^ ";], before [;Wear : if (westons has worn) {print "^J'ai déjà des chaussures aux pieds !^";return 2;} Disrobe : if (bob has worn) {print "^Non, je vais les garder pour l'instant. ^";return 2;}], has female clothing; Object westons "paire de Weston" armoire5 with name 'paire' 'chaussures' 'weston' , description "^Ah, mes Weston. Voilà de la qualité ! Leur passage dans la Vistule ne les ont pas trop fait souffrir ! ^ ", before [;Wear : if (converse has worn) {print "^J'ai déjà des chaussures aux pieds !^";return 2;}], has female clothing; Object ciseaux "paire de ciseaux" evier with name 'paire de ciseaux' 'ciseaux' 'ciseau', description "^Des ciseaux fins. ^ ", has female; Object galina2 "Galina" chambrehotel with name "galina" "femme" "russe" "fille" "slave", description [;Affiche(45);print "^Une femme étrange, vive de mouvements et d'esprit, d'une finesse et d'une habileté intellectuelle bouillonante que l'on devine dans l'expression de son visage ou même dans son regard, autrement dit, Galina, le boulet sympathique qui sait nous sortir des ennuis. ^^";], life [;Answer,Ask,Tell: Affiche(45); print "^Question dialogue, je lui laisse l'initiative, elle en fait bien assez à elle seule !^";return 2; Give : print "^Galina s'exclame : ~Hé, joli truc ! Vous voulez me le donner ?~^^Euh, non, finalement, je vais le garder pour moi. ";return 2; Kiss : print "^Ah, elle m'a sauvé, c'est vrai, mais je ne veux pas perturber mes relations avec cette femme efficace pour l'instant. ^";return 2; Attack : print "^Je donne une tape sur l'épaule de Galina.^^~Hé Galina. ~^^~Oui Professeur ?~^^~Merci de m'avoir raccompagné à l'hotel. ~^^~Vous auriez fait la même chose, n'est ce pas ?~^^Je réfléchis...c'est une question à laquelle il est difficile de répondre. Mais je pense, que maintenant, forcément, je le ferais. Mais naturellement, je réponds : ^^~Bien entendu, mais merci quand même. ~ ^";return 2; ], each_turn [;AnimGalina2();], k 0, stop 0, has animate proper scenery; Object lit "lit" chambrehotel with name 'lit', description "^Voilà un lit qui m'a l'air très confortable. Dommage que l'heure ne soit pas à la sieste... ^ ", has supporter enterable open transparent; Object journalv "edition du jour" lit with name 'edition du jour' 'journal', description [;Affiche(142);print "^Le journal est en polonais...chouette...^ ";if (location==chambrehotel) {print "^Mais Galina me le traduit : Il parle de toutes les manifestations populaires de la journée...Varsovie, m'a l'air paralysée, écoutez un peu :^^~Procession religieuse dans le Stare Miasto (le centre de la ville), Manifestation anti-européenne dans le quartier des affaires. Accessoirement, la Pologne joue en coupe d'Europe au stade aujourd'hui. Vous aimez le football professeur ?~^^~J'ai la tête d'un type qui a l'air d'aimer le football ?~^^~Maintenant, oui !~^";}], article "l'"; Object visite1 "Entrée du Musée Jean Paul II" with description [;Affiche(229);print "^Un bel exemple d'architecture dépressive aux relents sovietiques : murs d'un beige triste accordés au mobilier et aux rideaux marrons.^^ Le personnel est composé uniquement d'individus ayant amplement dépassé le troisième âge, à se demander qui des antiques ou des antiquités gardent les autres. ^^D'ici, deux galeries s'ouvrent au passage, une au nord est, une autre vers le nord ouest, et en face, plein nord, deux doubles portes menant au coeur du musée, mais apparemment fermées. ^";], cant_go "^Deux galeries s'ouvrent, une au nord est, une autre vers le nord ouest.^^Le passage nord vers la fameuse rotonde m'a l'air fermé, et sinon il y a toujours la sortie du musée, au sud. ^", out_to "^Non, pas tant que j'aurai obtenu ce que je suis venu chercher !^", s_to "^Non, pas tant que j'aurai obtenu ce que je suis venu chercher !^", n_to [;print "^Je pousse les doubles portes qui mènent vers la rotonde, mais le passage m'a l'air bel et bien fermé. ^";return 1;], ne_to v2, nw_to v4, has scenery; Object guide "guide" visite1 with name "guide" "gardien" "surveillant" "employé" "vieil" "homme" "vieillard", description [;Affiche(159); print "^Un vieil homme, boiteux, porte un costume hors d'âge et une casquette qui le distingue en tant que guide officiel du Musée. Je retiens un petit sourire d'autosatisfaction, comme à chaque fois : et si je lui faisais une petite conférence sur l'histoire de l'art en lui demandant une petite contribution financière à la fin de la visite ?^^";], life [; Answer,Ask,Tell: Affiche(159); print "^Je me penche sur le vieil homme :^^~La Prérenaissance ?~^^Le vieil homme secoue la tête : ~Nié mouvié fransouskou~^^Je tente : ~ Botticelli ?~^^Le vieil homme sourit et me montre en direction de la pièce au nord ouest de l'entrée : ~Sala mitologii i alegorii~^";return 2; Attack : "^Contre un vieillard, voyons. Un guide de Musée qui plus est, cela ne ferait pas bon pour mon karma.^"; Kiss: "^Ah ! Peut être s'il m'impressionne, mais ce n'est pas le cas ! ^ "; Show, Give: Affiche(159);if (noun==zloty) {print "^~Tenez mon brave, payez vous un café~^^déclare-je en tendant mon précieux zloty.^^ Le visage de l'employé s'illumine et me renvoie un chaleureux merci.^^La machine lui délivre en quelques secondes un café à l'odeur agréable qu'il entreprend de déguster - posant sa lampe de poche à ses pieds. ^";move lampepoche to visite1;move zloty to distributeur;return 2;} else if (noun==lampepoche) {print "^Le guide s'empare de sa lampe torche et marmonne un merci.^"; move lampepoche to guide;return 2;} else { print "^^~Le guide regarde en plissant les yeux puis détourne son attention sur autre chose. Ca n'a pas l'air de l'interresser tant que cela. ~^";return 2;} ], each_turn [; if (lampepoche notin guide) { if (lampepoche notin gilbert) { if (location~=visite1 && lampepoche in location) {print "^Le guide ramasse sa lampe de poche en murmurant quelque chose en polonais. ^"; remove lampepoche;} } else { if (distributeur in location) {Affiche(159); print "^Dans un mauvais anglais, le guide me demande de lui rendre sa lampe torche. ^";} else { print "^Le guide se rapproche rapidement de moi et m'arrache la lampe torche des mains en me lancant un regard furieux. ^";move lampepoche to guide; } } } if (zloty in distributeur && lampepoche in guide && location==visite1) {print "^Le guide reprend la dégustation de son café. Il pose sa lampe torche près de lui. ^";move lampepoche to visite1;} if (zloty notin distributeur && location==visite1) { if (random(3)==1) { print "^Le guide regarde avec envie la machine à café, fouille ses poches, mais sans résultat.^";}} ], daemon [; if (guide in location && location has noir) { print "^Tout d'un coup la lumière se fait dans la pièce : le guide vient d'enfoncer une clef dans un interrupteur. Quand je vois les lampes puissantes de l'endroit, je comprends qu'ils font reposer les peintures à l'ombre quand il n'y a pas de visiteur !^"; give location ~noir; return location.description(); } if (guide notin location) {print "^J'entends le guide m'interpeller en polonais depuis les autres pièces et se ramener de son pas trainant et boiteux. ^"; if (self.bouge<2) {self.bouge++;} else {self.bouge=0; if (guide in visite1 && location==v2) {move guide to v2;print "^Le guide arrive dans la pièce";if (lampepoche in guide) {print ", éclairant le chemin de sa lampe de poche. ^";} else {print ", marchant à tâtons dans le noir.^";}} if (guide in visite1 && location==v3) {move guide to v2;} if (guide in visite1 && location==v4) {move guide to v4;print "^Le guide arrive dans la pièce";if (lampepoche in guide) {print ", éclairant le chemin de sa lampe de poche. ^";} else {print ", marchant à tâtons dans le noir.^";}} if (guide in v2 && location==visite1) {move guide to visite1;print "^Le guide me rejoint dans l'entrée. ^";} if (guide in v2 && location==v3) {move guide to v3;print "^Le guide arrive dans la pièce";if (lampepoche in guide) {print ", éclairant le chemin de sa lampe de poche. ^";} else {print ", marchant à tâtons dans le noir.^";}} if (guide in v2 && location==v4) {move guide to v3;} if (guide in v3 && location==visite1) {move guide to v2;} if (guide in v3 && location==v2) {move guide to v2;print "^Le guide arrive dans la pièce";if (lampepoche in guide) {print ", éclairant le chemin de sa lampe de poche. ^";} else {print ", marchant à tâtons dans le noir.^";}} if (guide in v3 && location==v4) {move guide to v4;print "^Le guide arrive dans la pièce";if (lampepoche in guide) {print ", éclairant le chemin de sa lampe de poche. ^";} else {print ", marchant à tâtons dans le noir.^";}} if (guide in v4 && location==visite1) {move guide to visite1;print "^Le guide me rejoint dans l'entrée. ^";} if (guide in v4 && location==v3) {move guide to v3;print "^Le guide arrive dans la pièce";if (lampepoche in guide) {print ", éclairant le chemin de sa lampe de poche. ^";} else {print ", marchant à tâtons dans le noir.^";}} if (guide in v4 && location==v2) {move guide to v3;} } } ], bouge 0, has animate; Object lampepoche "lampe de poche" with name 'lampe de poche' 'lampe' 'poche' 'torche' 'lumiere', description [;Affiche(131);print "^Une lampe torche électrique, éternelle compagne du vaillant gardien de musée. ^";], each_turn [;if (self has on && self in gilbert && location has noir) {print "La lampe torche dessine des ombres impressionnantes sur ces oeuvres figées dans l'obscurité.^";}], has female switchable; Object distributeur "machine à café" visite1 with name 'machine a café' 'machine à café' 'machine' 'café' 'cafe' 'machine a cafe', description [;Affiche(130);print "^J'ai souvent pensé qu'un bon historien de l'art était une machine à transformer le café en analyses de tableaux.^^Voilà une machine à café polonaise : qui aurait pensé que les polonais ne buvaient que de la Zubrowska ?^"; if (self.vu==0) {Affiche(106);print "^Je remarque une petite pièce de monnaie à moitié coincée sous le distributeur. ";Gras();print "TOUTE MA VIE";Normal();print " j'ai fouillé ces #?!$ d'endroits où ils rendent la monnaie et je n'ai ";Gras();print "JAMAIS";Normal();print " trouvé une pièce, et là, hop, j'en trouve. A croire que j'ai déjà ouvert la boite de Pandore après laquelle je cours, et que tous les clichés de l'aventure vont me tomber dessus !^^Ah, mais je n'ai pas encore eu, la course poursuite en voiture, en avion, la cérémonie de la secte secrète et la confrontation avec le grand méchant à l'accent allemand !^^Mais ca ne saurait tarder, pense-je avec un sourire en me remémorant mes précédentes et folles aventures. ^";move zloty to visite1;self.vu=1;}], before [;Receive : if (noun==zloty) {print "^Je vais d'abord digérer les trois litres d'eau de la Vistule que j'ai ingurgité ce matin avant de reprendre une boisson polonaise. ^";return 2;}], vu 0, has female static; Object zloty "zloty" with name 'zloty' 'piece', description [;Affiche(106);print "^Le début de la fortune !^";]; Object v2 "galerie Impressioniste" with description [; Joue(180); give v3 noir; give v4 noir; Affiche(221); if (self has noir) {Affiche(151);print "^Hum...je dois être dans la galerie impressioniste, mais la pièce est plongée dans une obscurité presque complète.^^Je devine aux faibles néons des signes de sortie de secours qu'il y a une sortie vers le nord ouest et vers le sud ouest. ^";} else {print "^Me voilà dans la chambre réservée aux collections impressionnistes du Musée Jean Paul II.^^ De lourds rideaux marrons étouffent la lumière et le bruit de l'extérieur ; incroyable ! Les oeuvres sont posées parfois à même le sol, contre les murs, comme si l'on avait pas jugé utile de les accrocher !^^La galerie s'ouvre vers une autre galerie, toute aussi sombre, vers le nord ouest, et une autre, vers le sud ouest, qui me ramène à l'entrée du Musée. ^^Il y a également un passage vers l'ouest, probablement vers la rotonde, mais celui-ci est fermé. ^";}], cant_go "^Deux galeries s'ouvrent, une au nord ouest, une autre vers le sud ouest.^^Le passage ouest vers la fameuse rotonde m'a l'air fermé. ^", w_to [;print "^Je pousse les doubles portes qui mènent vers la rotonde, mais le passage m'a l'air bel et bien fermé. ^";return 1;], nw_to v3, sw_to visite1, has scenery noir; Object tableauxjp2 "oeuvres" with name "tableau" "tableaux" "statue" "statues" "oeuvres" "oeuvre", description [; if (location has noir) {print "^Et bien...euh, sans la lumière...difficile à dire. ^";} else {print "^Des oeuvres interressantes, mais rien de ce pourquoi je suis ici. ^";}], before [;Take : print "^J'ai pas que des amis en Pologne, aggravons pas mon cas, ok ?^";return 2;], found_in v2 v3 v4, has pluralname female static scenery; Object v3 "galerie Nature Morte et Paysages" with description [; Joue(180); give v2 noir; give v4 noir; Affiche(222); if (self has noir) {Affiche(151);print "^Si je n'étais pas dans ce noir de poix, je pense que je pourrais admirer de superbes paysages de Constable...mais pour tout paysage, je ne vois qu'un néant digne de Pierre Soulages. Le néont grésillant des signes de sortie m'indiquent deux issues possibles : le sud est, et le sud ouest. ^";} else {print "^Oh, voici une belle chambre consacrée aux paysages et aux natures mortes, sous toutes les formes possibles : peintures, poteries...passionnant pour l'amateur en goguette, ce que je ne peux me permettre d'être pour l'instant. D'ici, je peux aller au sud est ainsi qu'au sud ouest ; des doubles portes, closes, sont situées également au sud et au nord de cette pièce. ^";}], cant_go "^Les issues disponibles s'ouvrent sur le sud est et le sud ouest.^", s_to [;print "^Je pousse les doubles portes qui mènent vers la rotonde, mais le passage m'a l'air bel et bien fermé. ^";return 1;], n_to [;print "^Je pousse les doubles portes qui mènent vers la salle des représentations bibliques, mais le passage m'a l'air bel et bien fermé, un comble pour ce musée à la pieuse appellation ! ^";return 1;], se_to v2, sw_to v4, has scenery noir; Object v4 "galerie Mythologie et Allégories" with description [; Joue(180); give v2 noir; give v3 noir; Affiche(223); if (self has noir) {Affiche(151);print "^Ah, la salle la plus interressante, et plongée dans le noir ! Un mince rai de lumière filtre depuis le sud est où se trouve l'entrée du Musée, et une enseigne lumineuse montre la sortie vers une autre galerie au nord est, mais c'est bien tout ce que je peux distinguer. ^";} else {print "^Avec emerveillement, je découvre une pièce où les italiens de la pré-renaissance ont une part plus que belle, et où se trouvent de nombreux trésors que je croyais à jamais disparus entre les mains de collectionneurs privés ! Ce Musée est un trésor sur lequel il me faudra inévitablement revenir, quand j'aurais...moins de préoccupations.^^ Au milieu de tant d'autres merveilles, posée nonchalamment sur le sol, un Botticelli, coeur de cette histoire incroyable : La Calomnie d'Apelle. ^^ Deux sorties (en plus de la sortie barrée plein est menant à la rotonde) s'ouvrent depuis cette pièce : une galerie au nord est, et l'entrée du musée au sud est.^";}], e_to [;print "^Je pousse les doubles portes qui mènent vers la rotonde, mais le passage m'a l'air bel et bien fermé. ^";return 1;], se_to visite1, ne_to v3, has scenery noir; Object capelle2 "La Calomnie d'Apelle" v4 with name 'tableau' 'calomnie' 'apelle' 'écriture' 'ecriture' 'cadre', description [;Affiche(19);print "Incroyable : La Calomnie d'Apelle.^^Il y en avait donc deux.^^Je vais decidement de découvertes remarquables en surprises de premier plan !^^ Un véritable Botticelli, un tableau légendaire dont la présence intime suscite en moi une émotion palpable.^^ Et il est posé à même le sol ! Ah ! Maudits polonais !^"; if (self.turned==1) {print "^...et oui, maintenant qu'il est retourné, je vois également une petite écriture au dos du tableau !^^Ah...je ne peux voir suffisamment sans mes lunettes, mais je pense que je peux peut être deviner avec mes doigts...";} ], before [;Take : print "Héhé. Il ferait bien au dessus de mon lit. Mais quitte à voler quelque chose, vje suis plutôt de l'époque Lippi que Botticelli. Ou un Giotto. Ou un Fra Angelico. Ah. Tant de tableaux et qu'une seule place au dessus de mon lit. ";return 2; Turn : if (self.turned==1) {print "^Il est déjà retourné, prêt à être examiné. ^";return 2;} else { if (guide in v4) {print "^Je ne vais pas toucher au tableau devant le guide, il va appeler la Police, et je n'ai VRAIMENT pas besoin de cela en ce moment !^";return 2;} else if (lampepoche in gilbert && lampepoche has on) {print "^D'accord. Je pose la lampe torche au sol pour m'éclairer alors que je manipule le tableau, et je le retourne très précautionneusement.^^Je reprends la lampe torche et oh, je remarque quelque chose sur le tableau !^"; self.turned=1;return 2;} else {print "^Je vois où est La Calomnie, mais je ne veux pas risquer de manipuler ce tableau dans cette obscurité...ce ne serait pas du tout professionnel !^";return 2;} } Touch : if (self.turned==1) {TouchCalomnie();return 2;} else {print "^Non, je ne regarde jamais avec les doigts...du moins, pas les tableaux. ^";return 2;} ], each_turn [;if (guide in v4 && self.turned==1) {print "^Le guide remarque le tableau retourné et le remet à sa place avec beaucoup de précautions. ^";self.turned=0;}], turned 0, has proper scenery; ! depart ! | ! | ! +-- stare -+--pont---+---- stade ! | miasto | | ! | | | | ! +------+------+ riviere + stade ! | | | | ! | | | | ! quartier affaires sortie Object voiture1 "Poursuite en voiture dans Varsovie" with description [; switch(self.lieu) { 0 : Affiche(144); 1 : Affiche(144); 2 : Affiche(144); 3 : Affiche(144); 4 : Affiche(144); 5 : Affiche(144); 6 : Affiche(144); 7 : Affiche(144); 8 : Affiche(145); 9 : Affiche(145); 10 : Affiche(145); 11 : Affiche(145); 12 : Affiche(146); 13 : Affiche(146); 14 : Affiche(146); 15 : Affiche(146); 16 : Affiche(147); 17 : Affiche(147); 18 : Affiche(147); 19 : Affiche(147); 20 : Affiche(148); 21 : Affiche(148); 22 : Affiche(148); 23 : Affiche(148); 24 : Affiche(148); 25 : Affiche(148); 26 : Affiche(148); 27 : Affiche(148); } if (self.lieu>27) {Affiche();} print "^Nous filons dans un taxi volé au coeur de Varsovie.^^Les rues défilent à toute vitesse sans que j'y trouve ou retrouve le moindre point de repère.^";], cant_go "^Pas à cette vitesse !^", each_turn [; switch (self.compteur) { 0 : print "^Galina s'exclame en colère : ~Ah, vous êtes une ";Gras();print "VEDETTE";Normal();print ", Professeur ! Tous les gens que vous rencontrez essayent-ils de vous tuer ?~^";Attend();print "^ ~Possible, mais mes élèves n'ont pas d'arme à feu !~^";Attend();print "^~Ecoutez, Professeur, il faudrait que vous appeliez la police sinon nous ne nous en sortirons pas ! Vous n'avez pas un téléphone sur vous ?~^"; 4 : Joue(204);print "^Un autre coup de feu ! Une balle siffle et vient éclater le rétro viseur latéral. Je balbutie : ~Galina, je crois que ces gens essayent de nous tuer. ~";Attend();print "^^~Ah vraiment, Professeur ? Je reconnais là votre sens étonnant de l'observation. ~^^";Attend();print "~En fait, c'est quelque chose de nouveau pour moi. ~^"; 8 : print "^La Hyundai nous serre de près. Je précise : ~On a encore les Polaks aux fesses !~^";Attend();print "^~Professeur, je vous prierais de parler avec plus de ";Gras();print "respect";Normal();print " de mes frères slaves. ~^"; 12 : print "^Je me retourne : les sbires de Mikolaj nous poursuivent toujours. Enfer et damnation. ^"; 16 : print "^Galina slalome entre les autres voitures, plus lentes. Je deviens blanc : ~Et si vous ralentissiez, Galina ?~^";Attend();print " ^~Pourquoi donc, Professeur, vous avez envie de faire un petit cours d'histoire de l'art à nos poursuivants ?~^"; 20 : print "^Je m'aggripe à ma ceinture et déglutis : ~Paris me manque, vous savez. ~^";Attend();print " ^~Vraiment ? demande Galina, sans quitter la route de vue, filant à une allure folle. ~Je pensais pourtant qu'il y avait plus de circulation dans votre capitale. ~^";Attend();print "^~C'est surtout mon bureau qui me manque, en fait !~^"; 24 : print "^~Je vous le demande, Galina, est ce là la place d'un éminent Professeur d'histoire de l'art ?~^";Attend();print " ^Une balle file au dessus de notre véhicule.^^~Pas plus que celle d'une éminente linguiste, Professeur. Mais nous, les linguistes, on s'adapte !~^"; } self.compteur++; switch (self.lieu) { 0 : print "^~Nous pouvons continuer sur l'avenue ou tourner à droite pour rentrer dans le vieux quartier, le Stare Miasto.~ explique Galina.^"; 1 : print "^~Nous pouvons continuer sur l'avenue ou tourner à droite pour rentrer dans le vieux quartier, le Stare Miasto. Vous souhaitez aller où ?~^"; 2 : print "^~Nous pouvons continuer sur l'avenue ou tourner à droite pour rentrer dans le vieux quartier, le Stare Miasto.~ explique Galina. ~ Si vous ne me dites rien, je tourne au Stare Miasto, ils ne nous trouveront pas là bas. ~^"; 3 : FinMiasto(); 4 : print "^~Tout droit, c'est le quartier des affaires, me dit Galina, ou à gauche nous remontons vers la Rivière. ~^"; 5 : print "^~Tout droit, c'est le quartier des affaires, me dit Galina, ou à gauche nous remontons vers la Rivière. Vous voulez aller où ? ~^"; 6 : print "^~Tout droit, c'est le quartier des affaires, me dit Galina, ou à gauche nous remontons vers la Rivière. Alors, je vais où ? ~^"; 7 : FinAffaires(); 8 : print "^~Où je vais Professeur ? Tout droit, c'est la rivière, à droite le quartier des affaires et à gauche nous remontons vers le Stare Miasto. ~^"; 9 : print "^~Où je vais Professeur ? Tout droit, c'est la rivière, à droite le quartier des affaires et à gauche nous remontons vers le Stare Miasto. ~^"; 10 : print "^~Où je vais Professeur ? Tout droit, c'est la rivière, à droite le quartier des affaires et à gauche nous remontons vers le Stare Miasto. ~^"; 11 : FinMiasto(); 12 : print "^~Je vais être obligée d'aller soit à gauche pour remonter la rivière, soit à droite vers le quartier des affaires, sinon, c'est le plongeon !~ s'exclame Galina ^"; 13 : print "^~Je vais être obligée d'aller soit à gauche pour remonter la rivière, soit à droite vers le quartier des affaires, sinon, c'est le plongeon !~ s'exclame Galina ^"; 14 : print "^~Vous m'entendez ? Je vais être obligée d'aller soit à gauche pour remonter la rivière, soit à droite vers le quartier des affaires, sinon, c'est le plongeon !~ s'exclame Galina ^"; 15 : FinAffaires(); 16 : print "^~Professeur, nous pouvons prendre à gauche pour entrer dans le Stare Miasto, ou passer la Vistule sur le pont à droite. ~^"; 17 : print "^~HELLO, Professeur, nous pouvons prendre à gauche pour entrer dans le Stare Miasto, ou passer la Vistule sur le pont à droite. ~^"; 18 : print "^~Professeur, il faut se décider, nous pouvons prendre à gauche pour entrer dans le Stare Miasto, ou passer la Vistule sur le pont à droite. ~^"; 19 : FinMiasto(); 20 : print "^~Professeur, tout droit nous allons sur le Stade de Varsovie, sinon nous pouvons longer la rivière, sur cette voie de droite. ~^"; 21 : print "^~Professeur, il va falloir choisir, tout droit nous allons sur le Stade de Varsovie, sinon nous pouvons longer la rivière, sur cette voie de droite. ~^"; 22 : print "^~Professeur, tout droit nous allons sur le Stade de Varsovie, sinon nous pouvons longer la rivière, sur cette voie de droite. ~^"; 23 : FinStade(); 24 : print "^~Professeur, où dois je aller maintenant ? La route continue tout droit en longeant la Vistule, ou tourne à gauche vers le Stade. ~^"; 25 : print "^~Professeur, où dois je aller maintenant ? La route continue tout droit en longeant la Vistule, ou tourne à gauche vers le Stade. ~^"; 26 : print "^~Professeur, où dois je aller maintenant ? La route continue tout droit en longeant la Vistule, ou tourne à gauche vers le Stade. ~^"; 27 : FinStade(); } self.lieu++; if (self.lieu>27) { if (self.police==0) {FinPolice();} else {ToLake();} } if (self.police==0 && random(3)==1 && self.lieu~=3 && self.lieu~=7 && self.lieu~=11 && self.lieu~=15 && self.lieu~=19 && self.lieu~=23 && self.lieu~=27) { print "^Galina s'exclame : ~Nous ne nous en sortirons jamais si vous n'appelez pas la police, Professeur !~^"; } ], compteur 0, lieu 0, police 0, has scenery; Object galina3 "Galina" voiture1 with name "galina" "femme" "russe" "fille" "slave", description [;print "^C'est l'espèce de FOLLE que je me traîne depuis le Monte Negro. Enfin, mes mots sont durs, elle est en train de me tirer d'affaire !^^";], life [w; Tell,Ask,Answer : wn=consult_from; w=NextWord(); switch(w) { 'a droite', 'droite' ,'à droite' ,'de tourner a droite' ,'de tourner à droite', 'tourne a droite', 'tourne à droite' : print "^Je m'exclame : ~Allez à droite, Galina !~^"; switch (voiture1.lieu) { 0 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 1 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 2 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 3 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 4 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 5 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 6 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 7 : print "^~A droite Professeur ? Mais je ne vois pas de rue à droite ? ! Vous êtes sûr de ne pas confondre la droite et la gauche ?~^"; 8 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 9 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 10 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 11 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 12 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 13 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 14 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 15 : print "^~D'accord Professeur, perdons les dans le quartier des affaires !~^";FinAffaires();Joue(13); 16 : print "^~Très bien Professeur, je prends le pont au dessus de la Vistule. ~^^Galina tourne à toute vitesse et prend un pont qui enjambe le large cours d'eau que je ne connais que trop bien.^^Derrière nous, nos poursuivants prennent également le pont.^";voiture1.lieu=20;Affiche(148);Joue(13); 17 : print "^~Très bien Professeur, je prends le pont au dessus de la Vistule. ~^^Galina tourne à toute vitesse et prend un pont qui enjambe le large cours d'eau que je ne connais que trop bien.^^Derrière nous, nos poursuivants prennent également le pont.^";voiture1.lieu=20;Affiche(148);Joue(13); 18 : print "^~Très bien Professeur, je prends le pont au dessus de la Vistule. ~^^Galina tourne à toute vitesse et prend un pont qui enjambe le large cours d'eau que je ne connais que trop bien.^^Derrière nous, nos poursuivants prennent également le pont.^";voiture1.lieu=20;Affiche(148);Joue(13); 19 : print "^~Très bien Professeur, je prends le pont au dessus de la Vistule. ~^^Galina tourne à toute vitesse et prend un pont qui enjambe le large cours d'eau que je ne connais que trop bien.^^Derrière nous, nos poursuivants prennent également le pont.^";voiture1.lieu=20;Affiche(148);Joue(13); 20 : print "^~Fonçons !~^^Et Galina tourne rapidement sur la droite, le long de la Vistule.^";voiture1.lieu=24;Affiche(148);Joue(13); 21 : print "^~Fonçons !~^^Et Galina tourne rapidement sur la droite, le long de la Vistule.^ ";voiture1.lieu=24;Affiche(148);Joue(13); 22 : print "^~Fonçons !~^^Et Galina tourne rapidement sur la droite, le long de la Vistule.^ ";voiture1.lieu=24;Affiche(148);Joue(13); 23 : print "^~Fonçons !~^^Et Galina tourne rapidement sur la droite, le long de la Vistule.^ ";voiture1.lieu=24;Affiche(148);Joue(13); 24 : print "^~Très amusant. Je vous rappelle qu'à droite, c'est la RIVIERE. Elle vous manque déjà ?~^"; 25 : print "^~Très amusant. Je vous rappelle qu'à droite, c'est la RIVIERE. Elle vous manque déjà ?~^"; 26 : print "^~Très amusant. Je vous rappelle qu'à droite, c'est la RIVIERE. Elle vous manque déjà ?~^"; 27 : print "^~Très amusant. Je vous rappelle qu'à droite, c'est la RIVIERE. Elle vous manque déjà ?~^"; } return 2; 'tout droit', 'droit' ,'droit devant', 'devant' : print "^Je m'exclame : ~Foncez droit devant, Galina !~^"; switch (voiture1.lieu) { 0 : print "^~Je fonce !~ me répond Galina en accélérant.^";voiture1.lieu=4;Affiche(144);Joue(13); 1 : print "^~Je fonce !~ me répond Galina en accélérant.^";voiture1.lieu=4;Affiche(144);Joue(194); 2 : print "^~Je fonce !~ me répond Galina en accélérant.^";voiture1.lieu=4;Affiche(144);Joue(13); 3 : print "^~Je fonce !~ me répond Galina en accélérant.^";voiture1.lieu=4;Affiche(144);Joue(194); 4 : print "^~Ok, je rentre dans le quartier des affaires !~^^";FinAffaires();Joue(194); 5 : print "^~Ok, je rentre dans le quartier des affaires !~^^";FinAffaires();Joue(13); 6 : print "^~Ok, je rentre dans le quartier des affaires !~^^";FinAffaires();Joue(194); 7 : print "^~Ok, je rentre dans le quartier des affaires !~^^";FinAffaires();Joue(13); 8 : print "^~Ok, Go !~ et Galina accélere de plus belle, zigzagant entre les voitures. ^";voiture1.lieu=12;Affiche(146);Joue(13); 9 : print "^~Ok, Go !~ et Galina accélere de plus belle, zigzagant entre les voitures. ^";voiture1.lieu=12;Affiche(146);Joue(194); 10 : print "^~Ok, Go !~ et Galina accélere de plus belle, zigzagant entre les voitures. ^";voiture1.lieu=12;Affiche(146);Joue(13); 11 : print "^~Ok, Go !~ et Galina accélere de plus belle, zigzagant entre les voitures. ^";voiture1.lieu=12;Affiche(146);Joue(194); 12 : print "^~Vous plaisantez, Professeur ? Tout droit, c'est la Vistule !~^"; 13 : print "^~Vous plaisantez, Professeur ? Tout droit, c'est la Vistule !~^"; 14 : print "^~Vous plaisantez, Professeur ? Tout droit, c'est la Vistule !~^"; 15 : print "^~Vous plaisantez, Professeur ? Tout droit, c'est la Vistule !~^"; 16 : print "^~D'accord, retournons au Stare Miasto pour les semer !~^";FinMiasto();Joue(194); 17 : print "^~D'accord, retournons au Stare Miasto pour les semer !~^";FinMiasto();Joue(13); 18 : print "^~D'accord, retournons au Stare Miasto pour les semer !~^";FinMiasto();Joue(194); 19 : print "^~D'accord, retournons au Stare Miasto pour les semer !~^";FinMiasto();Joue(13); 20 : print "^~Ok, je fonce vers le Stade, Professeur !~^";FinStade();Joue(194); 21 : print "^~Ok, je fonce vers le Stade, Professeur !~^";FinStade();Joue(13); 22 : print "^~Ok, je fonce vers le Stade, Professeur !~^";FinStade();Joue(194); 23 : print "^~Ok, je fonce vers le Stade, Professeur !~^";FinStade();Joue(13); 24 : print "^~D'accord Professeur, en avant pour la liberté !~^";voiture1.lieu=28;Joue(13); 25 : print "^~D'accord Professeur, en avant pour la liberté !~^";voiture1.lieu=28;Joue(194); 26 : print "^~D'accord Professeur, en avant pour la liberté !~^";voiture1.lieu=28;Joue(13); 27 : print "^~D'accord Professeur, en avant pour la liberté !~^";voiture1.lieu=28;Joue(194); } return 2; 'a gauche', 'gauche' ,'à gauche' ,'de tourner a gauche', 'de tourner à gauche' ,'tourne a gauche' ,'tourne à gauche' : print "^Je m'exclame : ~Prenez à gauche, Galina !~^"; switch (voiture1.lieu) { 0 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(194); 1 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(13); 2 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(194); 3 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(13); 4 : print "^~Ca roule, Professeur !~, et Galina prend un virage qui fait déraper la voiture, et slalome entre les véhicules. ^";voiture1.lieu=8;Affiche(145);Joue(13); 5 : print "^~Ca roule, Professeur !~, et Galina prend un virage qui fait déraper la voiture, et slalome entre les véhicules. ^";voiture1.lieu=8;Affiche(145);Joue(194); 6 : print "^~Ca roule, Professeur !~, et Galina prend un virage qui fait déraper la voiture, et slalome entre les véhicules. ^";voiture1.lieu=8;Affiche(145);Joue(13); 7 : print "^~Ca roule, Professeur !~, et Galina prend un virage qui fait déraper la voiture, et slalome entre les véhicules. ^";voiture1.lieu=8;Affiche(145);Joue(194); 8 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(194); 9 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(13); 10 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(194); 11 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(13); 12 : print "^~D'accord Professeur Fontenelle !~^^Galina prend une embardée sur la gauche et remonte à vive allure le long de la Vistule^";voiture1.lieu=16;Affiche(147);Joue(13); 13 : print "^~D'accord Professeur Fontenelle !~^^Galina prend une embardée sur la gauche et remonte à vive allure le long de la Vistule^";voiture1.lieu=16;Affiche(147);Joue(194); 14 : print "^~D'accord Professeur Fontenelle !~^^Galina prend une embardée sur la gauche et remonte à vive allure le long de la Vistule^";voiture1.lieu=16;Affiche(147);Joue(13); 15 : print "^~D'accord Professeur Fontenelle !~^^Galina prend une embardée sur la gauche et remonte à vive allure le long de la Vistule^";voiture1.lieu=16;Affiche(147);Joue(194); 16 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(194); 17 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(13); 18 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(194); 19 : print "^~Ok, va pour le Stare Miasto !~ me répond Galina en faisant une large embardée sur la gauche alors que les pneus de notre voiture crissent. ^";FinMiasto();Joue(13); 20 : print "^~Professeur, cessez de faire l'andouille, il n'y a pas de sortie à gauche !^"; 21 : print "^~Professeur, cessez de faire l'andouille, il n'y a pas de sortie à gauche !^"; 22 : print "^~Professeur, cessez de faire l'andouille, il n'y a pas de sortie à gauche !^"; 23 : print "^~Professeur, cessez de faire l'andouille, il n'y a pas de sortie à gauche !^"; 24 : print "^~Ca marche, allons vers le Stade~^";FinStade();Joue(13); 25 : print "^~Ca marche, allons vers le Stade~^";FinStade();Joue(194); 26 : print "^~Ca marche, allons vers le Stade~^";FinStade();Joue(13); 27 : print "^~Ca marche, allons vers le Stade~^";FinStade();Joue(194); } return 2; default : print "~Vous dites quoi, Professeur ?~^^(si je veux lui donner une direction, écrire ~dire droite a Galina~, ~dire devant a Galina~ ou ~dire gauche a Galina~)^";return 2; } Give : print "^Le temps n'est pas au troc pour le moment.^ ";return 2; Kiss : print "^Les bisous, c'est quand on est tiré d'affaire, pas pendant ! ^";return 2; Attack : print "^Quand elle ne sera plus au volant, peut être ! ^";return 2; ], has animate proper scenery female; Object lake "Au bord de la Vistule" with description [;Affiche(162);Joue(212);print "^Ici, le fleuve polonais ralentit son cours et s'endort dans une large anse qui sert d'étang improvisé pour l'hydravion.^^Un quai de bois pas tout récent s'enfonce dans un terrain vague de hautes herbes longeant une route nationale. ^";], each_turn [; switch(self.depart) { 0 : print "^Le moteur de l'hydravion crachouille et monte en puissance. J'entends au loin les sirènes de police se rapprocher.^Galina me dit : ~Allez Professeur ! Montez ! Et bon voyage !~^"; 1 : print "^Le moteur de l'hydravion monte en régime, et son souffle fait claquer mes vetements tandis que les cheveux de Galina flottent dans le courant d'air. Galina sourit en me faisant un adieu de la main. La sirène de la voiture de police est de plus en plus forte, ils ne doivent pas être à plus de cent mètres !^"; 2 : print "^L'hydravion commence à avancer de quelques centimètres sur l'eau, alors que le pilote frappe l'intérieur de son cockpit pour me demander de monter. ~Il faut y aller, Professeur !~ m'ordonne Galina en retenant sa jupe pour ne pas qu'elle s'envole.^^Une voiture de police surgit sur le terrain !^";move policiers to lake;move voiturepolice to lake; 3 : print "^La voiture de police s'arrête à quelques dizaines de mètres de l'hydravion, et deux policiers en sortent et courent vers nous, arme à la main.^^L'hydravion commence à se détacher du quai...^^Galina me supplie : ~Professeur, c'est votre dernière chance !~^"; 4 : print "^L'hydravion s'envole. Sans moi. Les policiers s'approchent de nous en nous visant de leurs armes et nous levons les bras en l'air. J'échange un regard ennuyé avec Galina : voilà un pétrin dont il va être difficile de se tirer...^^";Attend();print "Et malgré la débrouillardise de Galina, j'eus de gros ennuis : lorsque la police polonaise contacta ses homologues de Paris l'incident du Louvre refit surface et je perdis de longues semaines, puis de longs mois, à me justifier, en garde à vue permanente...le temps malheureusement de faire passer la pilule amère de l'avion manqué, et à la fin du compte, j'avais envie de tout sauf de retrouver Venise, Galina ou le Cassone : reconquérir ma dignité d'antant était une gageure déjà bien assez difficile.^^Ce fut donc pour moi la fin de l'aventure Ekphrasis.";deadflag=1;Joue(197); } self.depart++; ], depart 0, has scenery; Object hydravion "hydravion" lake with name 'avion' 'porte' 'hydravion' 'moteur' 'pilote' 'quai', description "^Un hydravion monomoteur attend le long d'un vieux quai de bois.^Sa carlingue grise est peinte d'une immatriculation cyrillique rouge que je ne comprends pas ; actuellement, son pilote s'active dans le cockpit pour préparer le décollage.^^ Son moteur tourne avec quelques ratés, mais il me semble puissant, et comme prêt à bondir hors de l'eau. ^ ", before [;Enter : PlayerTo(avion);return 2;], has open container enterable static; Object galina4 "Galina" lake with name "galina" "femme" "russe" "fille" "slave", description [;Affiche(45);print "^Galina.^^Sacré femme, je lui dois la vie.^^";], life [;Tell,Ask,Answer : Affiche(45); switch(lake.depart) { 0 : print "^~Galina...~^^~Oui professeur ?~^"; 1 : print "^~Galina. Venez avec moi. ~^";Attend();print "^~Aller à Venise, Professeur ? Est-ce une proposition ?~^";Attend();print " ^~Et bien...~^";Attend();print "^~Je vois. Et bien désolée, Professeur Fontenelle, ce sont les bibliothèques de Varsovie, de Budapest et de Moscou que je dois visiter... à chacun sa spécialité !~^"; 2 : print "^~Galina, comment puis-je vous remercier...~^";Attend();print "^~...pour vous avoir sans cesse tiré des ennuis ? Ha ! Mais vous le savez déjà...~^";Attend();print "^~Ecoutez, je ne vais pas me marier avec vous...mais...mais il y a d'autres moyens d'obtenir la nationalité française, et croyez moi, je vous le trouverai !~^";Attend();print "^Galina m'offre un sourire charmant : ~Et bien...merci, Professeur. ~^"; 3 : print "^~Galina...vous n'allez pas avoir d'ennui, j'espère ?~^";Attend();print "^Galina lève le pouce et me fait un clin d'oeil : ^";Attend();print "^~Je me tire de tous les ennuis ! et parfois même, je tire les gros balourds comme vous de leurs propres ennuis ! Allez ! Montez dans l'avion ! Je ne sais quel trésor vous poursuivez, mais si vous pouvez me mettre quelques bagues ou colliers de coté, ca me ferait plaisir !~^";Attend();print "^Non sans ironie, je lui réponds : ~S'il y a des bagues et des colliers, je vous promets de vous en garder. ~^"; 4 : print "^~Mon Dieu Professeur, vous avez perdu trop de temps déjà !~^"; } return 2; Give : print "^~Professeur. Gardez cela pour vous. ~^ ";return 2; Kiss : if (lake.depart==4) {galina4.bisou=1;print "^Je m'approche de Galina, impressionnée, l'enlace et l'embrasse fougueusement.^";Attend();Affiche(45);print "^Dans un sourire elle me dit : ~C'est votre façon de dire adieu ? Allons nous nous revoir, Professeur ?~^";Attend();print "^~Si nous en avons la chance.~^^ et je rentre rapidement dans la cabine de l'hydravion qui s'est presque détaché du quai.^^";Attend();PlayerTo(avion);return 2;} else { print "^Mmmm...pas tout de suite. ^";return 2;} Attack : print "^Non, elle m'a tiré d'affaire. ^";return 2; ], bisou 0, has animate proper scenery female; Object policiers "policiers" with name "policier" "policiers" "flic" "flics" "hommes" "homme", description "^Les vaillants officiers de la paix polonaise. ^", life [;Tell,Ask,Answer : print "^Malheureusement, je ne parle pas polonais. ^"; Attack : print "^Plutôt dangeureux, ils sont armés !^";return 2; ], has animate pluralname; Object voiturepolice "véhicule de police" with name "voiture" "police" "véhicule" "voiture de police", description "^Une magnifique...skôda ? Hyundaï ? Lada ? Traban ? Renault ? en fait, je n'y connais rien en voiture, mais celle-ci est peinturlurée comme un véhicule de police - cela doit en être un. ^", has static; Object taxi "taxi" lake with name "voiture" "taxi" "véhicule", description "^La brave machine qui nous a conduit sain et sauf hors de Varsovie. ^", has static open container enterable transparent; Object avion "hydravion" with name "avion" "hydravion" "aeroplane" "engin", description [;Affiche(138);Joue(212); print "^Je suis dans la cabine de ce petit appareil, dont l'intérieur est constitué d'un seul tenant : à l'avant le cockpit recevant deux places et où se tient le pilote, en continuité avec ~la soute~, où sont stockés dans un désordre imprudent matériel, carburant...et passagers. ^"; if (visite==0) {print "^Au moment où je rentre dans l'avion, le pilote lance une poussée plus grande et l'hydravion commence à accelerer sur les flots.^^~Mettez les gaz ! ~ demandais-je au pilote...ce qu'il s'empresse de faire alors qu'un coup de feu résonne au dehors. ^";Joue(204);self.visite=1;}], each_turn [; if (self.venise==0) { switch(self.depart) { ! elements inexorables 0 : Affiche(160);print "^~Bienvenue à bord de mon appareil ! s'exclame le pilote avec un fort accent slave. Je m'appelle Gorislav et je serai ton pilote. Puissent Saint Michel, Saint Raphael et tous les anges du ciel nous protéger sur notre route !~^";Attend();print "^~Oui, mais aidez les et décollez rapidement !~^";Attend();print "^~Pas de problème, tovarich, mais pourrais tu fermer la porte de l'hydravion d'abord ? Je ne pourrais pas décoller avec cette porte ouverte !~^";Attend(); 1 : Joue(204);print "^Un coup de feu résonne au dehors.^^~Alors on te tire dessus, l'ami ?~^^~Et alors ? Ca va vous empecher de décoller ?~^^~Oh, moi pour cinq mille dollars, j'emmène qui veut au bout du monde !~^"; 2 : print "^Gorislav se tourne et me dit : ~Le temps que vous régliez ce petit problème, je suis obligé de remonter la Vistule, d'accord ?~^"; 3 : print "^Des sirènes de police se multiplient au dehors. Gorislav me précise : ~Nous rentrons dans Varsovie. Il serait temps de s'activer, petit père !~^"; 4 : print "^Gorislav entonne d'une voix puissante sa prière du voyageur :^^~O toi le Dieu très présent, guide-nous dans la paix, vers laquelle nous voulons aller...~^^Décidement...je passe d'asile de fous en établissements d'aliénés !^"; 5 : print "^^~Fais attention, tovarich, je prends une petite courbe...~^^A peine ai-je eu le temps de m'aggriper à une poignée que l'avion tremble de toutes parts et sous la violence du virage, tout est chamboulé dans la pièce. Une lourde boite à outils me tombe sur le pied et j'hurle de douleur. Un instant, je vois par le hublot que notre aile plonge dans l'eau, puis Gorislav rétablit le tir.^^~Je n'ai plus de pied gauche !~ j'hurle au pilote.^^~Ha ! Toujours à se plaindre ! Galina avait raison de me dire que vous étiez grognon ! Mais c'était cela ou le quai !~^"; 6 : print "^Petit père, nous passons actuellement sous le pont qui va du Stare Miasto au Stade de Varsovie. Il a été construit en...~^^~ Oui, MERCI, je connais ce pont. J'y étais dessus il n'y a pas vingt minutes, poursuivi par d'autres fous !~^"; 7 : print "^Un haut parleur à l'extérieur hurle quelque chose : ~Ils ont l'air de vous en vouloir, hein ?~^"; 8 : print "^Notre avion est agité de secousses alors que Gorislav essaie d'éviter les piles des ponts sous lesquels nous passons. ^"; 9 : print "^~Euh...tovarich...dans quelques centaines de mètres, il y a une sorte...d'écluse. ~^^~Ce qui veut dire ?~^^~Et bien, soit nous avons décollé, soit nous nous écrasons. Ou soit je serais obligé de couper les moteurs. ~^^Et mince ! Pourquoi faut il que j'ai toujours un timing aussi serré !^"; 10 : print "~Ecluse dans 500 mètres, tovarich !~^"; 11 : print "~Ecluse dans 400 mètres, tovarich !~^"; 12 : print "~Ecluse dans 300 mètres, tovarich !~^"; 13 : print "~Ecluse dans 200 mètres, tovarich !~^"; 14 : print "~Ecluse dans 100 mètres, tovarich ! Il va falloir se bouger le derrière !~^"; 15 : FinEcluse(); } self.depart++; } ], depart 0, visite 0, venise 0, out_to [;if (self.venise==1) {return quai;} else {print "^Pour plonger dans l'eau ? Non merci !^";return 1;}], n_to [;if (self.venise==1) {return quai;} else {print "^Pour plonger dans l'eau ? Non merci !^";return 1;}], s_to [;if (self.venise==1) {return quai;} else {print "^Pour plonger dans l'eau ? Non merci !^";return 1;}], w_to [;if (self.venise==1) {return quai;} else {print "^Pour plonger dans l'eau ? Non merci !^";return 1;}], e_to [;if (self.venise==1) {return quai;} else {print "^Pour plonger dans l'eau ? Non merci !^";return 1;}], has container enterable open; Object ecoutille "ecoutille" avion with name 'ecoutille' 'porte' 'ouverture' 'sortie' 'sas', description "^C'est la porte de sortie de l'avion. ^ ", before [;Open : if (self has open) {print "^Hey Gilbert, cette porte est déjà ouverte !^";return 2;} else { if (avion.venise==0) {print "^Non, je souhaite que l'on décolle le plus rapidement !^";return 2;} else {print "^J'ouvre l'écoutille. Des senteurs marines viennent envahir l'appareil. ^";give self open;return 2;}} Close : if (avion.venise==0) {print "^Je referme hermetiquement la porte non sans m'être pris une copieuse giclée d'eau de la Vistule, et verouille le sas.^";Attend();print "^~On est bons, Gorislav, à nous les cieux !~^";Attend();print "^~A nous les cieux !~^";Attend();print "^Et Gorislav pousse la puissance de son appareil, mais un coup d'oeil à l'hublot me montre que nous ne sommes pas encore en vol.^";Attend();print "^~Euh, tovarich, j'ai un aileron coinçé, là. Tu pourrais pousser la manette du compresseur hydraulique ?~^";Attend();print "^~Elle ressemble à quoi votre manette ?~^";Attend();print "^~Dans un boitier, il y a marqué ~compression hydraulique~ dessus !^";Attend();print "^~Ouais bon, je suis pas mécano, hein ?~^";Attend();print "^~Ha ha ha ! Je ne me moque pas tovarich deduska !~^";return 2;}], has static female openable open; Object boitier "boitier" avion with name 'boitier', description "^C'est un petit boitier de maintenance de trente centimètres sur quarantes, fixé sur la paroi de l'avion. ^ ", before [;Open : if (self.ouvert==0) {print "^J'ouvre le boitier, manquant de tomber sous une secousse de l'avion. ";Italique();print "Malédiction !^";Normal();Attend();print "^~Hé, Gorislav ! Toutes tes manettes, là, elles sont écrits en cyrillique !~^";Attend();print "^~En quoi ?~^";Attend();Gras(); print "^~En RUSSE !~^";Attend();Normal();print "^~Ah, c'est la bleue ! Ah, et puis tourne dans le sens des aiguilles d'une montre, sinon c'est le crash assuré, et nous n'y survivrons pas !~^";Attend();print "^~Merci pour cette précision de dernière minute !~^";Attend();print "^Et bien, le voyage risque d'être animé.^";Attend();give self open;self.ouvert++;return 2;} else {give self open;}], ouvert 0, has static openable container; Object manettebleue "manette bleue" boitier with name 'manette bleue' 'manette' 'bleue' 'bleu' 'levier', description "^Une manette bleue avec une inscription indéchiffrable. ^ ", before [;Turn : if (self.tourne==0) {print "^Je tourne précautionneusement la manette bleue dans le sens des aiguilles d'une montre.^";Attend();print "^~C'est bon, Chef !~ j'hurle au pilote pour couvrir le bruit du moteur.^";Attend();print "^~Euh...bien joué...en fait, finalement, tourne là dans l'autre sens !~^^~Vous avez dit que c'était dangereux !~^";Attend();print "^~Et bien ? On a droit à l'erreur quand même !~^";Attend();self.tourne++;return 2;} else if (self.tourne==1) {print "^Je tourne une première fois la manette pour la remettre à zero, puis je tourne dans l'autre sens...à l'affut du moindre son d'explosion...mais le moteur gagne encore en puissance et je sens que les flots entravent moins notre course. Serions nous en train de décoller ?^";Attend();print "^ Gorislav me dit : ~T'es un As ! T'es prêt pour un tour du monde !~^";Attend();print "^~Emmenez moi d'abord à Venise...enfin, décollez d'abord.~^";Attend();print "^Mais nous ne décollons toujours pas. J'entends un haut parleur beugler en polonais à l'extérieur, et par un hublot, je vois un contingent de véhicules de police nous suivre depuis les rives !^";Attend();print "^~Tovarich, il me faudrait encore une petite chose : la manette rouge. Tourne la aussi. ~^";self.tourne++;return 2;} else {print "^Ah non, j'y touche plus !^";return 2;}], tourne 0, has static female; Object manetterouge "manette rouge" boitier with name 'manette rouge' 'manette' 'rouge' 'levier', description "^Une manette rouge avec une inscription incompréhensible. ^ ", before [;Turn : if (manettebleue.tourne<2) {print "^C'est la bleue que je dois tourner. ^";} if (self.tourne==0) {print "^Arg ! Humpf ! Cette manette est coincée ! C'est pas vrai !^^~Hé, l'as des as ! La manette est bloquée !~^^~Da, tovarich deduska, moi, je lui donne toujours un bon coup de marteau pour la bouger celle-là. Vous trouverez un marteau dans la boite à outils qui est à vos pieds. ~^"; self.tourne++;return 2;} else {print "^Rien à faire, elle bouge pas !^";return 2;} Attack : if (manettebleue.tourne<2 || self.tourne==2) {print "^Pas la peine de m'acharner là dessus !^";return 2;} else { if (second==marteau) {print "^Après quelques coups de marteau, la manette se décoince enfin. ^";Attend();print "^ ~Victoire, Tovarich, j'ai à nouveau la main sur notre engin ! Attache ta ceinture !~^";Attend();print "^Hein ? Mais il n'y a pas de ceinture ici !^";Attend();print "^L'avion bascule brusquement et prend son envol au dessus des toits pentus de la vieille Varsovie.^^";Attend(); self.tourne++;ToVenise();avion.venise=1;return 2;} else {print "^Avec cela ? C'est pas ca qui va la faire bouger !^";return 2;} } ], tourne 0, has static female; Object boiteoutil "boite à outils" avion with name 'boite' 'a' 'outil' 'outils' 'boite a outils' 'boite à outils', description "^Une grosse boite à outils grise, qui m'a l'air de peser deux tonnes. ^ ", before [;Take : print "^Certainement pas, elle pèse deux tonnes !^";return 2;], has openable container female; Object marteau "marteau" boiteoutil with name 'marteau' 'maillet' 'masse', description "^Un bon gros marteau. Qui sait ? Cela pourra toujours me servir. ^ "; Object outils "outils" boiteoutil with name 'outils', description "^Divers outils dont je ne connais pas l'usage...^ ", before [;Take : print "^Non seulement c'est lourd, mais je ne vois vraiment pas à quoi cela va me servir, alors non. ^";return 2;] has pluralname; Object placard "petit placard" avion with name 'placard' 'petit' 'petit placard' 'pharmacie', description "^Un petit placard blanc marqué d'une croix verte. ^ ", before [;Open : if (self.ouvert==0) {print "^~Hé Tovarich ! Il n'y a rien ici qui t'interresse !~^^J'ouvre la pharmacie. "; give self open;self.ouvert++;return 2;} else {give self ~open;print "^Je ferme la ~pharmacie~. ^";return 2;}], ouvert 0, has static openable container; Object vodka "bouteille de zubrowska" placard with name 'bouteille' 'de' 'zubrowska' 'bouteille de zubrowska' 'vodka', description [;Affiche(132);print "^Le remontant polonais le plus populaire. Voilà le carburant de ce damné pilote. ^ ";], before [;Open : print "^Non merci, je marche exclusivement au Bourgogne. ^";return 2;], has female openable; Object gorislav "Gorislav" avion with name "gorislav" "homme" "russe" "pilote" "slave", description [;Affiche(160);print "^C'est Gorislav, mon pilote. Il est vétu d'une combinaison grise avec divers écussons, mais on dirait plutôt du rapiécage.^^Front plat, yeux allongés, cou de taureau, le profil slave.^^";], life [;Tell,Ask,Answer : Affiche(160); if (avion.venise==0) {print "^~Surtout, tovarich, reste très calme et suis mes instructions. ~^";return 2;} else {print "^On s'est pas fait rattraper, hein tovarich ! Je les ai pas volé, tes dollars !~^";return 2;} ], each_turn [; if (avion.venise==1) { if (random(3)==2) {print "^Gorislav fouille dans sa boite à outils. ^";} if (random(3)==1) {print "^Gorislav effectue des réparations sur la carlingue. ^";} }], has animate proper; ! avion -- quai -- cloitre -- grille -- cimetiere -- mausolée Object quai "Quai de l'Isola San Michele" with description [;Affiche(140);Joue(178); print "^Me voici sur le quai accueillant les bateaux menant à l'Isola San Michele.^^Cette ile est une grande surface presque parfaitement carrée, un grand cimetiere...depuis toujours, mais disons, un vrai cimetiere, depuis qu'en 1800 et quelques, les français, alors maîtres de la cité, aient décidé par mesure sanitaire d'y déposer les morts.^^Comme le soir tombe, personne ne s'approche de cet étrange cimetiere.^^Senteurs d'iode et de lagune, bruit léger des clapotis et la lointaine, sourde rumeur de la ville sous les eaux au lointain. ^^ Une arche plein ouest donne sur le Monastère de l'ile.^";], cant_go "^La seule issue - si je ne veux pas nager, c'est plein ouest, sous l'arche de pierre menant au monastère. ^", w_to cloitre, has scenery; Object cloitre "Cloitre du Monastère San Michele" with description [;Affiche(139); print "^Le Monastère de l'île, où travaillent les instances gérant le musée.^Normalement, ils devraient être rentrès chez eux ce soir...mais dans la cour sombre, un singulier décor m'accueille.^^Une arche de pierre blanche mène sur un quai, à l'ouest, et l'allée pavée ouvre un chemin vers une épaisse grille, à quelques dizaines de mètres au sud. ^";], each_turn [;switch(random(10)) { 2 : print "^Quelques mouettes survolent la cour du cloître en piaillant. ^"; 3 : print "^Une cloche laissée à l'abandon de la brise marine sonne un glas peu rassurant. ^";Joue(208); 4 : print "^Une petite chauve souris volète maladroitement et disparaît en quelques secondes. ^"; }], cant_go "^Les seules issues sont une arche de pierre donnant sur un quai à l'ouest, et un chemin vers le sud. ^", s_to grillec, w_to quai, has scenery; Object tablem "table de bois massif" cloitre with name 'table de bois massif' 'table' 'bois massif', description "^Une large table pouvant accueillir une dizaine de convives, placée en plein milieu de la cour, et proposant un vrai festin. ^ ", has static supporter enterable female transparent; Object festin "festin" tablem with name 'festin' 'fruits' 'orange' 'raisins' 'saumon' 'poisson' 'paon' 'cochon' 'pomme' 'pommes' 'roti' 'nourriture' 'viande' 'pâtes' 'pates' 'fromage', description [;Affiche(158);print "^Mmm...quelle vision divine...sur la table, un festin de roi se dévoile sous la lumière des quelques bougies : du saumon cuit à point, coulant de beurre frais, un paon roti couvert d'oranges et de prunes, un cochon de lait cuit dans ses pommes, diverses pâtes et fromages de toutes les régions de l'Italie, et des fruits frais et luisants.^ ";], before [;Take,Eat : switch(random(7)) { 0 : print "^Je place un petit bout de saumon sur un morceau de pain frais et j'avale. Mmm, je me régale. ^";return 2; 1 : print "^Je trempe un bout de pain dans la sauce du paon roti. Wow. ^";return 2; 2 : print "^Je goûte un peu de ce délicieux cochon...mmm...je l'ai bien mérité !^";return 2; 3 : print "^J'avale quelques grains de raisins, ils sont frais et craquants comme j'aime. ^";return 2; 4 : print "^Je prends un bout de pomme cuite dans la sauce du cochon avec un peu de viande, c'est rudement bon !^";return 2; 5 : print "^Je goûte aux farfalles. Oh, oua ! La sauce est vraiment délicieuse !^";return 2; 6 : print "^Je prends un quartier d'orange frais. Après tout ce voyage, un peu de vitamine C me fera du bien. ^";return 2; 7 : print "^Je goûte aux fromages. Bon, ces italiens ont encore à faire du bon vin, mais leurs fromages sont délicieux !^";return 2; } Smell : print "^Tout cela sent divinement bon !^";return 2;], has edible; Object bchampagne "bouteille de champagne" tablem with name 'bouteille' 'de' 'champagne' 'bouteille de champagne', description "^Une bouteille de Dom Ruinart...le meilleur champagne, paraît-il. Toutefois, cette bouteille présente le défaut ennuyeux d'avoir déjà été vidée. Mmm...quel dommage, un tel festin sans alcool... ^ ", before [;Take : print "^Hélas, un tel objet vide m'encombrerait plus qu'il ne m'aiderait. Enfin. Surtout qu'elle est vide, quoi. ^";return 2;], has female; Object bougies "petites bougies" with name 'petites' 'bougies' 'flamme' 'bougie' 'lumiere' 'petite bougie', description "^De nombreuses petites bougies éclairent les environs de leurs flammes vacillantes dans la brise pourtant faible de la nuit venitienne. ^ ", before [;Take : print "^Il y en a de partout, me fournissant la lumière nécessaire, et aurais je besoin de flamme, que j'ai mes allumettes...et il ne sera pas dit que Gilbert Fontenelle a peur dans un cimetiere !^";return 2;], found_in tablem grillec, has female pluralname; Object pazzi1 "étrange silhouette" cloitre with name "etrange" "silhouette" "homme", description [; if (robe.pris==0) {Affiche(231); print "^Un homme, à en juger par sa corpulence, est attablé sur le festin, mais il porte une longue robe noire dont la capuche rabattue sur son visage ne laisse pas voir ses traits.^Un instant consacré à son odeur et ses marmonnements perdus donne rapidement la solution à l'énigme du champagne disparu. ^";} else { print "^C'est un vieil homme dont les traits me sont inconnus. Il ronfle paisiblement, la tête sur la table. ^";} ], life [;Tell,Ask,Answer : if (self.sonne==0) {Affiche(231);print "^Une voix grave d'homme, en italien, se plaint que son verre soit vide.^^Ce n'est pourtant que la logique conséquence des choses, n'est ce pas ?^";return 2;} else if (grillec.visite>0) {print "^Je soulève sa tête nue et je lui demande : ^~Vous avez le mot de passe ?~^^Il me répond en marmonnant : ~Ek...ekf..~ et s'écroule à nouveau.^^ Ok. Je vois le topo.^";return 2;} else {print "^Je crois qu'il n'y a plus rien à en tirer...^";return 2;} Attack : print "^Il a l'air diminué, hélas, il reste quand même plus baraqué que moi !^";return 2; Give,Show : if (noun==vodka) {print "^Je lui tends la bouteille et il s'en saisit fébrilement. Après quelques essais, il parvient à l'ouvrir et commence à boire au goulot. Par un miracle physiologique incroyable, la bouteille est rapidement vidée sous mes yeux, plongeant son assassin dans un coma éthylique puissant. ^";remove vodka; self.sonne++;return 2;} else {print "^Il n'y prête pas attention une seconde. ^";} ], each_turn [; if (self.sonne==0) { if (random(3)==2) {print "^L'homme en robe noire, affalé sur la table, cherche une bouteille à sa portée. Malheureusement pour lui, toutes celles qu'il trouve ont déjà été vidées par ses soins. ^";} if (random(3)==1) {print "^L'homme marmonne en italien : ~Moi, je leur ai jamais demandé de faire ceci cela... tout ceci est ridicule...^";}} else { if (random(3)==2) {print "^L'homme effondré sur la table ronfle bruyamment. ^";} }], sonne 0, has animate female; Object robe "robe noire" cloitre with name 'robe' 'noire' 'capuche' 'capuchon' 'tunique' 'aube', description "^Une robe noire avec un large capuchon permettant de dissimuler le visage...on dirait une robe de moine, mais celles des moines n'ont pas une si belle facture. ^ ", before [;Take : if (pazzi1.sonne==1) { print "^Le convive étant assommé, c'est dans son interêt de le dévêtir, au cas où il s'étouffe dans ces larges replis, non ?^Je prends la robe noire.^";pazzi1.sonne++;move robe to gilbert;return 2;} else {print "^Euh, ca ne va pas plaire à celui qui est dedans !^";return 2;} Disrobe : print "^Je vais la garder encore un peu sur moi, le temps de me sortir d'ici. ^";return 2;], pris 0, has female scenery clothing; Object grillec "Grilles du Cimetière" with description [;Affiche(143); Joue(183); print "^Le chemin pavé est bordé tous les quelques mètres de petites bougies défendant difficilement leur flamme contre une brise nocture pourtant légère.^Le chemin depuis le cloitre aboutit sur une lourde grille de bronze aux barreaux épais comme un bras d'homme, et au délà s'étend le cimetiere de Venise. ^"; if (robe hasnt worn) {Attend();Affiche(161);print "^Je distingue une personne se tenant devant la porte fermée du cimetiere. Je pense qu'il ne serait pas très malin de s'aventurer avec mon look de touriste devant lui, pour ne pas me faire éconduire...mais où pourrais je trouver un vetement discret ?^^Je retourne dans la cour du cloître à pas prudents. ^";Attend();PlayerTo(cloitre);} else if (self.visite==0) {Attend();Affiche(161); print "^Enveloppé dans la robe de moine, dissimulant mon visage dans l'ombre, je m'approche prudemment de la porte du cimetiere où se tient un insolite gardien.^";Attend();print "^Celui-ci m'aborde d'une voix douce en italien :^";Attend();print "^~Bonne soirée, Monsieur. Votre famille est déjà là et vous attend. ~^^";Attend();print " ~Merci.~ repondis-je dans une toux forcée.^";Attend();print "^Le gardien se tourne, prend une clef de sa poche et déverrouille la porte du cimetiere. Il entrouvre la porte et murmure : ^";Attend();print "^~Je suis navré, mais...vous connaissez la signora. J'ai besoin de vous demander le mot de passe. ~^";Attend(); self.visite++; } ], each_turn [;if (random(5)==1) {print "^La flamme des petites bougies vacille sous la brise légère. ^";}], cant_go "^Au sud, le cimetiere, au nord, le monastère, c'est là tout où je peux aller !^", n_to cloitre, s_to "^Les grilles sont fermées - et gardées. ^", visite 0, has scenery; Object majordome "homme" grillec with name "homme" "domestique" "majordome" "garde" "gardien", description [;Affiche(161);print "^Ce grand gaillard qui fait la moitié de mon âge se tient devant la grille fermée du cimetiere.^Il ne porte pas de robe noire comme le type dans le cloitre, mais un costume à col cassé. ^";], life [w;Tell,Ask,Answer : Affiche(161);if (self.ok==1) {print "^~Passez une bonne soirée, Monsieur. ~ me dit il obséquieusement. ^";return 2;} else { wn=consult_from; w=NextWord(); switch(w) { 'ekphrasis' : print "^~Ekphrasis ?~^";Attend();Joue(181);print "^~Oui, c'est cela, merci, Monsieur. Je suis soulagé, car je dois respecter les consignes de la signora. ~^";Attend();print "^Il se retourne et m'ouvre grand les portes du cimetiere, tentant de trouver mon visage et mon regard alors que je passe devant lui.^";Attend();print "^~Pourquoi Ekphrasis est le mot de passe ?~ je lui demande en passant.^";Attend();print "^~Je l'ignore. ~ avoue-t-il alors que je m'éloigne. ^^";Attend();print "~Vous connaissez la signification de ce mot ?~^";Attend();print "^~Oh que oui. ~^";Attend();print "^Et je disparais dans les ténébres du cimetière.";Attend();print "^";PlayerTo(cimetiere);return 2; default : print "^~Euh...non, ce n'est pas le mot de passe. ~^^~L'âge...j'oublie le mot de passe.~^^~Allez, ca vous revenir. ~^";return 2; } } Attack : print "^Hein ? Ce type est une vraie baraque !^";return 2; ], each_turn [; if (random(3)==2) {print "^Le ~gardien~ du cimetiere regarde de tous cotés, aux aguets. ^";} if (random(3)==1) {print "^L'homme me lance un regard en coin, essayant de distinguer mon visage. ^";} ], ok 0, has animate proper; Object cimetiere "Cimetière San Michele" with description [;Affiche(143); print "^Une nappe de silence étouffe ce cimetiere éclairé par les brillantes étoiles du ciel vénitien.^^A perte de vue, des tombes s'alignent, dalles de marbres surmontées de calices contenant des fleurs dont la couleur vire au gris dans cette obscurité diffuse.^Au loin, des murs recevant des urnes funéraires, partiellement couverts de lierre, s'alignent comme autant de labyrinthes où errent les âmes. ^^A l'est de l'allée principale où je me trouve se dresse un grand tholos couvrant une croix de pierre noire. ^"; if (self.visite==0) {Reunion();self.visite++;}], each_turn [;switch(random(10)) { 2 : print "^Des corneilles passent au dessus de nos têtes. ^"; 3 : print "^Un corbeau vient se percher sur une tombe, puis reprend son envol. ^"; 4 : print "^Un insecte bourdonne bruyamment. ^"; }], cant_go "^La sortie du musée est au nord, et une allée mène à cette tholos vers l'est. ^", n_to [;if (espion.compteur~=4) {print "^Je décide de repartir vers le cloître, mais Giuliana ne l'entend pas ainsi et me plaque la main sur le bras, fermement. ^";Attend();FinMasque();return 1;} else {print "^Non. Je ne partirais du cimetière que lorsque j'aurais trouvé ce pourquoi je suis venu. ^";return 1;}], e_to mausolee, visite 0, has scenery; Object masque "masque de l'assassin" with name 'masque' 'assassin', description [;Affiche(156);print "^C'est un masque blanc imprimé d'une épée noire. ^ ";], before [;Disrobe : print "^Non, tant que je le garde, j'ai moins de chance de me faire repérer. ^";return 2;], has clothing; Object dague "dague" with name 'dague' 'arme' 'ouvragee' 'lame' 'epee', description [;Affiche(121);"^Une dague au pommeau ouvragée, une pièce de collection remontant certainement au quatorzième siècle. ^ ";], has female; Object espion "Espion" with name "espion" "giuliana", description [;Affiche(232);print "^Une silhouette fine enveloppée dans une robe noire, le visage dissimulé sous un masque blanc marqué d'une étoile que je devine être nulle autre que Giuliana la traitresse. ^";], life [;Tell,Ask,Answer : print "^~Et là, je dois faire quoi ?~^";Attend();FinMasque();return 2; Attack : print "^Je profite d'un moment que je pense d'inattention de Giuliana pour lui asséner un grand coup et la laisser sur le carreau pour le compte, mais celle-ci me bloque le bras avec une fermeté qui me surprend. ^"; Attend();FinMasque();return 2; ], each_turn [; switch(self.compteur) { 1 : print "^Giuliana se penche vers moi et murmure dans un italien ancien : ~Les Pazzi ont toujours été le bras armé des Pitti lorsqu'il l'a fallu. Aujourd'hui Laurent est dans le Duomo avec son frère et ils ont la boite. Nos familles ont décidé, tu dois aller la récupérer pour nous. Va, je marcherai dans ton ombre. ~^^ Son visage masqué se tourne vers la grande croix noire où se tiennent ses deux autres compagnons. ^";self.compteur++; } ], compteur 0, article "l'", has animate; Object mausolee "Ancien Mausolée" with description [;Affiche(157); print "^C'est une tholos, une petite construction couverte circulaire soutenue par des colonnes effilées en pierre.^^D'ici, le cimetiere part dans toutes les directions : je suis au centre de San Michele. ^";], cant_go "^Je peux retrouver la sortie de ce lieu en allant vers l'est. ^", each_turn [; if (espion.compteur==2) {print "^Je remarque que l'espion marche discretement dans mes pas.^";Attend();print "^L'un des deux hommes habillé en noir, son masque blanc peint d'une larme, se tourne vers son comparse et dit :^";Attend(); Affiche(233);Affiche(234);print "^~Mon frère, ils nous ont envoyé un assassin. ~^et il lui prend une petite boite des mains tandis que son frère demande : ~Un assassin, Laurent ? ou un voleur ?~^"; Attend();print "^Les regards se tournent vers moi alors que je dois agir. Mmm...il va falloir être malin...";Italique();print "toute cette scène me rappelle quelque chose, mais quoi ?";Normal();print " Ah, si je pouvais m'en souvenir, peut être saurais je ce qu'il faudrait que je fasse !^";move espion to mausolee;espion.compteur++;} ], w_to [;if (espion.compteur~=5) {print "^Je décide de repartir vers le cimetiere, mais Giuliana ne l'entend pas ainsi et me plaque la main sur le bras, fermement. ^";Affiche(232);Attend();FinMasque();return 1;} else if (piedestal.ouvert>0) {print "^Giuliana bloque le passage : ~Vous ne partez pas tant que vous ne m'avez pas remis le Cassone. ~^";return 1;} else {return cimetiere;}] has scenery; Object laurent1 "Laurent" mausolee with name "laurent" "medicis" "larme" "homme", description [;Affiche(233);print "^Cet homme se fait appeler Laurent. Laurent de médicis ? Sur son masque blanc, une larme est imprimée. ^";], life [w;Tell,Ask,Answer : wn=consult_from; w=NextWord(); switch(w) { 'boite','cassone' : if (espion.compteur==3) {Affiche(233); print "^~Je suis venu chercher la boite. ~ dis-je de mon meilleur italien.^^Laurent prend une épée de dessous sa robe et la jete aux pieds de son frère.^^~Défends toi, mon frère !~^";espion.compteur++;return 2;} else {print "~Hum...j'insiste !~"; Attend();FinMasque();return 2;} default : print "^Je ne devrais pas faire ce type de chose, maintenant. ^";return 2; } Attack : if (second==dague) { if (espion.compteur==4) {print "^Je m'approche de Laurent et brandis la dague. Le Frère ne fait rien.^";Attend();print "^J'abats alors la dague sur Laurent, et je comprends la supercherie : celle-ci est factice et sa lame est rétractable !^";Attend();print "^Mais Laurent s'écroule quand même, la boite roulant au sol.^";Attend();print "^Le Frère la ramasse et s'enfuit dans les ténébres du cimetiere.^^L'Espion s'exclame alors d'une voix puissante : ";Gras();Affiche(232);print "~Cette nuit encore, comme chaque année depuis cinq cent ans, le Cassone nous échappe encore. ~";Normal();Attend();Affiche(233);print "^^Laurent se relève alors, retire sa capuche, découvrant un visage jeune, inconnu et goguenard, et déclare : ~Comme d'habitude ! Hé hé ! Nous allons manger maintenant ?~^";Attend();print "^Giuliana retire son masque et sa capuche et soupire : ~Vous n'avez aucun respect pour les traditions. N'oubliez pas votre nom, n'oubliez pas vos ancêtres. ~^";Attend();Affiche(234);print "^ ~Le Cassone, le Cassone~ chantonne celui qui était le Frère, revenant du cimetière, en jonglant avec la boite. ~Les Pitti courent après, mais existe-t-il vraiment ?~^";Attend();print "^Ils repartent tous les trois sur la route du cloitre, faisant de longs détours dans le cimetiere pour retrouver la tombe de célébrités enterrées là.^";Joue(182); remove laurent1;remove frere;remove espion;remove boite;espion.compteur++;move piedestal to mausolee; move faces to mausolee; move facese to mausolee; move facee to mausolee; move facene to mausolee; move facen to mausolee; move faceno to mausolee; move faceo to mausolee; move faceso to mausolee; return 2;} else {Affiche(233);print "Alors que je brandis la dague, Laurent murmure : ~Il n'a pas posé la question ?~";Attend();FinMasque();return 2;} } else {Affiche(234);print "^Je donne un grand coup de poing à ce grand type, mais l'autre me maîtrise rapidement en demandant : ^^~Il est fou ? Il n'a pas utilisé la dague ?~^";Joue(203); FinMasque();return 2;} ], has animate proper; Object frere "Frere" mausolee with name "frere" "medicis" "giuliano" "clef", description [;Affiche(234);print "^Cet homme se dit le frère de Laurent. Sur son masque blanc, une clef est imprimée. ^";], life [w;Tell,Ask,Answer : wn=consult_from; w=NextWord(); switch(w) { 'boite' ,'cassone' : if (espion.compteur==3) {Affiche(233); print "^~Je suis venu chercher la boite. ~ dis-je de mon meilleur italien.^^Laurent prend une épée de dessous sa robe et la jete aux pieds de son frère.^^~Défends toi, mon frère !~^^Le Frère ramasse l'épée et la tient mollement dans ma direction.^";espion.compteur++;return 2;} else {print "~Hum...j'insiste !~";Attend();FinMasque();return 2;} default : print "^Je ne devrais pas faire ce type de chose, maintenant. ^";return 2; } Attack : print "^Je m'approche de façon menaçante, mais l'autre me bondit dessus et me maîtrise rapidement. ^"; FinMasque();return 2; ], article "le", has animate; Object boite "boite" mausolee with name 'boite' 'cassone' 'Cassone', description "^Une petite boite en bois fermée. ^ ", before [;Take : print "^Alors que je tends la main pour saisir la boite dans les doigts de Laurent, celui ci pose la main sur mon bras, interloqué. ^";Attend();FinMasque();return 2;], has female openable locked lockable; Object tholos2 "tholos" mausolee with name 'tholos' 'colonne' 'colonnes' 'coupole', description "^Tout autour de moi, un Tholos récemment rénové, constitué de colonnes soutenant une coupole octogonale... octogonale comme la coupole du Duomo de Florence. ^ ", has scenery static; Object croix "croix noire" mausolee with name 'croix' 'noire', description [;print "^Une grande croix se tient au centre de la Tholos. Les siècles ont émoussé les coins de marbre, mais son auguste présence domine encore. ^ "; if (piedestal in mausolee) {print "^Au bas de la croix, je remarque un curieux piedestal octogonal. ^";}], has static female; Object piedestal "piedestal octogonal" with name 'piedestal' 'octogonal' 'support', description "^La croix noire est soutenue par un piedestal à huit faces, reprenant le schéma octogonal de la coupole du tholos. ^^ Chacune des faces est ornée d'une petite plaque de laiton.^^Ces faces sont placées aux points cardinaux (pour les examiner plus en avant, je n'ai qu'à taper 'regarder face sud')^", each_turn [; if (faces.face==0 && facese.face==1 && facee.face==2 && facene.face==3 && facen.face==2 && faceno.face==0 && faceo.face==3 && faceso.face==1 && self.ouvert==0) {self.ouvert=1; print "^Incroyable...alors que je positionne, sans trop y croire, la dernière face au bon emplacement suivant les consignes de la comptine de Bombelli, je perçois le jeu sonore d'engrenages dont la mécanique a été préservée depuis des siècles...un mécanisme hydraulique ?^";Attend();print "^Mais rien de spectaculaire ne se passe, ou presque, juste un petit panneau de pierre qui se disloque.^";Attend();print "^J'y plonge la main, et à tâtons découvre une petite boite de métal froid...";Italique();print "Mon Dieu";Normal();Attend();Affiche(31);print "...elle est comme dans mon rêve : une boite de métal gris et bleu, sculptée d'un visage et de frises antiques, mais sans aucune inscription.^";Attend();print "^C'est alors que je lève les yeux et sursaute de frayeur quand je vois Giuliana devant moi, avancer la main et retirant mon masque.^";Attend();print "^Après une vive expression de surprise, discernant mon visage sous mes cheveux maintenant blonds et ma barbe rasée, son regard se durcit et elle me dit :^";Attend(); Gras();print "^~Vous !";Normal();print " vous avez réussi à accoster San Michele ce soir même, alors que nous avions condamné tout trajet maritime, vous avez pris la place d'un de nos frères sous notre nez...et...vous avez retrouvé le Cassone de Laurent de Médicis. ";Italique();print "Mais quel homme êtes vous, Gilbert Fontenelle ?~^";Normal();Attend();print "^~Un homme, Giuliana, qui aurait se souvenir des mots de Shakespeare : ";Italique();print "~Souffle, souffle, vent d'hiver, tu seras moins cruel que l'ingratitude de l'homme~.";Normal();print " Ou de la femme, en mon cas précis. ~^";Attend();print "^ ~Un cadre de tableau avait été subtilisé aux offices pour être expédié à Gilbert Fontenelle, que devions nous faire ? Mais je vous connaissais, et quand je vous ai vu arriver avec votre naïveté d'expert, mes doutes se sont mués en perplexité : apparemment, vous aviez été dupe de cette subtilisation tout comme nous. ~^";Attend();print "^~Exact. Un troisième larron poursuivait votre boite. Aucun d'entre vous n'a joué cartes sur tables, mais c'était bien assez pour Gilbert Fontenelle pour résoudre cette énigme triviale. Vous connaissez la loi : ";Italique();print "le trésor appartient à son inventeur. ";Normal();print "~^ ";Attend();print "^~Et vous allez le mettre dans un musée ? Allons, vous savez ce qui hante les musées, et vous savez que ceci...ceci terminera dans une collection privée. En toute objectivité, vous pourriez poser la question : à laquelle des grandes familles de marchand de Florence ce Cassone devrait revenir, mais Médicis, Pazzi ou Pitti, laissez ";Italique();print "cette affaire familiale";Normal(); print " dans le domaine ";Italique();print "familial";Normal();print ". Maintenant, donnez moi cette boite. ~^";Attend();print " ^~Pas avant de l'avoir ouvert, Signora. ~^";Attend();move pandora to gilbert; move giuliana9 to mausolee; return 2;} ], ouvert 0, has scenery static; Object giuliana9 "Giuliana" with name "femme" "giuliana" "pitti" "traitresse", description [;Affiche(31);print "^Une silhouette fine enveloppée dans une robe noire, les traits de son charmant visage polis par la douce clarté des étoiles, et un regard mélant colère et respect. ^";], life [;Tell,Ask,Answer : Affiche(31);print "^~Laissez moi partir avec cette boite, Giuliana~^";Attend();print "^~Certainement pas. Et c'est dans votre bien. Des forces d'une puissance dont vous ne soupçonnez rien se mettraient en branle pour vous retrouver. ~^"; return 2; Attack : Affiche(31);print "^Giuliana semble lire dans mes pensées et avant que je fasse quoi que ce soit elle me dit : ~Pas de bétises, Professeur. Le reste de ma famille m'attend là bas, et contrairement à moi, il ne vous connaissent pas, et je ne pense pas qu'il vous traiteront avec la patience et le respect que je vous montre. ~^";return 2; Give,Show : if (noun==pandora) {print "^Je lui tends la boite, à contrecoeur. ^";Attend();print "^~De toute façon, ce qui m'importait, c'était son existence, pas sa possession. ~^";Attend();Affiche(31);print "^ ~Voilà une décision raisonable, Professeur. Je vais vous raccompagner en toute sécurité sur le quai, et, pas un mot de tout ceci à qui que ce soit, bien entendu ?~^";Attend();print "^~De toute façon, comment pourrais je être crédible...~^";Attend();print "^ Giuliana me raccompagne le long du cimetiere sans dire aucun mot, la tête haute, serrant contre elle le Cassone familial des Médicis, et moi la suivant, absorbé dans mes pensées, et une certaine amertume.^";Attend();Affiche(235);print "^ Nous traversons le Cloitre dans le silence interrogateur des frères de Giuliana, et elle me laisse finalement partir dans une petite barque frappée des insignes des Pitti.^";Fin1();return 2;} else {Affiche(31);print "^~Ne faites pas l'idiot, Gilbert, vous n'en êtes pas un. ~^";return 2;} ], each_turn [; switch(self.compteur) { 1 : print "^~Allez, Professeur, donnez moi ceci. Ne me forcez pas à appeler mes frères, ils seront moins conciliants que moi. ~^"; 2 : print "^~Professeur, rien ne sert de gagner du temps. ~^"; 3 : print "^~Mais qu'espèrez vous à gagner du temps ainsi Professeur ? Nous sommes sur une île, et aucun bateau n'a le droit de venir ici ce soir. ~^"; 4 : print "^~Professeur, soyez coopératif. Nos familles n'oublieront pas ce que vous avez fait pour nous. ~"; 5 : print "^~Cela suffit maintenant. VENEZ ICI VOUS AUTRES !~^Elle se tourne vers le reste de la compagnie qui était restée dans le cloitre et je les entends accourir.^"; 6 : print "^Alors que trois hommes s'approchent de notre position, je lui tends la boite, à contrecoeur. ^^ ~De toute façon, ce qui m'importait, c'était son existence, pas sa possession. ~^";Attend();Affiche(31);print "^ ~Voilà une décision raisonable, Professeur. Je vais vous raccompagner en toute sécurité sur le quai, et, pas un mot de tout ceci à qui que ce soit, bien entendu ?~^";Attend();print "^~De toute façon, comment pourrais je être crédible...~^ ";Attend();Affiche(235);print "^ Giuliana me raccompagne le long du cimetiere sans dire aucun mot, la tête haute, serrant contre elle le Cassone familial des Médicis, et moi la suivant, absorbé dans mes pensées, et une certaine amertume.^";Attend();print "^ Nous traversons le Cloitre dans le silence interrogateur des frères de Giuliana, et elle me laisse finalement partir dans une petite barque frappée des insignes des Pitti.^";Fin1();return 2; } self.compteur++; ], compteur 0, has animate proper; Object pandora "Cassone" piedestal with name 'Cassone' 'cassonne' 'boite' 'pandore', description [;Affiche(118);print "^Mon Dieu...elle est comme dans mon rêve : une boite de métal gris et bleu, sculptée d'un visage et de frises antiques, mais sans aucune inscription.^";], life [;Tell, Ask, Answer : if (self.ouvert==1) {print "^Me souvenant des inscriptions de la boite dans mon rêve, je murmure à celle-ci : ~Qu'est ce qui peut arrêter le mal à tout jamais ?~^";Attend();print "^Giuliana arbore une moue méprisante, mais, sous son regard ébahi, le couvercle se reléve très facilement et je plonge le regard dans cet incroyable objet.^";Attend();print "^Je n'y vis pas la preuve de la non existence de Dieu.^";Attend();print " ^Mais j'y vis une chose si suprenante, si ";Italique();print "astucieuse";Normal();print ", que j'éclatais d'un rire franc et proposais à Giuliana : ~Très chère, voulez vous y jeter un oeil ? Je suis certain que vous y trouverez la chose la plus charmante du monde. ~^";Attend();print "^Mais elle pousse sa main sur le couvercle pour la refermer.^";Attend();print " ^Je lui tends la boite. ~J'ai mes réponses, Giuliana, vous pouvez garder le Cassone. ~^";Attend();Affiche(31);print "^~En ouvrant cette boite, peut être avez vous déclenché quelque chose qui vous dépasse, Fontenelle. ~^";Attend();print "^~S'il s'agit d'une nouvelle Renaissance, ca ne fera pas de mal à la folie de notre monde occidental. ~^";Attend();print "^Et c'est moi qui part devant elle, le torse bombé d'une exaltation souveraine, l'exaltation d'avoir eu les étonnantes réponses d'une énigme séculaire.^";Attend();print "^ Je passe sous les mines figés de cette assemblée de Pazzi et de Pitti dans le Cloître, mon pas emboité par celui d'une Giuliana hésitante et craintive, et celle-ci m'accompagne jusque sur le quai, où sans un mot elle m'invite à prendre une embarcation frappée aux insignes des Pitti.^";Attend();Affiche(235);print "^Oui, songeais-je alors que le bateau s'éloignait vers la ville baignée des premières aurores, étonnantes réponses d'une énigme séculaire. Et d'avoir vu ce que Laurent de Médicis avait aussi vu, enfin presque...";Italique();print "l'intérieur de la boite était tapissé d'un miroir.^";Normal();Attend();print "^La brise des aurores était délicieuse, et debout sur le pont de ma nonchalante embarcation, je m'allumais une pipe remplie de tabac frais, enthousiaste à l'idée d' affronter et de savourer tout ce que l'Avenir me réservait. ";Attend();Fin1();self.ouvert=2;return 2;} else {print "^Pardon ?^";return 2;} ], before [; Open : if (self.ouvert==0) {print "^Je me prépare à ouvrir la boite, et Giuliana s'exclame : ";Affiche(31);Gras();print "~ne l'ouvrez pas !~^ ";Attend();Normal();print "^ ~Et pourquoi donc ? ~^";Attend();print "^~Professeur, révisez vos classiques : ";Italique();print "on n'ouvre pas la boite de Pandore. ~^ ";Attend();Normal();print "^ ~La boite de Pandore ? Si je me souviens bien, il doit y rester un bout d'espoir non ? Hé Giuliana, vous pensez que c'est parce que Laurent de Médicis l'avait ouverte qu'il y a eu la Renaissance ?~^";Attend();print "^ Mes sarcasmes la laissent de marbre : ~Vous vous croyez spirituel. Pourtant oui, il y a des choses que vous ne savez pas, Monsieur l'expert. Lorsque les marchands d'Orient revinrent avec ceci à Venise, puis à Florence se passèrent des évenements étranges.~^";Attend();print " ^~Des miracles ? Des pluies de chats et de chiens ?~^";Attend();print "^~Des choses toutes aussi magiques mais moins clinquantes : la force de résister à la toute puissance de l'Eglise, la montée du courant humaniste, et la puissance pour les Médicis. Et oui,~ poursuit Giuliana sur un ton complice, ~ la Renaissance également.^";Attend();print "^~Conjectures médiocres, mon élève. Les esprits jeunes ont besoin de la romance et du fantastique, mais le monde est d'une placidité réaliste. La boite de Pandore est un Mythe qui n'a de force qu'en tant que Mythe, et pas en tant qu'objet. ~^";Attend();print "^~C'est vous qui n'y connaissez rien, Fontenelle, ~ rétorque Giuliana, amère ~ imaginez un monde régi par l'Eglise, où l'Eglise dit par ses cloches quand se lever, quand manger et quand se coucher, quand par la confession les agents de l'Eglise tenaient tout homme par ses secrets, et quand par la peur de l'Enfer et de la Damnation les puissants comme les pauvres lui donnaient tout. Voilà votre Pré-Renaissance dont vous êtes tant expert, Professeur, et voilà que certains se dressent contre cet ordre, résistent par des actes et des oeuvres qui ont acquis aujourd'hui un statut universel, et dont le secret le plus gardé est ";Italique();print "cette boite. ";Normal();print "Une simple boite, Professeur, mais c'est pour cette petite et insignifiante boite que Laurent de Médicis perdit la vie au Duomo, et c'est pour celle ci également, Professeur, qu'en cette nuit, vous mettez en péril la vôtre ; alors laissez moi vous poser la question, Professeur : ";Italique();print "êtes vous certain qu'il ne s'agisse que d'un Mythe ?~^";Normal();Attend();print "^Je reste silencieux devant ces paroles passionnées. La passion, dans notre art, n'a jamais rien donné de bon.^";Attend();print "^~Un autre expert en la matière, appelons le Aristo, avait une toute autre théorie. Réalisé par Cardan, un mystificateur de l'époque, cet objet est une farce, contenant un diable qui va nous sauter au visage - une boite de pandore pour enfants, si vous voulez. ~^";Attend();print "^Giuliana croise les bras et déclare enfin : ~ Ce Cassone est sensé contenir la preuve de la non existence de Dieu. C'est aussi pour cette raison qu'il est impossible de l'ouvrir... si l'on a pas une sorte de sésame ou de formule magique, dit la légende, mais il est plus probable qu'il n'est pas possible de l'ouvrir tout court. De toute façon, les Pitti n'ont pas l'intention d'être responsables des maux du monde. ~^";Attend();print "^ ~Et bien, il n'y a qu'une façon de le savoir...~^";Attend();print "^La boite possède un couvercle qu'il est facile de repérer. Je tente de l'ouvrir, force un peu, mais il ne bouge pas d'un millimètre, comme s'il était soudé.^";Attend();print "^Mon regard croise celui sans âme de Giuliana.^";Attend(); self.ouvert++;return 2;} else {print "^Je force à nouveau...humpf ! Ca ne bouge pas du tout. ^";return 2;} Drop, ThrowAt : print "^Un objet aussi précieux ?^";return 2;], ouvert 0, article "Le", has openable lockable locked animate; !Più via più di meno, fa più di meno. !Più via meno di meno, fa meno di meno. !Più di meno via più di meno, fa meno. !Meno di meno via più di meno, fa più. !Meno via più di meno, fa meno di meno. !Meno via meno di meno, fa più di meno. !Più di meno via men di meno, fa più. !Meno di meno via men di meno, fa meno !(+1) x (+i) = +i 0 pm !(+1) x (-i) = -i 1 mm !(+i) x (+i) = -1 2 m !(-i) x (+i) = +1 3 p !(-1) x (+i) = -i 4 m !(-1) x (-i) = +i 5 pm !(+i) x (-i) = +1 6 p !(-i) x (-i) = -1 7 mm Object pagecarnet "page de carnet", with name 'page' 'carnet' 'page de carnet' 'comptine' 'bombelli' 'instructions', description [;Affiche();"^Ah, je suis trop vieux pour cela, moi...^";], has female; Object faces "face sud", !(+1) x (+i) = +i 0 with name 'face sud' 'face' 'sud' 'plaque' 'laiton', description [;Affiche(163); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(163); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} return 2;], face 3 has scenery static female; Object facese "face sud est", with parse_name [; if (NextWord() ~= 'face' or 'est') return 0; if (NextWord() == 'sud' && NextWord() == 'est') return 3; return 1; ], description [;Affiche(164); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(164); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} if (self.face==7) {Affiche();} return 2;], face 3 has scenery static female; Object facee "face est", with name 'face est' 'face' 'est' 'plaque' 'laiton', description [;Affiche(165); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(165); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} return 2;], face 3 has scenery static female; Object facene "face nord est", with parse_name [; if (NextWord() ~= 'face' or 'est') return 0; if (NextWord() == 'nord' && NextWord() == 'est') return 3; return 1; ], description [;Affiche(166); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(166); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} if (self.face==7) {Affiche();} return 2;], face 3 has scenery static female; Object facen "face nord", with name 'face nord' 'face' 'nord' 'plaque' 'laiton', description [;Affiche(167); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(167); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} if (self.face==7) {Affiche();} return 2;], face 3 has scenery static female; Object faceno "face nord ouest", with parse_name [; if (NextWord() ~= 'face' or 'ouest') return 0; if (NextWord() == 'nord' && NextWord() == 'ouest') return 3; return 1; ], description [;Affiche(168); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(168); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} return 2;], face 3 has scenery static female; Object faceo "face ouest", with name 'face ouest' 'face' 'ouest' 'plaque' 'laiton', description [;Affiche(169); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(169); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} return 2;], face 3 has scenery static female; Object faceso "face sud ouest", with parse_name [; if (NextWord() ~= 'face' or 'ouest') return 0; if (NextWord() == 'sud' && NextWord() == 'ouest') return 3; return 1; ], description [;Affiche(170); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} "^Curieux motif...Apparemment la plaque de laiton est amovible, je n'ai qu'à tourner la face pour obtenir un autre motif. ^";], before [;Turn : print "^La plaque de laiton, malgré les siècles, tourne avec fluidité. ^"; self.face++;if (self.face==4) {self.face=0;} Affiche(170); if (self.face==0) {Affiche(171);} if (self.face==1) {Affiche(172);} if (self.face==2) {Affiche(173);} if (self.face==3) {Affiche(174);} return 2;], face 3 has scenery static female; !------------------------------------------------------------------------------- ! Objets Manipulables !------------------------------------------------------------------------------- Object billets "liasse de billets" with name 'liasse de billets' 'liasse' 'billets' 'dollars' '15000 dollars' 'argent', description "^Afin de pouvoir accomplir son plan, Aristo m'a laissé une importante somme d'argent en dollars - j'espère que ce sont des vrais !^^Il y en a environ pour 15 000 dollars. ^ ", has female scenery; Object portehall "porte" hall with name 'huis' 'entree' 'porte', description "^Une porte en bois. Anormalement normale en ces lieux étranges. ^ ", before [;Open : if (self.ouverte==0) {print "^^Je grommelle : ^~Tout ceci est absurde. ~^^Et je saisis la poignée de la porte.^^";Attend();print "Elle s'ouvre sur un mur blanc.^^Un rire énorme surgit d'un haut parleur invisible au regard : ~Ha ha ha ! Professeur Fontenelle, que pensez vous de mon Hall Magritte ?~^^";Attend();print "J'hurle : ^^~Je ";Gras();print "HAIS";Normal();print " Magritte. ";Gras();print "CON DE BELGE !~^^";Normal();print " Et vlan ! Je claque la porte fermée.^^";Attend();print "Galina ajoute : ~Pourtant professeur, finalement, c'était marqué sur le sol : ce n'était pas une porte.~^^Je lui lance un regard mortel. Passons.^";self.ouverte=1;return 2;} else {print "^Non. On s'est suffisamment moqué de moi avec cette porte. ^^";return 2;}], ouverte 0, has static female openable scenery; Object tableaue "tableau" with name 'tableau' 'image' 'peinture', description [;Affiche(103);print "^Hum, hum !^";], initial "^Seul décor dans ce lieu vide, un tableau est collé contre un mur. ^", found_in escher1 escher2 escher3 escher4 escher5, has static; Object tableaue2 "tableau" escher6 with name 'tableau' 'image' 'peinture', description [;Affiche(104);print "^Hum, hum !^";], initial "^Seul décor dans ce lieu vide, un tableau est collé contre un mur. ^", has static; Object armoire "armoire" hall with name 'armoire' 'placard' 'cabinet', description "^Une armoire en bois vernis, un meuble vulgaire de type Ikea. Atrocement pas à sa place. ^ ", before [;Enter : print "^^Nous montons un escalier mal éclairé, où l'on voit d'autant moins que nos yeux étaient habitués à la forte luminosité méditerranéenne de l'extérieur.^";Attend();print "^Après quelques détours, nous suivons un couloir qui nous mène à...^^";Attend();PlayerTo(escher1);return 2;], after [;Open : "^La porte s'ouvre, revelant un escalier ascendant.^";], has static female openable scenery container enterable; Object portevilla "porte" villae with name 'huis' 'entree' 'porte', description "^Une porte classique, c'est à dire respectant les normes européennes de proportion, d'aspect robuste, peinte en noir, et bloquant les intrus au dehors. ^ ", has static female openable lockable locked scenery; Object digicode1 "digicode en haut de la porte" villae with name 'digicode' 'clavier' 'haut' 'digicode en haut de la porte' 'digicode en haut' 'digicode du haut', description [;print "^Ce parano a mis ";Gras();print "TROIS";Normal();print " digicodes sur sa porte d'entrée. Là où une bonne vieille clef aurait suffit. Enfin. Avec la clef, c'aurait été pire, parce que, justement, j'aurais pas eu de clef.^^ Il s'agit d'un petit clavier de douzes touches, de 0 à 9 avec les symboles # et *.^^En haut de ce digicode est inscrit la mention ";Gras();print "~Atropos~";Normal();print "^^(pour taper un code, écrire 'taper (votre code) sur le digicode du haut')^ ";], verrou 0, has static; Object digicode2 "digicode au milieu de la porte" villae with name 'digicode' 'clavier' 'milieu' 'digicode au milieu de la porte' 'digicode en milieu' 'digicode du milieu', description [;print "^Ce parano a mis ";Gras();print "TROIS";Normal();print " digicodes sur sa porte d'entrée. Là où une bonne vieille clef aurait suffit. Enfin. Avec la clef, c'aurait été pire, parce que, justement, j'aurais pas eu de clef.^^ Il s'agit d'un petit clavier de douzes touches, de 0 à 9 avec les symboles # et *.^^En haut de ce digicode est inscrit la mention ";Gras();print "~Lachesis~";Normal();print "^^(pour taper un code, écrire 'taper (votre code) sur le digicode du milieu')^ ";], verrou 0, has static; Object digicode3 "digicode en bas de la porte" villae with name 'digicode' 'clavier' 'bas' 'digicode en bas de la porte' 'digicode en bas' 'digicode du milieu', description [;print "^Ce parano a mis ";Gras();print "TROIS";Normal();print " digicodes sur sa porte d'entrée. Là où une bonne vieille clef aurait suffit. Enfin. Avec la clef, c'aurait été pire, parce que, justement, j'aurais pas eu de clef.^^ Il s'agit d'un petit clavier de douzes touches, de 0 à 9 avec les symboles # et *.^^En haut de ce digicode est inscrit la mention ";Gras();print "~Clothos~";Normal();print "^^ (pour taper un code, écrire 'taper (votre code) sur le digicode du milieu')^";], verrou 0, has static; Object herse "grille" entrance2 with name 'grille' 'herse' 'porte' 'bronze' 'portail', description "^Une grille métallique aux barreaux épais bloque l'entrée dans la villa.^^Au delà, je devine un grand jardin où serpente un sentier de gravier.^^Près de la grille, encastrée dans le mur de pierre, je remarque une pierre saillante, comme descellée. ^ ", has static female openable lockable locked scenery; Object pierre "pierre descellée" entrance2 with name 'pierre' 'descellée' 'mur', description "^Dans le mur de pierre qui entoure la herse de bronze, une petite pierre carrée dépasse... on dirait qu'on peut la bouger.^ ", before [;Push,Pull,Open : if (interphone in entrance2) {print "^Plus besoin de toucher à cela. ^";return 2;} else {print "^La pierre est en fait un petit panneau coulissant révèlant le bouton d'un interphone. ^^Galina s'exclame : ^^~Ca alors ! C'est que vous êtes doué, vous !~^^";galina.stop=1; move interphone to entrance2;return 2;}], has static female scenery; Object interphone "interphone" with name 'interphone' 'micro' 'bouton', description "^Un petit interphone, une plaque de métal gris composé d'un bouton et d'un micro / haut parleur.^ ", life [w; Tell,Ask,Answer : if (interphone.parle==1) { wn=consult_from; w=NextWord(); switch(w) { 'catarina', 'caterina' ,'catherine' : print "^Je me résigne et réponds à la personne derrière l'interphone :^^"; Attend(); print "~Elle s'appelait Catarina. ~^^"; Attend(); print "Un silence suit ma réponse, puis :^^"; Attend(); print "~Excellent. Un coup de chance, vous pensez ?~^^"; Attend(); print "~Elle s'appelait Catarina, on prétend que c'est une esclave orientale ramenée par le père de Léonard. Maintenant ouvrez cette maudite porte ou croyez moi que je mets le feu à votre jardin, votre maison jusqu'à ce que vous sortiez d'ici comme un rat.~^^"; Attend(); print "~Voilà qui est plus digne de Gilbert le Dragon. Vous êtes le bienvenu, Professeur, et votre dû vous attend. Entrez donc, Ha ha ha !~^"; Attend(); print "^Galina s'exclame :^^"; Attend(); print "~Mais pourquoi rit-il, ce n'est pas vraiment drôle. ~^"; Attend(); print "^Un déclic se fait entendre dans la herse. ^";Joue(179);Attend();interphone.parle=2; give herse ~locked;galina.stop=1;return 2; default : print "^~Vous ne répondez pas correctement à ma question, monsieur. Je commence à croire que vous n'êtes pas celui que vous prétendez être...~^^(Galina me regarde bizzaremment)^^"; galina.stop=1;return 2; } } ], before [; Push, SwitchOn : if (interphone.parle==2) {print "^Aucune réponse, et tant mieux. La prochaine fois que je veux lui parler, c'est face à face !^";return 2;} if (interphone.parle==1) {print "^(Si je veux lui répondre, je dois dire 'Répondre (ma réponse)')^^";} if (interphone.parle==0) {print "^^J'appuie sur l'interrupteur, et quelques secondes plus tard, des mots secs sortent de l'interrupteur - des mots slaves, mais je réponds : "; Attend(); print "^^~Vous devez parler français...puisqu'apparemment, vous savez également l'écrire : je suis ";Gras();print "Gilbert Fontenelle,";Normal();print" celui dont vous avez usurpé le nom !~^^"; Attend(); print "J'entends un rire contenu, et aussi une réponse dans un excellent français, la voix d'un vieil homme :^^"; Attend(); print "~Peut être que vous l'êtes...";Italique();print "mais peut être pas ?";Normal();print " Il est dit que Gilbert Fontenelle ne sort jamais de sa tanière, alors, peut être que je suis plus convaincant que vous dans ce rôle. ~"; Attend(); print "^^Je ris aussi, mais mon rire est nerveux, plein d'amertume...~Je n'y crois pas...faire tous ces kilomètres pour m'entendre dire cela, ha ha ha. ";Gras();print "OUVREZ CETTE PORTE !~^^";Normal(); Attend(); print "~Si vous êtes bien Gilbert, vous pouvez répondre facilement à une question triviale...voyons...voilà : quel était le prénom de la mère de Leonard de Vinci ?~ ^^"; Attend(); print "~Des questions, des énigmes...et puis quoi après, un labyrinthe ? Nom de Zeus, j'ai vraiment l'impression que ma vie n'est qu'une succession d'énigmes depuis que j'ai mis les pieds dans une certaine étude du Vatican !~^^"; Attend(); print "~Nous sommes tous dans les labyrinthes dont les murs sont nos mensonges, Gilbert. Mais vous éludez brillament la question - ";Italique();print "à moins que vous ne sachiez y répondre ?~^^";Normal(); Attend(); print "Je prends les barreaux de la herse et les secoue violemment pour montrer ma colère, mais rien ne bouge.^";Attend();galina.stop=1; interphone.parle=1;return 2;} ], parle 0, has static animate; Object lachesis "statue" jardin15 with name 'statue' 'lachesis' 'inscription' 'ecriture' 'brisée' 'ancienne', description [;Affiche(97);print "^Une statue se dresse face à la mer.^^";Attend();print "Type hellenistique tardif, mais ce n'est pas mon domaine d'expertise.^^";Attend();print "Une curieuse inscription est gravée : ~";Gras();print "Lachesis,";Normal();print " me dit Galina. C'est du grec, mais ca ne veut rien dire. ~^";Attend();print "^~Ce n'est pas un nom commun, mais Lachesis, l'une des trois parques, qui décidaient de la destinée des hommes en coupant le fil de leur vie. ~";Attend();print "^^~Avez vous remarqué la lettre Khi dans le mot ? On dirait qu'ils ont mis un X latin à la place, c'est très étrange. ~^^";Attend();print " ~Hélas, ma grande expérience des trésors antiques me fait dire que le X ne marque ";Italique();print "jamais";Normal();print " leur emplacement... ^"; galina.stop=1;return 2;], has static female; Object bassin "bassin" jardin2 with name 'bassin' 'eau', description "^Ce sont deux bassins rectangulaires envahis par les nénuphars et dont l'eau opaque est troublée par le passage en surface de placides poissons rouges.^", before [;Search : if (atropos in bassin) {print "^Oh que non, plus jamais !^";} else {Joue(177);print "^Et bien, quand il faut y aller, faut y aller...je retrousse mes manches et fouille les eaux verdâtres du bassin sous le regard sceptique de Galina...une bonne dizaine de fois je sursaute quand un gros poisson passe près de mes mollets, et finalement...je trouve une sorte de statue immergée. ^";Attend();Affiche(154);move atropos to bassin;return 2;}], each_turn [;if (gilbert in bassin) {print "^Et oui, je patauge dans ce bassin dégoûtant. Déchéance de l'histoire de l'art.^^Galina se retient de rire devant ce pourtant triste spectacle.^";galina.stop=1;}], has static scenery container open enterable; Object tholos "tholos" jardin7 with name 'tholos' 'colonnes' 'belvedere' 'temple', description "^Au sommet de la colline, entouré d'un parterre de roses devenues vivaces se dresse un petit belvedere néo classique pretentieux. Laid. De mauvais goût. Passons.^^La vue d'ici aurait pu être sympathique, mais les brousailles se sont dressées tout autour, ne laissant que quelques pans de bleu du ciel et de la méditerrannée.^", has static enterable open female transparent container; Object clothos "statue" tholos with name 'statue' 'clothos' 'inscription' 'ecriture' 'brisée' 'ancienne', description [;Affiche(155);print "^Cerise du mauvais goût sur le gateau du prétentieux, une reproduction attaquée par les intempéries d'une statue grecque se dresse dans la Tholos.^^";Attend();print " Galina déchiffre les caractères grecs :^^";Attend();print "~ C'est écrit en grec ancien ";Gras();print "'Clothos'";Normal();print ", mais pour autant que je sache, cela ne veut rien dire. Un code secret ?~ ^^";Attend();print "~Clothos l'une des Parques, avec Lachesis et Atropos, maîtresses de la destinée des hommes. ~^";Attend();print "^~Et ce chiffre, 968, c'est son numéro de sécurité sociale ?~^";Attend();print "^~Des chiffres arabes, Galina, voyons. ~^";Attend();print "^968...qu'est ce que cela peut signifier ?~^";Attend();print "^~Pas grand chose. Date de la fondation de la Basilique de Poznan peut être ?~^";Attend();print "^~Oua, mais vous êtes une encyclopédie sur pattes !~^";Attend();print "^ ~C'est la base, pourtant, Galina. ";Italique ();print "La base. ~^";Attend();Normal(); galina.stop=1;return 2;], has static female; Object atropos "statue" with name 'statue' 'atropos' 'inscription' 'ecriture' 'brisée' 'ancienne', description [;Affiche(154);print "^Sous l'eau tranquille du bassin une statue antique - enfin, disons, ancienne - se laisse carresser les flancs par les poissons. Galina se penche et lit à haute voix :^";Attend();print "^~ C'est écrit en grec ancien '";Gras();print "Atropos";Normal();print "', cela ne veut rien dire...peut être une version tronquée de ";Italique();print "'Anthropos'";Normal();print ", l'homme ?~^";Attend();print "^~Vous n'y êtes pas, Galina. C'est Atropos, l'une des Parques maîtresses de la destinée des hommes. ~^";Attend();print "^~Et ce chiffre, 1805, cela vous dit quelque chose ?~^";Attend();print "^~Ma foi, c'est l'année durant laquelle David a peint le Sacre de Napoléon, sinon...la bataille d'Austerlitz ?~^";Attend();print "^C'est incroyable, vous les français, vous ramenez tout à la France !~^";Attend();print "^~Hé, ce n'est pas de ma faute s'il ne s'est rien passé d'autre dans le monde cette année là !~^";Attend(); galina.stop=1;return 2;], has static female; Object bigstatue "Pharaon assis" salleegypte with name 'pharaon' 'statue' 'egyptienne', description "^Et bien c'est une statue classique de...de...d'un Pharaon qui...bon, de toute façon, qui en a à faire de l'Egypte ?^^Chacun sait que l'Art a pris sa naissance à Florence, au Quattrocento !^^Bon, il y a quelques légendes sur la Grèce antique mais, essentiellement, de quoi nourrir les génies de la Renaissance. ^ ", before [;Push : if (sinistre3.fume==0) {print "^Pourquoi pas, mais cela fera grand fracas, sans causer de dégats. Et les deux sphinx italiens vont me tomber dessus aussi sec. ^";return 2;} else {ToMonteNegro();return 2;}], has static; Object statues "statues" with name 'statues' 'statue' 'sculpture' 'sculptures', description "^Les inoubliables joyaux de Michel Ange le Génie immortel. ^ ", before [;Take : print "^~Volontiers, mais malheureusement c'est un crime, c'est assez lourd, et, plus grave, c'est une grave faute déontologique. ~^";return 2;], found_in salleesclave, has pluralname scenery female static; Object esclave "Esclave mourant" salleesclave with name 'statue' 'esclave' 'mourant', description [;Affiche(74);"^Le corps de le plus sensuel de toute la renaissance - et, s'il le fallait, la preuve d'une certaine orientation sexuelle ambigüe de la part du Maître. ^ ";], before [;Take : print "^~Insoulevable ! ~^";return 2; Push : if (self.poussed==0) { print "^Bonne idée.^^Je m'approche à pas de loup de la statue, et malgré un regard d'horreur de Maurice, et vraiment à contre-coeur, je tente de pousser la statue de l'esclave sur le gardien. Mais tout seul, je n'y arrive vraiment pas.^ ";self.poussed++;return 2;} else if (self.poussed==1) {print "^J'aimerais bien, mais je ne pourrais pas la pousser seul. ^";return 2;} Attack : if (self.cassed==0) { print "^Je donne un petit coup sur le support avec le mange de ma pipe et j'en extrait un petit fragment de marbre. ^";self.cassed++;move fragment to gilbert; return 2;} else {print "^Bon, on va arrêter là le vandalisme, non ?^";return 2;} ], article "l'", poussed 0, cassed 0, has static; Object esclave2 "Esclave mourant (brisé)" with name 'statue' 'esclave' 'mourant', description [;print "^Le corps de le plus sensuel de toute la renaissance - et, s'il le fallait, la preuve d'une certaine orientation sexuelle ambigue de la part du Maître, gît maintenant brisé sur le sol. Heureusement que c'était une copie !^ ";], article "l'", has static; Object fragment "fragment de marbre" with name 'fragment' 'marbre', description "^Cela pourrait faire un super collector, un fragment de marbre de l'Esclave Mourant, mais malheureusement, la transparence n'est que sur 4 millimètres, ce qui prouve qu'il s'agit bien là d'une excellente copie, mais d'un mauvais matériau. ^ ", vu 0; Object divan "divan bleu" saloncarre with name 'divan' 'canape' 'fauteuil' 'bleu', description "^D'agréables divans bleus font face aux chefs d'oeuvre de la Renaissance. ^ ", has static enterable supporter; Object statuette "statuette brisée" saloncarre with name 'statuette' 'brisée' 'statue' 'faune' 'quattrocento', description "^Une reproduction d'un faune du quattrocento, en marbre. Maintenant brisée sur le sol, et pour cause : Maurice s'en est servi pour assomer mon agresseur. ^ ", before [;Take : print "^~Je vais la laisser là pour l'instant. ~^";return 2;], has female; Object corps2 "malandrin inanimé" saloncarre with name "malandrin" "trafiquant" "italien" "homme" "sombre" "personnage" "inanimé" "assomé" "assommé", description [;print "^Voilà mon tortionnaire sadique dans les bras de Morphée.^";], before [;Search : if (self.cig==0) {print "^Ah ah, un paquet de cigarettes. ^";move cigarettes to gilbert; self.cig=1;return 2;} else {print "^Je ne trouve plus rien sur lui. ^";return 2;}], life [; Answer,Ask,Tell: "^Il est bien assommé, Maurice a fait du bon boulot. Il décrochera pas un mot.^"; Attack : "^Gilbert Fontenelle ne s'acharne pas sur les hommes à terre. Bon, je donne un petit coup de pied quand même, histoire de me venger de ce qu'il m'a fait tout à l'heure. ^"; Kiss: "^Sans façon, merci. ^ "; Show, Give: "^Il est complétement stone, ca ne lui fera rien. ^"; Wake : "^Il est beaucoup plus agréable ainsi. ^"; ], cig 0, has animate; Object sinistre2 "autre malandrin inanimé" with name "malandrin" "trafiquant" "italien" "homme" "sombre" "personnage" "inanimé" "assomé" "assommé", description [;print "^Voilà mon tortionnaire sadique dans les bras de Morphée.^^";], life [; Answer,Ask,Tell: "^Il est inanimé. Il décrochera pas un mot.^"; Attack : "^Gilbert Fontenelle ne s'acharne pas sur les hommes à terre. Bon, je donne un petit coup de pied quand même, histoire de me venger de ce qu'il m'a fait tout à l'heure. ^"; Kiss: "^Sans façon, merci. ^ "; Show, Give: "^Il est complétement stone, ca ne lui fera rien. ^"; Wake : "^Il est beaucoup plus agréable ainsi. ^"; ], has animate; Object cigarettes "paquet de cigarettes" with name 'paquet' 'cigarettes' 'cigarette', description [;Affiche(122);print "^Des malboros light - autrement dit, quelque chose réservé aux gens qui n'aiment pas le tabac, et certainement pas pour moi !^ ";], before [;SwitchOn,Burn : print "^~Certainement pas ! ~^";return 2; Drop : if (location==salleegypte) {print "^Je fais glisser le paquet juste sous la statue alors que Brock me regarde intrigué.^";Attend();print "^Au bout d'une petite minute, un des gardes le repère et pousse du coude son comparse :^^~Hé, je crois que c'est notre jour de chance ! ~^^";Attend();print "Ils s'approchent de la statue, et s'en grillent une tranquilles.^";Attend();sinistre3.fume=1;remove self;return 2;}]; Object gardes "deux hommes dans la Grande Galerie" saloncarre with name "hommes" "costume" "homme" "deux" "gardes" "italiens" "garde" "italien", description [;print "^Ces deux types ne me disent rien qui vaille. En fait, ils m'ont l'air de la même veine que ceux qui, justement, on essayé de m'en mettre plein les veines. Mais où sont les gardiens ?^^";], life "^Oui, pour recevoir un coup sur la tête, du genre qui fait mal, certainement pas.^", has animate scenery; Object tableaux "tableaux" with name 'tableaux' 'italiens' 'botticelli' 'caravage' 'fra angelico' 'tableau' 'perugin' 'uccello', description "^Les tableaux des maîtres italiens de la Renaissance, joyaux éternels dans leur écrin majestueux. ^ ", before [;Take : print "^~Volontiers, mais malheureusement c'est un crime, et, plus grave, une faute déontologique. ~^";return 2;], found_in saloncarre, has pluralname scenery; Object flaque "flaque" crypte with name 'flaque' 'liquide' 'sombre' 'eau' 'noir' 'noire' 'pétrole' 'essence' 'inflammable', description "^Une flaque d'un liquide sombre et odorant s'écoule le long de la crypte.^ ", before [;Smell : print "^Cela sent l'essence, ou le pétrole...^";return 2; Drink, Taste : print "^Pouah ! Cela va me rendre malade !^";return 2; ], has static female supporter; Object brasero "brasero" plage with name 'brasero' 'feu' 'braise' 'foyer' 'flamme' 'bronze' 'trepied', description [;Affiche(136);"^Au pied des marches menant dans l'ouverture d'un temple taillé dans la pierre brûlent les braises silencieuses d'un brasero qu'excite un vent doux.^ ";], has static supporter; Object styx "fleuve styx" acheron with name 'fleuve' 'styx' 'achéron' 'acheron' 'riviere' 'eau' 'lave', description "^Le Styx, le fleuve des morts, qui sépare la rive des damnés des Champs du repos éternel.^ ", has static scenery; Object rive "rive" acheron with name 'rive' 'berge' 'plage' 'coté', description "^Une rive de graviers gris où se pressent les morts oubliés et s'écrasent les vagues brûlantes du fleuve maudit.^ ", has static scenery female; Object morts "morts" acheron with name 'morts' 'damnés' 'damnes' 'fantomes' 'fantômes' 'fantome' 'fantôme' 'âme' 'ame', description "^Ces morts n'ont pas eu la chance d'avoir le ticket privilégié sur notre barque.^ ", has static scenery pluralname; Object barquec "barque de Charon" acheron with name 'barque' 'styx' 'achéron' 'acheron' 'riviere' 'eau' 'lave', description "^Le Styx, le fleuve des morts, qui sépare la rive des damnés des Champs du repos éternel.^ ", has static scenery ; Object toge "toge" acheron with name 'toge' 'drap' 'linceuil', description [; print "^La toge, une courtepointe de tissu utilisé comme vêtement par Virgile d'une couleur unie.^ "; if (self.tremped==1) {print "La toge est imprégnée d'une substance semblable à du pétrole, très odorante.^^";} if (self.tremped==2) {print "La toge est roulée en boule, imprégnée de pétrole et brûle d'une flamme fascinante.^^";}], before [; PutOn,Insert : if (second==flaque) {print "^Je roule la toge en boule, et la trempe dans la flaque de pétrole.^"; give toge ~worn;give toge ~clothing;toge.tremped=1;return 2;} if (second==brasero) { if (toge.tremped==0) {print "^Je mets un bout de la toge sur les braises ardentes...mais le tissu rêche de la toge se consume sans provoquer de flamme.^";return 2;} if (toge.tremped==1) {print "^La toge imprégnée de pétrole s'enflamme rapidement, et brûle en projetant de fascinantes flammes vertes et bleues. ^";toge.tremped=2;return 2;} } Take : if (virgile in acheron) {print "^Virgile est dedans, et à mon avis, il ne va certainement pas me la préter - il a certainement l'intention lui aussi de parvenir de l'autre coté !^";return 2;} else {print "^Ok. ^";return 2;} ThrowAt : if (second==stgeorge && self.tremped==2) { print "^Je jette la toge enflammée sur la toile de Saint George et celui-ci se tortille dans des hurlements alors que les flammes le consument sans merci. En quelques minutes, toile de tableau et toile de toge tombent dans la flaque noirâtre en filaments consumés sans en communiquer les flammes. ^";Affiche(66); stgeorge.parled++;remove stgeorge;remove self;return 2;} ], tremped 0, each_turn [;if (self.tremped==2) {print "^La toge projete des ombres mouvantes depuis sa flamme colorée. ^";}], has clothing female scenery; Object ecu "ecu" acheron with name 'ecu' 'piece' 'écu' 'pièce' 'obole' 'ducat', description [;Affiche(60);print "^Un ducat italien en or.^ ";], before [;Take : if (dante in acheron) { if (dante.piece>1 && dante.piece<4) {print "^Impossible, la pièce est en l'air. ^";return 2;} else { print "^La pièce est dans la main de Dante, et au regard qu'il me lance, il n'a pas l'intention de la céder !^";return 2;}} else {print "^Ok.^";move ecu to gilbert;return 2;}], has scenery; Object rame "rame" acheron with name 'rame' 'bois', description "^La rame de Charon, le passeur. ^ ", has female concealed; Object epee "épée du Prince" with name 'épée' 'epée' 'epee' 'epee du prince' 'arme', description [;Affiche(120);print "^Une épée à lame droite dont la garde est frappée des armes des Médicis.^ ";], before [;Take : print "^Je saisis l'Epée de Laurent et la maintient fermement, lançant un regard menaçant sur le conjuré.^";move epee to gilbert;if (savonarole.plot==4) {savonarole.plot++;} return 2;], article "l'", has female; Object dague1 "dague du conjuré" with name 'dague' 'arme' 'dague du conjuré', description [;Affiche(121);print "^L'arme de l'assassin.^ ";], before [;Take : print "^^Dangereux !^^";return 2;], article "la", has female; Object sceau "sceau" with name 'sceau' 'bague', description [;Affiche(119);print "^Une bague en or montée d'une pierre rouge sculptée à l'apparence de cire solidifiée. Elle est gravée au monogramme des Médicis.^ ";], before [;Disrobe : print "Non, je souhaite la garder avec moi pour une raison que je ne peux expliquer.^";return 2;], has clothing; Object pandoradream "boite métallique" with name 'boite' 'métallique' 'métal' 'coffre' 'Cassone', description [;Affiche(118);self.vu++;if (self.vu==4) {self.vu=0;} print "^Une étrange boite de métal aux motifs anciens. Une frise (grecque ?) en fait le tour, mais, à vrai dire, j'ai l'impression que les motifs bougent. Le couvercle est gravé d'un visage de femme qui semble se moquer de moi. Sous le loquet qui la maintient fermée, je vois écrit en français : ^^"; if (self.vu==0) {print "~Qu'est ce qui peut arrêter le mal à tout jamais ?~";} if (self.vu==1) {print "~Quel est l'origine de tout le mal du monde ?~";} if (self.vu==2) {print "~Quelle est la clef de notre avenir ?~";} if (self.vu==3) {print "~Quel est le seul espoir qui nous reste ?~";} print "^^Mais ! J'ai l'impression que cette inscription vient de changer !^^"; ], before [;Open : print "^J'ai la ferme conviction que je dois maintenir cette boite fermée pour l'instant, malgré une grande curiosité qui m'habite.^";return 2;], vu 0, has female openable ~open; Object pascenseur "grand ascenseur" biblio2 with name 'ascenseur' 'porte' 'protégé' 'blindé', description [;Affiche(46); print "^Ah, le voilà. Cet ascenseur mène au sous-sol protégé, deux étages plus bas, où sont conservés les livres les plus précieux - et notamment l'Ekphrasis que je recherche ! ^^Je remarque le bouton d'appel de l'ascenseur, bien en évidence, d'un noir luisant qui augure plus les ténébres du secret que la lumière de la connaissance.^";], has enterable static container; Object bascenseur "bouton d'appel de l'ascenseur" biblio2 with name 'ascenseur' 'bouton' 'appel' 'digicode', description [;Affiche(46);print "^Un bouton, carré, noir. Presque Malevitchien. Une entité mécanique kubrickienne qui se gausse de mes pauvres gesticulations. L'oeil du Cyclope Gardien du Naos de la connaissance. ^";], before [;Push : Joue(217);if (piledelivre.tombed==1) {Chambre();StopDaemon(alarme);StopDaemon(vigile);return 2;} else {Affiche(39);print "^Le gardien m'arrête alors que je tends la main vers le bouton :^^~Désolé monsieur, l'accès est réservé pour cette section de la bibliothèque. ~^^Grmbl.^";return 2;}], has static scenery; Object vitrine "vitrine" biblio1 with name 'vitrine' 'table' 'vitre' 'fenetre', description [;print "^Une petite vitrine de cerclée de bois flanque une colonne au pied de l'escalier.^^Au travers, je n'y vois que des ouvrages ordinaires, des traités de poesie qui se négocieraient moins de cent euros rue de Rivoli ";Italique();print "(dans l'hypothése où il s'agisse d'authentiques, ce dont je doute),";Normal();print " mais pourtant une étiquette démesurée indique :^^";Gras();print "~ATTENTION NE PAS TOUCHER~. ^";Normal();], before [;Touch, Push, Pull, Open : if (alarme.compteur==0) {self.touched=1;Startdaemon(alarme);print "^A peine ai je frôlé la vitrine qu'une alarme retentit !^^";Attend();print "Je bondis en arrière, espérant que personne ne m'ait vu !^^";return 2;} else {print "^^Euh, je vais pas trop toucher à cela pour le moment...^^";return 2;}], touched 0, has transparent static container openable locked female; Object ouvrages "ouvrages ordinaires" vitrine with name 'ouvrage' 'ordinaire' 'livres' 'ouvrages', description "Une dizaine d'incunables d'interêt médiocre trône dans cet écrin prétentieux. ^", has pluralname; Object livres2 "livres" biblio2 with name 'ouvrage' 'ordinaire' 'livres' 'ouvrages', description "^Des milliers de livres...des centaines de milliers de livres. Mais je n'en cherche qu'un et il ne se trouve pas là. ^", has pluralname scenery; Object alarme "alarme" with name 'alarme', description "Une alarme, très efficace. Hé hé. ", daemon [; if (vitrine.touched==1) {print "^Une alarme stridente retentit, au grand désagrément de tous. ^";} switch(alarme.compteur) { 0 : alarme.compteur++; 1 : if (location==biblio2) {print "^^La responsable de l'étage se lève et dit :^"; Affiche(40); Attend();print "^~Ah non, pas encore ! Cette alarme est décidement trop sensible !~^ ^Et elle descend à l'étage en dessous. ";} move responsable to biblio1;alarme.compteur++; 2 : if (location==biblio1) {print "^^La responsable de l'étage arrive et fulmine :^"; Affiche(40); Attend();print "^~Qui a encore touché à cette vitrine ? Bon, comment on désactive l'alarme, déjà ?~^^(elle trifouille les capteurs près de la vitrine).^";} alarme.compteur++; 3 : if (location==biblio1) {print "^^La responsable s'exclame :^";Affiche(40); Attend();print "^~Ah, c'est fatiguant, ce bruit ! Il faudra vraiment prévenir la maintenance !~^^(elle trifouille les capteurs près de la vitrine).^";} alarme.compteur++;vitrine.touched=0; 4 : print "^^L'alarme s'arrête enfin ! ";if (location==biblio1) {print "La bibliothècaire vérifie une dernière fois que tout est en ordre.^";} alarme.compteur++; 5 : if (location==biblio1) {print "^^La bibliothècaire remonte les escaliers. ^";} alarme.compteur++; 6 : move responsable to biblio2;if (location==biblio2) {print "^^La bibliothécaire reprend sa place derrière le bureau. ^";} alarme.compteur=0;Stopdaemon(alarme); } ], found_in biblio1 biblio2, compteur 0, has scenery; Object desk3 "bureau" biblio2 with name 'bureau' 'table' 'travail' 'reception', description "Un grand bureau en demi-cercle se tient entre les deux ouvertures menant au rez de chaussée. Ce bureau est le repaire de la responsable de l'étage qui vise les livres empruntés et rendus. ^", has static supporter enterable open; Object piledelivre "pile imposante de livres" desk3 with name 'pile' 'livres' 'ouvrages' 'imposante', description [; if (self.tombed==0) {print "^Sur le bureau, le vigile entasse les livres dans une pile d'une rectitude maniaque. Toutefois, cet ouvrage ne me paraît pas bien solide, et à vrai dire, oscille dangereusement à chaque fois qu'un livre s'y ajoute. ^";} else {print "^Les livres sont maintenant en tas sur le sol, et je n'en suis pas trés fier. ^";}], before [;Push : if (self.tombed==0) {if (vigile.distracted==0) {Affiche(39);print "^Hé hé. Je m'avance pour pousser la pile oscillante de livres, la confrontant avec son fatal destin, mais le vigile m'interrompt immédiatement :^^~Holà, monsieur. Faites attention, vous avez failli faire tomber les livres !~";Attend();print "^^Je ne lui avoue pas que c'était belle et bien mon intention.^";return 2;} else {print "^Profitant de la distraction du gardien de service, hop, je pousse la pile de livres, et patatras ! Ils s'étalent tous le sol, dans un gros tas informe au pied du bureau. ";piledelivre.tombed=1;return 2;}} else {print "^Les livres sont déjà étalés par terre !^";return 2;} ], tombed 0, has female; Object tel4 "petit téléphone de bibliothèque" desk3 with name 'petit' 'téléphone' 'bibliothèque' 'telephone' 'bibliotheque', description [;Affiche(44);print "^Sur le bureau de la responsable de l'étage, un petit téléphone en ce lieu de silence. Une petite étiquette montre : ^^";Gras();print "01 44 41 97 97^";Normal();], has static; Object desk2 "bureau" bureauf with name 'bureau' 'table' 'travail', description "C'est sur ce bureau que d'habitude je travaille : une belle table de noyer tapissée de cuir vert. Ce bureau appartenaît à mon grand-père, un Archéologue. Ses longs voyages ne lui ont pas donné trop d'occasions de l'utiliser, et j'ai repris le flambeau. ^", has static supporter enterable open; Object portable "téléphone portable" desk2 with name 'téléphone' 'portable' 'mobile' 'telephone' 'telephone portable', description [;Affiche(33); print "^Voilà une généreuse donation de l'université à Gilbert Fontenelle. Un téléphone portable flambant neuf - mais voilà j'ai horreur de ces appareils.^^(pour utiliser le téléphone portable, utilisez le verbe ~composer~)^^";], ! each_turn [;if (self.vie<20 && self.vie>0) {print "^Mon téléphone !portable émet un petit *bip* faible pour indiquer qu'il a !faim.^";self.vie--;}], vie 20; Object chargeur "chargeur de téléphone portable" desk2 with name 'chargeur', description [;Affiche(33); print "^Un chargeur de portable. Yay, comme dirait l'autre. ^";]; Object desordre "divers objets disséminés dans le bureau" bureauf with name 'thèse' 'these' 'papiers' 'meubles' 'ouvrage' 'livre', description "^Une pléthore de papiers représentant une vie de travail consacrée à L'Histoire de L'Art. Beaucoup de labeur, un peu de réflexion. Quelques victoires. Quelques regrets. ^", has scenery static pluralname; Object lettret "lettre de Tangente, l'Aventure Mathématique" desk2 with name 'courrier' 'lettre' 'tangente', description [;Affiche(32); print "^Tiens donc, un courrier de Tangente Magazine. ^^Je constate que bien évidemment, je viens après Duby et Brock ! Ah, il peut toujours courir pour son interview celui là ! ^";], tel 0 has female; Object faxl "fax signé Fontenelle" desk2 with name 'fax' 'signé' 'fontenelle' 'signe' 'douteux', description [;Affiche(34); print "^Un fax que j'aurais envoyé ? C'est un faux évidemment ! Comme si je savais utiliser un fax !^"; if (self.lu==0) {FaxF();self.lu=1;}], lu 0; Object bouquin "livre" with name 'livre' 'ouvrage' 'jeux' 'enjeux' 'iconographie' 'fra' 'angelico' 'couverture' 'bouquin' 'plon' 'feuilles', description "^~Jeux et Enjeux de L'Iconographie chez Fra Angelico, une autre approche du mystique.~^310 pages, édité chez Plon.^^C'est un de mes essais, assez moyen il faut le dire, mais nécessaire car personne jusqu'à présent n'avait tenté cette approche.^^C'est, disons, une petite marche dans le grand escalier que je suis en train de construire.^^Le livre est de présentation sobre, écrit d'une petite police de caractères.^", before [;Take : print "^~Hum, je veux bien le signer. Vous avez un stylo ? ~^^~Euh, bien sûr. ~^^"; Attend(); print "Charles Edouard met mon livre sous son bras et ouvre son grand sac. Farfouille, tandis que le temps me paraît interminable. Et puis patatras, il échappe son sac et tout son contenu se répand sur le sol !^^"; Attend(); print "^~Euh, deux petites minutes. ~^^ Charles Edouard se met à quatre pattes et rassemble ses affaires.^^";remove bouquin;move sac to universite;move cahierbleu to universite;move cahiervert to universite;move magazine to universite;move walkman to universite;move portefeuille2 to universite;move clefs2 to universite;return 2;], has scenery; Object sac "sac" with name 'sac' 'cartable' 'malette' 'sacoche', description "^La sacoche de Charles Edouard, le must en terme de sac postaux en toile de jute. ^", before [;Take : print "Impossible, Charles Edouard le tient bien en main.^";return 2; ], has container scenery; Object cahierbleu "cahier d'histoire de l'art - époque moderne" with name 'cahier' 'bleu' 'clairefontaine' 'histoire' 'art' 'moderne', description "^Le fameux cahier d'histoire de l'art de Charles Edouard, où sont recopiées mes saintes paroles. Un cahier clairefontaine format A5, plutôt défraichi en fait. ^", before [;Drop : print "^Je ne vais pas éparpiller partout les affaires de Charles Edouard. ^";return 2;]; Object cahiervert "cahier d'histoire de l'art contemporain" with name 'cahier' 'vert' 'clairefontaine' 'histoire' 'art' 'contemporain', description "^Je déteste l'art contemporain. Non, c'est inexact. Disons, il ne touche pas ma sensibilité. ^", before [;Drop : print "^Je ne vais pas éparpiller partout les affaires de Charles Edouard. ^";return 2;]; Object magazine "Magazine" with name 'magazine' 'beaux' 'arts', description "^Un beaux arts magazines consacré à la Renaissance. Je suppose qu'il y a un article sur Maurice Brock dedans, pour changer. ^", before [;Drop : print "^Je ne vais pas éparpiller partout les affaires de Charles Edouard. ^";return 2;]; Object walkman "walkman" with name 'walkman' 'radiocassette' 'baladeur', description "^Tiens, Charles Edouard écoute de la musique. Baroque, j'espère. ^", before [;Listen : if (noun==self && self has on) {print "^~Bigre ! De la musique de sauvage !~^";return 2;} Drop : print "^Je ne vais pas éparpiller partout les affaires de Charles Edouard. ^";return 2;], has switchable; Object clefs2 "trousseau de clefs" with name 'trousseau' 'clef' 'clefs', description [;Affiche(117);print "^Les clefs de l'Antre de Charles Edouard, je suppose. ^";], before [;Drop : print "^Je ne vais pas éparpiller partout les affaires de Charles Edouard. ^";return 2;]; Object portefeuille2 "portefeuille de Charles Edouard" with name 'portefeuille' 'charles' 'edouard', description "Un portefeuille de velours gris épais comme un sandwich SNCF. Mon disciple n'a pas l'air de rouler sur l'or. ^", before [;Drop : print "^Je ne vais pas éparpiller partout les affaires de Charles Edouard. ^";return 2;], has openable container; Object sous2 "les quelques sous de Charles Edouard" portefeuille2 with name 'quelques' 'sous' 'pieces' 'monnaie' 'francs', description "^Quelle fortune. Bah, il doit y avoir à tout casser dix francs, pas de quoi se payer un Botticelli, même pas un faux. Même pas un sandwich au Louvre. Même pas un sandwich dans ce quartier, d'ailleurs. ^", has pluralname proper; Object carte "carte de bibliothèque Sainte Genevieve" portefeuille2 with name 'carte' 'bibliothèque' 'sainte' 'genevieve', description [;Affiche(135); print "^Une carte de lecteur de la bibliothèque Sainte Geneviève, au nom de Charles Edouard Lousain. Usée et défraichie, apparemment, son possesseur l'utilise très souvent. ^";], has female; Object tableau "tableau d'affichage" universite with name 'tableau' 'affichage' 'notes' 'papiers' 'mention' 'affiche' 'tract' 'article' 'emploi' 'temps' 'publicite', description [j;Affiche(31); j=random(10);print "^Un tableau d'affichage. Je remarque tout particulierement ";switch(j) { 0 : print "les emplois du temps de l'année à venir. Oh non, ils m'ont mis des cours en soirée. ^"; 1 : print "les emplois du temps de l'année à venir. Oh non, ils m'ont mis des cours en soirée. ^"; 2 : print "un article sur...Maurice Brock. Quand est ce qu'on va parler de moi, enfin ! Moi aussi j'écris des livres ! ^"; 3 : print "un article sur une conférence météorologique ~Comment le climat a initié et influencé la Renaissance Italienne. Bah. Vaut mieux lire cela que d'être aveugle. ^"; 4 : print "la moyenne de ma classe de l'année passée : 6.5 sur 20. Belle promotion, deux points de plus que l'année dernière. Ou est ce que je me ramollis ?^"; 5 : print "un tract syndicaliste à la noix. Qu'est ce que cela fait ici ? ^ "; 6 : print "une publicité pour un roman historique qui me paraît complétement idiot. Désespoir. ^"; 7 : print "une petite mention à coté de mon nom écrite à la main : ~Professeur Dragon~. Je ne comprends pas pourquoi ?^"; 8 : print "une circulaire administrative indiquant que dès la prochaine rentrée toutes les données devront être informatisées. Enfer et Malédiction. Va falloir que je prenne ma retraite. ^"; 9 : print "un publicité pour le festival Rock en Seine fin Août. Le contact est un numéro de téléphone et un prénom : Margot. ^"; 10 : print "le fait qu'il n'y ait aucun article parlant de moi. Déception. ^"; }], has static; Object etiquettes "murs couverts d'etiquettes" boutique with name 'mur' 'murs' 'etiquette' 'etiquettes' 'cadre' 'cadres' 'clou' 'clous' 'étiquette' 'étiquettes', description "^Les murs de la boutique sont percés de clous auquels pendent des cadres et des paquets de tout genre et toute forme.^Sous chaque clou pend une petite étiquette avec un nom correspondant ou une référence...apparemment cela m'a l'air trié par ordre alphabétique.^^(pour une référence en particulier, écrire ~consulter les étiquettes à (nom de votre référence)~^) ", before [w j;Search : print "^Une fouille générale de quelques secondes me décourage vite.^(pour une référence en particulier, écrire ~regarder (nom de votre référence) dans étiquettes~^";return 2; Take : print "^Non, je ne peux pas tout prendre quand même !^";return 2; Consult : if (pazzi.parled==1) {wn=consult_from;w=NextWord();j=random(10);switch(w) { 'apelle': print "^^Pas d'étiquette sur le nom ~apelle~. Et mince.^ ";return 2; 'calomnie': print "^^Pas d'étiquette sur le nom ~calomnie~. Va falloir chercher ailleurs. Voyons voyons, qu'est ce qu'il aurait pu mettre ? ^ ";return 2; 'botticelli' ,'boticelli' : print "^^Pas d'étiquette au nom du grand Alessandro. Peut être à Médicis ?^ ";return 2; 'medicis', 'médicis' : Etiquette1();return 2; 'ekphrasis' : if (etiquettes.fouilled==1) {Etiquette2();return 2;} else {print "^Et pourquoi je mettrais ce nom là ?^";return 2;} default : switch(j) { 0 : print "^Et zut. Pas d'étiquette à ce nom là^. "; 1 : print "^Saperlipopette, rien du tout. ^ "; 2 : print "^Il y a bien un cadre, mais ridicule, de 5 centimètres de longueur. Certainement pas la bonne étiquette. ^"; 3 : print "^Rien. Bien essayé, pourtant. ^"; 4 : print "^Pas d'étiquette correspondant à ce nom. Giuliana s'exclame : ~cette fois j'étais sûre que c'était la bonne. ~^"; 5 : print "^Et mince, rien du tout à ce nom. ^ "; 6 : print "^Ah, je m'embrouille, je n'arrive pas à trouver ce nom. ^"; 7 : print "^Non, après recherche attentive, je ne crois pas qu'il y ait d'étiquettes à ce nom. ^"; 8 : print "^Pas de cadre ou d'étiquette à ce nom. Ca va me rendre dingue. ^"; 9 : print "^Rien de rien, de rien de rien. ^"; 10 : print "^Oh la la. Encore rien. Ca m'énerve. ^"; } return 2;} } else {print "^Hum, avant de toucher à tous ces cadres, je devrais peut être demander la permission à ce Pazzi, non ?^";return 2;} ], fouilled 0, has scenery pluralname; Object walkman2 "radio portative" boutique with name 'radio' 'portative' 'walkman' 'transistor', description "^C'est une petite radio dans la poche de chemise de Pazzi. Le vieil encadreur écoute avec attention le déroulement du match. ^ ", before [; SwitchOff, Take : WakePazzi();return 2; ], has scenery switchable on female; Object atelier "etabli" boutique with name 'atelier' 'établi' 'outil' 'scie' 'outils' 'scies' 'rabot' 'ciseaux' 'madrier' 'ebene' 'bois', description "^Pazzi bosse sur un atelier fait d'un gros madrier d'ébéne, où sont dispersés divers outils : rabots, ciseaux, scies...et toutes sortes d'outils précis dont je ne peux vous donner la dénomination technique exacte. ^ ", before [;Take : print "Sans interêt. ";return 2;], has scenery static; Object portepv "porte de la boutique" pv with name 'porte' 'vitrine' 'devanture', description "^C'est la porte de la boutique de l'encadreur Pazzi. Rien d'extraordinaire si ce n'est qu'elle m'empêche d'entrer - ceci dit c'est bien tout ce qu'on demande à une bonne porte. ^ ", before [;Attack : if (self.frapped==0) {print "^~Bien, on est venu là pour cela, pas vrai ?~^^Je frappe à la porte.^^";Attend();print "Aprés quelques longues secondes de désespoir, nous entendons maugréer dans un italien très accentué : ~Ouais, c'est pourquoi ?~ au travers de la porte.^^"; Attend(); print "~Nous souhaiterions parler avec M.Pazzi, à propos d'une histoire de cadre. ~^^"; Attend();Italique(); print "~De cadre ?~^^"; Attend();Normal(); print "~Oui, vous savez. Les machins en bois autour des tableaux. ~^^"; Attend(); print "Giuliana me tape sur l'épaule, me rappelant que ce n'est pas bien malin de faire des plaisanteries à un interlocuteur aussi rétif, mais franchement, il l'a bien cherché.^^"; Attend(); print "Je rajoute : ~Dans le cadre en question, il y ";Italique();print "avait";Normal();print " un Botticelli.^^Je dis ";Gras();print "~avait~";Normal();print ", car depuis qu'il est passé dans votre échoppe, le cadre a été changé, et on pensait que ca vous dirait quelque chose. Que ça éveillerait un souvenir, vous voyez ce que je veux dire ? ~^^"; Attend(); print "Un long silence se poursuit."; Attend(); print "^^~Je ne comprends rien à votre histoire. Laissez moi tranquille. ~^^Et vous l'entendez verrouiller sa porte de plus belle.^^"; Attend(); print "~Bravo. ~ me lance Giuliana avec amertume.^"; self.frapped=1;return 2;} else {print "^Je frappe, mais aucune réponse. ^";return 2;}], frapped 0, has scenery static openable locked female; Object machine "machine" terrasse with name 'machine' 'moteur' 'treuil' 'corde', description "^Une sorte de machinerie qui permet de tracter des colis suspects au moyen de la corde qu'elle enroule. ^ ", before [;SwitchOn,Take : print "^Oh non, pas pour moi ces engins. Je laisse corde et machine ici.^";return 2;], has female static switchable; Object magasin "boutique" pv with name 'boutique' 'magasin' 'encadreur' 'cadres', description "^Volets fermés, porte close, une simple enseigne qui rappelle qu'on est devant Pazzi. Il serait en vacances ? Pas de bol... ^ ", has scenery static female; Object arno "fleuve arno" dock with name 'fleuve' 'riviere' 'arno' 'eau', description "^Le Fleuve Arno qui coupe Florence en deux.^^Par cette chaude journée d'été, son cours est tranquille et ses eaux opaques. ^ ", before [;Jump, Swim : if (noun==self) {print "^Je songe à la possibilité d'un petit bain qui me rafraichirait. ^ Enfin, bon. Pas tout de suite, hein. Et pas dans cette eau.^^";return 2;}], has scenery static; Object quai2 "quai" dock with name 'quai' 'bois' 'ponton', description "^Un petit quai de bois surplombe de ses pilotis les dalles de pierre moussue qui s'enfoncent dans l'eau. ^ ", has scenery static supporter enterable open; Object bateau "bateau" dock with name 'bateau' 'hors bord', description [; print "^C'est un vieil hors bord qui a connu une guerre, et aussi celle d'avant.^^Sa peinture bleue ciel s'écaille et laisse apparaitre des plaques de rouille ; le plastique mou de ses bouées empeste la vase et ses coins arrondis trainent des morceaux d'algues. Je rêve. C'est le radeau de la Méduse. ^^En lettres capitales, vous pouvez voir son nom : ";Gras();print "~LE PARESSEUX~^ ";Normal();], before [;Enter : if (pecheur in dock) {print "^Je m'approche pour monter dans le bateau, mais l'homme me fait signe de m'en aller. ^";return 2;} Go, Exit : if (self.bouged==1) {print "^Et plonger dans l'Arno ? Pas question ! Je préfère attendre que Giuliana me vienne en aide...^";return 2;}], bouged 0, has static container enterable open; Object moteur "moteur" bateau with name 'moteur' 'hélice' 'machine' 'engin', description "^Un moteur hors bord encastré dans la coque, qui, n'étant pas de toute fraîcheur, me semble relativement bien entretenu. Mais question bateau, je n'y connais pas grand chose...^ ", before [;SwitchOn : if (gilbert in bateau) { if (bateau.bouged==0 && pecheur notin dock) {Italique();print "^Hé hé.";Normal();Attend();print "^^~Giuliana, on largue les amarres !~ lance-je joyeusement en allumant le moteur.^^L'hélice poussive fait bouilloner l'eau.";Attend();print "^^Giuliana semble assez réservée quant à mon équipée fluviale : ~Ce sera sans moi, Professeur. ~";Attend();print "^^J'argumente pour tenter la faire venir avec moi, et puis j'abandonne.";Attend();print "^^Peut-être qu'elle a peur de l'eau.^^";Attend();print "Bon, je pars discretement faire un petit tour en reconnaissance...après tout il ne fallait pas laisser ce bateau sans surveillance...et puis cette histoire de trafic de tableaux me préoccupe. ^^";Attend();print "A peine arrivé sous le Ponte Vecchio, je fais demi-tour, mais l'hélice semble s'accrocher à quelque chose...le moteur cafouille et s'arrête d'un coup. Et mince.^^";Attend();print "Je fais comprendre à Giuliana par gestes que j'ai des soucis, et elle file dans la ville pour me chercher de l'aide.^ ";Joue(177);giuliana.loin=1;remove giuliana;remove panneau;remove radio;bateau.bouged=1;give self ~on;return 2;} else if (bateau.bouged==1) {print "^Malheureusement, il ne veut plus démarrer. J'ai vraiment l'air ridicule. ^";Joue(177);return 2;}} else {print "^Faudrait que je sois dans le bateau, pour cela !^";return 2;}], has static switchable; Object klaxon "klaxon" bateau with name 'klaxon' 'corne' 'brume' 'bouton', description "^Dans le bateau, une corne de brume électrique que l'on actionne en appuyant sur un bouton. Voilà de quoi réveiller tout Florence. ^ ", before [;SwitchOn, Push : if (gilbert in bateau) { if (self.pouet<2) {print "^^J'appuie, non sans un plaisir enfantin, sur le bouton de la corne de brume, et un klaxon retentit.^";if (bateau.bouged==1) {self.pouet++;} if (self.pouet==2) {Attend();print "^Quelques secondes plus tard, j'entends maugréer, juste au dessus de ma tête : ";Gras();print "^^~Deux minutes, deux minutes...";Normal();print "faut que tout le monde se pointe, pile à l'heure du match...~^^";Attend();print "Une corde descend jusqu'au plancher de mon petit bateau et se balance.^";move corde to dock;}return 2;} else {print "^C'est bon, je crois que je ne vais pas alerter tout le monde quand même. ^";return 2;}} else {print "^Faudrait que je sois dans le bateau, pour cela !^";return 2;}], pouet 0, has static; Object corde "corde" with name 'corde' 'ficelle' 'lien' 'cordon', description "^Cette corde plonge depuis une terrasse d'une habitation sur le Ponte Vecchio jusqu'à mon bateau. ^ ", before [;Take : print "^Pas possible de la prendre en entier, elle est attachée quelque part là haut. ^";return 2; Climb : print "^Et bien, hum, je n'ai plus mes vingt ans...^";return 2; Pull : if (self.tired<2) {print "^Je donne une secousse à la corde.^";self.tired++;if (self.tired==2) {print "^Un petit moteur s'actionne là haut !";Attend();print "^^... et la corde commence à grimper !^^";Attend();print "Je m'y agrippe tant bien que mal (j'ai plus l'âge pour ces aventures, moi !) et je me fais tracter tout doucement vers le Ponte Vecchio...^";Attend();PlayerTo(terrasse);Surprise();return 2;}return 2;}], tired 0, has static female; Object radio "vieille radio" dock with name 'vieille' 'radio' 'transistor', description [;Affiche(16);print "^Qui est le plus vieux ? Le bonhomme, le bateau ou la radio ?^^En tout cas, elle est hors d'âge.^^Un petit fil métallique part de celle-ci, court sur une dizaine de métres le long du quai et vient s'entortiller autour d'un panneau de signalisation. ^ ";], each_turn [m;if (self has on) { m = random(10); switch(m) { 1: print "^Un type dans la radio hurle comme si on l'égorgeait. ^"; 2: print "^Je n'ai jamais entendu un commentateur sportif parler aussi vite que le type dans la radio. Je me demande si quelqu'un comprend ? ^"; 3: print "^La radio crachote d'incompréhensible. L'homme tapote sur la radio nerveusement, et le brouillage se réduit. ^"; 4: print "^La radio passe un hymne chanté par les supporters. Personnellement, je trouve ca ignoble. ^"; 5: print "^Le commentateur hurle ~Goal !~ pendant deux ou trois minutes sans reprendre son souffle. Belle performance. ^ "; 6: print "^Je ne croyais pas la chose possible, mais le commentateur sportif dans la radio parle encore plus vite que d'habitude. Tendu, l'homme se crispe à son appareil. ^"; } }], before [;SwitchOff : if (self has on) {print "^Je tends la main pour éteindre la radio, mais l'italien me lance un regard mauvais, genre il va m'arracher les tripes. Alors, euh, et bien, je ne vais pas éteindre la radio tout de suite, ok ?^";return 2;} SwitchOn : if (self hasnt on) {print "^Assez de foot pour aujourd'hui. ^";return 2;} Take : print "^Non, ce n'est pas à moi, et cela n'a aucune valeur. Enfin, de toute façon, ce n'est pas à moi, alors...^";return 2; Listen : if (self has on) {print "J'écoute un match de football en italien... pendant environ 5 secondes avant d'avoir une furieuse envie de m'enfuir loin, loin d'ici. ";return 2;} else {print "J'écoute le silence. Aaah. Le silence.";return 2;}], has female switchable on; Object panneau "panneau" dock with name 'panneau' 'pancarte' 'metal', description [;Affiche(17);Gras();print "^~BALADES EN BATEAU SUR L'ARNO~";Normal();print "^^(les prix ne sont pas indiqués - je suppose qu'il va falloir marchander)^";], has static; Object fil "fil métallique" dock with name 'fil' 'métallique', description "^Je remarque un petit fil métallique qui part de la radio, qui file posé sur le sol jusque vers le panneau métallique auquel il est attaché. Probablement une sorte d'antenne maison. ^", before [;Take, Push, Pull, Tie : if (fil.arrached==0) {print "^Profitant d'une clameur du public au travers de la radio, j'arrache discretement le fil accroché au panneau sous le regard complice de Giuliana.";Attend();give radio ~on;print "^^La radio déjà crachotante s'éteint en une bouillie incompréhensible, et le vieux commence à taper la radio sur tous les cotés. ";Joue(213);Attend();print "^^Il regarde à gauche et à droite, comme tenaillé par un besoin irresistible, puis éteind la radio et court rejoindre le bistrot le plus proche d'où s'échappent des acclamations lointaines.^^";remove pecheur;fil.arrached=1;return 2;} else {print "^Possible, mais je n'en vois pas l'intérêt. Je ne suis pas de ceux qui pensent que la vie est une suite d'énigmes, qu'il faut arracher tous les objets qui ne sont pas cloués sur le sol et les utiliser entre eux jusqu'à trouver la solution aux problèmes. Gilbert Fontenelle, c'est réflexion, réflexion et action parfois, peut être, disons, exceptionnellement. ^";return 2;}], arrached 0, has scenery; Object lunettes "lunettes" gilbert with name 'lunette' 'lunettes' 'paire', description "^Mes lunettes en écaille, essentielles à mon métier de lectures et de consultations.^ ", before [;Disrobe : if (noun==self) {print "Et ne plus rien voir ? Non merci. ";return 2;}], article "mes", has pluralname female worn; Object portefeuille "portefeuille" gilbert with name 'portefeuille', description "^C'est mon portefeuille de voyage, j'y range mes petites cartes, mon permis...tous ces petits documents que l'administration nous contraint d'utiliser pour exister.^ ", article "mon", has openable; Object clef "petite clef" gilbert with name 'petite' 'clef', description [;Affiche(116);print "^La clef de mon bureau, à Paris. ^";], has female; Object pipe "pipe" gilbert with name 'pipe', description "^Une pipe en noyer, mon seul doux vice.^ ", before [;Receive : if (noun==tabac) {print "^Je mets un peu de tabac dans ma pipe.^ ";self.plein=10;return 2;} else {print "^Je suis censé ne mettre que du tabac là dedans !^";} SwitchOn : if (self.plein>0 && allumettes in player) {Joue(219);print "^J'allume ma pipe avec une allumette et j'en tire quelques bouffées apaisantes.^ ";give self on;return 2;} else {print "^J'ai besoin d'une pipe remplie de tabac et d'allumettes pour cela.^";return 2;}], each_turn [;if (self has on) { if (self.plein>0) {print "^Une odeur agréable de tabac flotte dans l'air.^";self.plein--;} else {give self ~on;print "^Ma pipe se refroidit doucement.^";}}], plein 0, article "ma", has female container switchable open; Object tabac "tabac" gilbert with name 'tabac', description "^Mon sachet d'Amsterdamer Blue pour mes petits moments de réflexion.^ ", article "du"; Object allumettes "allumettes" gilbert with name 'allumettes' 'allumette', description "^Une petite boite d'allumettes à l'enseigne de La Gueuze, un petit café rue Soufflot où se réunissent quelques prétendants au renouveau de l'intellectualisme parisien.^ ", before [;SwitchOn : Joue(219);print "Je gratte rapidement une allumette qui s'éteind en quelques secondes. "; if (location has noir) {print "^Le courant d'air souffle trop rapidement mes allumettes pour que je puisse y voir mieux, damnation !^";} return 2; Open : print "La boite contient quelques allumettes. ";return 2;], has female pluralname switchable openable; Object carnet "carnet de notes" gilbert with name 'carnet' 'notes' 'calepin' 'feuille', description [;glk_image_draw(gg_mapwin,18, 0, 0); print "^Mon carnet de notes. Mais d'habitude, je note tout dans ma tête...sauf les numéros. Je ne suis jamais à l'aise avec les chiffres.^ ";]; Object colonnes "colonnes" start with name 'colonne' 'collone' 'colonne' 'collone', description "^Les colonnes ceignant St Pierre. ^", has female pluralname static scenery; Object pigeon "pigeon" start with name 'pigeon' 'oiseau', description "^La némésis des ouvrages publics. ^", has animate scenery; Object bureau "bureau" study with name 'bureau' 'table', description "^Un magnifique bureau de noyer vernis au tablier piqué de cuir vert et de boutons en or frappé des clefs du Vatican. Une pièce hors de prix.^ ", has supporter open enterable transparent static; Object capelle "La Calomnie d'Apelle" bureau with name 'tableau' 'calomnie' 'apelle', description [;Affiche(19);print "^La Calomnie d'Apelle.^^Un véritable Botticelli, un tableau légendaire dont la présence intime suscite en moi une émotion palpable.^^A priori, au vu du style, de l'orientation du trait et du choix des couleurs, du vieillissement, c'est un original. Mais le doute est permis, vu que je n'ai pas de photographie à laquelle le confronter...^";if (cafax.regarde==1) {Italique();print "^Aprés confrontation avec le fax de Maurice, quelque chose me semble effectivement suspect...^C'est incroyable, je n'arrive pas à voir quoi...maudit flair du douanier.^ ";Normal();}], before [;Take : print "Héhé. Il ferait bien au dessus de mon lit. Mais quitte à voler quelque chose, vje suis plutôt de l'époque Lippi que Botticelli. Ou un Giotto. Ou un Fra Angelico. Ah. Tant de tableaux et qu'une seule place au dessus de mon lit. ";return 2; Turn : if (cadre.devoiled==1) {print "^Ah, ah ! Le malfaiteur a signé son forfait. Je vois une petite écriture sur le dos du cadre.^";move ecriture to study;return 2;} else {print "^Aucun indice probant derrière le tableau.^ ";return 2;}], has proper; Object cadre "cadre de la Calomnie d'Appelle" study with name 'cadre', description [;Affiche(19);print "^Le cadre du tableau semble être dans un bois sombre recouvert d'une couche de peinture dorée que le temps n'a pas trop fait souffrir. Il est massif, bien proportionné, et rend hommage à ce magnifique Botticelli. Je me demande s'il est d'époque ? ";if (cafax.regarde==1) {if (cadre.devoiled==0) {print "^^Je m'approche du cadre et quelque chose me semble tout à fait singulier...^^Je vérifie avec incrédulité le fax de Maurice, passant plusieurs fois de l'un à l'autre, jusqu'à ce que Giuliana me dise enfin : ^^~Un doute, professeur ?~^^~Le cadre du tableau. Regardez. ~^^Je place l'image à coté du tableau. ";Attend();Affiche(19);Affiche(20); print "^^Giuliana comprend tout de suite : ~La rangée de perles...elle n'est pas sur votre photo. ~^^~Exact. Le tableau est un original, c'est le cadre qui a été remplacé. Maintenant, cela me saute aux yeux, le vieillissement de la peinture, la dureté du bois...je comprends l'incertitude nébuleuse que j'avais...et que vous aviez. Inspectons plus avant.~^";cadre.devoiled=1;} else {Italique();print "^^Mais bien sûr que non. C'est le fameux cadre substitué. ^ ";Normal();}}], before [;Take : print "Héhé. Belle pièce. Mais hélas, le vol d'oeuvres d'art, la prison, tout ça...broutilles vous me direz, mais quand même. ";return 2; Turn : if (cadre.devoiled==1) {print "^Ah, ah ! Le malfaiteur a signé son forfait. Je vois une petite écriture sur le dos du cadre.^";move ecriture to study;return 2;} else {print "^Aucun indice probant derrière le tableau.^ ";return 2;}], devoiled 0, has scenery; Object ecriture "petite ecriture" with name 'petite' 'ecriture' 'signature' 'adresse' 'écriture', description "^Le cadre du tableau est gravé d'une minuscule écriture, trop petite en tout cas pour mes yeux, même en y collant mes lunettes.^^Peut être que je devrais la montrer à Giuliana pour qu'elle puisse y jeter un oeil ?^", has female static scenery; Object mappemonde "mappemonde" study with name 'mappemonde' 'globe', description "^Une mappemonde datant de 1612 ciselée dans l'ivoire. Le support n'est pas d'origine, mais la pièce, elle, est authentique. Une véritable pièce de collection, unique.^", has female static; Object livres "livres" study with name 'livre' 'livres' 'ouvrages' 'religieux', description "^Une collection d'ouvrages authentiques parfaitement conservés. Différentes bibles et recueils en latin, illuminés à la main. Je ne suis pas expert, mais au vu de l'endroit, je me doute qu'il s'agit d'une collection exceptionnelle. ^", has pluralname static scenery; Object fax "machine fax" bureau with name 'machine' 'fax' 'telecopieur', description [;Affiche(21);print "^Dans ce haut lieu de reliques millénaires, la technologie a réussi à s'implanter.^^Voici un fax moderne avec le numéro suivant : (+39)6 68 60 11.^";if (self.bourrage==1) {print "^Un message s'affiche en clignotant...";Gras();print "~Bourrage papier~";Normal();print" me traduit aimablement Giuliana devant mon air soucieux, avant de rajouter : ~Malheureusement, je ne m'y connais pas du tout en technologie. ~^^";Italique();print "Comme si moi je m'y connaissais.^";Normal();}], before [;Open : if (noun==self && self hasnt open) {print "^Sans assurance, je trifouille les boutons et hop, le devant du fax s'ouvre tout seul. Mais rien de particulier me saute aux yeux (je ne suis cependant pas un expert de la technologie.)^ ";give self open;return 2;} if (noun==self && self has open) {print "Il est déjà ouvert...je crois.^ ";return 2;} Close : if (noun==self && self hasnt open) {print "C'est déjà fermé, je crois bien.^";return 2;} if (noun==self && self has open) { if (fax.bourrage==1) {print "^Hum...aprés avoir inspecté précautionneusement, je referme la machine fax. Et sans raison, elle re-bourdonne et se décide enfin à cracher mon du.^";fax.bourrage=0;move cafax to study;Joue(195);} else {print "Et vlan ! je le referme !^";} give self ~open;return 2;}], each_turn [;if (fax.faxed>0) {fax.faxed++;} if (fax.faxed==4) {print "^Le fax émet un petit bourdonnement, semble gigoter, puis se calme, sans même avoir tendu un papier.^";fax.faxed=0;fax.bourrage=1;Joue(195);}], bourrage 0, faxed 0, has female static; Object telephone "telephone" bureau with name 'telephone' 'combine', description "^Partez loin, au bout du monde, ils seront déjà là, à vous attendre, pour vous harceler. Ils vous ont déjà conquis. Ils s'appellent...les téléphones. ^", before [;Take : if (noun==telephone) {print "^Si je veux utiliser le téléphone, je n'ai qu'à taper ~composer~ suivi du numéro. ^";return 2;}], phoned 0, has static; Object cafax "fax de Maurice Brock" with name 'fax' 'papier' 'brock', description [;Affiche(20);print "^Quelle qualité pourrie. Je vais pas aller loin avec cela.^Merci Maurice !^";cafax.regarde=1;], regarde 0; Object ar "accusé de réception" with name 'accuse' 'reception' 'réception' 'accusé', description [;Affiche(28);print "^La preuve du crime, selon toute évidence. ^";]; Object note "faux courrier de Gilbert Fontenelle" with name 'faux' 'courrier', description [;Affiche(29);print "^Incroyable, cette écriture ressemble à la mienne. En fait, je suis presque sur le point de croire que c'est moi qui l'ai écrit !^^Le faussaire est habile, un adversaire de choix. ^";]; !------------------------------------------------------------------------------- ! Core !------------------------------------------------------------------------------- [Initialise; lookmode = 2; ChangePlayer(gilbert); glk_image_draw(gg_mainwin,22,0,0); attend(); Joue(207); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,23,0,0); attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); ! elements pour tester !giuliana.plot++; !Firenze(); !giuliana.loin=1; !giuliana.initial=null; !PlayerTo(sorbonne); !Etiquette2(); !faxl.lu=2; !move carte to gilbert; !Chambre(); !while(child(gilbert)~=0) {move child(gilbert) to stockage;} !move sceau to gilbert; !give sceau worn; !move pandoradream to gilbert; !PlayerTo(dream); !move toge to Gilbert; !ToIsle(); !remove virgile; !move toge to gilbert; !maurice.louvre=1; !PlayerTo(saloncarre); !ToMonteNegro(); !PlayerTo(hall); !Aristo(); !PlayerTo(egout1); !ToLake(); !Reveil(); !PlayerTo(atelier2); !entrance2.vu=1; !Aristo(); !PlayerTo(egout1); !egout1.vu=1; !move clefgrille to gilbert; !ecriture5.lu=1; !HotelGalina(); !move portable to gilbert; !TouchCalomnie(); !ToLake(); !move portable to gilbert; !move lettret to gilbert; !voiture1.compteur=1; !lettret.tel=1; !faces.face=0; !facese.face=1; !facee.face=2; !facene.face=3; !facen.face=2; !faceno.face=0; !faceo.face=3 ; !faceso.face=2; !move faceso to mausolee; !move piedestal to mausolee; !remove frere; !remove laurent1; !remove boite; !move pandora to gilbert; !move giuliana9 to mausolee; !PlayerTo(mausolee); !galina4.bisou=1; !mikolaj2.carted=1; !pandora.ouvert=2; ]; !------------------------------------------------------------------------------- ! Scènes Cinématiques !------------------------------------------------------------------------------- [AideSub; print "Bon. Je vais vous expliquer comment fonctionne ce jeu, mais soyez attentif. Ne vous inquietez pas, c'est assez simple. "; Attend(); print "^^A gauche, vous avez remarqué qu'il y a une fenêtre avec des images. Ces images représentent les lieux que vous visitez dans le jeu, ou les objets et les personnages avec lesquels vous interagissez.^^A droite, vous avez le texte qui explique les lieux, les objets également, mais aussi tous les dialogues ainsi que les descriptions d'action.^^Pour faire une action dans le jeu, il faut taper une phrase à l'infinitif, par exemple :^^>parler a la femme^^A ce propos n'hésitez pas à utiliser un verbe précis pour chaque action, le jeu est normalement prévu pour (ne soyez pas trop fantaisiste quand même !). Voici quelques exemples de phrase :^^> allumer la radio^>montrer le tableau a Giuliana^>composer le 18^>dire bonjour à Maurice^>attacher le pare-choc avec la corde^>frapper à la porte^>mettre les lunettes^^...je pense que vous avez compris le système. Pour information, le verbe ~utiliser~ n'est pas requis pour terminer le jeu.^^Voici quelques commandes importantes :^^>i ou >inv ou >inventaire : affiche ce que je suis en train de porter sur moi^^>sauver et >charger vous permettent respectivement de sauvegarder une partie en cours et de reprendre une partie sauvegardée^^ et enfin^^>quitter quand vous en avez assez.^^Si vous rencontrez un problème avec EKPHRASIS, n'hésitez pas à me tenir au courant sur fibretigre@@64hotmail.com^^"; print "^^Pour consulter la licence d'utilisation du jeu et les crédits, tapez ~licence~ "; ]; [LicenseSub; print " Avant propos :^^Au Triptyque Glorieux les honneurs en premier :^^Inform est un système développé par Graham Nelson^Glulx est une extension d'Inform, développée par Andrew Plotkin^ La traduction française des bibliothèques servant à la compilation a été réalisée par Jean Luc Pontico.^^ ^Je remercie ces trois personnes en particulier sans le travail desquelles EKPHRASIS n'aurait jamais pu voir le jour.^^Par ailleurs, les personnes suivantes ont également apporté le verre d'eau technique qui m'a permis à chaque fois de continuer à travers le long désert de la réalisation d'Ekphrasis :^^> Pauline pour ses réalisations graphiques^> Eric Forgeot pour son aide patiente dans mes débuts avec Glulx^>Roger Firth pour m'avoir indiqué l'endroit précis du DM4 qui m'a permis de développer un téléphone fonctionnel^>Paolo Lucchesi pour m'avoir montré l'évidence (et comment faire un système de sauvegarde qui fonctionne)^> David Kinder et riktik pour avoir pu intégrer des Ogg ^> l'équipe du forum ifiction.free.fr pour avoir testé le jeu^^Ce jeu est dédié à tous ceux qui détestent visiter les musées et qui sont parfois obligés de le faire pour faire plaisir à leurs proches.^^Ce jeu est dédié de façon toute particulière à tous les professeurs d'histoire de l'art et notamment Maurice Brock, éminent spécialiste de la Renaissance Italienne et dont les cours comme les ouvrages sont passionnants.^^"; print " LICENCE PUBLIQUE GENERALE CONCERNANT LA FICTION INTERACTIVE (GPL) ET EKPHRASIS ^^ 1. Cette licence vous permet d'utiliser et de distribuer EKPHRASIS sous les conditions explicitées ci-dessous. Vous ne pouvez pas jouer ou distribuer ce jeu si vous n'êtes pas d'accord avec celles-ci. ^^ 2. Ce jeu, ainsi que tout fichier associé et tout résultat produit par le jeu, ainsi que tout dérivé, sont la propriété copyright (c) 2005 de FibreTigre (fibretigre@@64hotmail.com), aux exceptions suivantes :^^- Images des objets et des personnages copyright Micro Editions 2005^^- Images de certains lieux en Italie et Pologne copyright Chérif^^- Bruitages copyright Sound Fishing^^- Bruitages additionnels et extraits sonores copyright Blavette Sound Foundation ^^ 3. Toute demande concernant les présents termes de la licence doivent être adressés au détenteur du copyright, dont l'adresse est à la date de l'écriture de la présente licence : fibretigre@@64hotmail.com. Si cette adresse est injoignable, vous pouvez joindre l'auteur via le newsgroup Internet rec.arts.int-fiction ^^ 4. Vous avez l'autorisation d'utiliser ce jeu et d'en faire des copies pour votre usage personnel sans aucune restriction. Vous pouvez également copier et distribuer ce jeu par n'importe quel moyen, dans la mesure où : ^a) Vous ne faites pas payer ces actions^b) Le jeu, tous les fichiers joints avec le jeu et cette présente licence ne sont pas modifiés. ^^ 5. Vous n'êtes pas autorisé à demander de l'argent contre la distribution du jeu (soit pour le bénéfice personnel ou tout simplement pour rembourser le coût de la distribution) dans le cadre d'un produit, ou d'une compilation, sans autorisation explicite et écrite préalable. ^^ 6. Ce jeu est fourni sans AUCUNE GARANTIE quelqu'elle soit, expresse ou implicite. ^^ ";]; [XyzzySub; print "^^Comme je le disais souvent à mes éléves, l'histoire de l'art est une science de réflexion et de labeur. Oubliez l'action et l'aventure, oubliez les ruines perdues et les artefacts extraordinaires.^^De toute ma carrière, que l'on reconnait brillante, je n'ai jamais trouvé une véritable trésor authentique, et un Xyzzy, n'a jamais, jamais marqué son emplacement. ^^ ";]; [Rencontre; giuliana.plot++; giuliana.initial="Giuliana est à mes cotés."; Affiche(10); print "^Voici cette belle femme qui s'avance vers moi et me serre la main :^^"; Attend();Italique(); print "~Professeur Fontenelle ?~^^"; Attend();Normal(); print "~Lui-même. Et j'ai fait un excellent voyage, et caetera, et caetera. Entrons dans le vif du sujet, et expliquez moi en quoi vous avez besoin de mon expertise.~^^"; Attend(); print "Elle semble un peu désemparée par mon raccourci relationnel, mais je peux me permettre de ne pas faire dans le protocole. Elle poursuit donc en m'accompagnant vers le musée du Vatican :^^"; Attend(); print "~Je suis Giuliana Ricasoli et c'est moi qui ait insisté pour faire appel à vos compétences. Je suis responsable ici d'une exposition temporaire ici et nous avons fait venir des Offices de Florence la Calomnie d'Apelle, de Boticelli.~^^"; Attend();Italique(); print "La Calomnie d'Apelle ? Je me demande bien en quoi je serais utile.^^"; Attend();Normal(); print "Je suis Giuliana dans les couloirs du Musée.^^"; Attend(); Affiche(24); Nettoie(); print "^Je reste impassible mais ces beautés toujours m'impressionnent.^^"; Attend(); Affiche(10); Joue(184); print "Giuliana se retourne et me dit :^^"; Attend(); print "~Je ne l'ai dit à personne, et ceci ne me regarde pas a priori, mais il me semble que le tableau livré n'est pas ";Italique();print "l'original.~^^";Normal(); Attend(); print "~Ce ne serait pas la premiere fois qu'une copie serait envoyée et exposée plutôt que l'original, lui expliquais-je. C'est même une pratique courante. ~^^"; Attend(); print "~Ils ne l'auraient pas fait sans nous le dire. ~^^"; Attend(); print "~Ah vraiment ? J'ignorais que votre musée inspirait une telle autorité. ~^^"; Attend(); print "~Vous vous êtes bien déplacé,";Italique();print " vous !~^^";Normal(); Attend(); print "J'encaisse avec philosophie et retorque non sans humour : ^^"; Attend(); print "~Certes mais quand ce tableau a été peint, Rome et Florence étaient deux provinces ennemies. ~^^"; Attend(); print "Elle se retourne encore, s'approche de moi et déclare : ^^"; Attend(); print "~Mais vous n'êtes pas à Rome, ici. Vous êtes dans la demeure de Dieu.~^^"; Attend(); print "Et de repartir de plus belle.^^Je suis son pas rapide jusque dans une petite salle parrallèle. "; Attend(); Nettoie(); Affiche(2); Joue(184); print "^Quel endroit surprenant en ce palais ancien.^^Alors qu'elle s'avance au coeur de cette pièce étrange, je l'interpelle :^^"; Attend(); print "~Il y a des moyens directs de déterminer s'il s'agit d'une copie ou d'un original, le carbone 14, par exemple. ~^^"; Attend(); Affiche(10); print "~Le carbone 14 est un moyen onéreux ";Italique();print " - plus que l'assistance bénévole d'un expert, certainement, pensais-je - ";Normal();print", mais surtout, un moyen qui attire l'attention - je souhaitais avoir un oeil d'expert, mais un oeil complice, l'avis d'une autorité qui connaît les enjeux du monde de l'Art et qui saura user de discrétion si toutefois il y avait un ennui, et je sais que je peux compter sur vous, Professeur. De plus, le problème n'est pas tout à fait là, car le tableau à l'air tout à fait ";Italique();print "authentique";Normal();print". Mais il y a...un détail qui cloche, disons, un détail que je n'arrive pas à identifier. ~^^"; Attend(); print "~Quel détail ?~^^"; Attend(); print "~C'est plus un ressenti que des bases matérielles. ~^^"; Attend(); print "~Ah, mais ";Gras();print "l'observation";Normal();print " et ";Gras();print "le constat des faits";Normal();print" sont la base de notre science, chère consoeur. Et que disent les Offices ?~^^"; Attend(); print "~Que c'est l'authentique qui a quitté leur établissement. Donc, s'il y a eu substitution, elle a eu lieu pendant le transfert, sous notre responsabilité.~"; Attend(); print "^^Je prends mon temps pour essuyer mes lunettes et déclare sans la regarder :^^"; Attend(); print "~Vous ne vous adressez pas au bon expert, chère consoeur. Vous devriez contacter le spécialiste de ce type d'oeuvre, le professeur Brock, à l'université de Tours.~^^"; Attend(); print "Et la voilà qui se retourne vers moi et me déclare d'un sourire fier :^^"; Attend(); print "~Ce fut également notre premier choix. Le professeur Brock nous a dit qu'il était malheureusement pris, et vous a chaleureusement recommandé.~^^"; Attend(); print "J'en reste abasourdi. ";Italique();print "Le vieux grigou.^";Normal(); Attend(); PlayerTo(study); ]; [Firenze; print "^~Giuliana ? Pourriez vous jeter un de vos beaux yeux sur ceci ?~^^Je n'ai pas perdu le sens de la formule. Elle s'approche du tableau et passe un doigt sur la petite inscription."; Affiche(10);Italique(); print "^^~Cadres Pazzi...Ponte Vecchio, Firenze.";Normal();print" (elle relève la tête) Les Offices ne m'ont jamais parlé d'une rénovation du cadre ! Et où est l'original ?~^^"; Attend(); print "~L'original, vous voulez dire, ";Italique();print "le cadre original ?~";Normal();Attend();print "^^~Oui, je veux dire : ";Italique();print "le cadre original.";Normal();print" Il est très important pour nous d'avoir la peinture et le cadre d'époque...ils n'auraient jamais dû être séparés ! ~^^"; Attend(); print "Je me gratte la tête avec mon manche de pipe.^^"; Attend(); print "~Et bien...je suppose qu'il est encore chez ce Pazzi.~^^"; Attend(); print "~Je vais avoir besoin de votre aide. ~^^"; Attend(); print "Je fronce les sourcils alors qu'elle précise : ^^~Oui, pour authentifier que nous avons bien retrouvé le bon cadre. ~. ^^"; Attend(); print "Devant mon silence prolongé elle me prend le bras et me dit :^^"; Attend(); print "~Firenze, la cité de toutes les intrigues, ";Gras();print "l'aventure,";Normal();print " professeur Fontenelle !~^^"; Attend(); print "Et c'est sans sourire, et sur un ton glacial que je lui réponds :^^"; Attend(); print "~L'histoire de l'art, mademoiselle, est une science de ";Gras();print "réflexions";Normal();print " et de ";Gras();print"labeur cérébral";Normal();print ", ce ne sont ";Italique();print "ni intrigues ni aventures,";Normal();print " mais ";Gras();print "la clarté de la logique";Normal();print" et ";Gras();print "le labeur de la recherche.";Normal();print "^^Ni intrigue. Ni aventure.~^^"; Attend();Joue(61); print "Et en dépit de ces convictions je me laisse quand même entraîner vers Florence..."; Attend(); Joue(218); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,25,0,0); attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); PlayerTo(dock); print "^^Bien. Il ne nous reste plus qu'à trouver cette boutique d'encadrement, Pazzi.^^"; Attend(); print "Je médite quelques secondes, puis quelque chose me surprend : en plus de la chaleur écrasante, tout semble immobile et calme, silencieux. ";Italique();print "Désert.^^";Normal(); Attend(); print "~C'est normal, m'explique Giuliana. C'est la coupe d'Europe de Football, je crois qu'il y a un match important aujourd'hui. ~^^"; Attend();Italique(); print "Le Football. ";Normal();print "^^Je me sens tout à coup étranger des habitants de ce musée vivant et éternel qu'est Florence.^"; Attend(); ]; [Bateauspot; print "^Nous revenions du Ponte Vecchio d'un air morose.^^~Tant de kilomètres et une porte fermée. ~^^Mais Giuliana me tire par la manche et me montre un singulier spectacle :^^"; Attend(); print "Un petit bateau s'est arrêté sous le Ponte Vecchio, à la verticale de la boutique des Pazzi.^^Il donne deux coups de corne de brume et quelqu'un sort sur la terrasse de la boutique, puis lance une corde. La personne dans le bateau attache un paquet, un paquet curieusement rectangulaire, et tire deux coups sur la corde. Celle-ci, attachée en haut sur un petit moteur, remonte doucement, tandis que le bateau s'éloigne. "; Attend();Italique(); print "^^Mmm...des tableaux ?";Normal();print "^^~Ca m'a l'air louche.~ expliquais-je à Giuliana. ^^"; Attend(); print "~Pensez vous, Professeur, que ce Pazzi est un trafiquant de tableaux ?~^^"; Attend(); print "~Et bien, de cadres de tableaux, tout du moins. ~^^"; Attend(); print "Mouais. Ca me rend pas les choses plus simples.^^"; Attend(); ]; [Surprise; print "^^La corde monte tout doucement vers la terrasse, et mes bras fatiguent.^^Dès que je le peux, je m'agrippe sur le bord, pour lever la tête et m'apercevoir qu'un grand type en costume me regarde me tortiller, sans m'aider.^^"; Attend();Italique(); print "~Ce n'est pas le paquet que j'attendais. ~^^";Normal();Attend();print "Je n'ai pas le temps de bredouiller quelque chose qu'il me flanque un bon coup de pied dans le flanc qui me fait rouler et tomber vers l'Arno ! ";Joue(203); Attend(); print "^^Mais je me rattrape au dernier moment, pendu par les mains au bord extrême de la terrasse...je glisse...^^";Attend(); ]; [FinPlongeon; print "^^Menacé, l'homme attrape mes bras et me rejette en arrière !^^"; Attend(); print "Je tombe, ma vie, et des centaines de galeries de peinture renaissance défilent à toute vitesse...^^"; Attend(); print "Et dans un grand plouf, je tombe dans les eaux fraîches et opaques de l'Arno.^^"; Attend(); print "Rassurez vous, je n'en suis pas mort.^^"; Attend();Joue(197); print "Mais pour moi, ce fut la fin de l'aventure Ekphrasis.^^"; Attend(); print "Quelques longues dizaines de minutes plus tard, je me hissais trempé et épuisé sur une rive, où une âme charitable me fit conduire à l'hôpital dans un véhicule aux sirènes hurlantes. Je fus rapatrié dans le jour qui suivit, où je récupérais avec amertume de mon aventure.^^"; Attend(); print "Malgré tous mes efforts ultérieurs, je ne pus retrouver la trace de la pauvre Giuliana, abandonnée aux griffes de ce sadique. Maurice, malgré sa jovialité naturelle, ne prononca aucune plaisanterie sur ce déplorable épisode, étant partiellement responsable de mon voyage en Italie.^^"; Attend(); print "Que disais-je déjà ? l'histoire de l'art, ce n'est que labeur et réflexion. Pas de stupides excursions sur l'Arno à la poursuite d'hypothétiques trafics de tableaux.^^Labeur et réflexion."; Attend(); print "^^"; deadflag=1; ]; [FinMiasto; print "^^Galina s'engouffre dans les petites rues pavées du vieux Varsovie.^^"; Attend(); print "Avec ennui, nous sommes rapidement freiné par une circulation dense, et le désespoir nous gagne alors que le traffic s'arrête totalement, bloqué par une imposante manifestation religieuse.^^"; Attend(); print "~Ah, quelle idiote, murmure Galina. Et dire que c'était dans l'édition du jour !~^^"; Attend(); print "La Hyundai s'arrête derrière nous et j'entends claquer ses portières comme j'entends mon propre glas.^^"; Attend(); print "Une ombre s'est ensuite penchée sur moi, et m'a dit non sans ironie :^^~Alors, on fait du tourisme dans notre belle ville de Varsovie ?~^^"; Attend(); print "Hélas, on ne revit plus jamais Gilbert Fontenelle vivant.";Joue(197); deadflag=1; ]; [FinAffaires; print "^^Galina mène notre véhicule dans les larges boulevard encadrant les hauts immeubles du quartier des Affaires, surplombé par une imposante tour.^^"; Attend(); print "Toutefois, la circulation s'encombre, et s'arrête brusquement. Alors que notre moteur ralentit, nous percevons les clameurs d'une manifestation et apercevons au loin une large foule brandissant banderoles et pancartes.^^"; Attend(); print "~Maudits soient les politiques, murmure Galina. J'avais oublié : aujourd'hui, c'est la manifestation contre l'entrée de la Pologne dans l'Europe !~^^"; Attend(); print "La Hyundai s'arrête derrière nous et j'entends claquer ses portières comme j'entends mon propre glas.^^"; Attend(); print "Une ombre s'est ensuite penchée sur moi, et m'a dit non sans ironie :^^~ Aristo, Mikolaj souhaiterait connaître votre avis sur la monnaie unique. ~^^"; Attend(); print "Hélas, on ne revit plus jamais Gilbert Fontenelle vivant.";Joue(197); deadflag=1; ]; [FinStade; print "^^Notre voiture remonte une large avenue, puis un parking envahi de véhicules. ^^"; Attend(); print "Une énorme clameur nous accueille alors que des milliers de personnes courent dans tous les sens en brandissant des drapeaux et en chantant à tue-tête.^^"; Attend(); print "~La finale de la coupe Polonaise de football~^^se désespère Galina en posant sa tête sur le volant, moteur coupé."; Attend(); print "La Hyundai s'arrête derrière notre véhicule immobilisé par les supporters et j'entends claquer ses portières comme j'entends mon propre glas.^^"; Attend(); print "Une ombre s'est ensuite penchée sur moi, et m'a dit non sans ironie :^^~Alors, Aristo, pour quelle équipe vous avez parié ?~^^"; Attend(); print "Hélas, on ne revit plus jamais Gilbert Fontenelle vivant.";Joue(197); deadflag=1; ]; [FinPolice; print "^^Galina accélére encore et nous voilà sur une large route menant à l'extérieur de la ville. ^^"; Attend(); print "~Nous nous en sortons, Bravo !~ felicitais-je Galina, mais elle me répond :^^~Nous aurions du appeler la police...~^^"; Attend(); print "Enfer. Elle n'avait que trop raison, car quand je regardais le rétroviseur, ce fut pour voir le véhicule de nos poursuivants apparaître, gagner du terrain, nous dépasser, et quand avec horreur nous constatâmes que le passager avait une arme pointée sur nous.^^"; Attend(); print "Nous étions perdus.^^"; Attend(); print "Et, hélas, on ne revit plus jamais Gilbert Fontenelle vivant.";Joue(197); deadflag=1; ]; [FinMikolaj; print "^^Je reprends la partie, mais rapidement la tête me tourne.^^"; Attend(); print "Sans pour autant perdre connaissance, je perds ma concentration, et même l'envie d'aller plus loin.^^"; Attend(); print "Je finis par abandonner la partie.^^"; Attend(); print "Les drogues contenues dans la nourriture et le champagne servi par Mikolaj auront eu raison de Gilbert Fontenelle, finalement contraint d'abandonner l'argent et sa chasse au trésor.^^"; Attend();Joue(197); print "Pour moi, ce fut la fin de l'aventure Ekphrasis.^^J'utilisais les quelques billets laissés par Mikolaj pour revenir à Paris, où j'avouais non sans amertume ma défaite.^^Que disais-je déjà ? l'histoire de l'art, ce n'est que labeur et réflexion. Cela ne se joue pas au Petit Hanoï dans un tripot louche.^^Labeur et réflexion.^^"; deadflag=1; ]; [FinMasque; Affiche(232); print "^Giuliana s'approche et soulève mon masque. ^^"; Attend(); print "Tous observent mon visage avec une très grande surprise, mais Giuliana laisse échapper même un cri quand elle devine sous les cheveux blonds les traits de Gilbert Fontenelle. ^^"; Attend(); print "La soirée fut finie pour moi, mais on me conduisit quand même avec égard, après quelques heures de méditation solitaire dans une cellule humide du cloître, dans l'aube naissante - et dans un silence complet - vers le quai de pierre. Quelle cérémonie étrange avais-je donc interrompu.^^"; Attend();Affiche(235); print "Alors qu'on me hissait sur un bateau frappé des armes des Pitti, Giuliana me dit simplement : ^";Attend();print "^~Nous sommes plus puissants que vous ne pouvez vous l'imaginer. Nous sommes entrés et ressortis impunéments du Louvre, avons réservé cet île pour notre bon plaisir. Vous restez en vie par mon bon vouloir, Professeur, mais je vous invite à ne plus approcher ni Florence, ni Venise. Je vous y invite ";Italique();print "fermement. ~^^";Normal(); Attend(); print "Ce furent ses derniers mots, avant qu'elle se retourne en colère.^^Je suivis donc son aimable conseil, car aussi curieux que je fusse, je ne l'étais pas assez pour m'opposer à nouveau à ce puissant clan.^^"; Attend(); print "Ce fut donc pour moi la fin de l'aventure Ekphrasis.^^";Joue(197); deadflag=1; ]; [Reunion; print "^^Alors que je m'avance au coeur du cimetière, une autre figure encapuchonnée vient à ma rencontre :^^"; Attend();Affiche(234); print "~Vous en avez mis le temps ! ~ murmure-t-elle. ~ Suivez moi, je n'aimerais pas non plus que cela dure, mais vous la connaissez...~^^"; Attend();Affiche(157);Affiche(232);Affiche(233);Affiche(234);Joue(183); print "Je le suis vers ce qui semble être le coeur du cimetiere, une grande Tholos abritant une dalle de marbre anonyme surmontée d'une croix noire. Deux autres figures vétues de robes noires sont déjà là, et me regardent venir. ^^"; Attend(); print "~Vous en avez mis du temps, Pazzi. Il y eu un temps où votre famille était plus respectueuse des traditions. ~^^"; Attend(); print "Malédiction. Cette fois, c'est celle de Giuliana, j'en suis certain. L'Italie, le monde était-il si petit ? Je marmonne une faible excuse, rapidement interrompue par les commentaires des autres :^^"; Attend(); print "~Venise, ce n'est pas Florence. Et ce cimetiere perdu dans l'eau...c'est d'un sinistre. ~^^"; Attend(); print "~C'est un lieu que possédaient les Médicis en leur temps, lorsque ce n'était pas encore un cimetiere, mais un projet de Palais. Sous cette croix, la pierre fondatrice d'un bâtiment qu'ils n'érigèrent jamais, Laurent étant tombé trop tôt pour finaliser ce projet. Et ceci, vous ne pourrez pas l'apprendre dans les livres d'Histoire ~ poursuit Giuliana. ~ c'est un secret que les Médicis, les Pazzi et les Pitti connaissent, la vraie histoire de l'Italie. Ce symbole vous suffit-il pour notre petite réunion annuelle ?~^^"; Attend();Italique(); print "A San Michele, une croix noire marque l'emplacement.^^"; Attend();Normal(); print "~Quoi...~ se plaint un autre d'une voix trainante. ~Il va falloir encore que l'on fasse cette comédie avec les masques et tout ? ~^^"; Attend(); print "~Bien entendu. ~ et Giuliana découvre son visage - c'est bien elle ! Mon dieu - et saisit un sac sur le sol. ~ Prenez un masque, il décidera de votre rôle, ainsi que nous le faisons chaque année en souvenir du pacte qui unit nos familles. ~^^"; Attend(); print "~Quel est l'interêt ?~^^"; Attend(); print "~Les traditions cimentent les familles. ~ répond fermement Giuliana.^^"; Attend(); print "Je songe un instant à Laurent de Médicis, et ces grandes familles, ainsi que l'Eglise, se partageant façon Yalta les richesses des provinces italiennes et réglant leurs comptes comme le feraient des syndicats du crime moderne...et que l'on connaît maintenant surtout pour leurs projets artistiques et ce qu'on appelle avec des majuscules La Renaissance. Mais je suis tiré de ces conjectures légères alors que Giuliana plonge son regard dur dans l'obscurité de ma capuche : ~Prenez, Pazzi. ~^^"; Attend(); print "Je tends la main et prend dans le sac un masque de carton blanc imprimé d'une épée noire : ~L'assassin...il n'y a pas de hasard, Pazzi. Tenez. ~ Giuliana me donne une dague ouvragée et j'applique le masque sur mon visage. Puis mettant un masque elle aussi, elle me reconduit au coeur du cimetiere : ^^"; Attend(); print "~Tenez bien votre rôle, Assassin, je suis le Messager. La coupole abritant une croix sera le Duomo. ~^"; move masque to gilbert; give masque worn; move dague to gilbert; move espion to cimetiere; espion.compteur=1; ]; [FinEcluse; print "^^Gorislav coupe brutalement les moteurs, puis inverse le sens du moteur.^^"; Attend(); print "L'arrêt brutal me fait basculer en avant, et me sonne à moitié...^^"; Attend(); print "Quand on ouvre la porte, quelques minutes plus tard, c'est un commando d'intervention en zodiac qui s'infiltre dans l'avion et me pointe une arme sous le nez.^^"; Attend(); print "La prison polonaise. Les interminables explications. Les excuses embarrassées.^^"; Attend(); print "Des passages douloureux que j'éviterais de mentionner. Inutile de dire que pour retrouver une position à peine convenable dans la société française, je dus utiliser toutes mes ressources, et bien entendu me tenir loin, définitivement loin, de cette affaire : ce fut donc pour moi la fin de l'aventure Ekphrasis.^^";Joue(197); deadflag=1; ]; [ToLake; print "^Galina file vers le sud, et rapidement, tout en longeant la Vistule, nous atteignons la périphérie de Varsovie. ^^"; Attend(); print "Derrière nous, les sirènes de police hululant ont fait se détourner nos poursuivants, et je me retourne d'un air satisfait :^^"; Attend(); print "~Hé hé ! ";Italique();print "Au revoir";Normal();print " les amis ! Dites moi, Galina, maintenant, il serait temps de me dire la vérité !~^^"; Attend();Italique();Affiche(45); print "~La vérité,";Normal();print " Professeur Fontenelle ? Vous me prenez pour une philosophe ? Et non, je ne suis que linguiste. Et dieu sait que les langues vivantes sont faites pour porter plein de choses : des légendes, des rêves, de la poèsie et des lois. ";Italique();print "Mais pas la vérité. ~^^";Normal(); Attend(); print "~Linguiste, hein ? Vous ne travailleriez pas pour Interpol, plutôt ?~^^"; Attend(); print "~Ca y est, le Professeur est fou. C'était bien la peine d'aller le tirer de la Vistule. Et pourquoi voudriez vous que je sois d'Interpol ? Ils étudient l'indo-européen à Interpol ?~^^"; Attend(); print "~Vous volez ce taxi, vous conduisez dans Varsovie comme un agent secret...vous appelez la police en polonais, et hop, ils rappliquent. Vous êtes sacrément débrouillarde pour un rat de bibliothèque. ~^^"; Attend(); print "Galina s'esclaffe : ~Ha ha, Professeur Fontenelle ! Venez passer quelques mois dans notre belle Russie, vous vous découvrirez des talents incroyables rapidement...car malheureusement, ";Italique();print "vous n'aurez pas le choix !";Normal();print " Voilà pourquoi je cherche un mari français...toujours pas tenté ?~^^"; Attend(); print "Je gromelle en tournant la tête de coté...nous longeons toujours la Vistule mais Varsovie a laissé place très rapidement à une campagne verdoyante.^^"; Attend(); print "~Où allons nous ?~^^"; Attend(); print "~Galina la débrouillarde vous a dégoté un moyen de transport qui vous aménera dans les plus brefs délais à Venise, Professeur.~^^Et elle me montre une large anse qui forme un large étang que traverse la Vistule. Et amarré sur un quai..."; Attend();Italique();Affiche(162); print "^^~Un hydravion ? !~^^";Normal(); Attend();Affiche(45); print "~Specialement affrété pour vous, Professeur...il est prêt à partir. C'est fou ce qu'on peut faire avec cinq mille dollars ici...Hé, ne me regardez pas comme cela : c'est la grève des trains et des aéroports, si vous n'êtes pas content, je vous y amène moi même en auto !~"; Attend(); print "^^Mais pas du tout. Cela m'allait tout à fait.^";Attend();print " ^Alors que Galina s'avançait sur le terrain en rase campagne vers le quai de l'hydravion, les sirènes très distinctives de la police retentirent au loin. Evidemment, nous étions toujours dans le taxi emprunté par nécessité.^ ";Attend();print "^Avec son aplomb et sa vivacité, Galina s'élança hors du véhicule et donna des ordres rapides en polonais...dans l'hydravion, un pilote s'agita, et bientôt l'hélice de l'avion commenca a rider l'eau, courber les herbes hautes et son bruit couvrir les sirènes qui pourtant se rapprochaient^."; Attend(); print "^~Professeur Fontenelle !~ s'exclama Galina alors que je sortais, maladroit, du taxi, les jambes encore tremblantes. ~votre avion part immédiatement ! Au revoir, et envoyez moi une carte postale de Venise !~^";Attend(); PlayerTo(lake); ]; [FinRemise; print "^^L'âme damnée de Mikolaj débarque dans la remise, arme au poing, vociférant en polonais.^^"; Attend();Affiche(123); print "Je reste figé sur place alors que Mikolaj pénétre dans la remise en s'allumant un cigare.^^"; Attend(); print "~Vous auriez dû écouter le conseil de mes confrères, Aristo, et vous tenir à l'écart du milieu le temps de vous faire oublier - c'est à dire pour toujours. ~^^"; Attend(); print "~Je ne suis pas Aristo. ~^^"; Attend(); print "~Cela n'a plus d'importance, Aristo. ~^^"; Attend(); print "^Le rire de Mikolaj me remplit d'effroi.^^Malheureusement, on n'entendit plus jamais parler de Gilbert Fontenelle. ^"; Joue(197); deadflag=1; ]; [FinEgout;Affiche(123); print "^^Je tombe nez à nez devant l'âme damnée de Mikolaj, qui me saisit par le col.^^"; Attend(); print "~Je pense qu'il s'agit d'une méprise,~ expliquais-je la voix sèche. ^^"; Attend(); print "~Nié mouvié Franceskou ! ~ me crache-t-il avant de m'assomer d'un coup violent sur la tête. ^^"; Attend(); print "Je n'eus jamais l'occasion de reprendre connaissance.^^Et le monde n'entendit plus jamais parler de Gilbert Fontenelle. ^"; Joue(197); deadflag=1; ]; [Assome; print "^^Bing !^^";Attend();print "Dans un bruit métallique, Giuliana abat la pelle sur la tête du bonhomme qui s'effondre au sol.^^"; Attend();Affiche(10); print "~Mon Dieu pardonnez moi ! J'espère que je n'ai pas tué ce pauvre homme !~^^"; Attend(); print "Je manque de m'étrangler : ";Italique();print "~Pauvre homme ?";Normal();print " C'est";Gras();print " MOI ";Normal();print " qu'il allait tuer, votre pauvre homme ! Aidez moi à grimper, une minute de plus et je tombais pour de bon !~^^"; Attend(); print "Giuliana me tend ses bras et je grimpe maladroitement, et reprend mon souffle dos sur le sol, blanc comme un linceuil.";Joue(196); Attend(); print "^^Giuliana me dit : ~Alors, Professeur Fontenelle, l'histoire de l'art, c'est toujours ";Italique();print "~Labeur et Réflexion~ ? ~^^";Normal(); Attend(); print "~Hum ! Simple exception qui confirme la règle. Dans 99% des cas, ma formule est parfaitement adéquate. 99,99%, même. C'est le drame des scientifiques, voyez vous. Il suffit qu'ils rencontrent une femme, pour...hé ! mais dites moi, comment êtes vous venue ici ?~"; Attend(); print "^^Giuliana m'explique : ~En fait, c'était assez facile de grimper la facade du magasin. Il y avait une grosse gouttière, et...~^^"; Attend(); print "~Dans ce cas, pourquoi ne l'a t on pas fait plus tôt ?~^^"; Attend(); print "~Et bien, vous auriez voulu certainement, mais...~^^"; Attend(); print "~Je suis trop gros, c'est cela ?~^^"; Attend(); print "~Non, non, vous êtes trop...~^^"; Attend(); print "~Trop vieux, au placard le vieux Fontenelle. ~^^"; Attend(); print "~Mais non ! bon, vous n'êtes pas content que je sois ici ?~^^"; Attend(); print "~Vous m'avez sauvé la vie. Tout du moins, un plongeon inconfortable. Merci. ~"; Attend(); print "^^Tandis que je me relève péniblement, Giuliana jette la pelle dans l'Arno avec un à-propos qui me surprend. ^^";Attend(); remove marco;remove lgiuliana;move dmarco to terrasse;move giuliana to terrasse; giuliana.loin=0;PlayerTo(terrasse); ]; [WakePazzi; print "^^Je tapote Pazzi dans le dos en lui éteignant sa radio. ^^"; Attend();Affiche(14); if (pazzi.parled==1) { print "Il me regarde d'un air exaspéré :^^"; Attend(); print "~Et bien, vous n'avez pas encore trouvé ? Tout est trié par ordre alphabétique. A présent merci de me laisser travailler. ~^^"; Attend(); print "Je laisse le vieux grigou tranquille, bien que je sache parfaitement qu'il est surtout en train d'écouter le match à la radio.^"; } else { print "Il sursaute en remarquant nos visages inconnus de lui.^^"; Attend(); print "Je décide de ruser, et de lui faire cracher le morceau en le prenant à contrepied : ~Vous êtes Pazzi, c'est cela ? ";Italique();print "Pazzi,";Normal();print " comme la fameuse famille autrefois rivale des Médicis ?~^^"; Attend(); print "(effectivement, je me souvenais à l'instant que les Médicis, autrefois les maîtres de Florence et généreux mécénes de Botticelli entre autres, étaient jalousés par plusieurs familles, dont une certaine famille de Pazzi. Il n'y avait probablement aucun lien, mais c'était pour amener élégamment le sujet sur la Calomnie d'Apelle. Parfois je suis ";Gras();print "SI";Normal();print " spirituel...)^^"; Attend(); print "Mais le vieil artisan ouvre des yeux comme des soucoupes, et me répond intrigué :^^"; Attend(); print "~Et bien, oui, je suis un des descendants de cette famille de marchands...~^^"; Attend(); print "~Et c'est par vengeance envers les Médicis que vous avez amputé La Calomnie d'Apelle de son cadre ? Ou est-ce un simple écart...une faiblesse d'un collectionneur trop passionné ?~ "; Attend(); print "^^Là, Pazzi s'étrangle de fureur et me dit rageusement, en tapant du poing sur la table :^^"; Attend(); print "~Je suis un honnête artisan, si vous voulez savoir ! Je me souviens très bien de la Calomnie, bien sûr, un Botticelli. On me l'a livré par bateau, comme tous les tableaux précieux dont je dois restaurer les cadres. Je travaille pour les Offices de Florence, et aussi pour Paris. ~^^"; Attend(); print "~Tout comme moi. Je suis Gilbert Fontenelle, et voici Giuliana Ricasoli, directrice de collection au musée du Vatican. ~(il hoche la tête comme s'il la reconnaissait) ~Nous sommes venus récupérer le cadre original du Botticelli, apparemment interchangé à l'insu de tous, sauf d'un fonctionnaire oublié dans un recoin des Offices. ~^^"; Attend(); print "~Servez vous. ~ me fait Pazzi avec exaspération en me montrant tous les cadres attachés aux clous dans les murs. ~Il doit être à ~apelle~, ou à ~calomnie~, ou quelque chose dans le genre. Les étiquettes sont triées par ordre alphabétique. ~^^~Avant de se retourner, il ajoute avec dureté :^^"; Attend(); print "~Je n'y suis pour rien dans cette erreur. Sachez toutefois que si ma famille les Pazzi m'avait demandé de substituer ce cadre ou même de voler la toile - ou pire encore -, je l'aurais fait sans aucun scrupule.";Italique();print " Au nom des Pazzi. ~^^";Normal(); Attend(); Affiche(10); print "Giuliana me lance une mine impressionnée alors que le vieux se remet au travail.^^";Attend();print "~Cela a l'air d'être effectivement une erreur administrative, et ce Pazzi un honnête artisan travaillant dans le secret pour ne pas risquer le vol de ces chefs d'oeuvre. ~^^";Attend();print "Dubitatif, je me retourne devant les murs couverts d'étiquettes et de cadres.^^";Attend();print "Bon, il est où ce cadre déjà ?^"; Attend(); pazzi.parled=1; } ]; [Etiquette1; print "^^Et mince ! Rien à Médicis non plus !^^Je lance un regard meurtrier à Pazzi, qui m'ignore, concentré sur son travail. Giuliana sent mon dépit et me demande :"; Attend();Affiche(10); print "^^~On lui demande où il l'a mis ?~^^"; Attend(); print "~Il nous aidera pas, ce vieux schnoque. Il se marre parce qu'on galère. Et pourtant il l'a bien mis quelque part par ici, rangé.~^^"; Attend(); print "~Quelle étiquette auriez vous mis, Professeur ?~^^"; Attend(); print "~J'aurais mis ~Calomnie d'Apelle~, tiens donc !~^^"; Attend(); print "~Oui, ~ dit elle avec un regard malicieux ~mais qu'auriez vous mis si vous devriez mettre une étiquette qui vous permettrait de le retrouver facilement, tout en étant obscur pour un non-initié, pour mieux protéger ce trésor ?~^^"; Attend(); print "Cette dernière remarque me plonge dans des abîmes de réflexion. Giuliana me relance :^^~Autrement dit, qu'il y a t il à dire sur ce tableau ?~^^Je réfléchis. "; Attend(); print "^^Puis je lui réponds de façon didactique :^^"; Attend(); print "~La Calomnie d'Apelle est à l'origine un tableau d'Apelle, un peintre de l'île de Kos en Grèce. Un peintre de l'antiquité, au talent légendaire, le portraitiste officiel d'Alexandre le Grand. On disait de lui qu'il peignait avec un tel réalisme que ses tableaux étaient de véritables trompe l'oeil qui mélangeaient art et réalité.^^"; Attend(); print "Bien entendu, il ne reste rien de ce tableau, ou plutôt si, puisque Lucien de Samosate, un grec, en a fait au 2ème siècle aprés Jésus Christ une ";Italique();print "Ekphrasis,";Normal();print " c'est à dire, une description méticuleuse du tableau, si précise en fait que le texte a permis à l'autre Alexandre le Grand, c'est à dire Alessandro Botticelli, plus tard, d'en faire une autre épreuve. L'oeuvre a appartenu de bout en bout aux Médicis, puis aux Offices de Florence. Le cadre ne date probablement pas de l'époque de la réalisation de l'oeuvre par Botticelli, car ce n'était pas l'usage à l'époque mais qui sait ? ~"; Attend(); print "^^Giuliana fait un clin d'oeil complice : ~Cela nous fait plein d'autres noms à chercher sur les étiquettes, alors !~^"; Attend(); etiquettes.fouilled=1; ]; [Etiquette2; print "^^Ah ha.^^Il y a bien une étiquette intitulée ";Gras();print "Ekphrasis.";Normal();print " A laquelle pendent, en lieu de cadre, deux petits papiers."; Attend(); print "^^Souriant d'un sourire menaçant et crispé, je les agite sous le nez de Pazzi.^^"; Attend(); Affiche(14); print "~Ah, oui, c'est vrai. Le cadre n'est pas ici. Cela, c'est la petite note qui m'a demandé de l'envoyer par courrier, et ceci, c'est l'accusé de réception du colis. Je l'ai envoyé par la poste. ~^^"; Attend(); print "Je reviens vers Giuliana et nous jetons un coup d'oeil sur l'adresse :^^"; Attend();Italique(); print "A l'attention de Monsieur le Directeur de L'Histoire de l'Art^Université de la Sorbonne^1 rue Victor Cousin^75005 Paris.^^"; Attend();Normal(); Affiche(10); print "Giuliana lève la tête et me demande :^^"; Attend(); print "~Vous connaissez cette personne ?~^^"; Attend(); print "~La réponse à votre question est : ";Italique();print "oui.~^^";Normal(); Attend(); print "Je fourre les papiers dans ma poche, fébrilement, et je marche d'un pas rapide vers la porte que je déverouille, inondant la boutique de soleil."; Attend(); print "^^Giuliana me rattrappe : ~Où allez vous ?~ me demande-t-elle.^^"; Attend(); print "~A Paris.~^^"; Attend(); print "~Vous pensez que c'est le responsable de l'histoire de l'Art à Paris Sorbonne qui a organisé cette substitution ?~^^"; Attend(); print "~Non, c'est impossible. ~^^"; Attend(); print "~Et pourquoi donc ?~ me demande Giuliana, nerveuse, en me tirant par le bras pour que je me retourne, la lumière forte de l'extérieure l'aveuglant à moitié tandis qu'elle se cache dans mon ombre.^^"; Attend(); print "~Parce que le directeur de la section histoire de l'art à la Sorbonne... "; Attend(); print "...c'est moi. ~"; Attend(); Joue(63); move ar to player; move note to player; glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,26,0,0); attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); Affiche(7); print "^^Et me voilà de retour."; Attend(); Affiche(10); print "^^~Quelle chance vous avez, Professeur Fontenelle, d'enseigner dans un si prestigieux établissement !~"; Attend(); print "^^Ah. J'oubliais. Giuliana m'a accompagné. très franchement, j'aurais aimé être seul pour tirer au clair cette histoire de commande de cadre de tableaux ou je ne sais quoi.^^"; Attend(); print "Giuliana joue les naives, mais je sais qu'elle a un oeil sur moi, et qu'elle est beaucoup plus finaude et érudite qu'elle ne veut le paraître."; Attend(); print "^^~Ah, quel plaisir de revenir ici ! ~^^"; Attend(); print "Je retire mes lunettes pour les essuyer et la dévisage par en-dessous : ~Vous avez dit ";Italique();print "revenir ?~^^";Normal(); Attend(); print "~Oui, Professeur. C'est ici que j'ai passé ma thése d'histoire de l'art, voyons ! Vous ne vous souvenez pas de moi, maintenant ?~"; Attend(); print "^^Je manque de m'étrangler.^^"; Attend(); print "~Vous étiez mon élève ? ~^^"; Attend(); print "~Bien entendu. Quelle surprise quand le professeur Brock vous a recommandé ! J'en ai bavé, mais j'ai beaucoup appris. ~^^"; Attend(); print "~Vous en avez bavé...~ je murmure, encore sous le coup de l'étonnement.^^"; Attend(); print "~Oui, le Père Fontenelle, le Dragon des Amphis, le Professeur que personne ne veut avoir. Un jour, vous m'avez mis mis 0.25 sur 20 parce que j'avais confondu les fresques de Lippi des cathédrales de Spoleto et Prato. Je peux vous dire que j'en ai encore un mauvais souvenir. ~^^"; Attend(); print "Mon élève ! Alors qu'il y a quelques minutes je la craignais comme une espionne, elle n'est qu'en fait qu'une disciple de l'école Fontenellienne. Rassuré par cet ascendant inattendu, je remets mes lunettes en expliquant :^^"; Attend(); print "~0.25 ? J'étais jeune. Inconscient. ";Italique();print "Laxiste.";Normal();print " Aujourd'hui, je vous aurais exclue du cours.~^^"; Attend(); PlayerTo(sorbonne); ]; [FaxF; print "^^Je lis le fax et je n'en crois pas mes yeux."; Attend(); print "^^~Vous avez des explications à me donner, Monsieur Fontenelle ~ me dit Giuliana posément.^^";Attend(); print "~Je n'ai pas d'explication : je tombe des nues, comme vous. D'ailleurs...~^^"; Attend(); print "Je perds le contrôle de la situation. Je me sens manipulé de bout en bout, mais il ne s'agit plus là de pièces d'échecs, il y a un trésor de l'histoire de l'Art ici en jeu, et je suis directement impliqué !^^"; Attend(); print "~D'ailleurs, je suis piégé depuis le début. Par Brock, qui m'envoie à sa place, puis dans cette histoire de Botticelli. Ou plutôt, de cadre de Botticelli. Cela n'a ni queue ni tête, vraiment. ~^"; Attend(); print ";^~Vous avez des ennemis ?~^"; Attend(); print "^~Non, personne pour échafauder quelque chose d'aussi tordu...je dois parler à Maurice. ~^^"; ]; [Telb2; print "^^Le département histoire de l'art me passe rapidement le bureau de Maurice."; Attend(); if (faxl.lu==1) { print "^^~Alors vieux, il paraît que Florence a un temps magnifique en ce moment ?~^^"; Attend(); print "~Mauvaise conjecture, Professeur, je suis de retour à Paris. Je te dérange pendant un interview ? Car ici on ne peut pas ouvrir un magazine sans tomber sur ta photo. ~^^"; Attend(); print "~Est ce que je sens ";Italique();print "de la jalousie ?~^^";Normal(); Attend(); print "~Plutôt un regret de ne pas te voir plus souvent en chair et en os. A propos d'os, j'en suis tombé sur un gros, avec cette histoire de Calomnie. ~^^(en quelques phrases, je résume la situation. Avec une clarté d'esprit qui me surprend, il conclut :)^^"; Attend(); print "~Il va falloir inévitablement vous rendre en Europe de l'Est, c'est évident. Mes excuses pour t'avoir entraîné dans cette histoire...mais quelqu'un t'en veut, apparamment. Toutefois, plus que de savoir ";Gras();print "qui";Normal();print" est derrière cette situation grotesque, et donc d'entamer cet incertain voyage, j'aimerais savoir ";Gras();print "pourquoi";Normal();print".^^A brûle-pourpoint, je vois deux pistes résolutoires : ^^"; Attend(); print "1) l'examen de cadres authentiques du même artisan de la même époque pour la même famille afin de déterminer si nous ne sommes pas passés à coté d'un élément de valeur caché. Je ne te rappelle pas, Gilbert, que les cadres étaient surtout une fioriture apparue il y a deux siècles seulement ; à ce sujet je vais compulser certains de mes registres pour voir si je n'ai pas à proximité une piste digne d'être suivie. ^^"; Attend(); print "2) Une lecture de l'Ekphrasis ayant servi à la réalisation de la Calomnie s'avère indispensable. Je veux parler de ";Italique();print "l'original,";Normal();print" celui qui fut entre les mains de notre ami Alessandro et de la famille Médicis. J'espère que tu n'as rien oublié de ta grammaire italienne médiévale. ~^^"; Attend(); print "Je reste consterné puis je lui dis :^^"; Attend(); print "~Quoi ? Tu dis que je retourne à Florence ?~^^"; Attend(); print "~Mais non. L'Ekphrasis en question se trouve à un jet de pierre de ton bureau, dans la collection des livres anciens de la bibliothèque Ste Genevieve. Celle qu'ils gardent dans une pièce protégée comme la Banque de France - je suis certain qu'un grand mufti de l'histoire de l'art comme toi a ses entrées dans ce type de gargotte. ~^^"; Attend(); print "N'osant par fierté le contredire sur ce dernier point, je renvoie la plaisanterie d'un air pincé et je le laisse à ses recherches.^^"; Attend(); print "Bien. Ekphrasis de Lucien de Samosate. Bibliothèque Ste Genevieve.^^"; Attend(); print "Ca ne devrait pas trop être compliqué. ";Italique();print "Pas trop.^^";Normal(); faxl.lu++; } else {print "^^Mais apparemment, il n'a pas l'air d'être ici. Bah, je n'ai qu'à réessayer un peu plus tard.^^";} ]; [Chambre; Affiche(46); Affiche(39); print "^Le gardien pose le téléphone et m'interpelle dans la confusion générale :^^~Hé là ! Monsieur ! Cette section est ";Gras();print "réservée !~";Normal(); Attend(); print "^^Mais j'ai bien l'intention de ne pas me laisser arrêter cette fois.^^"; Attend(); print "J'appuie sur le bouton et les deux portes de l'ascenseur s'ouvrent. Le vigile s'avance, mais bute sur les livres et s'étale tout de son long sur le sol, dans un bruit mat qui me fait deviner qu'il est bon pour le pays des rêves pour un petit moment.^^"; Attend(); print "Et non sans plaisir, je savoure les longs instants durant lesquels les portes de l'ascenseur se referment, pour m'emmener dans le saint des saints de la bibliothèque.^^"; Attend(); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,47,0,0); Attend(); Joue(188); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,48,0,0); Attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,49,0,0); Attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); Affiche(50); Joue(113); print "^^Quelques heures - et tant de réflexions - plus tard, je retrouvais un vieil ami non loin du Louvre.^^"; Attend(); Affiche(51); print "~Aha, Gilbert le Dragon sort de sa tanière ! La météo n'a pourtant pas annoncé de tremblement de terre...~^^"; Attend();Italique(); print "~Le Dragon ? ";Normal();print " C'est quoi cette histoire de ";Italique();print "Dragon ?";Normal();print " C'est la deuxième fois qu'on m'en parle aujourd'hui !~^^"; Attend(); print "~Et bien, c'est ainsi que te surnomment tes élèves : Gilbert le Dragon. Confondez un Cimabue et un Giotto, et il crachera des flammes pour vous rôtir, c'est bien connu.~^^"; Attend(); print "Je prends un petit temps de réflexion et déclare :^^"; Attend(); print "~En fait, je crois que je n'ai pas la possibilité de cracher des flammes. Mais effectivement, je pense que cela pourrait arriver si un de mes élèves venait à confondre ces deux peintres. Ils sont différents comme...comme le rouge et le bleu !~^^"; Attend(); print "Henri éclate de rire et me montre le chemin : ^^"; Attend(); print "~Allez Professeur, oublie la Pyramide, tu as droit à l'entrée des artistes. ~^^"; Attend(); print "Et je suis le Directeur du Louvre au travers de la Porte des Lions, dans un musée dont le silence de tombe n'est brisé que par nos pas résonnant, sous le regard sans pardon de statues trop familières."; Attend(); Affiche(52); print "^^Je remarque que le Musée est anormalement désert. Henri m'explique :^^"; Attend(); Affiche(51); print "~Tu es tombé le bon jour pour me demander ton petit service. Aujourd'hui, c'est la réunion des actionnaires de Auchan et ils sont installés dans la cour Napoléon, et...~^^"; Attend();Italique(); print "~Les supermarchés ?";Normal();print" Dans la cour Napoléon ? Ils font quoi, ils vendent du jambon devant les Noces de Cana ?~^^"; Attend(); print "Henri me fait signe de me taire : ^^"; Attend(); print "~Tu parles des plus grands mécènes de notre Musée. Ils nous donnent les moyens de protéger nos trésors, un peu de respect, Gilbert.~^^"; Attend(); print "(Je me braque et ne dis mot mais je n'en pense pas moins que la plupart des pièces exposées sont des copies, les originaux étant précieusement scellés dans des coffres inviolables et oubliés, et que l'argent sert surtout à montrer que l'on protége quelque chose, donc que ce sont peut être des vrais, enfin, ";Gras();print "BREF";Normal();print ".)^^"; Attend(); print "Henri précise :^^"; Attend(); print "~D'habitude, même pour un grand manitou comme toi, et bien sortir un tableau, ca demande, des autorisations, des rapports, des employés, des services de sécurité...etc...mais avec cette histoire de réunion d'actionnaires, le Musée est à nous, si je puis dire, puisque les forces de police sont par dizaines tout autour de la cour Napoléon, et qu'il n'y a rien de plus protégé pour le moment..."; Attend(); Affiche(53); print "^^Henri m'emmène jusque devant la fresque de la villa Lemmi, de Botticelli."; Attend(); Affiche(51); print "^^~L'endroit est pas mal, non ? Attends moi ici. Je reviens avec le Botticelli, nous nous installerons dans le salon Carré. ~"; Affiche(53); Attend(); print "^^Et je me retrouvais seul devant la fresque. En un sens, le Musée que pour moi, sans même un seul gardien, c'était un peu mon fantasme d'étudiant..."; Attend(); print "^^Avec la naïve exaltation du passionné, je carressais du regard la fresque. Certes, Botticelli était un maître d'une période un peu postérieure à ma spécialité, mais...mais je sais reconnaître le Génie, et Botticelli, l'avait, le Génie."; Attend(); print "^^Aprés, je crois me souvenir qu'il y a eu comme un bruit. ";Italique();print "Un frôlement. ";Normal(); Attend(); print "^^Mais je n'ai rien vu venir.^^";Attend(); glk_window_clear(gg_mainwin);Joue(203); Attend(); Affiche(54); print "^^Mon inconscience n'a pas duré longtemps.^^"; Attend(); print "J'avais sacrément mal à la tête - ils étaient deux et ils m'avaient assis quelque part, une sorte de banc tapissé confortable, un bandeau sur les yeux, et les mains liées derrière le dos.^^"; Attend(); print " Ils parlaient en italien, rapidement, je comprenais pas tout, ils voulaient me poser des questions et semblaient particulièrement angoissés - alors que c'était plutôt moi qui devait paniquer.^^"; Attend(); print "Ils m'ont remonté une manche de chemise, et la piqure mordante d'une seringue me glissa le long du bras.^^";Attend();print "Je me sentis aussitôt beaucoup plus détendu...beaucoup plus calme...wow... pourquoi ils interdisent les drogues ? Et tout d'un coup, je me sentis ";Italique();print "basculer.^^";Normal();Attend(); while(child(gilbert)~=0) {move child(gilbert) to stockage;} move sceau to gilbert; give sceau worn; move pandoradream to gilbert; PlayerTo(dream); ]; [Barque; print "^~Quelque soit la valeur de cette boite, déclarais-je, elle ne vaut pas la mort de Laurent de Médicis, celui qui a apporté tant de chefs d'oeuvre au monde. Tu peux la prendre.~^^"; Attend(); Affiche(57); print "Laurent s'exclame :~Tu te trompes ! C'est le trésor le plus ";Gras();print "précieux";Normal();print" de notre famille !~^^"; Attend(); print "Mais je tends déjà la boite à notre agresseur sur le visage duquel se dessine un large sourire.^^ "; Attend(); print "Et quand je lui tends la boite, ce n'est pas sa main libre, mais l'autre, qui s'avance vers moi, et une douleur me déchire le ventre quand sa dague m'ouvre le corps de bas en haut.^^"; Attend(); print "Je tombe sur le sol en lachant la boite, et celle ci tintinabule alors que je sens mon sang chaud inonder mes vêtements. J'entends mon frère saisir l'arme de mon assassin et le frapper en criant vengeance. "; Attend(); print "^^La boite tombe devant mes yeux et s'entrouvre...mais je n'y verrais rien, car c'est alors que la mort me prend. "; Attend();Gras(); print "^^***Fin du Jeu***";Normal();print "^^Bon, ben voilà, fin du jeu Ekphrasis.";Attend();print "^^J'espère que vous vous êtes bien amusé.^";Attend();print "Vous avez 100 points sur 100, mazette, c'est un super score, ca.^";Attend();print "Oui, cette histoire de boite qui s'ouvre sur le néant, cela vous rappelle Lynch, n'est ce pas ? Comme disait justement ce bon vieux Lynch, l'important c'est l'idée, et pour l'occasion, ce final en manque cruellement.^";Attend();print "Ah, et la signification de la fin, le coeur de l'histoire ?^^ ";Attend();print "Franchement, j'en sais trop rien. ^^A plus !";Attend();Gras();print " ^^Souhaitez vous *recommencer*, *charger* une partie, *un grec avec ou sans frites*, *salade* *tomates* *oignons* ou *quitter* ?";Normal(); Attend(); glk_window_clear(gg_mainwin); print "^^Hola !"; Attend(); print "^^Hé !"; Attend(); print "^^On dirait que suis encore opérationnel les amis ! "; Attend(); print "^^Mais toujours ";Italique();print "vivant,";Normal();print " ca c'est une autre histoire...^";Attend(); remove pandoradream; remove epee; PlayerTo(acheron); ]; [ToIsle; print "La voix caverneuse de Charon résonne alors qu'il prend en main sa rame.^^"; remove rame; Attend(); print "~Nous pouvons y aller maintenant. ~^^"; Attend(); print "Et nous avançons, sur l'Acheron devenu calme, dans un horizon de brumes et de ténèbres.^^"; Attend(); Joue(62); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,64,0,0); Attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); Affiche(65); print "^Charon me dépose sur une plage au sable glacé, et repart silencieusement dans les ténèbres sans fin.^";Attend(); PlayerTo(plage); ]; [SimonettaTalks; print "^Cette étrange silhouette, non sans rappeller Simonetta Vespucci, tourne son regard vers l'Océan à mon approche :^^"; Attend(); print "~Il n'a pas voulu parler~, murmure-t-elle tristement dans un italien déformé par le temps.^^"; Attend(); print "~Pardon, que voulez vous dire ?~ m'entends-je prononcer malgré moi.^^"; Attend(); print "Simonetta tourne alors un regard dur à mon encontre : ^^"; Attend(); print "~Gilbert Fontenelle ne vous dira rien. Il n'est pas homme à faire semblant. Les professeurs d'histoire de l'art, surtout de la Renaissance, ne jouent pas, quelles que soient les circonstances, et apparemment, celui-ci est en plein délire. ~"; Attend(); print "^^Je me dois de réagir et lui explique : ^^"; Attend(); print "~Mais non Simonetta, je suis parfaitement lucide. ~^^"; Attend(); print "D'autres mots sortent de ma bouche toujours malgré moi :^^"; Attend(); print "~Peu importe, nous savons où est l'Ekphrasis. ~^^"; Attend(); print "Simonetta reprend : ^^"; Attend(); print "~L'Ekphrasis n'est rien sans celui qui peut la lire, la comprendre, et en tirer les informations essentielles - mais il n'y a pas que Fontenelle - allons voir l'autre, nous devons comprendre pourquoi il est venu ici. Que l'un d'entre vous reste ici pour le surveiller et vienne nous chercher s'il émerge. ~^^"; Attend(); print "Je reste en retrait, intrigué par ces phrases absurdes.^"; Attend(); ]; [ApparitionStG; print "^Alors que je progresse sur les dalles résonnantes de cette crypte obscure, je perçois, à quelques mètres devant moi, comme...";Italique();print "comme un déchirement.^^";Normal(); Affiche(68); Attend(); print "Et une vision hallucinante se présente à moi : un cavalier, non, un chevalier, en armure, se détache d'un mur et trotte doucement vers moi, puis barre le passage de sa lance.^^"; Attend(); print " Je ne bouge pas, regardant curieusement ce morceau d'étoffe vivant, arraché d'une toile que je ne connaissais que trop, et je me frotte les yeux.^^"; Attend(); print "Et sa voix rugit alors au travers de son heaume de toile :^^"; Attend(); print "~Je suis ";Italique();print "déçu.~^^";Normal(); Attend(); print " ~Pardon ? Que voulez vous dire, Monsieur Saint George ?~^^"; Attend(); print "Il tire la bride de sa monture qui tourne sur elle même. Un instant je vois le dos de toile tissée brune du tableau, et il revient : ^^"; Attend(); print "~Et bien, voyez vous, je pensais que je le Dragon que j'affronterais serait plus...plus écailleux, plus vert. Les flammes et tout le tintouin.~^^"; Attend(); print "~Moi, un dragon ? Mais pourquoi tout le monde m'appelle Dragon ? Ca devient une manie !~^^"; Attend(); print "Saint George ajuste son heaume et prépare sa lance, puis déclare gravement : ^^"; Attend(); print "~Je vois. En garde, Dragon. Je vous laisse attaquer le Premier. Pour Dieu et mon Roi !~^^"; Attend(); print "Oh, et mince.^^"; Attend(); ]; [Reveil; maurice.louvre=1; print "^~Giotto ! ";Gras();print "GIOTTO !";Normal();print "~ je réponds de plus en plus fort, et plus je réponds, plus les choses s'assemblent, plus je prends conscience de moi même et plus je m'extirpe de ce rêve absurde.^^"; Attend(); print "Je me retourne, et la pièce vide et carrée s'efface, et quand je me retourne encore, il n'y a plus le tableau, mais...^^"; Affiche(71); Attend(); Affiche(72); print "~Gilbert ? ";Italique();print "Gilbert, mon vieux, tu émerges, oui ?~^^";Normal(); Attend(); print "~Maurice ! Mon vieux. J'ai tué Dante, tu sais. ~^^"; Attend(); print "~Et bien, je suppose que tu avais de bonnes raisons. ~^^"; Attend(); print "~Et Virgile aussi. ~^^"; Attend(); print "~Bah, Christian Jacq a bien tué Ramses !~^^"; Attend(); print "Je prends conscience de mon environnement : j'ai les mains attachées dans le dos, assis sur un divan bleu du Salon Carré du Louvre, et Maurice Brock qui me secoue. A terre, un homme est étendu, probablement en voyage dans les étranges endroits que je viens de quitter.^^"; Attend(); print "~Me dis pas que c'est toi qui lui a réglé son compte ?~^^"; Attend(); print "Brock me montre une petite statue brisée sur le sol : ~ je l'ai assomé avec ce faune dansant période classique. ~^^"; Attend(); print "~Ma vie ne vaut pas un faune dansant !~^^"; Attend(); print " ~Nous sommes d'accord, mais regarde la texture : le marbre n'est pas du Bosphore. C'est une copie. ~^^"; Attend(); print "~Ouf, me voilà soulagé. ~^^"; Attend(); print " Maurice passe derrière moi pour défaire mes liens : ^^"; Attend(); print "~Et l'Ekphrasis ? ~^^"; Attend(); print "~Tu ne devineras ";Gras();print "JAMAIS";Normal();print" : annotée par Laurent le Magnifique en personne. Une découverte d'importance majeure, de quoi alimenter des thèses jusqu'à la nuit des temps. Et aussi une histoire de Cassone...~^^"; Attend(); print "Maurice abandonne son ouvrage et revient devant moi : ^^"; Attend();Italique(); print "~Le Cassone Familial ?~^^";Normal(); Attend(); print "~ Tu vois ce que c'est ?~^^"; Attend(); print "~C'est en cherchant le créateur des cadres que je suis tombé sur cette histoire. Quelque chose d'incroyable. Je pourrais t'en parler, mais je te connais, tu ne vas pas me croire. ~^^"; Attend(); print "~Tu sais, il y a quelques minutes, je parlais à Saint Georges, alors tu pourrais me dire que le Cassone est l'Arche d'Alliance que je ne serais pas surpris. ~^^"; Attend(); print " Mais Maurice, loin de rire, me regarde d'un air très grave, et je lui rend son regard, presque effrayé. Il murmure : ^^"; Attend(); print " ~Les Médicis étaient de grands marchands, et leurs hommes drainaient les trésors du monde jusqu'à eux en cette époque...~"; Attend(); print "^^J'éclate de rire alors que Maurice termine de dénouer mes liens : ^^"; Attend(); print "~Et pourquoi pas la ";Italique();print "boite de Pandore";Normal();print" pendant que tu y es ?~^^"; Attend(); print "~Tu ne crois pas si bien dire ! ~ murmure Brock avec passion, puis il tourne la tête : ~Chut ! Il y en a d'autres dans la galerie des italiens !~^^"; Attend(); PlayerTo(saloncarre); while(child(gilbert)~=0) {remove child(gilbert);} while(child(stockage)~=0) {move child(stockage) to gilbert;} ]; [ToMonteNegro; print "^Un regard de connivence avec Maurice - nous l'avons déjà fait quelques minutes plus tôt. Et nous poussons ensemble le pharaon qui tombe avec fracas sur les olibrius, un fracas effroyable qui retentit dans les couloirs vides du Musée.^"; Attend(); print "^Des clameurs - des clameurs en italien répondent d'en bas, et d'ailleurs.^"; Attend(); Affiche(72); print "^Maurice s'exclame alors : ~Police ! On ne bouge plus !~, mais sa voix porte peu, et comprenant son stratagème, je me mets à hurler : ";Gras();print "~POLICE !~^^";Normal(); Attend(); print "~Quelle voix ! ~ s'exclame Maurice. ~ Un vrai ténor des amphis.~^^"; Attend(); print "~Je me suis imaginé un instant qu'un de mes élèves avait confondu Raphael et Perugin. Le genre de truc qui te fait déballer tes tripes, tu vois. ~^^"; Attend(); print "Un bruit de pas, plus bas.^^"; Attend(); print "Nous nous penchons à la rambarde : ces bandits s'étaient enfuis, enfuis avec Giuliana en otage, mais par bonheur, avaient laissé notre Henri ligoté à sa chaise.^^"; Attend(); Affiche(52); print "Nous descendîmes promptement le libérer, en prenant bien garde que les autres se soient bien enfui.^^"; Attend(); print "Alors que Maurice dénouait ses liens, Henri s'exclame : ^^"; Attend(); Affiche(51); print "~Mais qui sont ces malotrus ? Me kidnapper ";Italique();print "dans mon propre Musée !~^^";Normal(); Attend(); Affiche(52); Affiche(72); print "~C'était notre ami Gilbert qu'ils voulaient. ~^^"; Attend(); print "~Mais Brock m'a tiré de là, ~ expliquais-je.^^"; Attend(); Affiche(52); Affiche(51); print "~Au moins, ils n'ont rien volé - les alarmes fonctionnaient, enfin, je crois. ~^^"; Attend(); print "Brock affiche un visage contrarié, en échangeant un regard avec moi.^"; Attend(); Affiche(52); Affiche(72); print "^~En fait, j'ai une mauvaise nouvelle. Je crois que l'un d'entre eux a cassé un faune dansant période classique. Enfin, une reproduction, je crois. ~^"; Attend(); print "^Henri accueille la nouvelle avec un froid soulagement : ^^"; Attend(); Affiche(52); Affiche(51); print "~Bah, les reproductions, nous en avons plein nos caves. ~^"; Attend(); print "^Je m'éclaircis la voix et ajoute : ^^"; Attend(); print "~Je n'en suis pas sûr, mais il me semble avoir vu une statue brisée dans le Hall Michel Ange, l'esclave mourant, ou je ne sais quelle copie, ha ha ha. ~^^"; Attend(); print "Brock accompagne sans enthousiasme mon rire lugubre, mais Henri, lui, ne rit pas du tout, au contraire : il devient livide.^^"; Attend(); Affiche(52); Affiche(51); print "~L'Esclave Mourant n'est ";Gras();print "PAS";Normal();print" une copie. ~^"; Attend(); print "^Brock lui montre le morceau de marbre : ^^"; Attend(); Affiche(52); Affiche(72); print "~Pourtant regarde, on dirait que le marbre n'est pas de la qualité de celui qu'utilisait Michel Ange. ~^"; Attend(); print "^Nous nous penchons tous les trois sur le morceau de marbre : soit j'ai brisé l'Esclave Mourant de Michel Ange et j'ai fait une belle bêtise avec Mister Brock l'expert mondial de la Renaissance, soit le directeur du Louvre s'est fait pigeonner en pensant posséder un original de Michel Ange.^^"; Attend(); print "Aprés quelques minutes de méditation sur le caillou, Henri dit :^"; Attend(); Affiche(52); Affiche(51); print "^~Bon.~^"; Attend(); Affiche(52); Affiche(72); print "^Ce à quoi Brock répond : ~Bon. Bon.~ et auquel je conclus logiquement : ~Bon. Bon. Bon ~^^"; Attend(); print "Henri demande : ^"; Attend(); Affiche(52); Affiche(51); print "^~Et maintenant vous allez dire qu'ils ont donné des coups de couteau dans mes Poussin ?~^^"; Attend(); print "~Non, devrais je dire d'ailleurs ";Gras();print "HELAS NON,";Normal();print " les Poussins ont été épargnés. On ne peut pas en dire autant d'un Pharaon juste au dessus, là bas, mais bon, tu connais les Pharaons, tu vas en Egypte, et n'importe quel caillou enterré, c'est un bout de statue qui dépasse. ~^^"; Attend(); Affiche(52); Affiche(51); print "Henri, livide, semble mal tenir sur ses jambes...~en pleine réunion d'actionnaires de nos mécènes...~ suffoque-t-il.^"; Attend(); print "^Nous convîmes de laisser Henri de contacter les autorités avec son équipe tandis que Brock et moi nous nous eclipserions...il aurait été difficile d'expliquer notre présence avec la bénédiction d'Henri en coï ncidence avec la Réunion d'actionnaires...et Henri voulait à tout prix qu'aucune publicité ne soit faite autour de l'évènement - surtout une publicité du style ~Opération Vandalisme Au Louvre~ !^"; Attend(); Affiche(76); print "^Nous nous retrouvâmes donc de façon fort appropriée et pittoresque sur le Pont des Arts."; Attend(); print "^^ Entre les couples de touristes arpentant le pont de bois reliant l'Hotel de la Monnaie au Musée Eternel, des jeunes et des moins jeunes pique-niquaient à la lumière des reverbéres et au son de leurs guitares, étouffées par le ressac de la Seine poussé par les bateaux mouches fuyant au dessous.^"; Attend(); print "^~Mon vieux Brock, ~ déclarais-je enfin, ~je n'ai pas de raison de te le dire, parce qu'au final, tu es la cause de tout ceci, mais, tu m'as tiré d'un mauvais pas, et je te dois une fière chandelle. Pauvre Giuliana. Où l'ont-ils emmenée ? ~^^"; Attend(); Affiche(72); print "Brock était songeur : ~Qu'as tu lu dans l'Ekphrasis qui nécessitait un tel déploiement de forces ?~"; Attend(); print "^^~Hé hé. Tu l'as dit toi même, le Cassone Familial ! ~^"; Attend(); Affiche(72); print "^~Tu n'y crois pas une seule seconde. ~^"; Attend(); print "^~C'est tout à fait exact, cher Professeur. Je ne crois pas aux trésors cachés sous le X de la carte. Encore moins quand ils datent de la Renaissance. En la matière, tous les trésors, les trésors matériels, bien entendus, ont été découverts, classés, étudiés, laissant libre cours à l'inépuisable recherche des trésors des symboles, des significations, des talents, du sacré que ces trésors renferment. ~^"; Attend(); Affiche(72); print "^~Et pourtant, ~ déclare Brock...~Et pourtant, voici ce que je crois : Il y a un secret que les Médicis appelaient Le Cassone, et ce secret a été caché. Et le cadre de la Calomnie est une clef, pensent certains, donnant accès à ce secret. ~^"; Attend(); print "^J'éclate de rire : ^"; Attend(); print "^~Alors voici la théorie Fontenellienne, disons plutôt : ";Italique();print "la théorie du bon sens.";Normal();print " Une copie parfaite de la Calomnie a été réalisée et les tableaux substitués. Ce soir, Maurice Brock n'a pas identifié la copie de l'original de son sujet d'élection, alors pourquoi pas ? ~"; Attend(); print "^^Des relents de drogue donnaient aux visions changeantes de la lumière sur l'eau des éclats surréels. "; Attend(); Affiche(72); print "^^~Il va falloir te rendre au Monte Negro, Gilbert. Récupérer ce cadre. Tacher d'y voir clair dans cette histoire, ~ me dit Brock, toujours songeur.^"; Attend(); print "^~Non, je laisse tomber, fis je en m'appuyant sur la rambarde. La Calomnie est là bas, qu'elle y reste. En tant qu'historien de l'Art, ce sont les faits qui m'interressent, pas les objets en soi, qu'ils aient disparu ou non. ~^"; Attend(); Affiche(72); print "^~Je ne suis pas venu à Paris, explique Brock, parce que j'avais trouvé quelque formidable scoop à te faire part - il reste le téléphone, et généralement, les scoops, on les garde pour soi et pour les journalistes le moment venu. Je suis venu, Gilbert, parce que j'ai découvert que Giuliana était une de tes anciennes élèves. ~^"; Attend(); print "^~Rien de nouveau sous le soleil. ~^^"; Attend(); Affiche(72); print "~Et que son nom était Giuliana P. Ricasoli. P comme Pazzi ?~^"; Attend(); print "^~Ou comme Pasta Al Dente. Cela ne nous mène nulle part. ~"; Attend(); Affiche(72);Italique(); print "^^~Et qu'il n'y a aucun conservateur du Musée du Vatican - ou personne dans la hierarchie du nom de Giuliana Ricasoli. ~^"; Attend();Normal(); print "^Là, je reste complètement abasourdi. ";Attend(); print "^^Je ne comprends même pas ses paroles, et ma pensée les rattrape en retard, alors que Brock poursuit :^"; Attend(); Affiche(72); print "^~Un groupe de personnes est en train de déployer des moyens formidables pour retrouver ce cadre de tableau qui leur échappe. Je crains que Giuliana était tout sauf un otage ce soir, non au contraire. Mon vieux, tu sais, je suis vraiment désolé, vraiment, de t'avoir lancé dans cette histoire. Et comme je te l'ai dit, je crois qu'il va falloir que tu ailles là bas, le récuperer...^^";Attend();print "au Monte Negro. ~^^"; Attend(); Joue(181); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,77,0,0); Attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); Affiche(78); print "^Un taxi hors d'âge me conduit rapidement jusqu'à la villa Nouée - une propriété perdue dans les collines peuplées de pins maritimes - en fait, une propriété si grande, que depuis la route, on ne voit qu'un grand jardin.^"; Attend();Italique(); print "^Fourbe habitant de ces lieux, à nous deux !^";Normal(); Attend(); maurice.louvre=0; PlayerTo(entrance1); ]; [Aristo; entrance2.vu=0; remove galina; glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); Joue(181); glk_image_draw(gg_mainwin,224,0,0); Attend(); Nettoie(); glk_image_draw(gg_mainwin,225,0,0); Attend(); Nettoie(); Joue(182); glk_image_draw(gg_mainwin,226,0,0); Attend(); Nettoie(); glk_image_draw(gg_mainwin,109,0,0); Joue(199); Attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); Affiche(110); print "^Me voilà donc au Dziadzio, un bar lounge beaucoup trop classieux pour le quartier angoissant de Varsovie où Aristo - le pseudonyme du contrefacteur manipulateur, mais contrefacteur éclairé, m'a envoyé.^^Je me souviens encore de ses instructions :^"; Attend(); Italique(); print "^Mon créancier se trouve être le propriétaire du Diadzio, je vais vous donner l'endroit exact où vous pourrez le trouver. Il n'est pas question de frapper à la porte et de demander le cadre du tableau - vous vous retrouveriez patageant les eaux de la Vistule avec une bouée en ciment - mais rassurez vous, je sais comment procéder, et si vous êtes adroit, cela se passera sans souci. Présentez vous à la tombée de la nuit, et commandez un spécial au bar. Si l'on vous demande si vous avez de quoi payer, montrez leur l'argent que je vais vous confier. ^"; Normal(); Attend(); print "^Bien. Gilbert Fontenelle, il ne sera pas dit que tu reculeras devant les bas fonds de Varsovie. Surtout pour Laurent de Médicis !^^"; move billets to gilbert; Attend(); PlayerTo(diadzo); ]; !------------------------------------------------------------------------------- ! Fonctions Diverses !------------------------------------------------------------------------------- [AGiuliana k; if (pipe in gilbert && pipe has on && giuliana.plot>0) {print "^^ Giuliana tousse, bat l'air de ses mains et me dit :^^~Désolée, mais je ne supporte pas la fumée du tabac...~^^";} k = random(50); switch(k) { 1: print "^Giuliana sort un petit carnet, y écrit une petite note, et le range dans la poche de sa veste.^"; 2: print "^Giuliana serre une petite croix qu'elle porte autour du cou. ^"; 3: print "^Mon amie italienne croise les bras et s'appuie contre un mur. ^"; 4: print "^Giuliana me regarde agir avec une attention perturbante. ^"; 5: print "^Ma correspondante italienne semble assez circonspecte. ^ "; 6: print "^Giuliana ouvre un petit manuel et le consulte à une page précise. ^"; 7: print "^Dame Ricalosi chantonne un petit air qui me tape sur les nerfs. ^"; 8: print "^Giuliana se recoiffe en quelques mouvements de main. ^"; 9: print "^Giuliana éternue. ~Excusez moi, la poussière, le pollen...~^"; 10: print "^Ma guide romaine croise les mains et reste silencieuse. ^"; 11: print "^Giuliana étouffe un toussotement venu briser ma concentration. ^"; 12: print "^Giuliana occupe ses mains avec un petit crayon à papier. ^"; 13: print "^Giuliana se penche vers moi : ~Vous voyez quoi faire ?~ me dit-elle.^^Et bien oui, je vois. Enfin, je crois.^"; 14: print "^Giuliana s'étire. ^"; 15: print "^Giuliana baille. ~Concentrez vous, s'il vous plaît~, lui-dis je en la rappelant à l'ordre. ^ "; 16: print "^Giuliana échappe son dossier au sol, et ramasse tout maladroitement. ^"; 17: print "^Giuliana marmonne quelques mots en italien. ^"; 18: print "^Giuliana réajuste son tailleur. ^"; 19: print "^Giuliana regarde par dessus mon épaule, qu'est-ce-qu'il y a ?^"; 20: print "^Ma guide romaine fait les cent pas nerveusement. ^"; } ]; [PGiuliana k; Affiche(10); k = random(10); switch(k) { 1: print "^~Vous pensez que nous allons y arriver, Professeur ?~^^J'émets un petit grognement pour toute réponse. ^"; 2: print "^~Vous aimez Botticelli, Professeur Fontenelle ?~^^~Non, je lui préfére son maître, Lippi. Remarquez, je préfère Raphael à Perugin, vous vous doutez pourquoi, ha ha !~^^Mais elle ne rit pas du tout. Face à ce grand moment de solitude, je pense à Michael Ange, resté seul quelques années tout seul lui aussi, dans la Chapelle Sixtine. Incompris. ^"; 3: print "^~Comment définiriez vous l'histoire de l'art, Professeur Fontenelle ?~^^~C'est la science des techniques de l'homme face à l'absurdité du monde. C'est aussi un sacré vivier pour snobs. ~^"; 4: print "^~Professeur, je vous laisse faire, je pense que vous êtes plus compétent que moi sur ce sujet. ~^^Certes. Mais face à ce type de problème, n'importe qui a autant de compétences qu'un autre. ^"; 5: print "^~Professeur Fontenelle, vous avez déjà songé à arréter de fumer ?~^^(ton glacial :) ~Non. ~^ "; 6: print "^~Giuliana, avez vous une idée ?~^^~Désolée, aucune. ~^^Je m'en serai douté, tiens. ^"; 7: print "^~Giuliana, ce qui me plairait, maintenant, c'est un bon verre de Bourgogne. ~^^~Ah. Je ne bois pas d'alcool en ce qui me concerne. ~^^~Vous êtes de la nouvelle génération, c'est ca ? Un jour, vous terminerez transformés en robots, avec vos...téléphones, et vos...ordinateurs. Mais moi je lutte. Tabac et alcool. Et la peinture de la pré-Renaissance.~^^En fait, je n'ai pas répondu tout cela. Mais je l'ai pensé très fort. ^"; 8: print "^~Giuliana, qu'est ce que je ne donnerais pas pour un bon bain, un bon feu de cheminée et un bon livre. Tiens, un bon Duby des familles, ou un De Lasterie. ~^"; 9: print "^~Giuliana, aidez moi.~^^~Si je le pouvais, je le ferais. ~^"; 10: print "^~Giuliana, j'abandonne. J'en ai marre. ~^^~Mais nous y sommes presque, Professeur !~^"; } ]; [ParleBrock k; Affiche(72); k = random(4); switch(k) { 1: print "^~J'ai lu ton Bronzino. Excellent ouvrage.~, admets-je avec une modestie polie. ~Bon, il n'y a pas d'idées ";Gras();print "REVOLUTIONNAIRES";Normal();print" mais bon. ";Italique();print "Distrayant.~^^";Normal(); Attend(); print "Maurice me dit les lèvres pincées : ~Mon cher Gilbert. Entendrais-je de la ";Italique();print "jalousie ? ~^^";Normal(); Attend();Italique(); print "~Jaloux ? Gilbert Fontenelle ?";Normal();print " Pour quelques vagues interviews sur France Culture ? Pas du tout. ~ (Malheureusement, ma voix s'étrangle soudainement).^^"; Attend(); print "~J'ai pensé que l'approche Beau Livre était une voie originale et harmonieuse pour Bronzino : que le silence tire les rideaux des commentaires inutiles pour ne laisser place qu'à l'Art, qu'aux Images. ~^^"; Attend(); print "~Une approche Gombrischienne interressante. ~^^"; Attend(); print "~A moi la Gombrisch attitude, à toi la Panofsky attitude. A ce propos, j'ai lu ton dernier livre sur le mysticisme de Fra Angelico. Ca manque d'images. ~^^"; Attend(); print "~Grmbl. ~^"; Attend(); 2: print "^~On laisse tomber le noeud Papillon, Maurice ? La cravate rend mieux sur la couverture de beaux arts magazine ?~ ^^"; Attend(); print "~Le noeud papillon, c'est pour les cours magistraux. Là, je suis en villégiature. Et ton bob en tweed, tu l'as laissé au bureau ?~^^"; Attend(); print "~Non, il est probablement tombé dans l'Arno alors que je me battais avec les Pazzi. Tu sais, ton super plan expertise, le ";Gras();print "PLAN BROCK";Normal();print" pourrais-je l'appeler, celui qui consiste à aller faire des expertises quand on est pas expert, et de jouer les acrobates à la recherche de cadres de tableaux. ~^^"; Attend(); print "Maurice me regarde en fronçant les sourcils.^"; Attend(); 3: print "^~Nous voilà mon vieux, les deux monolithes du cromlech sacré de l'histoire de l'Art de la Renaissance. Aprés nous, c'est l'inconnu !~^^"; Attend(); print "~L'inconnu, exact, Gilbert. Et nous allons le découvrir. ~^^"; Attend(); print "~Nous ne sommes pas comme ces arrivistes, ces stars des amphis qui se font pâmer les demoiselles sur leurs discours sur l'Art Contemporain. ~^^"; Attend(); print "~Tout à fait Gilbert. L'arrière garde, certes, mais les gardiens du temple. Les gardiens du temple. ~^"; Attend(); 4: print "^~Regarde nous jouer les Disparus de Saint Agil dans ce musée...on se croirait revenu au temps de l'internat. ~"; Attend(); print "^^ ~Belphegor, plutôt. Mais nos virées estudiantines n'avaient rien de coupable, seulement pour étudier la nuit aux horaires de fermeture de la bibliothèque de la fac.~^^"; Attend(); print "~Qui a besoin de filles quand on étudie avec extase millimètre par millimètre la Chapelle Sixtine ?~^^"; Attend(); print "~C'est probablement ce que devait se dire Michel Ange. ~^"; Attend(); } ]; [Telb; if (telephone.phoned==0) { print "^Le bureau de l'histoire de l'art de l'université de Tours me passe rapidement la ligne du professeur Brock.^^Et le voilà qui s'exclame, avant même de dire bonjour :^^"; Attend(); print "~Alors Professeur Fontenelle, le climat de Rome vous réussit il ?~^^"; Attend(); print "Inutile de préciser que je bouillone de rage, mais je conserve ma dignité devant la signora et très professionnellement j'expose :^^"; Attend(); print "~J'ai la ";Gras();print "Calomnie d'Apelle";Normal();print" sous les yeux. ";Italique(); print "Tu connais ?~^^";Normal(); Attend(); print "~Je ne connais que cela, mon vieux. ~^^"; Attend(); print "~Evidemment, puisque c'est ";Gras();print "TOI";Normal();print " qui devrait être à ma place. Je suis ridicule ici.~^^"; Attend(); print "~Allons, allons, c'aurait pu être pire. Un ";Italique();print "Pollock";Normal();print " par exemple. (devant mon silence glacial, il poursuit :) Quel est le souci avec Alessandro ?~^^"; Attend(); print "Je lance un regard en coin à Giuliana et explique : ^^~Ils soupçonnent une substitution, et pensent que le père Fontenelle est moins cher que le carbone 14.~^^"; Attend(); print "~Il est plus sympathique en tout cas.~^^"; Attend(); print "~Ouais, ouais, rattrape toi. Plus sérieusement, tu n'aurais pas une photo récente de la Calomnie ? Autre chose que le Gombrish, tu vois, histoire de faire une analyse préalable, ils m'ont l'air paumés ici.~^^"; Attend(); print "Il répond qu'il m'envoie cela et note le numéro du fax.^";telephone.phoned++;fax.faxed=1;} else {print "Je n'ai pas d'interêt pour l'instant à appeler Maurice.^";} ]; [ToVenise; Joue(62); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,227,0,0); attend(); glk_window_clear(gg_mainwin); gg_mapwin = glk_window_open(gg_mainwin, (winmethod_Left+winmethod_Fixed),500, wintype_Graphics, GG_MAPWIN_ROCK); Joue(216); move avion to quai; Affiche(138); Attend(); ]; [Fin1; if (galina4.bisou==1 && mikolaj2.carted==1 && pandora.ouvert==2) { Joue(220); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,237,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,238,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,239,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,240,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,241,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,242,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,243,0,0); attend(); glk_window_clear(gg_mainwin); glk_image_draw(gg_mainwin,244,0,0); attend(); } else { Joue(197); glk_window_clear(gg_mainwin); glk_window_close(gg_mapwin,0); glk_image_draw(gg_mainwin,236,0,0); attend();} deadflag=1; ]; [Tangente; if (lettret.tel==0) { print "^^~Allo, Tangente, l'Aventure Mathématique, je vous écoute.~^^"; Attend(); print "~Bonjour, je suis Gilbert Fontenelle, j'ai bien reçu votre courrier et je voulais vous dire que j'étais ravi de venir en 3ème position après Duby et Brock. Vraiment. ~^^"; Attend(); print "Mon interlocuteur se racle la gorge et explique :^^"; Attend(); print " ~Ecoutez, nous ne sommes pas des experts en renaissance, et nous sommes allés vers les personnes qui...comment dire...~^^"; Attend();Italique(); print "~Vers les Stars.";Normal();print " C'est tout à fait compréhensible pour un magazine people. Alors je tiens à répondre à votre question : je ne suis pas interressé. Et je dois vous dire que...^^"; Attend(); print "je déteste^^"; Attend(); print "je hais^^"; Attend(); print "j'execre^^"; Attend();Gras(); print "je maudis^^"; Attend();Normal(); print "...tous les romans pseudos historiques et je ne risque pas d'en dire du bien - et sachez, que l'Histoire de l'ART est une science si abstraite, si subtile, si éthérée qu'elle est plus insaisissable que le plus insaisissable de tous vos théorèmes. Je vous prie donc de vous en retourner vers les Stars, les Brock et les Duby et les Gombrish qui sauront vous ";Gras();print "EBLOUIR";Normal();print " et je vous conseille de mettre des ";Gras();print "LUNETTES DE SOLEIL ! ! !~^^";Normal(); Attend(); print "Et je raccroche aussi sec, vlan !^^";lettret.tel++;} else { if (voiture1.compteur>0 && lettret.tel==1) { print "^Je compose fébrilement le numéro de Tangente Magazine. Pourvu qu'ils me répondent.^";Attend();print "^ ~Allo, Tangente, l'Aventure Mathématique, je vous écoute.~^^ Je tente : ~Si je vous dis : Più via più di meno, fa più di meno, que me répondez vous ?~^";Attend();print "^ ~Et bien, fait mon interlocuteur, amusé : Più via meno di meno, fa meno di meno. ~^";Attend();print "^ ~Quoi, vous connaissez cela ? Que cela signifie-t-il ?~^";Attend();print "^ ~Ola, ola, Professeur Fontenelle. Vous savez que vous nous avez mis dans le pétrin, là, parce qu'on comptait sur vous pour la prochaine édition. ~^";Attend();print "^Et mince, il a reconnu ma voix.^";Attend();print "^~Nous, on est prêt à vous aider question maths, mais il va falloir faire un effort de votre coté...~^";Attend();print "^ ~Bon, d'accord. Je vous ferais un topo aux petits oignons sur la Renaissance. ~^";Attend();print "^ ~Pour quand ?~^";Attend();print "^ ~Euh...écoutez, je vous passe les détails mais là j'ai pas trop le temps ni le matériel mais...~^";Attend();print "^ ~Nous bouclons demain. ~ (serais je encore en vie demain ?) ^";Attend();print "^ ~Ok, vous l'aurez ";Gras();print "DEMAIN. ~^";Normal();Attend();print "^ ~Bien. Les mots que vous avez dit signifient ~1 fois i égale i.~, avec i le nombre imaginaire. ~^";Attend();Gras();print "^ ~???~^";Attend();Normal();print "^ ~C'est curieux car c'est précisement l'objet de notre article sur la Renaissance, la résolution des équations du second degré, avec les Mathématiciens : Cardan, Bombelli, et...~^";Attend();print "^ ~Attendez, vous avez bien dit ";Italique();print "Cardan";Normal();print ", comme Jérôme Cardan ?~ (Aristo avait mentionné ce nom, mais à quel sujet ? Ah! J'aurais du prendre des notes ! Je déchire une page de mon carnet et note les renseignements de mon interlocuteur.)^";Attend();print "^ ~Passons. Disons que pour résoudre les équations du second degré, il a fallu créer un nombre que nous appelons imaginaire et noté i, mais que Bombelli appelait : piu di meno. Meno di meno signifiant - i. La particularité de ce nombre i, c'est que porté au carré il est égal au nombre -1. Afin de retenir les règles de manipulation de ce nombre, il écrivit la comptine suivante :^";Attend();Italique();print "^ Più via più di meno, fa più di meno.^ Più via meno di meno, fa meno di meno.^ Più di meno via più di meno, fa meno.^ Meno di meno via più di meno, fa più.^ Meno via più di meno, fa meno di meno.^ Meno via meno di meno, fa più di meno.^ Più di meno via meno di meno, fa più.^ Meno di meno via meno di meno, fa meno.^";Attend();Normal();print "^ Ce qui peut se traduire par :^^ (+1) x (+i) = +i^ (+1) x (-i) = -i^ (+i) x (+i) = -1^ (-i) x (+i) = +1^ (-1) x (+i) = -i^ (-1) x (-i) = +i^ (+i) x (-i) = +1^ (-i) x (-i) = -1~^";Attend();print "^ ~Et c'est tout ?~^";Attend();print "^ ~Vous voulez que l'on parle de la résolution des équations au dégré 3 ou 4 ? Ou de la Renaissance ? Si c'est le dernier cas, je crains, et j'espère, que vous soyez plus calé que moi !~^";Attend();print "^ ~D'accord, merci de votre aide. ~^";Attend();print "^ ~Passez nous voir demain !~^";Attend();print "^ ~Euh, j'essaierais d'être dans le quartier. ~";Attend();print "^Je raccroche.^";Attend();Italique();print "^Et également dans le même pays.^";Normal(); move pagecarnet to gilbert; } else { print "^^Euh, bon, je crois que je ne vais pas les rappeler de nouveau. ";}}]; [BiblioTel; print "^Je compose le numéro de la bibliothèque St Genevieve...^";Attend(); if (location==biblio2) {if (vigile.distracted==1) {print "^...mais ca sonne occupé. ^";Joue(192);Attend();} else {print "^...le téléphone sur le bureau sonne...^";Joue(175);Attend(); if (responsable in biblio2) {print "...la responsable décroche, mais comme je n'ai rien à lui dire (et que surtout je n'ai pas envie de lui parler), je raccroche.^";} else {print "...le téléphone sonne, un, deux coups et personne ne répond.^^";Attend();print "Puis le vigile s'approche et décroche : ~Allo ?~^";vigile.distracted=1;StartDaemon(vigile);} }} else {print "^...mais comme je n'ai rien à dire à ces nullos, je raccroche.^";} ]; [Animjardin k; k = random(30); switch(k) { 1: print "^Les cigales chantent doucement tout autour de nous. ^";Joue(189); 2: print "^Un rossignol se pose sur une branche, siffle, et s'envole vers la droite. ^";Joue(189); 3: print "^Une salamandre disparait sous un buisson devant moi. ^";Joue(190); 4: print "^Quelques placides nuages apportent une ombre de quelques instants au soleil de plomb. ^";Joue(190); 5: print "^D'ici, le ciel semble d'un bleu foncé presque violet ou se découpe un soleil aveuglant et assomant de chaleur. ^";Joue(191); 6: print "^Une petite brise fait bruisser doucement les arbres dans un chant apaisant. ^";Joue(191); 7: print "^Au loin sonne la cloche d'une église. ^";Joue(208); 8: print "^J'ai la sensation qu'on m'observe. ^";Joue(201); 9: print "^Une fragrance furtive de fleurs d'amandiers et de mimosa passe dans l'air. ^";Joue(202); 10: print "^Le gravier crisse doucement sous mes pas. ^";Joue(202); 11: print "^Une brise iodée monte depuis la mer. ^";Joue(201); 12: print "^Un merle sautille devant moi, puis s'envole sur ma gauche. ^";Joue(211); 13: print "^Je sens une bouffée de lavande et de laurier sauce passée dans un courant d'air chaud. ^";Joue(211); 14: print "^Un vent très léger me carresse et fait légérement tourbilloner les feuilles devant moi. ^";Joue(211); 15: print "^La chaleur rayonnante de ce ciel d'été est calmée par le vent frais venant de la mer. ^"; 16: print "^Les cigales murmurent, cachées dans les écorces des arbres. ^"; 17: print "^Avec dégout je remarque une couleuvre s'enfoncer dans un taillis. ^"; 18: print "^Le schiste chaud du sol reflete brillamment le soleil. ^"; 19: print "^Un petit lézard qui se faisait dorer sur une pierre s'enfuit à mon approche. ^"; 20: print "^Une tortue de terre disparait sous un buisson. ^"; } ]; [RencontreGalina; Attend(); print "^Alors que je monte ";Italique();print "(assez péniblement, il faut le dire)";Normal();print" les dernières marches de cet escalier, une silhouette se détache du mur, une jeune femme étrangement accoutrée et portant une valise."; Affiche(96); entrance2.vu=1; Attend(); print "^^Elle me dit une phrase en serbe ou en je ne sais quel dialecte slave et je lui réponds :^^~Désolé, moi je suis français : vous habitez ici ?~^^"; Attend(); print "Elle répond en souriant, dans un français parfait : ~Français, j'aurais du le deviner à votre physionomie. Non, justement, je vous demandais si vous étiez le propriétaire de ces lieux - car voyez vous, je souhaiterais le rencontrer. ~^^"; Attend(); print "~Et bien Madame - ^^"; Attend(); print "~Appelez moi Galina. ~^^"; Attend(); print "~Oui, Galina. Et bien nous sommes deux à vouloir rencontrer l'hôte de ces lieux. ~^"; Attend(); galina.stop=1; move galina to entrance2; Affiche(79); ]; [HotelGalina; Affiche(152); print "^A bout de forces, épuisé par le stress de cette poursuite, j'avance péniblement le long du tunnel menant vers la sortie...^^"; Attend(); print "Mais alors que j'arrive au bout, aveuglé par la lumière, je fais un faux pas et je glisse le long d'une pente qui me paraît interminable !^^"; Attend(); print "Je glisse dans une eau fraiche ou se déversent les immondices charriées depuis les égouts. Mon Dieu, je dois être tombé dans la Vistule !^^"; Affiche(125); Attend(); print "Durant des minutes interminables, des secondes éternelles, je me débats dans les remous afin d'aspirer les goulées d'air qui me maintiennent en vie, à moitié inconscient. ^^"; Attend(); print "Je trouve quand même la force de me rapprocher d'une rive, de m'aggriper à un rebord pour reprendre mes forces, puis enfin de me hisser, et de reprendre mes esprits et savourer ma vie sauve, trempé sous le soleil, le dos sur le sol. ^^"; Attend(); print "Et une personne se penche sur moi, masquant mon soleil. ";Attend();print "^^Et une voix que je n'aurais jamais cru entendre à nouveau résonne joyeusement :^^"; Attend();Italique();Affiche(45); print "~Les poissons de la Vistule sont bien gros, les pècheurs ne doivent pas mourir de faim !~^^";Normal(); Attend(); if (ecriture5.lu==0) { print "Plus tard, Galina m'emmena dans un hôtel afin que je puisse me changer et faire le point.^";Attend();print "^Je lui racontais de bout en bout toute mon incroyable histoire, jusqu'au point où je trouvais enfin le cadre du tableau dans la remise du Diadzo, puis quand je m'enfuis enfin dans les égouts de Varsovie, mais elle m'interrompit alors :^^"; Attend(); print "~Et sur le cadre, Professeur, avez vous trouvé l'indice ?~^^"; Attend(); print "Je restai interloqué, frappé d'une incroyable stupeur, et je murmurai :^^"; Attend(); print "~Et bien...dans la confusion...je crois que je n'ai pas regardé le cadre...~^^"; Attend(); print "Galina m'observa d'un air amusé et déçu tandis que je m'effondrais sous le poids de ma bêtise : avoir fait tout cela, pour oublier l'essentiel !^";Attend();print "^Malheureusement, c'était la fin de l'aventure Ekphrasis pour moi.^";Attend();Joue(197); deadflag=1; } else { print "J'ai pensé un instant que l'humour slave de la délurée Galina allait m'achever là où la mafia polonaise avait échoué, mais elle se révela d'un grand secours.^"; Attend(); print "^Je ne sais comment précisement - j'étais fort fatigué de mes précédentes aventures, et pour ajouter à mon désarroi, j'avais perdu mes lunettes dans la Vistule - mais elle m'accompagna, me porta, me fourra dans un taxi, s'engueula violemment avec le conducteur quand il s'apercu que j'étais trempé, me porta dans un ascenseur, jusque dans une chambre d'hôtel où elle me servit un café qui me remit d'aplomb. ^^"; Attend(); print "~Avant de me dire quoi que ce soit, Professeur, vous allez me prendre une douche, parce que je peux vous dire, à l'odeur, on dirait que vous avez pataugé toute la nuit dans les égouts avant de vous jeter à l'eau !~^^"; Attend(); while(child(gilbert)~=0) {move child(gilbert) to sdb;} portable.vie=19; remove lunettes; Playerto(douche); StartDaemon(galina2); } ]; [AnimGalina v; if (galina.stop==0) { if (galina.k<51) { switch(galina.k) { 0 : print "^Galina me demande : ^^~Vous connaissez qui habite ici ?~^^~Non, et vous ?~^^Galina secoue sa tête en silence.^"; 1 : print "^~Je suis venue consulter...consulter un livre. ~^^~Ah ? Fascinant. ~^"; 2 : print "^~Et vous ?~^^~Je suis venu pour diverses affaires, des affaires PRIVEES. ~^"; 3 : print "^~Je vois~, fait Galina. Apparamment, elle a compris que j'avais besoin de silence pour me concentrer.^"; 4 : print "^Galina se mure dans le silence.^"; 5 : print "^~Néanmoins,~ reprend Galina, ~je dois vous dire, ce n'est pas vraiment un livre, je veux dire le livre original.~^"; 6 : print "^~Une copie,~ précise Galina.^^Je retire mes lunettes pour les essuyer et rétorque dans un sarcasme :^^~Comme c'est original. ~^"; 7 : print "^~Original ? Ah ! Un...jeu de mots (?) tout à fait français, c'est cela ?~^^~C'est ";Gras();print "CELA";Normal();print " oui, maintenant s'il vous plaît taisez vous quelques minutes pour que je puisse réfléchir. ~^"; 8 : print "^~Oh bon, oh bon, puisque vous me demandez de ne rien dire, je ne dis rien, voilà. ~^"; 9 : print "^~Laissez moi simplement dire : vous n'êtes pas très sympathique. ~^"; 10 : print "^~Malgré votre air de français. ~^^Je soupire.^"; 11 : print "^~Je vous ferais remarquer que vous ne vous êtes même pas présenté, monsieur. ~^^(je soupire)^"; 12 : print "^Galina m'envoie un gros soupir en retour. Je m'arrête tout net et déclare : ^^~Bien. Je me nomme Gilbert Fontenelle. Je suis professeur d'histoire de l'art.~^"; 13 : print "^~Oh la la, comme vous dites les français. Professeur d'histoire de l'art, ca c'est pas mal ! Moi je suis linguiste. ~^^~Vous parlez quelle langue ?~^"; 14 : print "^Galina laisse échapper un rire : ~Ah non, les linguistes sont les spécialistes des langues, de leur structure, de leur évolution, de leurs mécanismes, pas de la façon dont on les pratique. ~^^~Ah,~ fais-je, pas du tout interressé. ^"; 15 : print "^~Ceci dit...~ poursuit Galina, ~...ceci dit, je parle le russe, c'est ma langue maternelle, et le français, l'anglais, l'allemand, l'italien, l'espagnol, la base quoi.~^"; 16 : print "^~L'arabe classique, divers dialectes slaves (c'est toujours un peu la même chose), le Peuhl, le Swahili, le Mandarin, le Finlandais, le Hongrois et le Basque. ~^"; 17 : print "^~Et puis le latin, le grec, le sanskrit, mais ce ne sont pas vraiment des langues parlées. Donc...~^^";Gras();print "~OH CA VA, CA VA.";Normal();print " A ce rythme, vous feriez me de dire quelles langues vous ne parlez pas, ca sera plus simple. ~^"; 18 : print "^~Bon, ben alors, je ne parle pas le Javanais, ni le...~^^~Non, écoutez, plutôt, on va dire qu'on ne va pas évoquer vos talents linguistiques. Ok ?~^"; 19 : print "^~J'adore l'ambiance ici, pas vous ?~^^~Non, pas moi. Moi j'aime la pluie, le feu de cheminée, la table d'étude. Et un bon livre de Panofsky sur la Scholastique.^~"; 20 : print "^~Je ne connais pas Panovsky. Je connais...Duby ? C'est ca ?~^^Je grogne.^ "; 21 : print "^~J'ai mal prononcé ?~^^~Non, vous avez parfaitement ";Gras();print "BIEN";Normal();print " prononcé. Je vois que la popularité de mon confrère dépasse les frontières. ~^"; 22 : print "^~Seriez vous jaloux Monsieur Fontenelle ? Vous ne travaillez pas pour la Gloire de la Science ?~^^~Si vous connaissiez mieux le milieu des experts en art, vous sauriez que les seules oeuvres dont ils souhaitent l'immortalité sont les leurs. ~^"; 23 : print "^~Je rêve d'aller en France, vous savez. ~^^~En ce moment, nous sommes deux à partager ce doux rêve. ~^"; 24 : print "^~Hé, Professeur, ca ne vous dirait pas de vous marier avec moi ?~^";Attend();print "^~Excusez moi Galina ? Un instant j'ai cru entendre que vous souhaitiez vous ";Gras();print "marier";Normal();print " avec moi. ~^^";Attend();print "~Vous avez bien compris. ~^^"; Attend();print "~Quelle idée saugrenue ! Pourquoi je me marierais avec vous ?~^^";Attend();print "~Parce que cela me donnerait la nationalité française ! Vous ne pouvez pas imaginer comment ca changerait ma vie ! Un visa de quelques jours me coûte des mois de salaire en pots de vins, enfin, vous ne pouvez pas connaître la glorieuse administration de notre Grande Russie.~^^";Attend();print "~Désolé de vous décevoir, Galina, mais Gilbert Fontenelle, s'il se marie, le fera par amour. Et malheureusement pour beaucoup, je n'aime personne.^ ~"; 25 : print "^~Votre vision du mariage est assez rétrograde. Je suppose que vous ne jetiez pas de pavés en Mai 68. ~^^~Non, j'";Gras();print "ESSAYAIS";Normal();print " d'enseigner durant ces heures sombres - non pas que la situation ait grandement évolué depuis.~^"; 26 : print "^~Où enseignez vous ? A la Sorbonne ?~^^~Bon, l'interrogatoire va encore durer longtemps ?~^^~Oh bon, je me tais. Vous n'êtes pas un marrant.~^"; 27 : print "^(Galina boude)^"; 28 : print "^~Je pensais les français enjoués et espiègles.~^^~Ah ! Il y a beaucoup de mots pour définir Gilbert Fontenelle, mais ";Gras();print "ESPIEGLE";Normal();print " n'en fait pas partie. ~^"; 29 : print "^~Si, par exemple : espiègle comme un rocher. ~^^~Oh ? Vous avez entendu ce silence ? Je n'ai pas ri. D'après vous, est ce que je manque d'espièglerie, ou que vous n'avez aucun humour ?~^"; 30 : print "^~C'est que vous, vous n'avez aucun humour. Comme les rochers. ~^"; 31 : print "^~Vous voulez parler Science, Professeur ? Ma spécialité en linguistique est l'origine des langues, la grammaire primitive. L'indo-européen. Souhaitez vous que nous en parlions ?~^^~Est ce que cela va m'aider dans la situation présente ? Probablement pas. Alors non.~^"; 32 : print "^~Pourtant c'est passionnant. Par exemple : Gorod, ce qui veut dire en indo-européen 'Ce qui entoure', qui a donné Grad en russe, garden, en anglais et même ceinture en français. ~^"; 33 : print "^(Galina me fait un discours sur différents exemples de mutation linguistiques sur l'Indo Européen, je la laisse blablater, son bruit de fond me permet de me concentrer sur la situation.)^"; 34 : print "^(Galina me fait un discours sur différents exemples de mutation linguistiques sur l'Indo Européen, je la laisse blablater, son bruit de fond me permet de me concentrer sur la situation.)^"; 35 : print "^(Galina me fait un discours sur différents exemples de mutation linguistiques sur l'Indo Européen, je la laisse blablater, son bruit de fond me permet de me concentrer sur la situation.)^"; 36 : print "^(Galina me fait un discours sur différents exemples de mutation linguistiques sur l'Indo Européen, je la laisse blablater, son bruit de fond me permet de me concentrer sur la situation.)^"; 37 : print "^(Galina me fait un discours sur différents exemples de mutation linguistiques sur l'Indo Européen, je la laisse blablater, son bruit de fond me permet de me concentrer sur la situation.)^"; 38 : print "^~Il existe néanmoins une triple exception de peuples ayant développé un language structuré apparamment sans lien avec l'Indo-Européen : les Basques, les Finlandais et les Hongrois. Etonnant, non ?~^"; 39 : print "^~En fait, je pense qu'il existe également un peu de Sibérie septentrionale qui fait également exception. Le language de ce peuple aujourd'hui éteint a été toutefois consigné dans un carnet de voyage d'un explorateur. Mais vous savez quoi ? Le carnet a été détruit lors d'un incendie il y a 5 ans à la bibliothèque de St Petersbourg, avant que j'aie pu le compulser. ~^^~Vous m'en voyez navré. Enfin, moyennement. Vous savez, c'est surtout la peinture de la pré-renaissance mon rayon. ~^"; 40 : print "^A mon grand désespoir, Galina poursuit son exposé : ~";Gras();print "TOUTEFOIS";Normal();print ", il paraîtrait qu'une copie existe, un faux parfait réalisé par l'hôte de ces lieux. C'est pour cela que je suis ici.~^^~Bien. Pour peu qu'il soit sourd, il sera ravi de faire votre connaissance. ~^"; 41 : print "^~Quelle étrange demeure, professeur, vous ne trouvez pas ?~^^~Bien trop grande à mon goût. ~^"; 42 : print "^~Ce jardin est immense. Cela doit être compliqué d'aller acheter le pain. ~^^~Ou d'aller chercher ses colis. ~, rumine-je sombrement.^"; 43 : print "^~Tout est parfaitement entretenu toutefois. Vous pensez que des personnes viennent s'occuper du jardin et de la maison, professeur ?~^^~Pas si bien entretenu que cela, je trouve. On dirait que certaines choses ont été laissées à l'abandon depuis quelques semaines. ~^"; 44 : print "^~C'est votre embonpoint qui m'a tout de suite fait pensé que vous étiez français. ~^^~Vous voulez dire que je suis gros ?~^^~Non, vous avez la morphologie du français de plus de quarante ans. ~^^~Et bien, c'est ma journée. ~^"; 45 : print "^~Allez, ne vous fâchez pas, Professeur. Je vous ai proposé le mariage il y a quelques minutes. ~^^~Deux mots me viennent : Charybde et Scylla. ~^"; 46 : print "^~Vous êtes bien sympathique. Venez quand vous voudrez à Moscou, je vous ferai visiter les musées.~^^~J'en rêve. ~^"; 47 : print "^~Je me permets de remarquer toutefois que vous ne m'avez pas proposé de venir à Paris. ~^^~Effectivement, vous avez bien remarqué ! ~^"; 48 : print "^~En fait, je suis très contente de vous avoir rencontré. Je serais perdue sans vous. ~^^~Je le constate : vous ne m'avez pas du tout aidé jusqu'à présent !~^"; 49 : print "^~Cela n'est pas très gentil, Professeur. Si j'avais pu, je vous aurai aidé. Qui sait, un jour je vous tirerai d'un mauvais pas ?~^"; 50 : print "^Galina semble un peu triste, alors je lui dis : ^^~Ecoutez Galina. En d'autres circonstances, j'aurais été ravi de faire votre connaissance et d'écouter avec attention toutes vos histoires. Les enjeux qui m'amènent ici me préoccupent. Essayons d'avancer, et nous prendrons le temps de parler ensuite, d'accord ?~^^Galina opine et me fait un clin d'oeil. Bon, j'aurais toujours le temps de m'enfuir lorsqu'on s'en sera sorti.^"; } galina.k++;} else { v = random(30); switch(v) { 1: print "^Galina met sa valise derrière son dos et attend sagement. ^"; 2: print "^Galina semble vouloir dire quelque chose, puis se ravise et réfléchit. ^"; 3: print "^Galina s'évente avec son chapeau. ^"; 4: print "^Galina dessere sa cravate. ^"; 5: print "^Galina fredonne un petit air traditionnel russe. ^"; 6: print "^Galina s'assied sur sa valise et baille. ^"; 7: print "^Galina pose sa valise et croise les bras en m'observant. ^"; 8: print "^~Interressant~ murmure Galina. ^"; 9: print "^Galina retire son chapeau, secoue ses cheveux et remet son chapeau. ^"; } } } else {galina.stop=0;} ]; [AnimGalina2 v; if (galina2.k<14) { if (location==sdb) {print "^(J'entends Galina qui me parle depuis l'autre pièce :)^"; switch(galina2.k) { 0 : print "^~Alors, Professeur, à nouveaux réunis par le Destin, qu'en pensez vous ?~^^~Je ne crois pas au Destin, Galina. Je crois aux curieuses qui écoutent aux portes les conversations qu'elles ne doivent pas entendre. ~^"; 1 : print "^~D'accord Professeur, j'ai écouté votre conversation avec Aristo. Et puis après, c'est bien normal, non ? Moi aussi j'ai marché à gauche, à droite, dans ces labyrinthes, pourquoi auriez vous voulu que je m'en aille sans savoir qui était cette personne, et pourquoi, pourquoi il avait tous ces originaux introuvables !~^^~Pour votre propre sécurité, peut être ? Rappelez vous que vous m'avez retrouvé dans la Vistule. ~^"; 2 : print "^~Oui, vous m'avez raconté, le Diadzo et compagnie. Mais de toute façon, je ne vous pistais pas, n'en déplaise à votre orgueil. Varsovie était dans mes étapes, la bibliothèque de Varsovie, voyez vous, à une petite promenade de là où je vous ai repéché. J'avais dans l'idée éventuellement d'arpenter les musées pour vous faire la surprise, mais nullement de vous suivre partout. ~^^~ Alors c'est le hasard qui vous a fait tomber sur moi ? J'aurais pu être plus malchanceux - enfin, étant donné la situation, je vois pas ce qui aurait pu m'arriver de pire !~^"; 3 : print "^~Et qu'avez vous découvert, sur le cadre dans le Diadzo ?~^^~Aha, pour que vous me suiviez encore ?~^"; 4 : print "^~Vous me croyez folle de vous, cela, c'est bien un comportement de français. Alors que seule la curiosité scientifique m'anime. ~^^~ Vous m'avez demandé le mariage. ~^"; 5 : print "^~Je sais que je vous ai proposé le mariage, ~ reprend Galina, ~mais je vois que cela vous a choqué. C'est vrai que vous êtes si conservateur. Toutefois, comme je vous l'ai déjà dit, il s'agissait d'une disposition administrative. ~^^~Oui, elles disent toutes cela. ~^"; 6 : print "^~Alors ! Le tableau. ~ insiste Galina.^^Je la fais patienter quelques instants, puis concède :^^~Je vais devoir aller à Venise. ~^"; 7 : print "^~Ah, Venise, vous en avez de la chance. Ou plutôt, pas trop en fait. ~^^~Ha ! Parce que vous ne pouvez pas me suivre ? ~^"; 8 : print "^~Parce que Varsovie est paralysée. ~^"; 9 : print "^~Varsovie paralysée ? Que voulez vous dire ? ~^"; 10 : print "^~Je vous ai laissé un exemplaire de l'édition d'hier sur le lit. Une manifestation anti-européenne dans le quartier des affaires, une procession religieuse dans la vieille ville, et une grève générale des transports publics - ils manifestent eux aussi dans le centre ville. Non seulement pas d'avions ni de trains, mais en plus les rues vont être bloquées. ~^"; 11 : print "^~Hum, j'aurais voulu arriver le plus rapidement possible là bas - il n'y a pas de seconde place dans les courses au trésor. ~^^~Ah, dans nos charmants pays de l'est, on peut arriver à tout avec suffisamment d'argent, des dollars notamment. ~^"; 12 : print "~Vous perdez pas le nord. ~^^~Hé, j'essaye de vous aider. ~^"; 13 : print "~Bon, vous avez bientôt fini de vous préparer ?~^^~Donnez moi quelques minutes, s'il vous plaît. ~^"; } galina2.k++;} else { v = random(30); if (location==sdb) { switch(v) { 1: print "^Galina frappe à la porte ~Eho, vous êtes encore en vie ?~^^~Oui, Galina, un peu de patience s'il vous plait !~ ^"; 2: print "^Galina s'exclame : ~Vous en mettez un temps !~^^~Ah, l'impatience des femmes. ~^"; 3: print "^Galina baille si fort que je l'entends depuis l'autre pièce. ^"; } } if (location==chambrehotel) { switch(v) { 1: print "^Galina s'assied sur le lit et croise les bras. ^"; 2: print "^Galina demande : ~On y va ?~. ^"; 3: print "^Galina regarde par la fenêtre. ^"; 4: print "^Galina me regarde, étouffe un petit rire sous mon regard courroucé. ^"; 5: print "^Galina fredonne un petit air traditionnel russe. ^"; 6: print "^Galina me regarde agir avec circonspection. ^"; 7: print "^Galina dissimule un baillement d'ennui. ^"; 8: print "^~Interressant~ murmure Galina. ^"; 9: print "^Galina secoue ses cheveux et se recoiffe. ^"; } } } } ]; [AnimMikolaj v; switch(mikolaj.compteur) { 1: print "^Mikolaj va chercher une chaise et s'assied à ma table - en spectateur, apparamment. ^"; 8: print "^Mikolaj renifle un de ses cigares, et finit par l'allumer. Il se tourne vers moi et dit : ^";Attend();Affiche(114); print "^~Alors, heureux au jeu ? Tout le monde ne connaît pas le Petit Hanoï et ses règles particulières... vous avez un nom, heureux joueur ?~";Attend();print "^^Je réponds poliment, sans expression sur le visage :";Attend(); print "^^~Bien entendu.~^^";Attend();print "Masquant son dépit, Mikolaj écrase son cigare pour l'éteindre.^"; 16: print "^Mikolaj fait rouler une plaquette de mille dollars entre ses doigts.^^";Attend();Affiche(114); print "^~Vous n'êtes pas un homme courant après l'argent, ni le jeu, cela transparaît limpidement dans votre façon de jouer. Alors, le Diadzo pour s'encanailler ? Le tourisme de l'aventure ?~";Attend();print "^^ Toujours impassible, j'explique :";Attend(); print "^^~Je lui préfère le tourisme culturel.~^^"; 24: print "^Mikolaj se lève et va se servir un whisky.^";Attend();Affiche(114); print "^~Un nouveau venu, me dit-il alors qu'il est derrière son bar, sans recommandation, ni même invité. Monsieur arrive, et joue au Petit Hanoï comme s'il venait du Vietnam. ~";Attend();print "^^Il fait quelques pas, verre à la main. Je balise un peu, conscient de ce que Mikolaj est, au fond. Il boit son verre et me fixe droit dans les yeux : ~Tant que vous perdez - ou que vous gagnez un peu - ma foi, vous pouvez garder le silence.~";Attend(); print "^^Il termine son verre et le lance derrière le bar où il va s'écraser dans un bris sonore. ^"; } mikolaj.compteur++; v = random(30); if (mikolaj.stress==0) { switch(v) { 1: print "^Mikolaj ouvre un agenda et le consulte, puis le range dans une poche de sa veste. ^"; 2: print "^Mikolaj regarde mon jeu attentivement, et croise les bras. ^"; 3: print "^Mikolaj se gratte le menton. ^"; 4: print "^Le boss de la mafia de Varsovie dissimule un baillement d'ennui. ^"; 5: print "^L'homme assis à coté de moi semble compter mes jetons. ^"; 6: print "^Le Boss se lève et vérifie dans un placard si toutes les boissons sont là, puis revient à sa place. ^"; 7: print "^Mikolaj se gratte le ventre. ^"; 8: print "^Mikolaj sourit. ^"; 9: print "^Mikolaj prend un air concerné. ^"; 10: print "^Mikolaj prend un cigare depuis la poche de sa veste, l'hume, puis le range. ^"; } } if (mikolaj.stress==1) { switch(v) { 1: print "^Mikolaj tambourine impatiemment avec ses doigts sur le tapis vert. ^"; 2: print "^Mikolaj regarde le croupier avec une désapprobation sévère. ^"; 3: print "^Mikolaj serre les poings nerveusement. ^"; 4: print "^Le boss de la mafia de Varsovie se penche sur le jeu, tendu. ^"; 5: print "^L'homme assis à coté de moi regarde le jeu avec attention, ses lèvres murmurant d'obscurs calculs mentaux. ^"; 6: print "^Le Boss se lève, fait quelques pas nerveux et se rassied enfin. ^"; 7: print "^Mikolaj dessere le col de sa chemise. ^"; 8: print "^Mikolaj arbore une moue contrariée. ^"; 9: print "^Mikolaj respire bruyamment par le nez. ^"; 10: print "^Mikolaj joue nerveusement avec un briquet. ^"; } } if (mikolaj.stress==2) { switch(v) { 1: print "^Mikolaj s'éponge le front avec un mouchoir. ^"; 2: print "^Mikolaj lance un regard mortel au croupier. ^"; 3: print "^Mikolaj s'agrippe fortement aux bords de la table, tendu, comme si elle allait s'envoler. ^"; 4: print "^Le boss de la mafia de Varsovie regarde les cartes comme si elles allaient lui sauter dessus. ^"; 5: print "^L'homme assis à coté de moi regarde de tous cotés et me dévisage comme si j'étais un fantôme. ^"; 6: print "^Le Boss se lève, marche vers le bar, se sert un fond de vodka qu'il avale d'un coup et vient se rasseoir. ^"; 7: print "^Mikolaj semble manquer d'air, haletant et transpirant. ^"; 8: print "^Mikolaj serre la machoire et plisse le front, terriblement soucieux. ^"; 9: print "^Mikolaj se balance d'avant en arrière, bras croisés. ^"; 10: print "^Mikolaj allume un petit cigare d'une main tremblante, qu'il éteint aussitôt. ^"; } } ]; [AnimLaby v; if (escher1.progression<13) { switch(escher1.progression) { 0 : print "^Mmm, dans toutes les directions, les pièces se ressemblent.^"; 2 : print "^Une voix sort d'un haut parleur : ^^~Alors Professeur Fontenelle, on se sent un peu désorienté ?~^^~Parle, parle ~ que je lui gromelle, ~tu ne perds rien pour attendre, toi. ~^"; 4 : print "^Galina déclare : ~Moi, j'irais plutôt vers le sud...~^^~Pourquoi donc ?~^^~Une intuition. ~^^~Je VOIS. Merci pour votre approche rationnelle de la problèmatique. ~^^~Oh bon, moi je dis ca pour vous aider. ~^"; 6 : print "^~Professeur~, dit Galina, ~J'ai fait des rêves qui semblaient moins fantasmagoriques que cet étrange endroit. ~^^~Et bien moi, j'ai fait un rêve qui ressemblait exactement à cela. ~^^~Je n'aurais pas cru que les rochers rêvaient. ~^"; 8 : print "^J'échange un regard avec Galina. Nous sommes tous les deux paumés autant l'un que l'autre. ^"; 10 : print "^Une voix, toujours la même, s'échappe du haut parleur : ^^~Avez vous vu cet épisode de The Avengers où la belle Emma Peel était perdue dans cette maison labyrinthique où les pièces bougeaient si bien qu'elle croyait tourner inexpliquablement en rond ?~^^~Non. Par où est la sortie ?~^^~Diana Riggs est la plus belle chose qui ai jamais été faite. ~^^~La plus belle chose pour moi, c'est plaquer mes mains sur votre cou et secouer fort !~^"; 12 : print "^La voix revient à nouveau, moqueuse : ~Je vois que vous êtes toujours coincé. Allez un petit indice, Professeur : pour les constructions labyrinthiques, ce n'est pas à Piranese qu'il faut penser, mais à l'autre.~^"; } escher1.progression++;} else { v = random(30); switch(v) { 1: print "^Galina se retourne vers le couloir d'où on vient : ~Professeur, je suis sûre que j'ai entendu un bruit par là. ~^"; 2: print "^J'ai l'impression que la peinture des murs est plus claire ici...non, ce n'est qu'une impression. ^"; 3: print "^J'ai la tête qui tourne, je perds vraiment tous mes repères. ^"; 4: print "^Je me mets au centre de la pièce et regarde de tous cotés. Hum. Vu d'ici, tous les couloirs se ressemblent. ^"; 5: print "^J'éponge mon front couvert de sueur. Les murs sont frais ici, ce n'est pas la chaleur qui me fait transpirer...^"; 6: print "^Bon. Réfléchissons, réfléchissons.^"; 7: print "^Oh non, encore au même endroit. Je soupire et je croise les bras. Galina a l'air de s'amuser de me voir renfrogner. ^"; 8: print "^Je crois que je suis paumé, là. Je tourne la tête vers Galina, qui regarde de tous cotés pour retrouver son chemin. Bon, je voix qu'on progresse pas des masses. ^"; 9: print "^Nos pas résonnent en échos dans ces couloirs qui s'entrecroisent. ^"; } } ]; [AnimEgout v; v = random(30); switch(v) { 1: print "^Des petites gouttes tombent depuis le plafond suintant. ^"; Joue(193); 2: print "^L'odeur est épouvantable ici, des bouffées pestilencielles presques vivantes semblent se mouvoir dans ce labyrinthe souterrain. ^"; 3: print "^Un horrible scolopendre, grand comme mon bras, serpente sur le mur avant de disparaitre. J'en frissonne d'horreur. ^";Joue(193); 4: print "^Des amas d'immondices passent entre mes jambes dans la boue infâme qui tapit cet endroit. ^"; 5: print "^De petits yeux rouges clignotent dans un coin, puis disparaissent.^"; 6: print "^Ma respiration haletante se répercute en écho comme un fantôme ancien dans ce lugubre endroit.^";Joue(193); 7: print "^Je manque de glisser sur le sol incertain de cet humide endroit. ^"; 8: print "^Dans l'obscurité, je sens quelque chose passer au dessus de mon épaule. Je sursaute de frayeur ! pour chercher et ne trouver que le vide. ^";Joue(193); 9: print "^Cet endroit me fait horreur, ce n'est vraiment pas l'endroit pour un professeur d'histoire de l'art. ^"; } ]; [ToJP2; print "^Je pose la main sur la poignée de la porte et Galina vient se planter dans mon dos :^^"; Attend(); print "~Et voilà, vous repartez à nouveau, sans rien dire. ~^"; Attend(); print "^~Non, Galina. Voilà, je vous dis quelque chose : merci de m'avoir tiré de la Vistule. Et puis pour...les vêtements, même si cela ne me plaît qu'à moitié. ~^"; Attend(); print "^~Et bien, voilà un merci qui a pris du temps à venir. Ca va, j'accepte votre merci, Professeur. ~^"; Attend(); print "^~J'aurais un service à vous demander...comme vous le savez, je dois aller à Venise, assez rapidement si possible.~^"; Attend(); print "^Je lui tends le reste de l'argent confié par Aristo, environ cinq mille dollars.^"; Attend(); print "^~Trouvez moi quelque chose, bus, voiture, train...ce que vous voulez à partir du moment où je peux partir dès que possible. Et gardez la monnaie, d'accord ? Je n'ai plus l'utilité de cet argent. ~^"; Attend(); print "^~Aha, Professeur, vous êtes bien le seul homme en ce monde à penser cela ! D'accord, ca marche. Je vous retrouve où ?~^"; Attend(); print "^~Devant le Musée Jean Paul II.~^"; Attend(); print "^Et je m'explique mystérieusement dans un clin d'oeil :^"; Attend(); print "^ ~Vous connaissez les professeurs d'histoire de l'art. Ils ne peuvent s'empécher de visiter les musées, quelque soient les circonstances. ~^"; Attend(); print "^Une fois sorti de l'hôtel, je rencontrais des difficultés à trouver un taxi, à expliquer ma destination, mais encore plus grande fut la longue traversée de Varsovie envahie des diverses manifestations du jour.^"; Attend(); print "^Je mis à profit ce contretemps pour songer plus clairement au but de ma visite : Le Cassone - enfin, si cette chose existait réellement, devait être quelque part, s'il fallait en croire le cadre de tableau retrouvé au Diadzo, sur l'Ile San Michele, à Venise.^"; Attend(); print "^Si je devais en croire Aristo, une copie de la Calomnie, et probablement donc, du cadre, devaient s'y trouver...si je pouvais jeter un oeil sur le cadre, cela renforcerait mes convictions. ^^"; Attend(); print "Le taxi me dépose devant l'entrée mal éclairée de ce Musée annexe au Vatican, dans la rue Elektoralna. Je regarde aux alentours. Aucun sbire de Mikolaj, apparemment. Bon, Botticelli, à nous deux !^"; Attend(); print "^Et je rentre d'un pas décidé dans le Musée.^"; Attend(); PlayerTo(visite1); StartDaemon(guide); ]; [TouchCalomnie; StopDaemon(guide); print "^Mes doigts suivent le tracé léger des lignes creusées dans le bois voici des siècles, mais quelle n'est pas ma surprise lorsque je crois comprendre l'énigmatique phrase :^"; Attend();Italique(); print "^~Più via più di meno, fa più di meno,^ Più via meno di meno, fa meno di meno.~^"; Attend();Normal(); print "^Autrement dit, une sorte de poème qui dirait : ~un par un de moins fait un de moins, un par moins de moins, fait moins de moins~... une formule mathématique ? Hum, à part le nombre d'or, je n'y connais pas grand chose en maths...il y a d'autres lignes, mais elles semblent complétement effacées par les siécles.^^Et bien, j'espère que cela pourra m'aider. ^"; Attend(); print "^Je remets la Calomnie en place alors que le gardien surgit dans la pièce et me reprend violemment la lampe. Il me fait comprendre que je suis indésirable ici, mais je le devance en partant d'un pas décidé du Musée, et je retrouve juste devant l'entrée Galina qui m'attend, appuyée sur un taxi.^"; Affiche(230); Attend();Affiche(45); print "^~Un X marque l'emplacement, Professeur ?~^"; Attend(); print "^~Un par moins de moins, fait moins de moins, ca vous dit quelque chose ? ~^"; Attend(); print "^~Cela me dit que j'aurais du faire Mathématiques plutôt que Linguistique, je pense. ~^"; Attend(); Affiche(230); print "^Derrière nous, des pneus crissent soudainement. ^"; Attend(); print "^Un grand type sort en trombe d'une Hyundai noire, et je reconnais avec dépit le sbire que j'avais enfermé il y a quelques heures dans un égout de Varsovie. Un coup de feu, une balle vient étoiler le pare brise du taxi. ^";Joue(204); Attend();Affiche(123); print "^Le chauffeur de taxi s'enfuit en courant et Galina prend rapidement sa place, et ouvre la portière passager :^^~On monte, professeur, on ne rêve pas !^"; Attend(); Joue(198); print "^Et je monte en vitesse sans demander mon reste, alors que Galina démarre en trombe. ^"; Attend(); PlayerTo(voiture1); ]; !------------------------------------------------------------------------------- ! Grammaire !------------------------------------------------------------------------------- [ComposerSub; if (location==voiture1) { if (voiture1.police==0) { if (portable in gilbert) { if (random(2)==1) {Joue(205);} else {Joue(206);} if ( dialled_number->1==6 && dialled_number->2==1 && dialled_number->3==1 ) { print "^Je compose le numéro et une voix me répond rapidement en polonais :^";Attend();print "^~Euh...I am Gilbert Fontenelle and...~^";Attend();print "^Galina pousse un soupir énorme et s'empare de mon téléphone tout en conduisant : ~Ce que vous pouvez être ";Gras();print "pataud";Normal();print ", Professeur !~^";Attend();print "^En quelques mots, et sans decellerer, Galina résume l'urgence de la situation, puis me rend le téléphone sans détacher ses yeux de la route : ~Prenez, Professeur. La Police arrive, je leur ai donné les informations nécessaires. ~^";Attend();print "^Bigre. Cette femme m'impressionne. ^";Attend(); voiture1.police=1;} else {print "^Je compose le numéro, mais cela n'aboutit pas.^";Attend();print "^~Vous appelez votre grand mère ? ~ s'exclame Galina. ~Parfait, vous lui transmettrez le bonjour de ma part ! Ou plutôt, demandez lui d'appeler la police ! Allons Gilbert ! Vous ne voyez pas que la situation est critique ?~^";Attend();print "^~C'est que...quel est le numéro de la police en Pologne ?~^";Attend();print "^~HA ! Ca invente l'Europe mais ca ne connaît pas les numéros Européens. Sachez, Professeur Fontenelle, que la Pologne est aux normes européennes, et que...~^";Attend();Gras();print "^~OK GALINA, DONNEZ MOI LE NUMERO !~^";Attend();Normal();print "^~C'est 611, Professeur. Retenez le, cela pourra vous servir, qui sait ?~^";} } else {print "^~Je cherche mon téléphone portable, mais je ne l'ai pas sur moi. Ah ! Pour une fois que ce maudit appareil aurait pu m'aider !^^ Galina s'exclame : ~Vous avez oublié votre portable ? Alors là, nous sommes fichus, bravo !~^";} } else {print "^La police est déjà en route. ^";} } else if (location==study) { if (random(2)==1) {Joue(205);} else {Joue(206);} Affiche(27); if ( dialled_number->1==0 && dialled_number->2==0 && dialled_number->3==3 && dialled_number->4==3 && dialled_number->5==2 && dialled_number->6==4 && dialled_number->7==7 && dialled_number->8==3 && dialled_number->9==6 && dialled_number->10==6 && dialled_number->11==5 && dialled_number->12==4 && dialled_number->13==3 ) {Telb();} else if ( dialled_number->1==0 && dialled_number->2==2 && dialled_number->3==4 && dialled_number->4==7 && dialled_number->5==3 && dialled_number->6==6 && dialled_number->7==6 && dialled_number->8==5 && dialled_number->9==4 && dialled_number->10==3 ) { print "^Aprés quelques sonneries, une voix décroche et répond en italien. Bizzare, c'est bien le numéro habituel de Maurice ? "; } else { print "^Aprés quelques sonneries, une voix décroche et répond en italien. Dommage que je sois occupé à d'autres affaires - et que je n'ai aucune idée amusante pour un canular. "; } } else if (portable in gilbert) { if (random(2)==1) {Joue(205);} else {Joue(206);} if (location has france) { Affiche(27); if ( dialled_number->1==0 && dialled_number->2==2 && dialled_number->3==4 && dialled_number->4==7 && dialled_number->5==3 && dialled_number->6==6 && dialled_number->7==6 && dialled_number->8==5 && dialled_number->9==4 && dialled_number->10==3 ) { Telb2(); } else if ( dialled_number->1==0 && dialled_number->2==1 && dialled_number->3==4 && dialled_number->4==7 && dialled_number->5==0 && dialled_number->6==7 && dialled_number->7==5 && dialled_number->8==1 && dialled_number->9==1 && dialled_number->10==5 ) { Tangente(); } else if ( dialled_number->1==0 && dialled_number->2==1 && dialled_number->3==4 && dialled_number->4==4 && dialled_number->5==4 && dialled_number->6==1 && dialled_number->7==9 && dialled_number->8==7 && dialled_number->9==9 && dialled_number->10==7 ) { BiblioTel(); } else {Joue(189); print "^Ce numéro n'existe pas, on dirait. "; } } else { Affiche(27); if ( dialled_number->1==0 && dialled_number->2==0 && dialled_number->3==3 && dialled_number->4==3 && dialled_number->5==2 && dialled_number->6==4 && dialled_number->7==7 && dialled_number->8==3 && dialled_number->9==6 && dialled_number->10==6 && dialled_number->11==5 && dialled_number->12==4 && dialled_number->13==3 ) {Joue(189); print "^Hé mince, ca ne répond pas. Où sont les amis quand on en a besoin ?^"; } else if ( dialled_number->1==0 && dialled_number->2==0 && dialled_number->3==3 && dialled_number->4==3 && dialled_number->5==1 && dialled_number->6==4 && dialled_number->7==7 && dialled_number->8==0 && dialled_number->9==7 && dialled_number->10==5 && dialled_number->11==1 && dialled_number->12==1 && dialled_number->13==5 ) { Tangente(); } else if ( dialled_number->1==0 && dialled_number->2==0 && dialled_number->3==3 && dialled_number->4==3 && dialled_number->5==1 && dialled_number->6==4 && dialled_number->7==4 && dialled_number->8==4 && dialled_number->9==1 && dialled_number->10==9 && dialled_number->11==7 && dialled_number->12==9 && dialled_number->13==7 ) { print "^Je raccroche immédiatement. Aucun interêt d'appeler là bas. ^"; } else {Joue(189); print "^Ce numéro n'existe pas, on dirait. "; } } } else { print "^Ouaip, je donnerais bien un petit coup de fil, mais il n'y a pas de téléphone ici (du moins, pas de téléphone que je puisse utiliser) et je n'ai pas de portable sur moi !^"; } ]; [TaperSub; if (noun==digicode1) { if ( dialled_number->1==1 && dialled_number->2==8 && dialled_number->3==0 && dialled_number->4==5 ) { print "^J'entends un déclic satisfaisant derrière le digicode...une serrure a du s'ouvrir. ^";digicode1.verrou=1; if (digicode2.verrou==1 && digicode1.verrou==1 && digicode3.verrou==1) {give portevilla ~locked;} } else { print "^Rien ne se passe. ^^~Ce n'est peut être pas le bon code, professeur ?~ me dit Galina.^^~Brillante observation. ~^^";digicode1.verrou=0; } } else if (noun==digicode2) { if ( dialled_number->1==1 && dialled_number->2==0 ) { print "^J'entends un déclic satisfaisant derrière le digicode...une serrure a du s'ouvrir. ^^Galina s'exclame :^^ ~C'est donc bien un X latin ! Qui voulait dire 10 ! Brillante déduction, professeur !~^^~Hé hé. Le X ne marquait pas l'emplacement...mais presque. ~^^";digicode2.verrou=1; if (digicode2.verrou==1 && digicode1.verrou==1 && digicode3.verrou==1) {give portevilla ~locked;} } else { print "^Rien ne se passe. ^^~Ce n'est peut être pas le bon code, professeur ?~ me dit Galina.^^~Brillante observation. ~^^";digicode2.verrou=0; } } else if (noun==digicode3) { if ( dialled_number->1==9 && dialled_number->2==6 && dialled_number->3==8 ) { print "^J'entends un déclic satisfaisant derrière le digicode...une serrure a du s'ouvrir. ^";digicode3.verrou=1; if (digicode2.verrou==1 && digicode1.verrou==1 && digicode3.verrou==1) {give portevilla ~locked;} } else { print "^Rien ne se passe. ^^~Ce n'est peut être pas le bon code, professeur ?~ me dit Galina.^^~Brillante observation. ~^^";digicode3.verrou=0; } } else {print "^Je ne comprends pas, que voulez vous que je fasse ?^";} ]; [FumerSub; if (pipe in gilbert && pipe has on) {print "^Avec soulagement, je tire une bouffée apaisante de tabac qui m'éclaircit l'esprit. ^";pipe.plein++;} else {print "^Je n'ai pas de pipe allumée sur moi...^";} ]; [RaserSub; if (gilbert.rase==0) { if (rasoir in gilbert) {print "^Allez, quand faut y aller, faut y aller.^^Adieu, barbe. Ca faisait 40 ans qu'on était ensemble.^^Avec regret mais résolution, je commence par éclaircir ma barbe au ciseau, puis je rase le reste ensuite, découvrant une peau que je n'avais pas vu depuis des dizaines d'années.^^Et bien, j'ai l'air beaucoup plus jeune, comme cela. Une vraie star des amphis. ^";gilbert.rase=1;} else {print "^Je n'ai pas de rasoir sur moi...^";} } else {print "^Je suis déjà rasé !^";} ]; [TraiSub; if (location==tripot) { if (cartej1.retourner==0) { cartej1.retourner=1; print "^~Trai~. Le croupier retourne ma carte - ";MontreCarte(cartej1.valeur,cartej1.signe); } else {print "^Inutile, cette carte est déjà face visible !^";} } else {print "^Mmm...Pardon ?^";} ]; [TamSub; if (location==tripot) { if (cartej2.retourner==0) { cartej2.retourner=1; print "^~Tam~. Le croupier retourne ma carte - ";MontreCarte(cartej2.valeur,cartej2.signe); } else {print "^Inutile, cette carte est déjà face visible !^";} } else {print "^Mmm...Pardon ?^";} ]; Include "FrenchG"; Verb 'fumer' * ->Fumer; Verb 'raser' * ->Raser; Verb 'composer' 'appeler' 'telephoner' 'téléphoner' * PhoneNumber ->Composer * 'le' PhoneNumber ->Composer * 'au' PhoneNumber ->Composer; Verb 'taper' * PhoneNumber 'sur' noun ->Taper * 'le' PhoneNumber 'sur' noun ->Taper * 'au' PhoneNumber 'sur' noun ->Taper; Verb 'aide' 'help' * ->Aide; Verb 'licence' * ->License; Verb 'dedicacer' 'signer' * 'held' ->Open; Verb 'xyzzy' * ->Xyzzy; Verb 'trai' * ->Trai; Verb 'tam' * ->Tam;