Commit eae634d1 authored by auraes's avatar auraes 💬
Browse files

Version avec accents de cqvdle

parent fffb4218
......@@ -380,11 +380,11 @@ with
'montagne', 'sommet', 'légende':
"« On ne vous a pas menti. La montagne permet effectivement
d'atteindre les étoiles. »";
'village', 'bâtiment', 'bâtiments', 'taverne', 'église',
'village', 'batiment', 'batiments', 'taverne', 'eglise',
'catastrophe':
"« Je ne peux rien vous dire. Si vous saviez... Il est
parfois préférable de ne pas connaître la vérité. »";
'étoile', 'étoiles':
'etoile', 'etoiles':
"« Vous désirez attraper une étoile ? Peu de gens le savent,
mais les étoiles raffolent du fromage... »";
'fromage':
......
!% -Cu
!% -v5
!% -~S
!% $OMIT_UNUSED_ROUTINES=1
! Encodage des caractères du fichier : UTF-8 sans BOM
!===============================================================================
! CELUI QUI VOULAIT DÉCROCHER LES ÉTOILES
! Version 4.0.0
! Yoruk, 2008 ; Auraes, 2019-2021
! Licence Creative Commons BY-SA 4.0 (CC BY-SA 4.0)
! https://creativecommons.org/licenses/by-sa/4.0/deed.fr
!
! https://ifdb.tads.org/viewgame?id=2tsa74cupbwzxvq
!===============================================================================
! ./inform6 -v5 +lib ./game/cqvdle.inf
Constant Story "Celui qui voulait décrocher les étoiles";
Constant Headline "^Écrit par Yoruk. Adaptation par Auraes.^";
Release 1;
! Mots de départ : montagne, étoile, prêtre, fromage.
Constant OPTIONAL_EXTENDED_VERBSET;
Constant OPTIONAL_TALK_TO;
Constant AVEC_ACCENTS;
Constant INITIAL_LOCATION_VALUE = FaceMontagne;
! Pour une saisie sans accents, il est possible d'utiliser AccentuerNom() ou de
! rajouter le nom, non accentué, de l'objet dans la propriété name
Include "globals.h";
Include "puny.h";
Object FaceMontagne "La montagne"
with
description "Une immense montagne vous fait face. Vous pouvez grimper à
son sommet en continuant au nord, ou bien aller au village. Pour cela, il
vous faut poursuivre le petit sentier qui vous a guidé jusqu'ici,
c'est-à-dire en continuant à l'est.",
Before [;
Enter:
if (noun == sentier) rfalse;
print "Vous commencez à gravir la montagne,";
Pause();
print "^Après plusieurs heures de marche, vous atteignez enfin
le sommet.^^";
Playerto(Sommet);
rtrue;
],
u_to [; << Enter FaceMontagne >>; ],
n_to [; << Enter FaceMontagne >>; ],
e_to PlaceVillage,
cant_go "Pourquoi partir maintenant ? Vous êtes si près du but !",
has light;
Object sentier "sentier" FaceMontagne
with
name 'sentier' 'chemin',
Before [;
Examine: "Un sentier de terre battue, qui continue à l'est.";
Enter:
if (verb_word == 'aller' or 'suivre') << GO FAKE_E_OBJ >>;
"Vous feriez mieux de le suivre, il vous mènera au village.";
default: << Enter sentier >>;
],
has scenery;
Object montagne "montagne"
with
name 'montagne' 'sommet',
description [;
if (player in FaceMontagne)
"Une gigantesque montagne. Une légende prétend que l'on peut toucher
les étoiles lorsqu'on est au sommet.";
"Le sommet de la montagne est en grande partie enneigé.";
],
found_in FaceMontagne Sommet,
has female scenery;
Object Sommet "Le sommet"
with
description "Le sommet de la montagne est en grande partie enneigé.
Vous pouvez redescendre en allant au sud.",
s_to [;
print "Vous redescendez au pied de la montagne";
if (boule in player) {
remove boule;
print ",";
Pause();
print "^La boule de neige se liquéfie au creux de votre main.^^";
}
else print ".^^";
return FaceMontagne;
],
d_to [; return self.s_to(); ],
before [;
Listen: "Vous n'entendez que le murmure essoufflé de votre respiration.";
Pray, Think, Smell:
print "Vous inspirez profondément...";
Pause(1);
if (action == ##Pray)
" et transformez votre prière en méditation.";
" en méditant sur la vacuité des êtres et des choses.";
Jump: "Bien que vous sautiez haut, l'étoile reste hors d'atteinte.";
],
has light;
Object neige "neige" Sommet
with
name 'neige',
description "De la neige, probablement éternelle.",
Before [;
Take:
if (boule notin player) {
move boule to player;
"Vous en faites une belle boule de neige, compacte et légère.";
}
"Vous en avez assez d'une.";
],
article ARTICLE_DE_LA,
has female concealed;
Object boule "boule de neige"
with
parse_name [;
if (NextWord() ~= 'boule') return 0;
if (NextWord() == 'de' && NextWord() == 'neige') return 3;
return 1;
],
before [;
Examine: "Une belle boule de neige, compact et légère.";
Take: rfalse;
Throwat:
if (second == nothing) {
remove boule;
"Vous faites un pas glissé et projetez la boule au-delà de
l'horizon.";
}
rfalse;
Eat, drink:
remove boule;
"Ce dessert glacé est rafraîchissant, mais sans grande saveur.";
Drop, Insert, PutOn:
"Il serait dommage de ne pas la lancer.";
default: "Peut-être devriez-vous essayer de la lancer.";
],
article ARTICLE_UNE,
has female edible;
Object etoile "étoile" Sommet
with
parse_name [;
if (NextWord() == 'étoile') return 1;
wn--;
if (NextWord() == 'petite' && NextWord() == 'étoile') return 2;
],
description "Une petite étoile. Elle vous suffira, si toutefois vous
parvenez à la prendre.",
initial "Une petite étoile brille au-dessus de vous.",
before [;
Thrownat: "Elle est si proche, vous pourriez la blesser.";
Take:
if (self has general) {
give self ~general;
print "Facile, pensez-vous. Vous tendez les bras en l'air.^Un
petit saut... vous parvenez à peine à effleurer l'étoile. Celle-ci,
probablement craintive, s'est élevée de quelques centimètres. ";
}
"Elle est maintenant hors d'atteinte.";
Search, JumpOver, Enter: "Elle est hors d'atteinte.";
Jump: "Bien que vous sautiez haut, l'étoile reste hors d'atteinte.";
SwitchOn, SwitchOff: "Est-elle morte ou vivante ?";
],
life [;
Give:
if (self hasnt general)
"Elle est si proche et pourtant inaccessible.";
<< Show noun etoile >>;
Show:
if (noun == fromage && fromage in player) {
Deadflag = 2;
remove fromage;
print "^Vous tendez le fromage à l'étoile,";
Pause();
print "^Celle-ci, intéressée, s'approche de vous,";
Pause();
print "^Elle s'approche encore. Vous lui donnez finalement le
fromage,";
Pause();
print "^L'étoile commence à le grignoter,";
Pause();
print "^Vous en profitez pour l'attraper ! Cela ne semble pas la
déranger,";
Pause();
"^Ça y est ! Vous avez réussi à décrocher une étoile. Après avoir
voyagé pendant tant de semaines, vous êtes enfin parvenu à réaliser
votre rêve !^";
};
default: "Elle semble émettre un léger scintillement.";
],
article ARTICLE_UNE_,
has female neuter animate general;
Object PlaceVillage "La place du village"
with
description "Vous êtes sur la place principale d'un petit village, situé à
l'est de la montagne. Divers bâtiments l'entourent : une taverne au nord
et une église au sud.",
before [;
Search: "Rendez-vous dans un lieu précis pour pouvoir effectuer
des recherches.";
GoIn:
noun = DirPropToFakeObj(random(n_to, s_to));
<<Go noun>>;
Listen:
if (noun == 0) "Tout, ici, impose le silence.";
rfalse;
],
n_to Taverne,
s_to Eglise,
w_to FaceMontagne,
has light;
Object decor PlaceVillage
with
number 0,
parse_name [;
self.number = NextWord();
if (self.number == 'bâtiment' or 'bâtiments' or 'taverne' or 'église'
or 'place' or 'village')
return 1;
self.number = 0;
],
describe [; rtrue; ],
description "Tous ces lieux semblent abandonnés... bizarre. Un village
fantôme ?",
Before [;
Examine:
if (self.number == 'place' or 'village') << Look >>;
Enter:
if (self.number == 'bâtiments' or 'bâtiment') << GoIn >>;
if (self.number == 'taverne') << Go FAKE_N_OBJ >>;
if (self.number == 'église') << Go FAKE_S_OBJ >>;
Listen: "Un silence de mort émane de ces lieux.";
default: "Essayez plutôt d'entrer dans la taverne ou dans l'église.";
],
has scenery; !concealed;
Object Taverne "La taverne"
with
name 'taverne',
description "Cet endroit semble abandonné depuis très longtemps.
Tous les objets présents ici ont été bousculés, comme si
les derniers occupants étaient partis précipitamment.",
Before [;
Exit:
if (de_six in player) < Throwat de_six >;
Smell: "Une odeur de renfermé, de poussière chaude et de houblon pourri.";
],
s_to PlaceVillage,
out_to PlaceVillage,
has light;
Object de_six "dé à jouer"
with
parse_name [;
if (NextWord() ~= 'dé') return 0;
if (NextWord() == 'a//' && NextWord() == 'jouer') return 3;
return 1;
],
Before [;
Examine: "L'une des faces du dé est marquée d'une fleur de lys.";
Throwat:
remove de_six;
print "Malgré l'interdit prononcé, vous lancez le dé,";
Pause();
print "^Alea jacta est,";
Pause();
"^Hasard ou nécessité, le dé disparaît à jamais.";
default: "Vous devriez, peut-être, le lancer.";
],
article ARTICLE_UN,
has transparent general;
Object fleur "fleur de lys" de_six
with
parse_name [;
if (NextWord() ~= 'fleur') return 0;
if (NextWord() == 'de' && NextWord() == 'lys') return 3;
return 1;
],
Before [;
Examine: "Flétrissure au fer rouge, irrévocable et infamante.";
Rub: "Pour toujours et à jamais.";
default: "Vous devriez essayer de lancer le dé.";
],
article ARTICLE_UNE,
has female concealed;
Object desordre "désordre" Taverne
with
name 'desordre' 'objets' 'objet' 'chaises' 'chaise' 'tables' 'table',
description "Un désordre indescriptible. Mais que s'est-il donc passé ici ?",
initial "Divers objets traînent ici, au milieu des chaises et des
tables renversées.",
before [;
Search:
if (fromage notin self) {
if (de_six has general) {
move de_six to player;
give de_six ~general;
"Vous trouvez un dé à jouer six faces.";
}
"Vous ne trouvez rien d'intéressant parmi tous ces objets.";
}
move fromage to player;
give fromage ~concealed;
"Parmi les divers objets qui se trouvent ici, vous parvenez à trouver
un vieux morceau de fromage. Vous le prenez avec vous.";
Take, Push, Pull: "Laissez ces objets à leur propre désordre.";
],
has;
Object Eglise "L'église"
with
description "Cet endroit ressemble à tous les autres lieux de cet
étrange village abandonné. Quelques bancs sont entassés derrière l'autel,
et les vitraux ont été brisés.",
n_to PlaceVillage,
out_to PlaceVillage,
before [;
Enter:
if (verb_word == 'asseoir' or 'coucher' or 'allonger')
"Vous préférez rester debout.";
Pray:
print "Vous décidez de prier pour votre famille.";
Pause();
"^En espérant qu'ils vont bien.";
Listen: "Un silence de mort.";
WaveHands: "Le prêtre lève les yeux vers vous. Il vous fixe sans ciller,
mais il ne répond rien.";
Smell: "Une odeur de vieille église, d'encens protecteur et
purificateur.";
],
has light;
Object bancs "bancs" Eglise
with
name 'bancs' 'vitraux' 'autel' 'confessionnal' 'banc' 'vitrail',
Before [;
Examine: "Divers objets pieux. Tous sont en mauvais état.";
default: "Tous est en trop mauvais état.";
],
has scenery;
Object pretre "prêtre" Eglise
with
name 'prêtre',
description "Un prêtre. Il semble le dernier être vivant de cet étrange
village...",
initial "Un prêtre se tient assis près du confessionnal.",
Before [;
Search: "Laissez donc ce pauvre prêtre tranquille !";
],
Life [ w;
Show:
if (noun == fromage) "« Les étoiles adorent le fromage. »";
TalkTo:
if (verb_word == 'interroger')
"Si vous voulez un renseignement, interrogez-le sur quelque chose
de précis.";
"Le prêtre lève les yeux vers vous. Il vous fixe sans ciller,
mais il ne répond rien.";
Ask, Tell:
wn = consult_from;
while (consult_words) {
w = NextWord();
switch (w) {
'montagne', 'sommet', 'légende':
"« On ne vous a pas menti. La montagne permet effectivement
d'atteindre les étoiles. »";
'village', 'bâtiment', 'bâtiments', 'taverne', 'église',
'catastrophe':
"« Je ne peux rien vous dire. Si vous saviez... Il est
parfois préférable de ne pas connaître la vérité. »";
'étoile', 'étoiles':
"« Vous désirez attraper une étoile ? Peu de gens le savent,
mais les étoiles raffolent du fromage... »";
'fromage':
if (fromage in player)
"« Les étoiles adorent le fromage. Pourquoi ? Je n'en sais
rien. La lune n'est-elle pas en fromage ? »";
move fromage to desordre;
"« Si vous en cherchez, le meilleur endroit pour en trouver
semble être la taverne. »";
}
consult_words--;
}
"Le prêtre ne répond pas. Pourquoi ne pas l'interroger sur un autre
sujet ?";
Attack, Kiss: "Laissez donc ce pauvre prêtre tranquille !";
],
article ARTICLE_UN,
has animate;
Object fromage "morceau de fromage"
with
parse_name [;
if (NextWord() == 'fromage') return 1;
wn--;
if (NextWord() == 'morceau' && NextWord() == 'de'
&& NextWord() == 'fromage') return 3;
],
description "Un beau morceau de fromage de chèvre.",
before [;
Throwat:
if (player in Sommet && second == nothing) {
give self ~concealed;
move fromage to FaceMontagne;
"Vous le lancez si loin qu'il retombe au pied de la montagne.";
}
rfalse;
Eat:
if (self has general)
"Vous en avez envie, mais il n'est pas d'une propreté
irréprochable.";
give self concealed;
move self to desordre;
"Vous mangez le morceau de fromage. Délicieux !";
Smell: "Il sent très fort. Normal pour un vieux morceau de fromage.";
Rub:
give self ~general;
"Vous le débarrassez de la poussière des lieux.";
],
After [;
Take: "Vous récupérez le morceau de fromage.";
Drop, Insert, PutOn, ThrowAt:
give self ~concealed;
give self general;
if (self in Taverne) {
give self concealed;
move self to desordre;
"Avec tous ce désordre, cela va être difficile de le retrouver.";
}
"Vous vous débarrassez du fromage.";
],
article ARTICLE_UN,
has concealed edible general;
[ XyzzySub;
"Ce jeu est dédicacé à tous ceux qui n'ont pas oublié leur âme d'enfant !";
];
[ InfosSub;
print "Celui qui voulait décrocher les étoiles, version ";
print ($02-->0) & $03ff;
", a été écrit en deux heures par Yoruk (Benjamin Roux) le vendredi 25
janvier 2008.^^Note de l'auteur : « J'avais deux heures de libres dans mon
après-midi. J'en ai profité pour m'organiser une petite Rapid'Fiction :
réaliser en deux heures un jeu fonctionnel en utilisant les mots suivants :
montagne, étoile, prêtre, fromage. Deux heures plus tard, j'ai terminé ce
jeu. Bon amusement ! »";
];
[ KeyTimerInterrupt;
rtrue;
];
[ KeyDelay tenths key;
@read_char 1 tenths KeyTimerInterrupt -> key;
return key;
];
[ Pause; !f;
KeyDelay(12);
! if (~~f) new_line;
];
[ Initialise;
lookmode = 2;
"^^Après avoir marché plusieurs jours dans des contrées lointaines,
vous êtes enfin arrivé au pied de la montagne. LA montagne, celle qui est,
soi-disant, tellement haute que l'on peut toucher les étoiles lorsqu'on
est au sommet.^";
];
Verb 'essuyer' * noun -> Rub;
Verb 'suivre' * noun -> Enter;
Verb 'décrocher' 'attraper' * noun -> Take;
Verb 'xyzzy' * -> xyzzy;
Verb 'aide' 'sos' 'manuel' 'infos' 'info' * -> Infos;
Extend 'interroger' first * creature -> TalkTo;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment