Avamposti ed edifici difensivi
"Avamposto" indica due cose diverse:
- Gli avamposti neutrali della mappa: i presidi sparsi sulla mappa che si conquistano ("Trade outpost", "Recruitment outpost"…). Una mod può aggiungerne di nuovi tipi con uno strumento, e compaiono da soli sulle mappe casuali.
- Gli edifici difensivi delle città: torri, mura e porte.
Un nuovo avamposto neutrale
tools/create-outpost.js copia un avamposto del gioco con un nuovo id e nome e lo aggiunge alle mappe casuali. Ha bisogno della cartella DATA, che si ottiene con extract-data.js (node extract-data.js "<game folder>" <output folder>):
node create-outpost.js <output folder>\DATA <mod folder> ArcherFort IOutpost "Archer fort"
Scrive la classe (data\classes\ArcherFort.sc.xml), la patch data\randommap\placeobjects.xml che lo aggiunge a tutte e tre le dimensioni di mappa (con le quantità della base) e il nome in spagnolo. Con GOutpost, TOutpost o ROutpost come base scrive anche patches\data\commands\*.xml, così il nuovo avamposto riceve gli ordini del presidio (vendere cibo, interessi).
Le basi possibili:
| Base | Tipo |
|---|---|
GOutpost, TOutpost |
Avamposto commerciale |
ROutpost, EOutpost |
Avamposto dell'oro (interessi) |
IOutpost, BOutpost |
Avamposto di addestramento |
COutpost |
Avamposto di reclutamento |
Poi modifica la classe come preferisci: maxhealth, la guarnigione (defender_cls_1, defenders_max_1, start_level_1…), il suo comportamento (<behavior script=…>), quanto costa conquistarlo. Esempio: examples/outpost-example.
Per cambiare quanti ne compaiono, modifica min e max nelle righe della patch (quanti ne piazza il generatore per mappa). mindist è la distanza minima tra avamposti, in pixel. Gli altri numeri sono quelli del gioco.
Il modello (entity) e l'icona sono quelli della base. Per un modello con sprite personalizzati vedi Grafica personalizzata: ha una sezione sugli edifici.
Torri, mura, porte e presidi
Sono classi di edifici come le altre. Cosa conviene sapere prima di aggiungerne di tuoi:
- Un insediamento (città, villaggio, presidio) è un gruppo di edifici con un proprietario, popolazione, oro e cibo. Il suo tipo dipende dalla classe dell'edificio centrale:
BaseTownhallè una città,BaseVillageun villaggio,Outpostun presidio. - Il gioco base non permette di costruire edifici. Non c'è un ordine di costruzione (solo per navi e macchine d'assedio). Torri, mura, porte e presidi vengono dalla mappa: il modello di città, i presidi della mappa casuale, gli scenari e l'editor.
- I modelli di città nominano classi specifiche (
GTownhall,GTower01,GWallsN,GGateNW…). Una nuova civiltà usa le proprie se cloni quelle con lo strumento descritto in Civiltà.
| Classe base | Cos'è |
|---|---|
Tower (CVXBuilding) |
Torre. I suoi ordini (Tower Attack, riparazione) dipendono da Tower, e una figlia li eredita |
Wall (CVXBuilding) |
Muro. num_sentry_slots e sentry_class_name stabiliscono quante sentinelle lo pattugliano e di quale classe |
Gate (CVXGate) |
Porta: apri, chiudi, permanente, ripara |
Outpost (CVXTownHall) |
Base dei presidi avanzati. Quelli specifici (GOutpost, GGuardPost…) usano CVXOutpost e dipendono da Outpost: sono indipendenti finché non vengono conquistati e ognuno fa qualcosa tramite uno script (vendere cibo, interessi, esperienza…) |
GGuardPost |
Posto di guardia, solo dei Galli: 12 sentinelle tramite script. Non è in placeobjects.xml, e create-outpost.js lo segnala |
Per una nuova classe: un .sc.xml in data\classes\ con parent= una di quelle sopra, un cpp_class che esista già (CVXBuilding, CVXGate, CVXOutpost, CVXTownHall) e la sua entity. Copia l'entity dalla classe della base, perché il gioco non la eredita dalla madre. Il comportamento personalizzato va in <behavior> e <method sig="…" vs="…">, e gli ordini in <cmd>, come in Abilità. Un tipo di edificio con un nuovo cpp_class non è possibile.
Dove piazzarlo
| Posto | Come |
|---|---|
| Mappa casuale | Aggiungilo a placeobjects.xml, che è ciò che fa create-outpost.js |
| Città o villaggio iniziale di una civiltà | Le classi clonate compaiono da sole nella città iniziale. Per cambiare la disposizione, vedi Modelli |
| L'editor di mappe | Con edittree_pos nella classe. L'editor ha cartelle fisse per civiltà: quelle di una nuova civiltà compaiono mescolate con quelle della sua base |
| Una mappa fatta a mano | Piazzalo con l'editor e la mappa indica la classe (serve la mod) |
Multigiocatore e limiti
Cambia il gameplay: tutti i giocatori devono avere la stessa mod.
- L'editor non ha cartelle personalizzate né set di mura.