Gli spawner contenuti all’interno di una stanza spawneranno nemici ad ondate, gli spawner sono raggruppati in cluster e i cluster sono referenziati dal RoomManager al fine di avere le seguenti informazioni :

Livello di difficoltà corrente dello stage :

utile al RoomManager per sapere il numero massimo di nemici da spawnare nella stanza e il loro livello di forza.

Numero massimo di nemici :

N + incremento relativo al livello di difficoltà corrente

Nemici attuali nella stanza :

utile per capire quando finisce un’ondata

Totale nemici spawnati :

utile per fermare lo spawning una volta raggiunto il numero massimo di nemici

Numero di nemici totali eliminati :

le porte della stanza si apriranno quando questo dato è uguale al numero massimo di nemici

Quando il RoomManager sceglie un claster tutti gli spawner del claster genereranno un nemico. Il RoomManager sceglierà altri claster solo dopo che i nemici spawnati nell’ondata precedente saranno eliminati.

Deve essere possibile da editor impostare la quantità di spawner che spawneranno e la modalità di spawning (a ondate o single wave). Esempio : ho 10 spawner nella stanza ma imposto nell’enemy manager 70%, solo 7 spawner su dieci spawneranno ogni ondata

Modalità di spawning :

  1. Ondate : spawn, ripulisco , spawn (ripeti fino ad esaurimento nemici max)
  2. Single Wave : gli spawner spawnano una sola volta.

La “percentuale di spawning” ora come ora è fissa, ma uno sviluppo futuro (dopo un gametest) potrebbe essere di farla variare con il livello di difficoltà

Se Total Enemy Amount e’ specificato (≠0), quello sara’ il totale di nemici che verranno spawnati al massimo.

Se invece Total Enemy Amount e’ 0, il numero di nemici totali spawnati sara’:

TotalEnemyAmount = DifficultyToTotalEnemies[DifficultyLevel, RoomSize] 
// dove DifficultyToTotalEnemies e' una tabella i cui valori
// sono determinati dai designer

DA DISCUTERE: forse dovrebbe andare come Difficulty, anziche’ come il doppio di Difficulty? In ogni caso, bisognerebbe esporre il moltiplicatore anziche’ hardcodare il 2.

Se il totale di nemici da spawnare e’ piu’ del numero di spawners, verra’ spawnata 1 wave di SpawnerCount nemici, seguita da altre wave quando tutti i nemici della prima wave sono morti, fino a che non sono stati spawnati tutti i nemici che dovevano spawnare.