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