Avamposti ed edifici di difesa
«Avamposto» indica due cose diverse:
- Gli avamposti neutrali della mappa: i posti sparsi che si possono conquistare («Avamposto commerciale», «Avamposto di reclutamento»…). Una mod può aggiungere tipi nuovi con uno strumento, e compaiono da soli nelle mappe casuali.
- Gli edifici di difesa delle città: torri, mura e porte.
Un nuovo avamposto neutrale
strumenti/crea-avamposto.js copia un avamposto del gioco con un altro id e nome e lo inserisce nelle mappe casuali. Richiede la cartella DATA, che
ottieni con estrai-dati.js (node estrai-dati.js "<cartella del gioco>" <cartella di output>):
node crea-avamposto.js <cartella di output>\DATA <cartella del mod> ArcherFort IOutpost "Archer fort"
Scrive la classe (data\classes\ArcherFort.sc.xml), la patch di data\randommap\placeobjects.xml che lo aggiunge ai tre formati 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, perché
il nuovo avamposto abbia i comandi dell'avamposto (vendere cibo, interesse).
Le basi possibili:
| Base | Tipo |
|---|---|
GOutpost, TOutpost |
Avamposto commerciale |
ROutpost, EOutpost |
Avamposto dell'oro (interesse) |
IOutpost, BOutpost |
Avamposto di addestramento |
COutpost |
Avamposto di reclutamento |
Poi modifichi la classe come vuoi: maxhealth, la guarnigione (defender_cls_1, defenders_max_1, start_level_1…), il suo comportamento
(<behavior script=…>), quanto costa conquistarlo. Esempio: esempi/esempio-avamposto.
Per cambiare quanti ne compaiono, modifica min e max delle righe della patch (quanti ne mette 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 propri vedi Grafica propria: ha una sezione sugli
edifici.
Torri, mura, porte e avamposti
Sono classi di edificio come le altre. Cosa conviene sapere prima di aggiungere le tue:
- Un insediamento (città, villaggio, avamposto) è un gruppo di edifici con proprietario, popolazione, oro e cibo. Il suo tipo dipende dalla classe dell'edificio
centrale:
BaseTownhallè una città,BaseVillageun villaggio,Outpostun avamposto. - Il gioco base non permette di costruire edifici. Non c'è nessun comando di costruzione (solo navi e macchine d'assedio). Torri, mura, porte e avamposti vengono dalla mappa: il modello di città, gli avamposti della mappa casuale, gli scenari e l'editor.
- I modelli di città nominano classi specifiche (
GTownhall,GTower01,GWallsN,GGateNW…). Una civiltà nuova usa le sue se le clona con lo strumento di Civiltà.
| Classe base | Cos'è |
|---|---|
Tower (CVXBuilding) |
Torre. I suoi comandi (Tower Attack, riparare) dipendono da Tower, e una figlia li eredita |
Wall (CVXBuilding) |
Muro. num_sentry_slots e sentry_class_name dicono quante sentinelle lo pattugliano e di che classe |
Gate (CVXGate) |
Porta: aprire, chiudere, permanente, riparare |
Outpost (CVXTownHall) |
Base degli avamposti. Quelli specifici (GOutpost, GGuardPost…) usano CVXOutpost e discendono da Outpost: sono indipendenti finché non vengono conquistati e ognuno fa qualcosa con uno script (vendere cibo, interesse, esperienza…) |
GGuardPost |
Posto di guardia, solo dei Gaul: 12 sentinelle da script. Non compare in placeobjects.xml, e crea-avamposto.js lo segnala |
Per una classe nuova: un .sc.xml in data\classes\ con parent= una di quelle qui sopra, una cpp_class che esista già (CVXBuilding, CVXGate,
CVXOutpost, CVXTownHall) e il suo entity. Copia l'entity dalla classe della base, perché il gioco non lo eredita dal padre. Il comportamento
proprio va con <behavior> e <method sig="…" vs="…">, e i comandi con <cmd>, come in Abilità. Un tipo di edificio
con una cpp_class nuova non si può fare.
Dove metterlo
| Posto | Come |
|---|---|
| Mappa casuale | Aggiungendolo a placeobjects.xml, che è quello che fa crea-avamposto.js |
| Città o villaggio iniziale di una civiltà | Le classi clonate compaiono da sole nella città iniziale. Per cambiare la disposizione, Modelli di città |
| L'editor di mappe | Con edittree_pos nella classe. L'editor ha cartelle fisse per civiltà: quelle di una civiltà nuova compaiono mescolate con quelle della sua base |
| Una mappa a mano | Lo mette l'editor e la mappa nomina la classe (serve la mod) |
Multigiocatore e limiti
Cambia il gameplay: tutti i giocatori devono avere la stessa mod.
- Nell'editor non ci sono cartelle né set di mura propri.