Il livello di difficoltà (DL) sarà visibile ad alto livello e modificherà fattori di gioco quali “numero di nemici per stanza” e “livello di forza dei nemici per stanza” durante la progressione della run.

Il DL sarà salvato all’interno del game manager settato a 1 all’inizio della run.

All’interno del game manager ci sarà una table che definisce per ogni pianeta :

  1. il livello di difficoltà di partenza (PlanetDLStart)
  2. il livello di difficoltà target o massimo (PlanetDLtarget)
  3. incremento costante di difficoltà per il minimo tra stage e stage (SSincrement)
  4. incremento di difficolta’ per il massimo tra stage e stage (SSincrementMax)

Ogni stage avrà un livello di difficoltà iniziale (StageDLStart) pari a PlanetDLStart + SSincrement x posizione dello stage all’interno del pianeta.

Dall’inizio dello stage alla fine dello stage il livello di difficoltà varierà dal StageDLStart al PlanetDLtarget + SSincrementMax x posizione dello stage all’interno del pianeta, passando da stanza a stanza ci sarà quindi un incremento del DL pari a (PlanetDLtarget - StageDLStart) / numero stanze dello stage.

Numero nemici per Stanza

il numero di nemici per stanza sarà uguale a :

rounded(numero di spawner della stanza x 2 x DL)

Livello di forza nemici per Stanza

All’interno dell’EnemyManager ci sarà una table che associa ad ogni tipo di nemico un relativo livello di difficoltà/livello di forza del nemico.

La probabilità che un tipo di nemico spawni all’interno di una stanza è gestita dal livello di difficoltà attraverso la seguente formula :

exp( - 0.5 * pow((DL - enemyType.level)/ s, 2))

s = ampiezza della gaussiana, più piccolo è s più i nemici spawnati saranno esclusivamente del livello di forza più vicino al DL corrente. Aumentando s si aumenta varianza tra le tipologie di nemico spawnate.