1
Fork 0
mirror of https://github.com/Steffo99/iiiiil-gioco.git synced 2024-11-22 07:54:21 +00:00

Reso il numero dei nemici variabile.

This commit is contained in:
Steffo 2016-01-12 17:08:48 +01:00
parent 0300e291be
commit c25b485457

View file

@ -10,7 +10,7 @@ using namespace std;
#define Y_MAX 23 #define Y_MAX 23
#define ROOMS 8 #define ROOMS 8
#define ROOM_SIZE 7 #define ROOM_SIZE 7
#define ENEMIES_IN_LEVEL 5 #define MAX_ENEMIES 50
#define HP_MAX 50 #define HP_MAX 50
#define STARTING_ATK 5 #define STARTING_ATK 5
#define STARTING_DEF 5 #define STARTING_DEF 5
@ -34,7 +34,7 @@ class Enemy;
//Variabili globali //Variabili globali
//Lista di tutti i nemici nel livello //Lista di tutti i nemici nel livello
Enemy* list[ENEMIES_IN_LEVEL]; Enemy* list[MAX_ENEMIES];
//Numero del piano raggiunto dal giocatore //Numero del piano raggiunto dal giocatore
int depth = 1; int depth = 1;
//Mappa del gioco //Mappa del gioco
@ -570,7 +570,7 @@ void corridor(int start_x, int start_y, int end_x, int end_y, bool verticale)
} }
//Genera il livello //Genera il livello
void generate() void generate(int enemies_to_place)
{ {
int corridor_x; int corridor_x;
int corridor_y; int corridor_y;
@ -600,7 +600,7 @@ void generate()
} }
} }
//Posizionamento nemici //Posizionamento nemici
for(int e=0; e<ENEMIES_IN_LEVEL; e++) for(int e=0; e<enemies_to_place; e++)
{ {
while(true) while(true)
{ {
@ -656,9 +656,9 @@ void generate()
} }
//Processa il resto di un turno, dopo il movimento del giocatore. //Processa il resto di un turno, dopo il movimento del giocatore.
void tick() void tick(int enemies_to_tick)
{ {
for(int e=0; e<ENEMIES_IN_LEVEL; e++) for(int e=0; e<enemies_to_tick; e++)
{ {
list[e]->move(); list[e]->move();
} }
@ -667,7 +667,7 @@ void tick()
//Trova il puntatore al nemico in una certa posizione //Trova il puntatore al nemico in una certa posizione
Enemy* find(int x, int y) Enemy* find(int x, int y)
{ {
for(int e=0; e<ENEMIES_IN_LEVEL; e++) for(int e=0; e<MAX_ENEMIES; e++)
{ {
//Se c'è un nemico in quella posizione ED E' VIVO //Se c'è un nemico in quella posizione ED E' VIVO
if(list[e]->x == x && list[e]->y == y && list[e]->alive) if(list[e]->x == x && list[e]->y == y && list[e]->alive)
@ -687,8 +687,17 @@ int main()
//Ciclo del gioco //Ciclo del gioco
while(true) while(true)
{ {
int enemies_in_level;
if(depth < MAX_ENEMIES)
{
enemies_in_level = depth;
}
else
{
enemies_in_level = MAX_ENEMIES;
}
init(); init();
generate(); generate(enemies_in_level);
draw(); draw();
//Ciclo di un livello //Ciclo di un livello
while(true) while(true)
@ -698,7 +707,7 @@ int main()
{ {
break; break;
} }
tick(); tick(enemies_in_level);
draw(); draw();
} }
depth++; depth++;