afegida la classe EnemyFormations

This commit is contained in:
2024-07-29 16:30:25 +02:00
parent af60e2e587
commit 7b7300fda5

View File

@@ -898,16 +898,16 @@ void Game::deployEnemyFormation()
lastEnemyDeploy = set; lastEnemyDeploy = set;
const stage_t stage = enemyFormations->getStage(currentStage) const stage_t stage = enemyFormations->getStage(currentStage);
const int numEnemies = enemyFormations->stage[currentStage].enemyPool->set[set]->numberOfEnemies; const int numEnemies = stage.enemyPool->set[set]->numberOfEnemies;
for (int i = 0; i < numEnemies; ++i) for (int i = 0; i < numEnemies; ++i)
{ {
createBalloon(enemyFormations->stage[currentStage].enemyPool->set[set]->init[i].x, createBalloon(stage.enemyPool->set[set]->init[i].x,
enemyFormations->stage[currentStage].enemyPool->set[set]->init[i].y, stage.enemyPool->set[set]->init[i].y,
enemyFormations->stage[currentStage].enemyPool->set[set]->init[i].kind, stage.enemyPool->set[set]->init[i].kind,
enemyFormations->stage[currentStage].enemyPool->set[set]->init[i].velX, stage.enemyPool->set[set]->init[i].velX,
enemySpeed, enemySpeed,
enemyFormations->stage[currentStage].enemyPool->set[set]->init[i].creationCounter); stage.enemyPool->set[set]->init[i].creationCounter);
} }
enemyDeployCounter = 300; enemyDeployCounter = 300;
@@ -918,7 +918,7 @@ void Game::deployEnemyFormation()
// Aumenta el poder de la fase // Aumenta el poder de la fase
void Game::increaseStageCurrentPower(int power) void Game::increaseStageCurrentPower(int power)
{ {
enemyFormations->stage[currentStage].currentPower += power; currentPower += power;
} }
// Actualiza el valor de hiScore en caso necesario // Actualiza el valor de hiScore en caso necesario
@@ -985,19 +985,19 @@ void Game::renderPlayers()
// Actualiza las variables de la fase // Actualiza las variables de la fase
void Game::updateStage() void Game::updateStage()
{ {
if (enemyFormations->stage[currentStage].currentPower >= enemyFormations->stage[currentStage].powerToComplete) if (currentPower >= enemyFormations->getStage(currentStage).powerToComplete)
{ {
// Cambio de fase // Cambio de fase
currentStage++; currentStage++;
currentPower = 0;
lastStageReached = currentStage; lastStageReached = currentStage;
if (currentStage == 10) if (currentStage == 10)
{ // Ha llegado al final el juego { // Ha llegado al final el juego
gameCompleted = true; // Marca el juego como completado gameCompleted = true; // Marca el juego como completado
currentStage = 9; // Deja el valor dentro de los limites currentStage = 9; // Deja el valor dentro de los limites
enemyFormations->stage[currentStage].currentPower = 0; // Deja el poder a cero para que no vuelva a entrar en esta condición destroyAllBalloons(); // Destruye a todos los enemigos
destroyAllBalloons(); // Destruye a todos los enemigos currentPower = 0; // Vuelve a dejar el poder a cero, por lo que hubiera podido subir al destruir todos lo globos
enemyFormations->stage[currentStage].currentPower = 0; // Vuelve a dejar el poder a cero, por lo que hubiera podido subir al destruir todos lo globos menaceCurrent = 255; // Sube el nivel de amenaza para que no cree mas globos
menaceCurrent = 255; // Sube el nivel de amenaza para que no cree mas globos
for (auto player : players) for (auto player : players)
{ // Añade un millon de puntos a los jugadores que queden vivos { // Añade un millon de puntos a los jugadores que queden vivos
if (player->isAlive()) if (player->isAlive())
@@ -1186,7 +1186,7 @@ void Game::decBalloonSpeed()
// Actualiza la velocidad de los globos en funcion del poder acumulado de la fase // Actualiza la velocidad de los globos en funcion del poder acumulado de la fase
void Game::updateBalloonSpeed() void Game::updateBalloonSpeed()
{ {
const float percent = (float)enemyFormations->stage[currentStage].currentPower / (float)enemyFormations->stage[currentStage].powerToComplete; const float percent = (float)currentPower / (float)enemyFormations->getStage(currentStage).powerToComplete;
if (enemySpeed == BALLOON_SPEED_1) if (enemySpeed == BALLOON_SPEED_1)
{ {
if (percent > 0.2f) if (percent > 0.2f)
@@ -2374,7 +2374,7 @@ void Game::renderMessages()
// STAGE NUMBER // STAGE NUMBER
if (stageBitmapCounter < STAGE_COUNTER) if (stageBitmapCounter < STAGE_COUNTER)
{ {
const int stageNum = enemyFormations->stage[currentStage].number; const int stageNum = enemyFormations->getStage(currentStage).number;
std::string text; std::string text;
if (stageNum == 10) if (stageNum == 10)
@@ -2383,7 +2383,7 @@ void Game::renderMessages()
} }
else else
{ // X fases restantes { // X fases restantes
text = std::to_string(11 - enemyFormations->stage[currentStage].number) + lang->getText(38); text = std::to_string(11 - stageNum) + lang->getText(38);
} }
if (!gameCompleted) if (!gameCompleted)
@@ -2763,8 +2763,8 @@ void Game::updateScoreboard()
scoreboard->setMult2(players[1]->getScoreMultiplier()); scoreboard->setMult2(players[1]->getScoreMultiplier());
// Resto de marcador // Resto de marcador
scoreboard->setStage(enemyFormations->stage[currentStage].number); scoreboard->setStage(enemyFormations->getStage(currentStage).number);
scoreboard->setPower((float)enemyFormations->stage[currentStage].currentPower / (float)enemyFormations->stage[currentStage].powerToComplete); scoreboard->setPower((float)currentPower / (float)enemyFormations->getStage(currentStage).powerToComplete);
scoreboard->setHiScore(hiScore); scoreboard->setHiScore(hiScore);
scoreboard->setHiScoreName(hiScoreName); scoreboard->setHiScoreName(hiScoreName);