afegida la classe EnemyFormations
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user