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;