mirror of
https://github.com/Steffo99/iiiiil-gioco.git
synced 2024-11-25 17:34:18 +00:00
Aggiunta generazione e raccolta pozioni
This commit is contained in:
parent
270c70bede
commit
759e7bc703
1 changed files with 128 additions and 3 deletions
131
main.cpp
131
main.cpp
|
@ -10,6 +10,7 @@
|
||||||
#define ROOM_SIZE 7
|
#define ROOM_SIZE 7
|
||||||
#define ENEMIES_IN_LEVEL 5
|
#define ENEMIES_IN_LEVEL 5
|
||||||
#define HP_MAX 50
|
#define HP_MAX 50
|
||||||
|
#define MAX_POTIONS_PER_FLOOR 5
|
||||||
|
|
||||||
#define WALL 0xB2
|
#define WALL 0xB2
|
||||||
#define EMPTY 0xFF
|
#define EMPTY 0xFF
|
||||||
|
@ -17,6 +18,9 @@
|
||||||
#define ENEMY 'X'
|
#define ENEMY 'X'
|
||||||
#define EXIT '>'
|
#define EXIT '>'
|
||||||
#define DOUBLELINE 0xCD
|
#define DOUBLELINE 0xCD
|
||||||
|
#define ITEM_SMALL_POTION 'p'
|
||||||
|
#define ITEM_MEDIUM_POTION 'n'
|
||||||
|
#define ITEM_BIG_POTION 'm'
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -117,7 +121,7 @@ void heal(int x)
|
||||||
void inventory()
|
void inventory()
|
||||||
{
|
{
|
||||||
system("cls");
|
system("cls");
|
||||||
cout << "Piano: " << depth << ' ' << "Vita: " << hp << "/50\n";
|
cout << "Piano: " << depth << ' ' << "Vita: " << hp << "/" << HP_MAX << "\n";
|
||||||
for(int i = 0; i < X_MAX; i++)
|
for(int i = 0; i < X_MAX; i++)
|
||||||
{
|
{
|
||||||
cout << (char) DOUBLELINE;
|
cout << (char) DOUBLELINE;
|
||||||
|
@ -195,7 +199,7 @@ void draw()
|
||||||
cout << map[x][y];
|
cout << map[x][y];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cout << "Piano: " << depth << ' ' << "Vita: " << hp << "/50";
|
cout << "Piano: " << depth << ' ' << "Vita: " << hp << "/" << HP_MAX << '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
//Fai muovere il giocatore
|
//Fai muovere il giocatore
|
||||||
|
@ -220,6 +224,30 @@ int move(int player[2])
|
||||||
player_y--;
|
player_y--;
|
||||||
waiting = false;
|
waiting = false;
|
||||||
}
|
}
|
||||||
|
else if(map[player_x][player_y-1] == ITEM_SMALL_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x][player_y-1] = PLAYER;
|
||||||
|
player_y--;
|
||||||
|
pozioni_vita_piccole++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x][player_y-1] == ITEM_MEDIUM_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x][player_y-1] = PLAYER;
|
||||||
|
player_y--;
|
||||||
|
pozioni_vita_medie++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x-1][player_y-1] == ITEM_BIG_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x][player_y-1] = PLAYER;
|
||||||
|
player_y--;
|
||||||
|
pozioni_vita_grandi++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
else if(map[player_x][player_y-1] == EXIT)
|
else if(map[player_x][player_y-1] == EXIT)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -233,6 +261,30 @@ int move(int player[2])
|
||||||
player_y++;
|
player_y++;
|
||||||
waiting = false;
|
waiting = false;
|
||||||
}
|
}
|
||||||
|
else if(map[player_x][player_y+1] == ITEM_SMALL_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x][player_y+1] = PLAYER;
|
||||||
|
player_y++;
|
||||||
|
pozioni_vita_piccole++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x][player_y+1] == ITEM_MEDIUM_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x][player_y+1] = PLAYER;
|
||||||
|
player_y++;
|
||||||
|
pozioni_vita_medie++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x-1][player_y] == ITEM_BIG_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x][player_y+1] = PLAYER;
|
||||||
|
player_y++;
|
||||||
|
pozioni_vita_grandi++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
else if(map[player_x][player_y+1] == EXIT)
|
else if(map[player_x][player_y+1] == EXIT)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -246,6 +298,30 @@ int move(int player[2])
|
||||||
player_x--;
|
player_x--;
|
||||||
waiting = false;
|
waiting = false;
|
||||||
}
|
}
|
||||||
|
else if(map[player_x-1][player_y] == ITEM_SMALL_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x-1][player_y] = PLAYER;
|
||||||
|
player_x--;
|
||||||
|
pozioni_vita_piccole++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x-1][player_y] == ITEM_MEDIUM_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x-1][player_y] = PLAYER;
|
||||||
|
player_x--;
|
||||||
|
pozioni_vita_medie++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x-1][player_y] == ITEM_BIG_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x-1][player_y] = PLAYER;
|
||||||
|
player_x--;
|
||||||
|
pozioni_vita_grandi++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
else if(map[player_x-1][player_y] == EXIT)
|
else if(map[player_x-1][player_y] == EXIT)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -259,6 +335,30 @@ int move(int player[2])
|
||||||
player_x++;
|
player_x++;
|
||||||
waiting = false;
|
waiting = false;
|
||||||
}
|
}
|
||||||
|
else if(map[player_x+1][player_y] == ITEM_SMALL_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x+1][player_y] = PLAYER;
|
||||||
|
player_x++;
|
||||||
|
pozioni_vita_piccole++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x+1][player_y] == ITEM_MEDIUM_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x+1][player_y] = PLAYER;
|
||||||
|
player_x++;
|
||||||
|
pozioni_vita_medie++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
|
else if(map[player_x+1][player_y] == ITEM_BIG_POTION)
|
||||||
|
{
|
||||||
|
map[player_x][player_y] = EMPTY;
|
||||||
|
map[player_x+1][player_y] = PLAYER;
|
||||||
|
player_x++;
|
||||||
|
pozioni_vita_grandi++;
|
||||||
|
waiting = false;
|
||||||
|
}
|
||||||
else if(map[player_x+1][player_y] == EXIT)
|
else if(map[player_x+1][player_y] == EXIT)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -376,6 +476,7 @@ void corridor(int start_x, int start_y, int end_x, int end_y, bool verticale)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Genera il livello
|
||||||
void generate(int player[2], Enemy* list[ENEMIES_IN_LEVEL])
|
void generate(int player[2], Enemy* list[ENEMIES_IN_LEVEL])
|
||||||
{
|
{
|
||||||
int corridor_x;
|
int corridor_x;
|
||||||
|
@ -434,7 +535,31 @@ void generate(int player[2], Enemy* list[ENEMIES_IN_LEVEL])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Posizionamento pozioni di vita
|
||||||
|
int placed_potions = 0;
|
||||||
|
int potions_in_floor = rand() % MAX_POTIONS_PER_FLOOR + 1;
|
||||||
|
while(placed_potions < potions_in_floor)
|
||||||
|
{
|
||||||
|
int x = rand() % (X_MAX - 1) + 1;
|
||||||
|
int y = rand() % (Y_MAX - 1) + 1;
|
||||||
|
int size = rand() % 100;
|
||||||
|
if(map[x][y] == EMPTY)
|
||||||
|
{
|
||||||
|
if(size < 60)
|
||||||
|
{
|
||||||
|
map[x][y] = ITEM_SMALL_POTION;
|
||||||
|
}
|
||||||
|
else if(size > 90)
|
||||||
|
{
|
||||||
|
map[x][y] = ITEM_BIG_POTION;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
map[x][y] = ITEM_MEDIUM_POTION;
|
||||||
|
}
|
||||||
|
placed_potions++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Processa il resto di un turno, dopo il movimento del giocatore.
|
//Processa il resto di un turno, dopo il movimento del giocatore.
|
||||||
|
|
Loading…
Reference in a new issue