Indice
KsirK è completamente configurabile. Per chi ha capacità grafiche, creare un nuovo tema è facile come copiarne uno esistente, modificarne la grafica e aggiornarne i dati in un file di configurazione .desktop, generato con Editor dei temi di KsirK. L'ultimo passo è modificare il file che descrive cosa installare.
Tutti gli esempi (testo e immagini) sono presi dal tema predefinito di KsirK.
Data/: dati usati dal programma per gestire le immagini del tema.CMakeLists.txt: descrive cosa installare.onu.desktop: file principale della descrizione del tema. Vedi sotto la sua descrizione.
Images/: le immagini del tema (mappa, sprite, ecc.)CMakeLists.txt: descrive cosa installare.pool.svg: la mappa e tutti gli sprite usati in questo tema.map-mask.png: l'immagine che permette al programma di sapere su quale stato si trova il mouse durante il gioco (vedi sotto).*.png: le rimanenti sono immagini dei pulsanti.
CMakeLists.txt: descrive cosa installare.Sounds/: file sonori del tema.
Questa cartella contiene un solo file, world.desktop. Questo file è una descrizione del contenuto del tema. Viene utilizzato per descrivere l'organizzazione del mondo e come visualizzarlo. Non devi scriverlo a mano perché sarà gestito da Editor dei temi di KsirK. Per completezza, però, ne descriveremo la struttura.
Un gruppo onu contiene un certo numero di voci di stati, di nazionalità e di continenti. Altri gruppi contengono le descrizioni dei vari sprite, stati, continenti, nazionalità e obiettivi.
Le sezioni seguenti descrivono il contenuto di ogni gruppo.
Tabella 2.1. Le voci del gruppo onu
| Nome della voce | Significato |
|---|---|
width | La larghezza della mappa del tema. |
height | L'altezza della mappa del tema. |
skinpath | Il percorso del tema relativo al percorso dei dati dell'applicazione (ad es. skins/default). |
nb-countries | Il numero di stati (42 nel tema predefinito). Ci dovrebbe essere lo stesso numero di gruppi di stati sotto. |
nb-nationalities | Il numero di nazionalità (6 nel tema predefinito). Ci dovrebbe essere lo stesso numero di gruppi di nazionalità sotto. |
nb-continents | Il numero di continenti (6 nel tema predefinito). Ci dovrebbe essere lo stesso numero di gruppi di continenti sotto. |
pool | Il percorso e il nome del file magazzino relativamente al percorso del tema (ad es. Images/pool.svg). |
map-mask | Il percorso e il nome del file di maschera della mappa relativamente al percorso del tema (ad es. Images/map-mask.png). |
format-version | La versione del formato di file del tema (2.0). |
name | Il nome del tema da visualizzare. |
desc | Una descrizione lunga del tema. |
fighters-flag-y-diff | La differenza d'altezza tra sprite di bandiere e cannoni. |
width-between-flag-and-fighter | Il numero di pixel tra il pixel all'estrema sinistra della bandiera e il pixel all'estrema destra del cannone semplice (mentre non fa fuoco né esplode). |
Ogni tipo di sprite (bandiera, fanteria, cavalleria, cannone, cannone che fa fuoco e cannone che esplode) è definito da un gruppo. Solo alcuni sprite hanno una voce per la larghezza. Questa voce viene usata per il posizionamento relativo durante le animazioni: i cannoni, che facciano fuoco o che esplodano, non dovrebbero «spostarsi» attorno alla bandiera dello stato durante il combattimento.
Tabella 2.2. Voci dei gruppi delle descrizioni degli sprite
| Nome della voce | Significato |
|---|---|
width | La larghezza di riferimento dei fotogrammi dello sprite della bandiera. |
height | L'altezza di riferimento dei fotogrammi dello sprite della bandiera. |
frames | Il numero di fotogrammi dello sprite. |
versions | Il numero di versioni degli sprite delle bandiere. |
Per ogni stato elencato nel gruppo onu, la voce countries ha il suo gruppo, la cui etichetta è il nome dello stato. La tabella sotto elenca le voci di questi gruppi.
Tabella 2.3. Voci degli stati
| Nome della voce | Significato |
|---|---|
id | Il numero identificativo, intero ed univoco, dello stato; parte da zero (0). |
name | Il nome dello stato da visualizzare. |
<sprite>-point | Ogni tipo di sprite (bandiera, fanteria, ecc..) nello stato viene visualizzato in una certa posizione definita da questa voce, che è costituita da due numeri interi separati da una virgola. |
neighbours | L'elenco degli identificativi dei vicini dello stato attuale. |
Per ogni nazionalità elencata nel gruppo onu, la voce nationalities ha il suo gruppo, la cui etichetta è il nome della nazionalità. La tabella sotto elenca le voci di questi gruppi.
Tabella 2.4. Voci delle nazionalità
| Nome della voce | Significato |
|---|---|
name | Il nome della nazionalità (ad es. Giappone). |
leader | Il nome che sarà proposto al giocatore che sceglie questa nazionalità. |
flag | Il nome dell'elemento dello sprite della bandiera dello stato nel file SVG onu. |
Per ogni continente elencato nel gruppo onu, la voce continents ha il suo gruppo, la cui etichetta è il nome del continente. La tabella sotto elenca le voci di questi gruppi.
Tabella 2.5. Voci dei continenti
| Nome della voce | Significato |
|---|---|
name | Il nome del continente (ad es. Africa). |
id | Il numero identificativo, intero ed univoco, del continente. |
bonus | Il numero di armate ottenute alla fine del turno dal giocatore che domina tutti gli stati del continente. |
continent-countries | L'elenco degli identificativi degli stati all'interno nel continente attuale. |
Per ogni obiettivo elencato nel gruppo onu, la voce goals ha il suo gruppo, la cui etichetta è il nome dell'obiettivo. La tabella sotto elenca le voci di questi gruppi.
Tabella 2.6. Voci degli obiettivi
| Nome della voce | Significato |
|---|---|
type | Il tipo di obiettivo. Può essere continents (continenti), countries (stati) o player (giocatore). |
nbArmiesByCountry | Imposta il numero minimo di armate che il giocatore deve mettere su ogni stato. |
nbCountries | Imposta il numero di stati che il giocatore deve possedere. |
nbCountriesFallback | Per un tipo di obiettivo player, se il giocatore preso di mira viene ucciso da un altro, questo imposta il numero di stati che il giocatore deve conquistare come obiettivo alternativo. |
desc | Una descrizione testuale completa dell'obiettivo con segnaposti appropriati (qui serve maggiore documentazione). |
continents | L'elenco degli identificativi dei continenti che il giocatore dovrà conquistare. |
Questa cartella contiene i pulsanti specifici di KsirK e il file magazzino SVG contenente la mappa e tutti gli sprite.
Questo file SVG contiene la mappa e tutti gli sprite del gioco. Ogni elemento ha un nome, in modo che il programma possa selezionare e rendere separatamente ciascuno di essi.
Nel tema predefinito, gli sprite sono bandiere, fanteria, cavalleria e cannone. La fanteria rappresenta un'armata, la cavalleria cinque e il cannone dieci. I cannoni sono usati anche per visualizzare le armate in combattimento: è per questo che ci sono tre tipi di sprite per i cannoni: cannone normale fermo o in movimento, cannone che fa fuoco e cannone che esplode.
Ogni immagine degli sprite è la concatenazione di varie viste dell'oggetto, e per ogni vista i suoi fotogrammi. Le viste sono organizzate verticalmente e i fotogrammi orizzontalmente. Dividendo l'altezza dell'immagine per il numero di viste e la larghezza per il numero di fotogrammi si calcola dove tagliare l'immagine in fotogrammi individuali. Questi dati si trovano nel file onu.desktop.

Un esempio di immagine sprite: cannon.png
Per gli sprite delle armate, ci sono tre viste diverse, dall'alto in basso:
verso destra,
verso sinistra, e
di fronte.
Per le bandiere, c'è solo una vista. Tutti gli sfondi degli sprite dovrebbero essere trasparenti.

Un esempio di un'immagine sprite di una bandiera: italy.png.
Tabella 2.7. Gli elementi del magazzino
| Nome dell'elemento | Immagine campione | Significato |
|---|---|---|
map | ![]() | Mappa del mondo del tema. Gli stati possono avere forme arbitrarie, ma dovrebbero essere raggruppati in continenti riconoscibili a occhio, per posizione o per colore. |
italy | ![]() | La bandiera della nazione italiana. C'è una voce simile per ogni nazione. |
infantry | ![]() | Icona che rappresenta un'armata. |
cavalry | ![]() | Icona che rappresenta cinque armate. |
cannon | ![]() | Icona che rappresenta dieci armate. |
firing | ![]() | Icona che rappresenta dieci armate durante un combattimento. |
exploding | ![]() | Icona che rappresenta le armate sconfitte. |
alaska | ![]() | La forma dello stato dell'Alaska; si usa per evidenziarlo. C'è una forma simile per ogni stato. Il suo colore non viene usato, quindi, si è liberi di sceglierne uno qualsiasi. |
reddices | ![]() | I dadi rossi usati per mostrare i risultati delle battaglie. |
bluedices | ![]() | I dadi blu usati per mostrare i risultati delle battaglie. |
mark1 | ![]() | Questo marcatore viene aggiunto agli sprite in combattimento per indicare il numero di armate che rappresentano, in questo caso 1. Ci sono anche degli elementi mark2 e mark3. |
Anche questo è un file png che rappresenta il mondo del tema, ma con colori in codice che permettono di identificare ogni stato. Gli stati devono avere almeno le stesse forme degli stati corrispondenti in map.png, in modo che gli utenti possano fare clic ovunque in uno stato visibile e selezionare quello giusto. Stati come le isolette dell'Indonesia nella mappa predefinita possono essere più grandi dell'equivalente nel file map.png per facilitarne la selezione.

Il componente blu (nel modello RGB) di uno stato lo identifica: l'indice 0 è lo stato 0 nel file onu.xml, l'indice 1 è lo stato 1, ecc.. Il bianco (0xFFFFFF in RGB) indica l'assenza di uno stato, come per i mari o le terre di nessuno.
I nomi dei file sono fissati nel codice, quindi non vanno modificati. La tabella sotto indica tutti i pulsanti che si dovrebbero fornire.
Tabella 2.8. I pulsanti dell'interfaccia
| Immagine | Nome del file | Significato |
|---|---|---|
![]() | newNetGame.png | Cerca di entrare in una partita in rete. |
![]() | recycling.png | Dopo che tutti i giocatori hanno disposto le loro armate, è possibile modificarne la distribuzione (cosiddetto riciclo). Questo pulsante chiede di eseguire questa redistribuzione. |
![]() | recyclingFinished.png | Sceglie di non ridistribuire. Tutte le finestre dei client devono avere questo pulsante premuto per concludere la redistribuzione. |
![]() | nextPlayer.png | Conclude il turno del giocatore attuale e passa al prossimo giocatore, o al prossimo turno se il giocatore attuale era l'ultimo. |
![]() | attackOne.png | Sceglie di cominciare un attacco con un'armata. |
![]() | attackTwo.png | Sceglie di cominciare un attacco con due armate. |
![]() | attackThree.png | Sceglie di cominciare un attacco con tre armate. |
![]() | defendOne.png | Sceglie di difendere uno stato attaccato con un'armata. |
![]() | defendTwo.png | Sceglie di difendere uno stato attaccato con due armate. |
![]() | moveArmies.png | Sceglie di cominciare lo spostamento di armate tra stati (ultima azione del turno). |


















