Formazioni nuove
Le formazioni degli eroi (Line, Front, Block, Cavalry) sono dati: un formations.xml con bonus e disposizione, e due ordini per formazione in data\commands\Hero.xml. Una mod aggiunge le sue con le patch, senza compilare nulla.
Esempio: esempi/esempio-formazione (il Cuneo).
Via rapida
crea-formazione.js scrive i tre pezzi. Ti serve la cartella DATA del gioco (Dati del gioco):
node strumenti/crea-formazione.js <DATA> mods/mi-mod Wedge --danno 3 --armatura 1 --come "Cavalry core" --tasto i
| Opzione | A cosa serve |
|---|---|
<Nome> |
Il Name della formazione: lettere e numeri, niente spazi. Deve essere nuovo |
--danno, --armatura, --difesa-pierce, --difesa-slash, --raggio, --livello |
I bonus (da -1000 a 1000). Senza nessuno, la formazione cambia solo la disposizione |
--come |
La formazione del gioco da cui copia l'elenco delle classi, la dimensione, la spaziatura e il disegno del pulsante: Front (default), Line, Block, Cavalry core, Horse Wings, Ranged Wings |
--classi "Unit=ali,Horse=fronte" |
La tua disposizione, al posto di quella di --come. I posti sono fronte, ali e centro |
--larghezza, --altezza, --fronte, --ala-x, --ala-y |
Width, Height e le tre spaziature (Offset…) |
--tasto |
La lettera che sceglie la formazione. Senza, ne cerca una libera |
--descrizione, --pulsante |
Il Description (in inglese) e un pulsante diverso (States/…) |
Genera:
patches\data\formations.xml la formazione
patches\data\commands\Hero.xml i suoi due pulsanti, form-<nome>-menu e form-<nome>
patches\data\subai\hero_formation_verify.vs la patch dello script
mod.json solo se la cartella non ne ha uno
Se la mod ha già un'altra formazione, la nuova si aggiunge agli stessi file senza sovrascrivere la precedente. Vale anche per la patch dello script: ogni formazione aggiunge il suo @replace.
Controlla che il tasto sia libero per l'eroe, che eredita gli ordini di Unit e Military. Se è in conflitto, avvisa e genera comunque. Nel gioco resta libera solo la i, quindi la seconda formazione di una mod dovrà condividere il tasto: scegli una lettera e verifica che il conflitto non ti dia fastidio.
I pulsanti usano il disegno della formazione di base. Per averne uno tuo, vedi Immagini personalizzate e passa --pulsante.
Cosa fa dentro (come farlo a mano)
I tre pezzi
1. La formazione (patches\data\formations.xml):
<patch>
<add select="/Formations">
<FormationClass Name="Wedge"
Description="The warriors form a wedge with the cavalry at the point."
Width="3" Height="1"
BonusDamage="3" BonusArmor="1"
OffsetFrontLineByY="40" OffsetWingsByX="30" OffsetWingsByY="0">
<Class Name="Unit" Wings="1"/>
<Class Name="Horse" FrontLine="1"/>
<Class Name="BaseMage" CentralBlock="1"/>
<Class Name="Peasant" CentralBlock="1"/>
</FormationClass>
</add>
</patch>
| Attributo | A cosa serve |
|---|---|
Name |
Nome della formazione; è quello che usano gli ordini |
Description |
Non si vede sul pulsante: il gioco mostra un testo fisso ("Army bonus during stand ground") con le icone dei bonus |
Width, Height |
Dimensione della griglia del gruppo in prima linea (FrontLine). Nel Cuneo, dove le Unit vanno sui fianchi, Width=3 riguarda solo i cavalli |
BonusDamage, BonusArmor, BonusRange, BonusLevel |
Bonus dell'esercito, e solo mentre la truppa è ferma ("stand ground"). Limitati tra -1000 e 1000 |
BonusDefencePierce, BonusDefenceSlash |
Difesa contro perforante e contro taglio, separate. BonusArmor le imposta entrambe |
OffsetFrontLineByY, OffsetWingsByX, OffsetWingsByY |
Quanto si allontanano dall'eroe la prima linea e i fianchi |
<Class Name="…" …/> |
Dove vanno le unità di quella classe: FrontLine="1" davanti, Wings="1" ai lati, CentralBlock="1" al centro, intorno all'eroe |
BonusAttack compare in qualche formazione del gioco, ma non fa nulla: non contarci.
2. I pulsanti (patches\data\commands\Hero.xml). Due ordini: form-<nome>-menu (il pulsante che si vede quando quella è la formazione attuale) e form-<nome> (quello che la sceglie). Entrambi hanno param="<Name>" e menu="1". Copia form-front-menu e form-front e cambia name, param, key e button (il disegno; vedi Immagini).
Il tasto non deve andare in conflitto con un altro ordine dell'eroe, che eredita anche quelli di Unit. In data\commands (con estrai-dati.js, vedi Patch) cerca key="x" in HERO.XML e UNIT.XML. L'esempio usa i, che non è in nessuno dei due; q, per esempio, è di reveal.
3. Una patch dello script che dà il via libera ai pulsanti (patches\data\subai\hero_formation_verify.vs). Lo script del gioco lascia scegliere la formazione solo quando è aperto uno dei suoi quattro menu, elencati per nome. Aggiungi il tuo:
@replace if (cmd_name != "form-front-menu")
if (cmd_name != "form-front-menu")
if (cmd_name != "form-wedge-menu")
@end
Se un'altra mod modifica la stessa riga per aggiungere un'altra formazione, le patch si sommano: ogni @replace riscrive la riga del gioco e lascia la tua dopo.
Online
I bonus cambiano il gameplay: tutti i giocatori devono avere la stessa mod.