French Inform Library Objects
From IFWiki
Bibliothèque d'objets pour Inform
Couteau
Object Couteau "couteau" Cuisine
with description "Un banal couteau de cuisine.",
name 'couteau' 'de' 'cuisine',
before [;
Actionner: if (noun == Pain) {print "Vous coupez du pain avec ce couteau.^"; rtrue;} else rfalse;
],
after [;
Drop: print "De toute façon il ne vaut pas grand chose.";
],
has ;
Orange
Object Orange "orange" Piece_banale
with description "Une orange.",
name 'orange' 'agrume',
before [;
Drop: print "Vous laissez l'orange."; rtrue;
Eat: print "Elle a bon goût, même si c'est un peu acide."; rtrue;
],
has female edible;
Enveloppe
Object Enveloppe "enveloppe"
with description "Au dos se trouve l'adresse de votre correspondant.",
article "une",
name 'enveloppe',
before [;
Lire: print_ret (bp_U) "^Votre nom figure sur le devant.";
Receive:
if (noun == Lettre)
{print ""; return false ;}
else
"Cela ne va pas, cela ne se fait pas de mettre ", (the) noun, " dans l'enveloppe.";
],
has container openable female open;
Lettre
Papier Lettre "lettre" Tiroir
with description "Une lettre d'un ami.",
name 'lettre',
before [;
Lire: "Votre nom est marqué dessus puisque vous en êtes le destinataire.";
],
has female;
Un Téléphone qui fonctionne
d'abord, la fonction qui permet de déterminer le numéro de téléphone (à ne pas changer, à mettre où vous voulez dans votre code)
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: i<length: i++) {
switch (at->i) {
'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;
];
Ensuite l'objet téléphone en lui même :
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;
Ensuite la fonction "Composer" qui vous permet d'appeler un numéro (dans notre exemple, on prend le 36 99 pour l'horloge parlante)
[ComposerSub;
if (telephone in location) {
if (
dialled_number->1==3
&&
dialled_number->2==6
&&
dialled_number->3==9
&&
dialled_number->4==9
) {print "L'horloge parlante vous dit l'heure";}
else {print "Bah, je n'ai pas envie d'appeler ce numéro";}
}
else {print "^Ouaip, je donnerais bien un petit coup de fil, mais il n'y a
pas de téléphone ici.^";
}
];
Et enfin, le verbe composer à ajouter à votre grammaire :
Verb 'composer' 'appeler' * PhoneNumber ->Composer * 'le' PhoneNumber ->Composer;