- usare .gitignore per nascondere eventuali cartelle create dai propri tool
- usare
make
- non pushare finché non si è certi che ciò che si è fatto funziona
- realizzare le interfacce (file .h e .hpp) e poi implementarle
- eventuali modifiche ad intefacce vanno comunicate a tutti
- ogni funzione deve avere un commento alla riga precedente nel file .h o .hpp che ne decrive il funzionamento (input, output, criticità)
- usare il formato
caca_pupu
e noncacaPupu
- se una funzione precedente in input un dato ma non lo modifica segnare quel dato con
const
(es.void stampa_stringa(char stringa[]); -> void stampa_stringa( const char stringa[]);
- per il resto uno può fare quello che vuole
- Diego: Main, gestione degli input e delle chiamate
- Ale: Creazione delle classi per le entità del gioco
- Saad: Gestione della fisica del gioco
- Piske: Stampa a video
https://virtuale.unibo.it/pluginfile.php/1059665/mod_resource/content/1/presentazioneProgetto.pdf
Albero genealogico delle classi
Weapon
└─ Melee
├─ Area
└─ Singol target
└─ Ranged
├─ Ammo
└─ Magic (no mana)
L'armatura aumenta i cuori e quindi gli hp del personaggio, il limite è una solo armatura equipaggiata in ogni momento.
Gli oggetti possono essere di due tipi:
- pickup (es. munizioni, chiavi)
- consumabili (es. pozioni di cura, di danno)
Dagli appunti che avevo preso non è chiara la differenza tra le due categorie
I nemici si dividono in due tipi:
- minion
- boss
Tutti i nemici possono essere o melee o ranged, l'unica cosa che cambia è il loro range di aggro
Per scalare la difficoltà dei nemici in base a quanto si è progredito nel gioco, utilizziamo un moltiplicatore che aumento con il procedere della partita
- avevamo previsto uno starter kit, che varia in base al tipo di personaggio che si sceglie all'inizio
- implementare un gioco con movimento fluido, non a turni
- per raccogliere un oggetto bisogna andarci sopra
- quando un oggetto viene droppato, verrà posizionato di fianco
- implementare un set di stanze fisso che definisce come sono strutturate e cosa c'è dentro
- implementare un set di nemici fisso che verrà associato randomicamente alla stanza.
- la quantità di nemici presente nella stanza dipende sempre dal moltiplicatore di difficoltà che aumenta col procedere della partita (mi ero scritto che questo era da rivedere)
i punti 5, 6, 7 non sono molto chiari quindi se in corso d'opera ci rendiamo conto che c'è una soluzione migliore, cambiamo rotta
classe inventoryable
- char display
- char name[]
- int type {1,..,3}
- 1 -> spada
- 2 -> armatura
- 3 -> consumabile
struttura data di tipo inventoryable