Extensive and detailed guide to adding new Units in La main de Merlin, written by its game designer Mat.
introduction
Dans ce guide, Nous’ll talk about adding more Units to our game. This can be both new characters or new enemies.
What is a Unit?
Dans La main de Merlin, a Unit is a dynamic entity capable of taking actions. It has attributes, including Health and Armor, and is always part of a Warband, un “côté” – Player or Enemy.
Every unit is described with two files: a Unit Params and a Unit Class.
Unit Params
A Params file (from parameters), with the extension .ep, is where we house most of a unit’s visual information and identification.
You can create one with the Create menu (CTRL+N). Go to the Generic group, and browse the (Merlin) Unit params type.
Alors, save the file under the Content/Merlin/Heroes folder for playable units and Content/Merlin/Enemies for those that are not. Using the Heroes folder allows a unit to show up in the roster selection screen in the Lobby.
Maintenant, laisser’s take a good look at a Unit Params file, and explain how each entry works.
D'abord, we have the unit’s identification.
- Identification is used in encounters to refer to a specific unit, also note the Traits in the middle of the document, where you can put “personality traits” for this hero to be queried in encounters.
- Noms are used to represent the unit wherever it is. Short names are usually on portraits, and the full name in the book and larger tooltips. In Breunor’le cas, his full name is “Sir Breunor”
- Finally you got the Biography, shown in the Book, which tells a small story about the character.
Note that because these are text entries, they need to have both an identifier and an actual text, to facilitate translations.
Then we come to #1, Unité’s Skirmish behavior.
- Catégorie de parts determines a unit’les attributs, starting abilities, and passives. Il’s an important aspect, et nous’ll talk about that later in this document. Note that every single unit params has a unique class in our design, but this is not obligatory.
- Unit Size determines if the unit will be a 1×1(Régulier) or a 2×2 (Grand) unité.
- Unit Species, used in a myriad of effects, like Holy Desecration. We save “étranger” for the monstrous abominations you fight, but all of your heroes and the bandits are “les humains”.
In category #2, toi’ll find Portraits. We got a ton of those, so feel free to check the ones already made to find out the right sizes and styles.
- Skirmish portraits are used in battle, shown in the portrait bars to the left and right. You can put multiple ones in the “vivant” category if you want them randomized per unit (we do that with bandits!). Et le “mort” un (which we usually just make a skull will only show if you set it on the checkbox above. Sinon, the portrait will simply disappear once the unit dies.
- Map Portraits are used in the book, for the warband page and in encounter options.
- Score View is saved for the banner that happens when you finish a fight, such as showing the unit you lost when the fight is won.
- Highlight et Silhouette are seen in the Hero selection screen, if a character is hovered or still locked.
Après cela, you have several entries about the unit’s Visuels. The .mdl entry handles the actual model and animation information, but the rest configure how the unit behaves in the map. Take particular care when using Shoot Target et Origine, as this governs how the unit interacts with projectiles – where other units try to shoot it, and where its projectiles originate from.
Noter que Quote Map et Armes are deprecated.
Enfin, we reached #3 – Unlocking behavior.
The first is the requirements to unlock a hero – nothing here means the character is already unlocked. Ici’s how Rana, par exemple, is set up:
This is a complex entry where you can determine what sort of in-game event needs to happen for a character to be unlocked. Note the obvious Description entrée, but the magic happens when you determine the Event Type. Each event type describes how it works, and then the final 4 entries determine how the event is checked. For the above example, we are listening for >=5 instances of “Spend Currency” événement, but we reset the tracker at the end of every run/session.
To qualify the event, we use the Inspectors. For Rana’s unlock, we set up two: One describes that the currency we’ce que je cherche c'est mana, and the other describes that we can only check for events that happen in a specific zone, Albion. Ici’s how we did it:
Once you set a Value to Inspect, toi’ll see written in it the information of which other entries we need to fill, as noted in the image above. This takes a bit of trial and error to get right, but all the required information is laid to you in the descriptions (Merci, MarkoP!)
Maintenant, B-side Unlocks (Called “Prowess unlocks” dans le jeu) work in a similar way.
But besides how you actually unlock it (d'ailleurs, we use the same unlocking for all characters: just have it complete a run without dying. Check any of our heroes in the Heroes folder for how we set it up), you can put a Nom for this alternate version, add some bonus attributes, and even put an alternate model/texture.
Catégorie de parts
Maintenant laisse’s work on the Classe. You can use the Create menu, but I suggest you just click on the appropriate entry in the Params file and select “Nouveau”. Alors, remember to save the new file – Nous utilisons le Content/Merlin/UnitClasses folder for that.
Maintenant, the Unit Class file is a bit simpler, but it houses many important configurations. Take a look at Breunor’s:
D'abord, tu as un Class Name. This is only for show. If you want to specify if this class is to be considered a Guerrier, Ranger ou Mystique for ability and AI purposes, utiliser le Unit Role entrée, assigning Réservoir, Nuker et Soutien respectivement.
Alors, you have to decide which abilities the unit is able to perform. UN Movement Ability, most likely Run.rsc, and then the Starting Abilities. For player characters, we recommend only 2 capacités, a base attack (Sabrer,Singe and Shoot are our examples) and an extra one, like Bash for our Breunor example.
Si, pourtant, you are working on an enemy unit, go nuts. We recommend up to 5 abilities to keep the AI reasonable.
Alors, you got your Base Attributes, where you can define your unit stats. Pretty self-explanatory if you know the game, but note: “La défense” refers to evasion, “Reaction Takes” is not used in the current design, et “Passive Power” is a hidden attribute you can use to scale things behind the scenes, but the player has no knowledge of that.
Maintenant, note Bonus Attributes per Rank and Random Upgrades on Spawn. This is how units get stronger or have small variety in their stats.
Bonus Attributes per Rank is only used for player characters. Il’s a flat increase added whenever the units level up. Tout de suite, this has been set to 0, but you can change that and even add fractional numbers if you want. Enemy units, unable to rank, are not affected by the entries here.
Rankup Bonus (not visible on the screenshot) creates cards on rankup which allow the player to choose which attribute to increase. Il’s currently set as 2HP or 1 Armor with an added random card choice between Power, Évasion, Gamme, Précision, Movement every 4 niveaux. Enemy units also do not gain this.
In The Hand of Merlin, we scale enemy power per zone index, in a file attached to the Random Upgrades on Spawn entry. Pour faire ça, we use a structure similar to the Blacksmith Upgrades, where every zone represents a new tier.
A titre d'exemple, ici’s MinorAbominationUpgrades, used on Mandragore, Œuf et Redcap. You can find all others in the Merlin/Enemies/BlacksmithUpgrades dossier.
Il y a 3 “modèles”, to generate some variety. Each style has 4 upgrades *for each zone – Albion, Marca Hispanica, Al-andalus, Jérusalem). Each entry has a few attribute modifiers. The expanded entry above means that 1 in every 3 Minor Abominations spawned in Jerusalem will have +10 Max Armor, +12 Santé maximale, et +6 Power added to their base stats.
Pretty easy to adjust, J'espère!
Enfin, if your unit is an enemy unit, assign a Cerveau param. We talk more about those in their own guide – Artificial Intelligence.
Adding Enemies to a level
Bien, last bit. Laisser’s add a character to a level as an enemy, so we can see it spawn. While the creation of maps is covered in another guide, ici’s a quick rundown on how to add an enemy to one. I recommend checking Content\Merlin\Examples\Gameplay\GameplayTest as a baseline.
- Create/find the Script Object. Il’s represented in-world as an orange cube, but you can press the N key and search for it.
- Duplicate any of the Unit Variables. Inside the script there’s a few CHOMUnitParams already. Just duplicate one and work on the double.
- Browse a new Unit Params file
- Do a bit of scripting inside the .lua file after the initial set up, type in the command
homSpawnUnit(worldInfo, XXXXXX, wbEnemyWarband, worldInfo:GetEnemySpawnPoint(« », 0))
Where XXXXXX is the name of the params, like warlockParams or test1Params.
Aussi simple que ça, whenever that skirmish start, the unit will be spawned on a spawnpoint. Assurez-vous qu'il y a’s no other ones set to the same spawn point, as seen on the Creating new Levels guide.
Testing Characters
A few tips to test out your characters:
- When starting a level from the editor instead of going through the Lobby/Main menu, the game assigns you the characters in the Content\Merlin\Databases\TestingRoster.rsc document, so you can change those characters to the ones you are working on.
- To test enemies, you can use the console to type hom_dbg_bDisableAI = 1, allowing you to control the enemy warband
New units will make your experience even more varied. Amusez-vous!
C'est tout ce que nous partageons aujourd'hui pour cela La main de Merlin guide. Ce guide a été initialement créé et rédigé par Mids. Si nous ne parvenons pas à mettre à jour ce guide, vous pouvez trouver la dernière mise à jour en suivant ceci lien.