BuildingUnits/fr
En créant du contenu original, vous pourriez vouloir inventer une nouvelle unité. Cette page va vous expliquer toutes les étapes de la création d'une nouvelle unité, et vous montrer comment l'utiliser dans le jeu.
Avant de commencer, vous devez vous souvenir que le tag [unit_type] créé un nouveau type d'unité, tandis que le tag [unit] vous permet d'utiliser une unité dans un scénario. Cet article va se focaliser sur le premier tag.
Créer une nouvelle unité
La manière la plus simple de fabriquer une nouvelle unité est de faire une copie du fichier de configuration d'une unité existante, et de modifier cette copie. Toutes les unités présentes dans le jeu de base peuvent être trouvées dans le dossier /data/core/units à la racine des dossiers du jeu (voir cette page ou sa version anglaise pour plus d'instructions pour trouver ces fichiers.
En éditant le fichier, faites bien attention aux différentes propriétés. Si vous oubliez de modifier chaque clef (l'id par exemple), des problèmes pourront apparaître, allant de manque de caractéristiques chez l'unité, jusqu'à un crash du jeu, en passant par une impossibilité de charger l'unité dans le jeu.
Pour des références plus complètes sur les propriétés des unités, vous pouvez visiter cette page. La plupart de ces références ont une fonction évidente pour des joueurs vétérans, et son courtes et descriptives.
Il y a quelques principes de bases très importants :
- La première attribution d'un type d'unité est sa clef id=, qui est un identifiant unique à chaque type. Pour se référer à un type d'unité dans un scénario, vous devrez utiliser cet id. Il n'est pas traductible. La clef name= est le nom de l'unité qui est affiché dans l'aide, la table des statut, ou encore dans la barre latérale, qui est traductible. Vous pouvez avoir un id complexe et un nom très simple. Vous devez comprendre que ce n'est pas le même nom que celui renseigné au moment de créer une unité dans un scénario au moyen du tag [unit].
- Pour se référencer à un type d'unité, l'id doit être renseigné tel quel, sans faute de frappe et de manière sensible à la casse. Si cela n'est pas respecté, le jeu générera des erreurs Unknow Unit.
- N'initialisez pas movement= à 0. Cela crée un comportement bizarre de mouvement infini. Ce bug sera sûrement fixé dans le futur. Pour l'instant, pour rendre une unité immobile, initialisez son tag movement à 1 et utilisez [movement_costs] pour la rendre incapable de bouger sur tous les terrains.
Utiliser votre nouvelle unité
Les fichiers de configurations de vos unités doivent être placés dans votre dossier units de votre add-on, et leurs images dans le dossier images/units. Faites attention, il faut inclure le fichier units dans votre fichier _main.cfg. L'inclusion pour ce dossier devra être compris à l'intérieur d'un tag [units] [/units]. Voir cette page (en) pour un exemple.
All units in this directory will now be accessible in any content loaded under the same #ifdef conditional. You can now allow sides to recruit the unit by listing it in the recruit= key in [side] (see SideWML, place instances of it on the map with their own custom stats via [unit], or anything else you please.
Multiplayer factions and eras
Another common use of custom units it to group them into a multiplayer faction, and group one or several factions together into an era. A faction is several units that represent a common theme, such as the Loyalists. An era is several factions grouped together, usually under a common theme, but can also be done so for other reasons; an example would be the Default era, which contains all the eras used in multiplayer.
Note: Remember that eras and factions is a construct unique to multiplayer.
More detailed instructions on factions and eras can be found in BuildingFactions and EraWML articles. A faction, if there's only one, must be included in an era. You will not be able to add your units to any era that ships with the game.