merge trunk 2007-01-18T18:17:14Z!koraq@xs4all.nl..2007-01-20T19:47:57Z!koraq@xs4all.nl

This commit is contained in:
Mark de Wever 2007-01-20 20:01:01 +00:00
parent 15a47364ee
commit ca2b181a52
10 changed files with 202 additions and 227 deletions

View File

@ -205,6 +205,8 @@ Version 1.3-svn:
* extended label to support team only and colors
* gender-specific forms for trait names are now possible.
* seting a WML variable to a random value now works correctly in MP games
* text displayed when a unit is ambushed is now customizable with the new
alert= key of the [hides] ability (FR #8264 2.)
* sound
* add advanced sound tab to pref allowing you to play with sample_rate and
buffer_size options
@ -216,6 +218,7 @@ Version 1.3-svn:
* first turn of a game is saved again (fixes bug #7909 and bug #8117)
* reduce CPU usage by removing calls to SDL_GetTicks for idle animations
* changed network thread management to be more scalable
* enabled python as default, to disable it use --disable-python
Version 1.2:
* campaigns:

View File

@ -71,9 +71,9 @@ AC_ARG_ENABLE([static],
[static=no])
AC_ARG_ENABLE([python],
AS_HELP_STRING([--enable-python], [enable Python support]),
AS_HELP_STRING([--disable-python], [disable Python support]),
[python=$enableval],
[python=no])
[python=yes])
AC_ARG_ENABLE([lite],
AS_HELP_STRING([--enable-lite], [enable lite version of wesnoth (without music or large images)]),

View File

@ -40,6 +40,9 @@ name=die
# Zhul death
[event]
name=die
[filter]
description=Zhul
[/filter]
[message]
speaker=unit

View File

@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: Battle for Wesnoth 1.1-svn\n"
"Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n"
"POT-Creation-Date: 2007-01-16 21:26+0100\n"
"PO-Revision-Date: 2006-12-29 17:08+0100\n"
"Last-Translator: POLENI <mi.poleni@wanadoo.fr>\n"
"PO-Revision-Date: 2007-01-19 23:28+0100\n"
"Last-Translator: Damien <guydelatour@gloireetpouvoir.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,10 +19,9 @@ msgid ""
"email rusty@rustcorp.com.au!"
msgstr ":)"
# Alors, la traduction doit être 'didacticiel' et non 'didactiel'
#: data/tutorial/scenarios/1_Tutorial.cfg:39
msgid "Wesnoth Tutorial"
msgstr "Didacticiel Wesnoth"
msgstr "Didacticiel de Wesnoth"
#: data/tutorial/scenarios/1_Tutorial.cfg:70
#: data/tutorial/scenarios/1_Tutorial.cfg:149
@ -85,7 +84,7 @@ msgid ""
"For this tutorial, you are playing Konrad. "
msgstr ""
"\n"
"Dans ce tutoriel vous jouez Konrad."
"Dans ce didacticiel vous jouez Konrad."
#: data/tutorial/scenarios/1_Tutorial.cfg:191
#: data/tutorial/scenarios/1_Tutorial.cfg:199
@ -109,7 +108,7 @@ msgid ""
"*Left click or any key to continue..."
msgstr ""
"\n"
"*Pressez le bouton gauche ou sur n'importe quelle touche pour continuer..."
"*Pressez le bouton gauche ou n'importe quelle touche pour continuer..."
#: data/tutorial/scenarios/1_Tutorial.cfg:198
msgid ""
@ -117,7 +116,7 @@ msgid ""
"For this tutorial, you are playing Li'sar. "
msgstr ""
"\n"
"Dans ce tutoriel vous jouez Li'sar."
"Dans ce didacticiel vous jouez Li'sar."
#: data/tutorial/scenarios/1_Tutorial.cfg:204
#: data/tutorial/scenarios/1_Tutorial.cfg:398
@ -174,8 +173,8 @@ msgid ""
msgstr ""
"*Zut !\n"
"Vous vous êtes déplacé au mauvais endroit ! Après ce message, vous pouvez "
"presser 'u' pour annUler, puis réessayer.\n"
"*Pressez le bouton gauche ou sur n'importe quelle touche pour continuer..."
"appuyer sur 'u' pour annUler, puis réessayer.\n"
"*Pressez le bouton gauche ou n'importe quelle touche pour continuer..."
#: data/tutorial/scenarios/1_Tutorial.cfg:309
msgid "Good morning Delfador! Is it time to attack things?"
@ -183,7 +182,7 @@ msgstr "Bonjour Delfador ! Est-ce le moment de s'entraîner à l'attaque ?"
#: data/tutorial/scenarios/1_Tutorial.cfg:314
msgid "Um, well..."
msgstr "Hum, et bien..."
msgstr "Hum, eh bien..."
#: data/tutorial/scenarios/1_Tutorial.cfg:319
msgid "Have you found an orc for me to fight, huh? A troll?"
@ -191,16 +190,16 @@ msgstr "M'avez-vous trouvé un orc à combattre, hein ? Un troll ?"
#: data/tutorial/scenarios/1_Tutorial.cfg:324
msgid "Quiet! I will summon an enemy for you..."
msgstr "Silence ! Je vais vous invoquer un ennemi..."
msgstr "Du calme ! Je vais vous invoquer un ennemi..."
#: data/tutorial/scenarios/1_Tutorial.cfg:364
msgid "... this quintain!"
msgstr "... une quintaine !"
msgstr "... cette quintaine !"
#: data/tutorial/scenarios/1_Tutorial.cfg:369
msgid "A quintain? You want me to pretend to fight a dummy??"
msgstr ""
"Une quintaine ? Vous espérez me voir simuler un combat avec un mannequin ? ?"
"Une quintaine ? Vous espérez me voir simuler un combat avec un mannequin ??"
#: data/tutorial/scenarios/1_Tutorial.cfg:374
msgid ""
@ -209,7 +208,6 @@ msgstr ""
"Mon enfant, vous avez 32 points de vie et une épée. Je suis certain que vous "
"gagnerez."
# 'Konradt' remplacé par 'Konrad'
#: data/tutorial/scenarios/1_Tutorial.cfg:379
msgid ""
"To attack the quintain, you will first select the attacker (Konrad) and then "
@ -236,11 +234,11 @@ msgstr "Cliquez sur la quintaine pour l'attaquer"
#: data/tutorial/scenarios/1_Tutorial.cfg:428
msgid "Hey! This quintain fights back!"
msgstr "Eh ! Cette quintaine se défend !"
msgstr " ! Cette quintaine se défend !"
#: data/tutorial/scenarios/1_Tutorial.cfg:433
msgid "Hmm, maybe we should have started with a doll."
msgstr "Hmm, peut-être aurions-nous dû commencer avec une poupée."
msgstr "Hum, peut-être aurions-nous dû commencer avec une poupée."
#: data/tutorial/scenarios/1_Tutorial.cfg:438
msgid "Should I retreat?"
@ -250,27 +248,23 @@ msgstr "Devrais-je battre en retraite ?"
msgid "Good idea!"
msgstr "Bonne idée !"
# Faute de conjugaison: '... s'il venez à mourrir.' est incorrect.
# Il faut utiliser l'imparfait: '...s'il venait à mourrir.'
# De plus, on est à la 3ème personne du singulier et non pas la 1ère du pluriel.
#: data/tutorial/scenarios/1_Tutorial.cfg:448
msgid ""
"Note: the tiny blue shield near Delfador shows that you will lose the game "
"if he is killed. You will also lose the game if your leader (Konrad) is "
"killed."
msgstr ""
"Remarque : le mini bouclier bleu prêt de Delfador indique que vous perdriez "
"Remarque : le mini-bouclier bleu près de Delfador indique que vous perdriez "
"la partie s'il venait à mourir. Vous perdriez aussi la partie si votre chef "
"(Konrad) venait à être tué."
# Idem que précédement.
#: data/tutorial/scenarios/1_Tutorial.cfg:451
msgid ""
"Note: the tiny blue shield near Delfador shows that you will lose the game "
"if he is killed. You will also lose the game if your leader (Li'sar) is "
"killed."
msgstr ""
"Remarque : le mini bouclier bleu prêt de Delfador indique que vous perdriez "
"Remarque : le mini-bouclier bleu près de Delfador indique que vous perdriez "
"la partie s'il venait à mourir. Vous perdriez aussi la partie si votre chef "
"(Li'sar) venait à être tué."
@ -280,7 +274,7 @@ msgid ""
"quintain will now get a turn."
msgstr ""
"Malheureusement vous avez déjà utilisé votre tour pour attaquer le "
"mannequin. La quintaine a maintenant son tour à jouer."
"mannequin. La quintaine doit maintenant jouer son tour."
#: data/tutorial/scenarios/1_Tutorial.cfg:464
msgid "The DUMMY gets a turn?"
@ -318,9 +312,9 @@ msgid ""
"good idea, and standing in one will heal you at the start of your next turn: "
"you should retreat to there."
msgstr ""
"Il y a un village de l'autre côté de la rivière. Visiter les villages est "
"une bonne idée et terminer son tour dans l'un d'eux te guérit : tu devrais "
"t'y rendre."
"Il y a un village de l'autre côté de la rivière. C'est une bonne idée de "
"visiter les villages, les unités qui y stationnent guérissent au début du "
"tour suivant : vous devriez vous y rendre."
#: data/tutorial/scenarios/1_Tutorial.cfg:502
msgid "Click on the village to move Konrad"
@ -337,12 +331,11 @@ msgid ""
"gold: every turn you gain two gold, plus one for every village you own.\n"
"*Left click or any key to continue..."
msgstr ""
"Maintenant vous 'possédez' ce village : vous pouvez y voir votre drapeau "
"flotter et bientôt un '1' apparaîtra près de l'icône représentant une maison "
"Maintenant vous 'possédez' ce village : vous pouvez y voir flotter votre "
"drapeau et bientôt un '1' apparaîtra près de l'icône représentant une maison "
"en haut de l'écran. Les villages génèrent de l'or : à chaque tour vous "
"gagnez une base de 2 pièces d'or, plus une pour chaque village que vous "
"possédez.\n"
"*Pressez le bouton gauche ou sur n'importe quelle touche pour continuer..."
"gagnez une base de 2 pièces d'or, plus une pour chaque village possédé.\n"
"*Pressez le bouton gauche ou n'importe quelle touche pour continuer..."
#: data/tutorial/scenarios/1_Tutorial.cfg:522
#: data/tutorial/scenarios/1_Tutorial.cfg:620
@ -357,8 +350,8 @@ msgid ""
"You're about to be healed by 8 hitpoints. But I think you're going to need "
"some help against that quintain."
msgstr ""
"Vous allez être guéri de 8 points de vie. Mais je pense que vous aurez "
"besoin d'aide contre cette quintaine."
"Vous allez récupérer 8 points de vie. Mais je pense que vous aurez besoin "
"d'aide contre cette quintaine."
#: data/tutorial/scenarios/1_Tutorial.cfg:561
msgid "I'll recruit some elves!"
@ -374,16 +367,16 @@ msgid ""
"A splendid idea. If you return to your keep, you can recruit two units. "
"You have plenty of gold for that."
msgstr ""
"Une idée brillante. Si vous retournez dans votre donjon, vous pouvez "
"recruter deux unités. Vous avez plein d'or à cette intention."
"Brillante idée. Vous pouvez recruter deux unités si vous retournez dans "
"votre donjon. Vous avez beaucoup d'or pour le faire."
#: data/tutorial/scenarios/1_Tutorial.cfg:572
msgid "Move Konrad to the keep"
msgstr "Déplacez Konrad au donjon"
msgstr "Déplacez Konrad jusqu'au donjon"
#: data/tutorial/scenarios/1_Tutorial.cfg:573
msgid "Move Li'sar to the keep"
msgstr "Déplacez Li'sar au donjon"
msgstr "Déplacez Li'sar jusqu'au donjon"
#: data/tutorial/scenarios/1_Tutorial.cfg:592
msgid ""
@ -395,8 +388,8 @@ msgstr ""
"Quand vous êtes dans un donjon, vous pouvez recruter dans les cases du "
"château alentour, en pressant le bouton droit et en sélectionnant "
"'Recruter'. Dans ce didacticiel, vous n'aurez accès qu'à un seul type "
"d'unité : sélectionnez le.\n"
"*Pressez le bouton gauche ou sur n'importe quelle touche pour continuer..."
"d'unité : sélectionnez-le.\n"
"*Pressez le bouton gauche ou n'importe quelle touche pour continuer..."
#: data/tutorial/scenarios/1_Tutorial.cfg:595
msgid "Right click on one castle tile and select Recruit"
@ -414,9 +407,9 @@ msgid ""
msgstr ""
"Ces unités nouvellement recrutées ne peuvent rien faire durant ce tour : "
"vous pourrez les contrôler au tour suivant.\n"
"Remarque : après ce dialogue, vous pourrez déplacer la souris au dessus "
"Remarque : après ce dialogue, vous pourrez déplacer la souris au-dessus "
"d'une unité pour en voir une description à la droite de l'écran.\n"
"*Pressez le bouton gauche ou sur n'importe quelle touche pour continuer..."
"*Pressez le bouton gauche ou n'importe quelle touche pour continuer..."
#: data/tutorial/scenarios/1_Tutorial.cfg:623
#: data/tutorial/scenarios/1_Tutorial.cfg:653
@ -440,12 +433,12 @@ msgid ""
"have two kinds of attack..."
msgstr ""
"En effet, si une unité ne fait rien durant un tour, elle guérira lentement.\n"
"Mais avant que vous n'envoyez vos guerriers contre ce mannequin, vous "
"devriez savoir qu'ils ont 2 types d'attaque."
"Mais avant d'envoyer vos guerriers contre ce mannequin, vous devriez savoir "
"qu'ils ont 2 types d'attaque."
#: data/tutorial/scenarios/1_Tutorial.cfg:675
msgid "I'll tell them to use the one which does most damage!"
msgstr "Je leur dirai d'utiliser celui qui fait le plus de dégâts !"
msgstr "Je leur dirai d'utiliser celle qui fait le plus de dégâts !"
# Dans les dialogues précédents, on parle de 'type d'attaque', il faut donc garder cela en tête dans la suite.
# De plus, il faut faire attention au temps. Delfador pose une question en demandant l'avis de Konrad.
@ -456,11 +449,11 @@ msgid ""
msgstr ""
"Et lequel serait-ce ? L'épée (5-4, signifiant qu'un coup fait 5 points de "
"dégâts et qu'il y a 4 chances de toucher) ou l'arc (3-3) ? J'imagine que "
"vous trouverez tout seul..."
"vous trouverez par vous-même..."
#: data/tutorial/scenarios/1_Tutorial.cfg:681
msgid "Left click on an Elvish Fighter"
msgstr "Pressez le bouton gauche sur un guerrier elfe"
msgstr "Cliquez avec le bouton gauche sur un guerrier elfe"
#: data/tutorial/scenarios/1_Tutorial.cfg:682
msgid "End your turn, then attack again."
@ -470,11 +463,6 @@ msgstr "Terminez votre tour puis attaquez à nouveau."
msgid "Left click on the Quintain to attack it."
msgstr "Pressez le bouton gauche sur la quintaine pour l'attaquer."
# Je propose plutôt cette traduction:
#
# Votre elfe a utilisé une épée (5-4, soit 5 points de dégâts pour 4 attaques), qui est une arme de mêlée ; aussi la quintaine fut-elle capable de se défendre avec son arme de mêlée (3-5). L'attaque à distance aurait été plus sûre.
#
# En effet, a mon avis, la quintaine a réagi (à l'attaque de Konrad); cette action là est donc la plus 'proche' dans le temps d'où l'utilisation du passé simple pour la description de l'action de la quintaine.
#: data/tutorial/scenarios/1_Tutorial.cfg:718
msgid ""
"Your elf used a sword (5-4, or 5 damage, 4 attacks), which is a melee "
@ -482,11 +470,10 @@ msgid ""
"attack was safer."
msgstr ""
"Votre elfe a utilisé une épée (5-4, soit 5 points de dégâts pour 4 "
"attaques), qui est une arme de mêlée ; ainsi la quintaine a été capable de "
"se défendre avec son arme de mêlée (3-5). L'attaque à distance aurait été "
"plus sécuritaire."
"attaques), qui est une arme de corps à corps ; la quintaine a donc été "
"capable de se défendre avec son arme de corps à corps (3-5). L'attaque à "
"distance aurait été plus sûre."
# Commentaire équivalent au précédent mais appliquer à la présente traduction
#: data/tutorial/scenarios/1_Tutorial.cfg:725
msgid ""
"Your elf used a sword (5-4, or 5 damage, 4 attacks), which is a melee "
@ -495,12 +482,11 @@ msgid ""
"End your turn, then attack again."
msgstr ""
"Votre elfe a utilisé une épée (5-4, soit 5 points de dégâts pour 4 "
"attaques), qui est une arme de mêlée ; ainsi la quintaine a été capable de "
"se défendre avec son arme de mêlée (3-5). L'attaque à distance aurait été "
"plus sécuritaire.\n"
"attaques), qui est une arme de corps à corps ; la quintaine a donc été "
"capable de se défendre avec son arme de corps à corps (3-5). L'attaque à "
"distance aurait été plus sûre.\n"
"Terminez votre tour puis attaquez à nouveau."
# Commentaire équivalent au précédent mais appliquer à la présente traduction
#: data/tutorial/scenarios/1_Tutorial.cfg:735
msgid ""
"Your elf used a sword (5-4, or 5 damage, 4 attacks), which is a melee "
@ -508,9 +494,9 @@ msgid ""
"You should tell the other Elf to use the bow."
msgstr ""
"Votre elfe a utilisé une épée (5-4, soit 5 points de dégâts pour 4 "
"attaques), qui est une arme de mêlée ; ainsi la quintaine a été capable de "
"se défendre avec son arme de mêlée (3-5). L'attaque à distance aurait été "
"plus sécuritaire.\n"
"attaques), qui est une arme de corps à corps ; la quintaine a donc été "
"capable de se défendre avec son arme de corps à corps (3-5). L'attaque à "
"distance aurait été plus sûre.\n"
"Vous devriez dire à l'autre elfe d'utiliser l'arc."
#: data/tutorial/scenarios/1_Tutorial.cfg:737
@ -518,7 +504,6 @@ msgstr ""
msgid "Attack with the other Elf"
msgstr "Attaquez avec l'autre elfe."
# Etant donné l'imossibilité de réaction de la quintaine, le passé composé passe bien mieux ici. On ne changera donc rien ici.
#: data/tutorial/scenarios/1_Tutorial.cfg:767
#: data/tutorial/scenarios/1_Tutorial.cfg:783
msgid ""
@ -528,10 +513,9 @@ msgid ""
msgstr ""
"Votre elfe a utilisé un arc, qui est une attaque à distance (3-3, soit 3 "
"points de dégâts pour 3 attaques). La quintaine n'a pas d'attaque à "
"distance, seulement une attaque de mêlée ; par conséquent elle n'a pas été "
"capable de se défendre."
"distance, mais seulement une attaque de corps à corps ; elle n'a donc pas "
"été capable de se défendre."
# Etant donné l'imossibilité de réaction de la quintaine, le passé composé passe bien mieux ici. On ne changera donc rien ici.
#: data/tutorial/scenarios/1_Tutorial.cfg:774
msgid ""
"Your elf used a bow, which is a ranged attack (3-3, or 3 damage, 3 "
@ -541,8 +525,8 @@ msgid ""
msgstr ""
"Votre elfe a utilisé un arc, qui est une attaque à distance (3-3, soit 3 "
"points de dégâts pour 3 attaques). La quintaine n'a pas d'attaque à "
"distance, seulement une attaque de mêlée ; par conséquent elle n'a pas été "
"capable de se défendre.\n"
"distance, mais seulement une attaque de corps à corps ; elle n'a donc pas "
"été capable de se défendre.\n"
"Terminez votre tour puis attaquez à nouveau."
#: data/tutorial/scenarios/1_Tutorial.cfg:800
@ -562,10 +546,9 @@ msgid ""
"You can right click on a unit to see a detailed Unit Description."
msgstr ""
"Remarque :\n"
"Vous pouvez pressez le bouton droit sur une unité pour avoir accès à une "
"Vous pouvez presser le bouton droit sur une unité pour avoir accès à une "
"'Description de l'unité' détaillée."
# Majuscule en début de phrase.
#: data/tutorial/scenarios/1_Tutorial.cfg:828
msgid ""
"Note:\n"
@ -577,7 +560,6 @@ msgstr ""
"villages et d'en recruter davantage si nécessaire. Protégez en particulier "
"vos unités avec le plus de points d'expérience (XP)."
# Majuscule en début de phrase.
#: data/tutorial/scenarios/1_Tutorial.cfg:845
msgid ""
"Note:\n"
@ -585,10 +567,9 @@ msgid ""
"should be able to kill them one at a time."
msgstr ""
"Remarque :\n"
"Ces poupées n'attaquent que si vous êtes à une case adjacente. En faisant "
"Ces poupées n'attaquent que si vous êtes sur une case adjacente. En faisant "
"attention vous devriez être capable de les tuer l'une après l'autre."
# Majuscule en début de phrase.
#: data/tutorial/scenarios/1_Tutorial.cfg:856
msgid ""
"Note:\n"
@ -597,7 +578,7 @@ msgid ""
msgstr ""
"Remarque :\n"
"Chacun de vos villages permet d'entretenir une de vos unités. Si vous avez "
"plus d'unités que de villages, chaque unité en trop vous coûtera une pièce "
"plus d'unités que de villages, chaque unité en trop vous coûte une pièce "
"d'or par tour."
#: data/tutorial/scenarios/1_Tutorial.cfg:865
@ -609,7 +590,7 @@ msgid ""
"twice as much to support as level 1 units."
msgstr ""
"Remarque :\n"
"quand une unité a acquis suffisamment d'expérience (la barre d'expérience "
"Quand une unité a acquis suffisamment d'expérience (la barre d'expérience "
"est la plus petite barre à droite près du personnage), elle montera de "
"niveau. Les guerriers elfes ont deux possibilités et vous devrez choisir "
"celle que vous désirez. Notez que le coût d'entretien d'une unité de niveau "
@ -625,14 +606,14 @@ msgid ""
msgstr ""
"Remarque :\n"
"Lorsque vous sélectionnez une unité, vous pouvez voir des pourcentages pour "
"divers types de terrain : plus le pourcentage est haut, meilleure est la "
"divers types de terrain : plus le pourcentage est élevé, meilleure est la "
"défense. Par exemple la défense est bonne dans les châteaux et les villages, "
"mauvaise dans les rivières. Cependant les attaques des mannequins sont "
"magiques, ainsi ils ont 70% de chance de vous toucher où que vous soyiez."
"magiques, ainsi ils ont 70 % de chance de vous toucher où que vous soyiez."
#: data/tutorial/scenarios/1_Tutorial.cfg:896
msgid "The quintain is dead, sirs, and I have gained more experience!"
msgstr "Le mannequin est mort Messire, et j'ai gagné davantage d'expérience !"
msgstr "Le mannequin est mort, Messire, et j'ai gagné davantage d'expérience !"
#: data/tutorial/scenarios/1_Tutorial.cfg:900
#: data/tutorial/scenarios/1_Tutorial.cfg:904
@ -650,7 +631,7 @@ msgid ""
"we have real work to do..."
msgstr ""
"Maintenant Konrad, je vais vous laisser avec plus de pantins pour vous "
"entrainer ! Après cela, nous avons du travail qui nous attend."
"entraîner ! Après cela, nous avons du travail qui nous attend."
#: data/tutorial/scenarios/1_Tutorial.cfg:905
msgid ""
@ -658,7 +639,7 @@ msgid ""
"we have real work to do..."
msgstr ""
"Maintenant Li'sar, je vais vous laisser avec plus de pantins pour vous "
"entrainer ! Après cela, nous avons du travail qui nous attend."
"entraîner ! Après cela, nous avons du travail qui nous attend."
#: data/tutorial/scenarios/1_Tutorial.cfg:952
msgid "Do you want to keep practicing?"
@ -694,7 +675,7 @@ msgid ""
"advance a level."
msgstr ""
", votre nouvelle recrue, a 2 traits : fort et intelligent. Fort signifie "
"qu'une unité fait davantage de dégâts et intelligent signifie qu'elle "
"qu'une unité fait davantage de dégâts, et intelligent signifie qu'elle "
"nécessite moins d'expérience pour monter de niveau."
#: data/tutorial/scenarios/2_Speaking.cfg:86
@ -724,7 +705,6 @@ msgid "Can one unit survive against all those enemies?"
msgstr "Une unité peut-elle survivre seule contre tous ces ennemis ?"
#: data/tutorial/scenarios/2_Tutorial.cfg:28
#, fuzzy
msgid ""
"With a little help, yes. If you move your Shaman next to the defending "
"unit, it will heal it by 4 hitpoints per turn. Just be careful not to "
@ -732,8 +712,8 @@ msgid ""
msgstr ""
"Avec un peu d'aide, oui. Si vous déplacez votre chaman à côté de l'unité qui "
"défend, il la guérira de 4 points de vie par tour. Faites seulement "
"attention de ne pas exposer le chaman à des attaques : il est plutôt faible "
"pour sa part."
"attention de ne pas exposer le chaman aux attaques : il est lui-même plutôt "
"faible."
#: data/tutorial/scenarios/2_Tutorial.cfg:29
msgid "Move a unit (fighter if possible) to the patch of forest"
@ -761,18 +741,17 @@ msgstr "J'espère que je pourrai battre en retraite après cela !"
#: data/tutorial/scenarios/2_Tutorial.cfg:194
msgid "One lucky attack by an Orcish Grunt and I'm done for!"
msgstr ""
"Plus qu'une seule attaque chanceuse de la part d'un Grognard orc et je suis "
"Plus qu'une seule attaque chanceuse de la part d'un grognard orc et je suis "
"fait !"
#: data/tutorial/scenarios/2_Tutorial.cfg:205
msgid "Ouch! I could use some healing in a village."
msgstr "Ouille ! Je ne serais pas contre aller me soigner dans un village."
msgstr "Ouille ! J'aimerais aller me soigner dans un village."
#: data/tutorial/scenarios/2_Tutorial.cfg:231
msgid "I have $gold gold: enough to recruit!"
msgstr "J'ai $gold d'or : bien assez pour recruter !"
# Pourquoi passer du 'vous' au 'tu'?
#: data/tutorial/scenarios/2_Tutorial.cfg:232
msgid "Yes, keep recruiting more units: I think you might need them!"
msgstr ""
@ -780,7 +759,7 @@ msgstr ""
#: data/tutorial/scenarios/2_Tutorial.cfg:243
msgid "Wesnoth Tutorial Part II"
msgstr "Tutoriel Wesnoth -- seconde partie"
msgstr "Didacticiel de Wesnoth -- seconde partie"
#: data/tutorial/scenarios/2_Tutorial.cfg:268
msgid "Thrag"
@ -806,7 +785,7 @@ msgstr "Nombre de tours dépassé"
#: data/tutorial/scenarios/2_Tutorial.cfg:339
msgid "Death of Li'sar"
msgstr "La Mort de Li'sar"
msgstr "Mort de Li'sar"
#: data/tutorial/scenarios/2_Tutorial.cfg:378
msgid ""
@ -818,7 +797,7 @@ msgstr ""
#: data/tutorial/scenarios/2_Tutorial.cfg:379
msgid "This is no game, Konrad! "
msgstr "Ce n'est pas un jeu Konrad !"
msgstr "Ce n'est pas un jeu, Konrad !"
#: data/tutorial/scenarios/2_Tutorial.cfg:380
#: data/tutorial/scenarios/2_Tutorial.cfg:381
@ -828,13 +807,13 @@ msgid ""
"defeat their leader, so they never bother us again. I will advise you."
msgstr ""
"Les orcs ont monté un campement de l'autre côté de la rivière. Nous sommes "
"en pays elfe : nous autres Elfes sommes rapides et durs à atteindre en "
"forêt. Ce sont des fous pour être venus ici ! Vous devez éliminer leur "
"meneur, de sorte qu'ils ne nous dérangent plus jamais. Je vous conseillerai."
"en pays elfe : nous autres elfes sommes rapides et durs à atteindre en "
"forêt. Ils sont fous d'être venus ici ! Vous devez éliminer leur meneur pour "
"qu'ils ne nous dérangent plus jamais. Je vous conseillerai."
#: data/tutorial/scenarios/2_Tutorial.cfg:380
msgid "This is no game, Li'sar! "
msgstr "Ce n'est pas un jeu Li'sar !"
msgstr "Ce n'est pas un jeu, Li'sar !"
#: data/tutorial/scenarios/2_Tutorial.cfg:382
msgid "What should I do?"
@ -845,7 +824,7 @@ msgid ""
"First, we will have to deal with the Orcish Grunt stationed in the middle of "
"the river. He should be little trouble."
msgstr ""
"Tout d'abord nous devrons nous occuper du Grognard orc posté au milieu de la "
"Tout d'abord nous devrons nous occuper du grognard orc posté au milieu de la "
"rivière. Il ne devrait pas poser beaucoup de problèmes."
#: data/tutorial/scenarios/2_Tutorial.cfg:388
@ -853,8 +832,8 @@ msgid ""
"By then, their leader will have recruited units to send against us, and the "
"real fight will begin."
msgstr ""
"D'ici là leur meneur aura recruté des unités à nous envoyer et le vrai "
"combat commencera."
"D'ici là, leur meneur aura recruté des unités à envoyer contre nous et le "
"vrai combat commencera."
#: data/tutorial/scenarios/2_Tutorial.cfg:389
#: data/tutorial/scenarios/2_Tutorial.cfg:390
@ -882,7 +861,7 @@ msgstr ""
"puissions passer, et pour eux aussi. Ils pourraient lentement se frayer un "
"chemin dans cette mince bande d'eau peu profonde d'un bleu plus clair, à "
"l'est, mais nous nous tiendrions sur le rivage et les forcerions à nous "
"combattre depuis l'eau où ils sont plus exposés alors que nous sommes "
"combattre depuis l'eau où ils sont plus exposés alors que nous serions "
"protégés par la forêt."
#: data/tutorial/scenarios/2_Tutorial.cfg:410
@ -891,9 +870,9 @@ msgid ""
"the key: it has a village, for healing injured units, and forest in which we "
"fight so well."
msgstr ""
"L'attaque la plus probable, par conséquent, est au travers du pont. Cette "
"île au milieu est la clé: elle a un village, pour guérir les unités "
"blessées, et une forêt dans laquelle nous savons si bien nous battre."
"Par conséquent, l'attaque la plus probable est par le pont. Cette île au "
"milieu est la clé : elle a un village pour guérir les unités blessées, et "
"une forêt dans laquelle nous savons si bien nous battre."
#: data/tutorial/scenarios/2_Tutorial.cfg:415
msgid ""
@ -913,10 +892,10 @@ msgid ""
"and $recall_name2 gained $recall_xp2. You should recall them now so they "
"can gain more experience, rather than recruiting new ones."
msgstr ""
"Pendant votre didactiel, $recall_name1 a gagné $recall_xp1 points "
"Pendant ce didacticiel, $recall_name1 a gagné $recall_xp1 points "
"d'expérience et $recall_name2 en a gagné $recall_xp2. Vous devriez les "
"rappeler maintenant, de sorte qu'ils puissent gagner encore plus "
"d'expérience, plutôt qu'en recruter de nouveaux."
"rappeler maintenant, pour qu'ils puissent gagner encore plus d'expérience, "
"plutôt qu'en recruter de nouveaux."
#: data/tutorial/scenarios/2_Tutorial.cfg:486
msgid ""
@ -924,10 +903,10 @@ msgid ""
"You should recall that unit now, and recruit a second one (which is cheaper "
"than recalling, anyway)."
msgstr ""
"Pendant votre didactiel, $recall_name1 a gagné $recall_xp1 points "
"Pendant ce didacticiel, $recall_name1 a gagné $recall_xp1 points "
"d'expérience. Vous devriez rappeler cette unité maintenant, de sorte qu'elle "
"puisse gagner encore plus d'expérience et en recruter une seconde (ce qui "
"est moins cher que rappeler de toutes façons)."
"est moins cher que de rappeler de toute façon)."
#: data/tutorial/scenarios/2_Tutorial.cfg:489
msgid "RECALL $recall_name1"
@ -938,17 +917,15 @@ msgid "Right click on the tile south of you and recall $recall_name1"
msgstr ""
"Pressez le bouton droit sur la case au sud de vous et rappelez $recall_name1"
# Dans le complément d'objet, il faut faire l'accord du participe avec 'qui' qui représente les 'guerriers elfes' même avec le verbe avoir présent.
#: data/tutorial/scenarios/2_Tutorial.cfg:499
msgid ""
"If any Elvish Fighters from your last battle had experience, we would recall "
"them: as they don't, it's cheaper to recruit new ones. So recruit an Elvish "
"Fighter."
msgstr ""
"Si certains des guerriers elfes qui ont survécus à votre dernière bataille "
"avaient de l'expérience, nous les rappellerions : comme ce n'est pas le cas, "
"il est plus économique d'en recruter de nouveaux. Recrutez donc un guerrier "
"elfe."
"Si certains guerriers elfes expérimentés avaient survécu à votre dernière "
"bataille, nous les rappellerions : comme ce n'est pas le cas, il est plus "
"économique d'en recruter de nouveaux. Recrutez donc un guerrier elfe."
#: data/tutorial/scenarios/2_Tutorial.cfg:502
msgid ""
@ -990,9 +967,6 @@ msgstr ""
msgid "So, should I end my turn now?"
msgstr "Je peux terminer mon tour maintenant ?"
# Là, l'accord est bien respecté dans le complément avec le verbe avoir.
#
# La tournure de phrase 'Vous avez besoin' nécessite l'introduction de 'de' : on a besoin de quelque chose. Ce n'est pas le cas d'une tournure de phrase du type 'Il vous faut davantage de revenu' puisqu'on ne dit pas: il nous faut de quelque chose. Evidemment...
#: data/tutorial/scenarios/2_Tutorial.cfg:549
msgid ""
"It's true, none of your recruited units can move, but you still can. Your "
@ -1002,15 +976,15 @@ msgstr ""
"Il est vrai qu'aucune des unités que vous avez recrutées ne peut bouger, "
"mais vous, vous le pouvez encore. Vos 5 unités vous coûtent 5 pièces d'or, "
"vous appauvrissant de 3 pièces d'or à chaque tour. Vous avez besoin de "
"davantage de revenu."
"davantage de revenus."
#: data/tutorial/scenarios/2_Tutorial.cfg:550
msgid "Move Konrad to capture a village"
msgstr "Déplacez Konrad afin de prendre un village"
msgstr "Déplacez Konrad pour prendre un village"
#: data/tutorial/scenarios/2_Tutorial.cfg:551
msgid "Move Li'sar to capture a village"
msgstr "Déplacez Li'sar afin de prendre un village"
msgstr "Déplacez Li'sar pour prendre un village"
#: data/tutorial/scenarios/2_Tutorial.cfg:570
#: data/tutorial/scenarios/2_Tutorial.cfg:615
@ -1059,7 +1033,7 @@ msgstr "Recrutez deux archers elfes dans les cases à l'ouest de vous"
#: data/tutorial/scenarios/2_Tutorial.cfg:685
msgid "No! I said recruit an Elvish FIGHTER! Now try again..."
msgstr ""
"Non ! J'ai dit de recruter un GUERRIER Elfe ! Maintenant essayez encore..."
"Non ! J'ai dit de recruter un GUERRIER elfe ! Maintenant essayez encore..."
#: data/tutorial/scenarios/2_Tutorial.cfg:695
#: data/tutorial/scenarios/2_Tutorial.cfg:706
@ -1072,7 +1046,6 @@ msgstr ""
"Non ! J'ai dit de rappeler $recall_name1|, non pas $recall_name2| ! "
"Maintenant essayez encore..."
# Ne pas oublier le $ devant recruit.type|
#: data/tutorial/scenarios/2_Tutorial.cfg:761
msgid ""
"No! I said RECALL $recall_name1 from the last battle, not recruit a new "
@ -1096,13 +1069,13 @@ msgstr "RAPPELEZ $recall_name2"
#: data/tutorial/scenarios/2_Tutorial.cfg:826
msgid "Right click on the tile south-east of you and recruit an Elvish Fighter"
msgstr ""
"Pressez le bouton droit sur la case au sud-est de vous puis recrutez un "
"guerrier Elfe"
"Pressez le bouton droit sur la case au sud-est de vous, puis recrutez un "
"guerrier elfe"
#: data/tutorial/scenarios/2_Tutorial.cfg:799
msgid "$recruit.type|? I said RECRUIT a new ELVISH FIGHTER. Now try again..."
msgstr ""
"$recruit.type| ? J'ai dit de recruter un nouveau GUERRIER Elfe ! Maintenant "
" $recruit.type| ? J'ai dit de recruter un nouveau GUERRIER elfe ! Maintenant "
"essayez encore..."
#: data/tutorial/scenarios/2_Tutorial.cfg:813
@ -1121,7 +1094,7 @@ msgid ""
"losing 1 gold per turn now."
msgstr ""
"Le village entretient une unité et vous rapporte une pièce d'or par tour : "
"vous perdez seulement une pièce d'or par tour maintenant."
"vous perdez seulement une pièce d'or par tour désormais."
#: data/tutorial/scenarios/2_Tutorial.cfg:854
msgid "You've learned well, Li'sar! "
@ -1138,7 +1111,7 @@ msgid ""
"recruit more units."
msgstr ""
"Vous avez pris tous les villages autour du donjon, mais restez à proximité "
"de sorte que vous puissiez recruter davantage d'unités."
"pour pouvoir recruter davantage d'unités."
#: data/tutorial/scenarios/2_Tutorial.cfg:877
msgid ""
@ -1146,8 +1119,8 @@ msgid ""
"needs to stay nearby to recruit more units anyway."
msgstr ""
"Vous devriez laisser les villages à proximité de votre donjon pour que "
"Konrad les capture : le meneur a besoin de rester proche de toutes façons "
"afin de pouvoir recruter plus d'unités."
"Konrad les capture : le meneur a besoin de rester proche de toute façon afin "
"de pouvoir recruter plus d'unités."
#: data/tutorial/scenarios/2_Tutorial.cfg:878
msgid ""
@ -1155,8 +1128,8 @@ msgid ""
"needs to stay nearby to recruit more units anyway."
msgstr ""
"Vous devriez laisser les villages à proximité de votre donjon pour que "
"Li'sar les capture : le meneur a besoin de rester proche de toutes façons "
"afin de pouvoir recruter plus d'unités."
"Li'sar les capture : le meneur a besoin de rester proche de toute façon afin "
"de pouvoir recruter plus d'unités."
#: data/tutorial/scenarios/2_Tutorial.cfg:884
msgid "Orcs have no ranged attack, so use your archers against it."
@ -1170,7 +1143,7 @@ msgid ""
"right)"
msgstr ""
"Attaquez l'orc avec un archer\n"
"(déplacez la souris au dessus des unités pour en avoir une description à "
"(déplacez la souris au-dessus des unités pour en avoir une description à "
"droite)"
#: data/tutorial/scenarios/2_Tutorial.cfg:894
@ -1178,7 +1151,7 @@ msgid ""
"Excellent. Elves are well protected in the forest: there's only a 30% "
"chance of hitting an Elven Archer when it's in forest."
msgstr ""
"Excellent. Les elfes sont bien protégés en forêt : il y a seulement 30% de "
"Excellent. Les elfes sont bien protégés en forêt : il y a seulement 30 % de "
"chances de toucher un archer elfe qui se trouve dans la forêt."
#: data/tutorial/scenarios/2_Tutorial.cfg:903
@ -1188,7 +1161,7 @@ msgid ""
"Cancel!"
msgstr ""
"C'est très dangereux de rester dans l'eau quand il y a des ennemis à "
"proximité ! Votre unité aurait 80% de chance de se faire toucher si l'orc "
"proximité ! Votre unité aurait 80 % de chance de se faire toucher si l'orc "
"contre-attaquait ! Annulez !"
#: data/tutorial/scenarios/2_Tutorial.cfg:909
@ -1197,7 +1170,7 @@ msgstr "Attaquez l'orc avec l'autre archer"
#: data/tutorial/scenarios/2_Tutorial.cfg:921
msgid "Fighter to Here"
msgstr "Guerrier Ici"
msgstr "Guerrier ici"
#: data/tutorial/scenarios/2_Tutorial.cfg:922
msgid ""
@ -1225,9 +1198,8 @@ msgid ""
"Send the other Fighter and the Shaman south so they can attack next turn, "
"then return to the keep to recruit more units!"
msgstr ""
"Envoyez l'autre guerrier et le chaman au sud, de sorte qu'ils puissent "
"attaquer au tour suivant ; puis revenez au donjon pour recruter plus "
"d'unités !"
"Envoyez l'autre guerrier et le chaman au sud pour qu'ils puissent attaquer "
"au tour suivant ; puis revenez au donjon pour recruter plus d'unités !"
#: data/tutorial/scenarios/2_Tutorial.cfg:936
msgid "Move Fighter and Shaman south, then return Konrad to the Keep"
@ -1291,8 +1263,8 @@ msgid ""
"To move your troops onto that island without wading slowly through the "
"water, you'll have to kill him."
msgstr ""
"Non: une fois que vous vous êtes approché d'une unité ennemie, vous êtes "
"dans sa 'Zone de Contrôle' (ZdC) et ne pouvez plus bouger durant ce tour.\n"
"Non : une fois que vous vous êtes approché d'un ennemi, vous êtes dans sa "
"'Zone de Contrôle' (ZdC) et ne pouvez plus bouger durant ce tour.\n"
"Pour déplacer vos troupes sur cette île sans devoir patauger péniblement "
"dans l'eau, vous devrez le tuer."
@ -1333,8 +1305,8 @@ msgid ""
"Be careful: if you stand on the bridge you are exposed to attack from "
"multiple directions!"
msgstr ""
"Faites attention: si vous restez sur le pont, vous êtes exposé à des "
"attaques de multiples provenances !"
"Faites attention : si vous restez sur le pont, vous êtes exposé à des "
"attaques provenant de plusieurs côtés !"
#: data/tutorial/scenarios/2_Tutorial.cfg:1090
msgid ""
@ -1342,8 +1314,8 @@ msgid ""
"unit would have an 80% chance of being hit! Cancel, and wait for them to "
"attack you!"
msgstr ""
"Il est très dangereux de se tenir dans l'eau alors qu'il y a des ennemis à "
"proximité ! Votre unité aurait 80% de chance d'être touchée ! Annulez et "
"Il est très dangereux d'être dans l'eau quand il y a des ennemis à "
"proximité ! Votre unité aurait 80 % de chance d'être touchée ! Annulez et "
"attendez qu'ils vous attaquent !"
#: data/tutorial/scenarios/2_Tutorial.cfg:1100
@ -1370,7 +1342,7 @@ msgid ""
"Elves are neutral: we are unaffected by night and day."
msgstr ""
"Soyez prudent ! Il fait maintenant nuit. Les orcs sont chaotiques : leurs "
"attaques sont 25% plus puissantes de nuit, 25% plus faibles de jour. Vous "
"attaques sont 25 % plus puissantes de nuit, 25 % plus faibles de jour. Vous "
"êtes loyal : plus puissant de jour. Les elfes sont neutres : nous ne sommes "
"pas affectés par les cycles diurnes et nocturnes."
@ -1379,7 +1351,7 @@ msgid ""
"After this dialog, hold the mouse over the image below the map on the right, "
"to see a description of the time of day."
msgstr ""
"A la fin de ce dialogue, maintenez votre souris au dessus de l'image du ciel "
"À la fin de ce dialogue, maintenez votre souris au-dessus de l'image du ciel "
"située sous la mini-carte sur la droite pour voir une description de la "
"période de la journée."
@ -1462,8 +1434,8 @@ msgid ""
"Using me to attack is risky! I can slow the opponent with my ranged attack, "
"but I hope you have a plan if I miss!"
msgstr ""
"M'utiliser pour attaquer est risqué ! Je peux ralentir l'ennemi avec mon "
"attaque à distance, mais j'espère que vous avez un plan de secours si je "
"Il est risqué de m'utiliser pour attaquer ! Je peux ralentir l'ennemi avec "
"mon attaque à distance, mais j'espère que vous avez un plan de secours si je "
"rate !"
#: data/tutorial/scenarios/2_Tutorial.cfg:1243
@ -1473,7 +1445,7 @@ msgid ""
"gain 16 experience points, because he is level 2. Choose your unit "
"carefully!"
msgstr ""
"Vous êtes sur le point de tuer leur meneur ! L'unité qui le finira gagnera "
"Vous êtes sur le point de tuer leur meneur ! L'unité qui l'achèvera gagnera "
"16 points d'expérience car il est niveau 2. Choisissez votre unité avec "
"attention !"
@ -1482,23 +1454,22 @@ msgid ""
"We will miss $deadguy.user_description|, and he had $deadguy.experience "
"experience points, meaning he would have advanced to level 2 soon."
msgstr ""
"$deadguy.user_description nous manquera. En plus il avait $deadguy."
"experience points d'expérience, ce qui signifie qu'il allait bientôt "
"atteindre le niveau 2."
"Nous allons regretter $deadguy.user_description|. En plus, il avait $deadguy."
"experience points d'expérience, il allait donc bientôt atteindre le niveau 2."
#: data/tutorial/scenarios/2_Tutorial.cfg:1309
msgid ""
"We will miss $deadguy.user_description|, but better than one of our "
"experienced troops dying!"
msgstr ""
"$deadguy.user_description nous manquera, mais c'est préférable à perdre une "
"de nos unité expérimentée !"
"Nous allons regretter $deadguy.user_description, mais c'est préférable à "
"perdre une de nos unités expérimentées !"
#: data/tutorial/scenarios/2_Tutorial.cfg:1322
msgid ""
"Losing a healer hurts all the troops! Keep them out of the enemy's reach!"
msgstr ""
"Perdre un guérisseur met à mal toutes les troupes ! Gardez les hors "
"Perdre un guérisseur met à mal toutes les troupes ! Gardez-les hors "
"d'atteinte des ennemis !"
#: data/tutorial/scenarios/2_Tutorial.cfg:1323
@ -1508,8 +1479,8 @@ msgid ""
"the 'Actions' menu."
msgstr ""
"Vous pouvez voir les zones atteignables par un ennemi en déplaçant la souris "
"au dessus d'eux. Vous pouvez voir tous les déplacements ennemis possibles en "
"une fois à partir de l'option 'Afficher les déplacements ennemis' du menu "
"sur lui. Vous pouvez voir tous les déplacements ennemis possibles en une "
"fois à partir de l'option 'Afficher les déplacements ennemis' du menu "
"'Actions'."
#: data/tutorial/scenarios/2_Tutorial.cfg:1327
@ -1526,7 +1497,7 @@ msgid ""
"units at once, during the day."
msgstr ""
"Faites attention au meneur : il peut faire 36 points de dégâts de nuit ! "
"Attaquez le avec beaucoup d'unités à la fois, en plein jour."
"Attaquez-le avec beaucoup d'unités à la fois, en plein jour."
#: data/tutorial/scenarios/2_Tutorial.cfg:1355
msgid ""
@ -1535,7 +1506,7 @@ msgid ""
"each of the four attacks. Use me to dislodge hard-to-hit units."
msgstr ""
"Monter d'un niveau a complètement guéri mes blessures !\n"
"J'ai toujours 60% de chances de toucher avec mon arc et chacune de mes 4 "
"J'ai toujours 60 % de chances de toucher avec mon arc et chacune de mes 4 "
"attaques fait 9 points de dégâts si elle touche. Utilisez-moi pour déloger "
"des unités difficiles à toucher."
@ -1548,8 +1519,8 @@ msgid ""
msgstr ""
"Avancer d'un niveau a complètement guéri mes blessures !\n"
"Je suis aussi bon à l'arc qu'à l'épée, mais j'ai une capacité spéciale : "
"l'embuscade. Je peux me cacher en forêt et les ennemis peuvent me voir "
"uniquement lorsqu'elles sont juste à côté de moi."
"l'embuscade. Je peux me cacher en forêt et les ennemis peuvent me voir que "
"lorsqu'elles sont juste à côté de moi."
#: data/tutorial/scenarios/2_Tutorial.cfg:1379
msgid ""
@ -1559,9 +1530,9 @@ msgid ""
"carefully."
msgstr ""
"Monter d'un niveau a complètement guéri mes blessures !\n"
"Je suis aussi bon avec l'arc qu'avec l'épée, mais j'ai aussi une capacité "
"spéciale : le commandement. Les unités de niveau 1 autour de moi font 25% de "
"dégâts en plus, donc placez moi stratégiquement."
"Je suis aussi bon à l'arc qu'à l'épée, mais j'ai aussi une capacité "
"spéciale : le commandement. Les unités de niveau 1 autour de moi font 25 % "
"de dégâts en plus, donc placez-moi stratégiquement."
#: data/tutorial/scenarios/2_Tutorial.cfg:1392
msgid ""
@ -1643,8 +1614,8 @@ msgid ""
"Quintains are used to practice swordplay and jousting on. It would be "
"extremely unusual to be attacked by one."
msgstr ""
"Les quintaines sont utilisées pour s'entrainer à la joute et à l'épée. Il "
"n'est pas courant de se faire attaquer par l'une d'entre elles."
"Les quintaines sont utilisées pour s'exercer à la joute et à l'épée. Il est "
"rare de se faire attaquer par l'une d'entre elles."
#: data/tutorial/units/Quintain.cfg:21 data/tutorial/units/Quintain.cfg:22
msgid "flail"

View File

@ -1835,6 +1835,7 @@ size_t move_unit(display* disp, const game_data& gamedata,
bool discovered_unit = false;
bool should_clear_stack = false;
std::vector<gamemap::location>::const_iterator step;
std::string ambushed_string;
for(step = route.begin()+1; step != route.end(); ++step) {
const t_translation::t_letter terrain = map[step->x][step->y];
@ -1894,6 +1895,11 @@ size_t move_unit(display* disp, const game_data& gamedata,
if(it != units.end() && teams[ui->second.side()-1].is_enemy(it->second.side()) &&
it->second.invisible(it->first,units,teams)) {
discovered_unit = true;
unit_ability_list hides = it->second.get_abilities("hides",it->first);
for(std::vector<std::pair<config*,gamemap::location> >::const_iterator hide_it = hides.cfgs.begin();
hide_it != hides.cfgs.end(); ++hide_it) {
ambushed_string =(*hide_it->first)["alert"];
}
should_clear_stack = true;
moves_left = 0;
break;
@ -1996,8 +2002,10 @@ size_t move_unit(display* disp, const game_data& gamedata,
//show messages on the screen here
if(discovered_unit) {
if (ambushed_string.empty())
ambushed_string = _("Ambushed!");
//we've been ambushed, so display an appropriate message
font::add_floating_label(_("Ambushed!"),font::SIZE_XLARGE,font::BAD_COLOUR,
font::add_floating_label(ambushed_string,font::SIZE_XLARGE,font::BAD_COLOUR,
disp->map_area().w/2,disp->map_area().h/3,
0.0,0.0,100,disp->map_area(),font::CENTER_ALIGN);
}

View File

@ -2,8 +2,6 @@
#include "ai_dfool.hpp"
namespace dfool {
bool test=1;
void dfool_ai::play_turn(){
info info_ = get_info();
int team_num=get_info().team_num;
@ -19,19 +17,11 @@ namespace dfool {
LOG_STREAM(info, ai)<<"dfool sees:"<<std::endl;
for(unit_map::iterator ui = get_info().units.begin(); ui != get_info().units.end(); ++ui) {
if(test){
// ui->second.assign_ai_special("test");
}else{
// ui->second.assign_ai_special("notest");
}
}
for(unit_map::iterator ua = get_info().units.begin(); ua != get_info().units.end(); ++ua) {
std::string t = ua->second.get_ai_special();
LOG_STREAM(info, ai)<<"ua:"<<ua->second.underlying_description()<<"\t"<<t<<std::endl;
LOG_STREAM(info, ai)<<"\t\t\t"<<ua->first.x<<","<<ua->first.y<<std::endl;
}
// for(unit_map::iterator ua = get_info().units.begin(); ua != get_info().units.end(); ++ua) {
// std::string t = ua->second.get_ai_special();
// LOG_STREAM(info, ai)<<"ua:"<<ua->second.underlying_description()<<"\t"<<t<<std::endl;
// LOG_STREAM(info, ai)<<"\t\t\t"<<ua->first.x<<","<<ua->first.y<<std::endl;
// }
unit_list all = all_units();
unit_list my_units=filter_units(side_filter, all,get_info().units);
@ -49,14 +39,14 @@ namespace dfool {
// LOG_STREAM(info, ai)<<"\t\t\t"<<u->first.x<<","<<u->first.y<<std::endl;
// }
// }
LOG_STREAM(info, ai)<<"Visible Units"<<std::endl;
LOG_STREAM(info, ai)<<"Visible Units"<<std::endl;
for(unit_list::iterator ui = v_units.begin(); ui != v_units.end(); ++ui) {
unit_map::iterator u = unit(*ui,get_info().units);
if(u!=get_info().units.end()){
LOG_STREAM(info, ai)<<"\t"<<u->second.name()<<std::endl;
// LOG_STREAM(info, ai)<<"\t"<<u->second.name()<<std::endl;
LOG_STREAM(info, ai)<<"\t\t"<<u->second.underlying_description()<<std::endl;
LOG_STREAM(info, ai)<<"\t\t\t"<<u->second.get_ai_special()<<std::endl;
LOG_STREAM(info, ai)<<"\t\t\t"<<u->first.x<<","<<u->first.y<<std::endl;
// LOG_STREAM(info, ai)<<"\t\t\t"<<u->second.get_ai_special()<<std::endl;
// LOG_STREAM(info, ai)<<"\t\t\t"<<u->first.x<<","<<u->first.y<<std::endl;
}
}
@ -78,7 +68,7 @@ namespace dfool {
if(filter.size()){
for(config::child_list::const_iterator f = filter.begin(); f != filter.end(); ++f) {
config ff=**f;
LOG_STREAM(info, ai)<<"dfool filter:"<<std::endl;
// LOG_STREAM(info, ai)<<"dfool filter:"<<std::endl;
unit_list filtered_units=filter_units(ff,my_units,get_info().units);
//FIXME: add sorting
@ -88,16 +78,16 @@ namespace dfool {
if(ui!=get_info().units.end()){
std::string ais=ui->second.get_ai_special();
LOG_STREAM(info, ai)<<"\t match: "<<ui->second.underlying_description()<<"\t"<<ais<<":::"<<std::endl;
// LOG_STREAM(info, ai)<<"\t match: "<<ui->second.underlying_description()<<"\t"<<ais<<":::"<<std::endl;
bool used=(ais.size());
bool used=(ais.size() > 0);
if(used){
LOG_STREAM(info, ai)<<"\t\talready assigned: "<<ui->second.underlying_description()<<"\t"<<ais<<std::endl;
// LOG_STREAM(info, ai)<<"\t\talready assigned: "<<ui->second.underlying_description()<<"\t"<<ais<<std::endl;
}else{
ui->second.assign_ai_special(order_id);
order_units.push_back(*i);
LOG_STREAM(info, ai)<<"\t\tmatching: "<<ui->second.underlying_description()<<" to order: "<<order_id<<"\t"<<ui->second.get_ai_special()<<std::endl;
// LOG_STREAM(info, ai)<<"\t\tmatching: "<<ui->second.underlying_description()<<" to order: "<<order_id<<"\t"<<ui->second.get_ai_special()<<std::endl;
}
}
}
@ -110,9 +100,26 @@ namespace dfool {
//execute commands
for(unit_list::iterator ou = order_units.begin(); ou != order_units.end(); ou++){
const config::child_list& commands = (**o).get_children("command");
for(config::child_list::const_iterator com = commands.begin(); com != commands.end(); ++com) {
bool com_break=false;
for(config::child_list::const_iterator com = commands.begin(); com != commands.end() && !com_break; ++com) {
unit_map::iterator u=unit(*ou,get_info().units);
const config::child_list& com_filter = (**com).get_children("filter");
bool found=true;
if(u!=get_info().units.end()){
for(config::child_list::const_iterator sf = com_filter.begin(); sf != com_filter.end(); ++sf) {
config ff=**sf;
LOG_STREAM(info, ai)<<"ff:"<<(**com)["type"]<<" "<<ff["type"]<<" "<<ff["x"]<<","<<ff["y"]<<std::endl;
LOG_STREAM(info, ai)<<"ff?"<<u->second.id()<<" "<<u->first.x<<","<<u->first.y<<std::endl;
if(! u->second.matches_filter(ff,u->first)) {
found=false;
break;
}
}
}
if(found){
std::string type=(**com)["type"];
LOG_STREAM(info, ai)<<"\tcommand: "<<type<<std::endl;
if(type=="moveto"){
@ -120,39 +127,20 @@ namespace dfool {
}
if(type=="set_order"){
std::string set_id=(**com)["id"];
const config::child_list& set_filter = (**com).get_children("filter");
bool set_bool=true;
for(config::child_list::const_iterator sf = set_filter.begin(); sf != set_filter.end(); ++sf) {
config ff=**sf;
LOG_STREAM(info, ai)<<"ff:"<<ff["type"]<<std::endl;
if(! u->second.matches_filter(ff,u->first)) {
set_bool=false;
break;
}
}
std::string a=(u->second.get_ai_special());
LOG_STREAM(info, ai)<<"set_order:\t"<<u->second.underlying_description()<<"\t"<<set_id<<"\t"<<a<<std::endl;
if(set_bool){
(u->second.assign_ai_special(set_id));
}
LOG_STREAM(info, ai)<<"set_order:\t"<<u->second.underlying_description()<<"\t"<<set_id<<"\t"<<a<<std::endl;
LOG_STREAM(info, ai)<<"\t\t"<<u->second.underlying_description()<<"\t"<<a<<"->"<<set_id<<std::endl;
(u->second.assign_ai_special(set_id));
a=(u->second.get_ai_special());
LOG_STREAM(info, ai)<<"\t\t"<<u->second.underlying_description()<<"\t"<<a<<" =?= "<<set_id<<std::endl;
}
if(type=="break"){
com_break=true;
}
}
}
}
}
if(test){
test=0;
}else{
test=1;
}
for(unit_map::iterator ua = get_info().units.begin(); ua != get_info().units.end(); ++ua) {
std::string t = ua->second.get_ai_special();
LOG_STREAM(info, ai)<<"ua:"<<ua->second.underlying_description()<<"\t"<<t<<std::endl;
LOG_STREAM(info, ai)<<"\t\t\t"<<ua->first.x<<","<<ua->first.y<<std::endl;
}
return;
}
@ -179,20 +167,19 @@ namespace dfool {
unit_list dfool_ai::visible_units()
{
unit_list visible_units;
if(current_team().uses_shroud() == false && current_team().uses_fog() == false) {
LOG_STREAM(info, ai) << "all units are visible...\n";
visible_units=all_units();
}else{
unit_map um=get_info().units;
for(unit_map::const_iterator i = um.begin(); i != um.end(); ++i) {
if(current_team().fogged(i->first.x,i->first.y) == false) {
bool no_fog=current_team().uses_shroud() == false && current_team().uses_fog() == false;
unit_map um=get_info().units;
for(unit_map::iterator i = um.begin(); i != um.end(); ++i) {
bool hidden_by_fog = current_team().fogged(i->first.x,i->first.y);
bool hidden = i->second.invisible(i->first, um, get_info().teams);
if((no_fog || !hidden_by_fog) && !hidden) {
visible_units.push_back(i->second.underlying_description());
}
}
}
LOG_STREAM(info, ai) << "number of visible units: " << visible_units.size() << "\n";
//still need to deal with invisible units not in fog.
return visible_units;
}

View File

@ -50,6 +50,7 @@ namespace mp {
header_height_(20), selected_(0), visible_range_(std::pair<size_t,size_t>(0,0)),
double_clicked_(false), ignore_next_doubleclick_(false), last_was_doubleclick_(false)
{
set_numeric_keypress_selection(false);
}
void gamebrowser::set_inner_location(const SDL_Rect& rect)
@ -559,7 +560,6 @@ void lobby::gamelist_updated(bool silent)
{
ui::gamelist_updated(silent);
std::vector<std::string> game_strings;
const config* list = gamelist().child("gamelist");
if(list == NULL) {
// No gamelist yet. Do not update anything.

View File

@ -171,6 +171,7 @@ ui::ui(display& disp, const std::string& title, const config& cfg, chat& c, conf
result_(CONTINUE)
{
const SDL_Rect area = { 0, 0, disp.video().getx(), disp.video().gety() };
users_menu_.set_numeric_keypress_selection(false);
set_location(area);
}

View File

@ -166,6 +166,7 @@ wait::wait(display& disp, const config& cfg, const game_data& data, mp::chat& c,
game_data_(data),
stop_updates_(false)
{
game_menu_.set_numeric_keypress_selection(false);
gamelist_updated();
}

View File

@ -143,6 +143,7 @@ LEVEL_RESULT play_game(display& disp, game_state& gamestate, const config& game_
LOG_G << "loading snapshot...\n";
starting_pos = gamestate.starting_pos;
scenario = &gamestate.snapshot;
gamestate.variables = *gamestate.snapshot.child("variables");
}
controller_map controllers;