#include "balloon_formations.h" #include "balloon.h" // para BALLOON_VELX_NEGATIVE, BALLOON_VELX_POSITIVE #include "param.h" // para param #include "utils.h" // para ParamGame, Param, Zone, BLOCK // Constructor BalloonFormations::BalloonFormations() { initBalloonFormations(); initBalloonFormationPools(); initGameStages(); } // Inicializa las formaciones enemigas void BalloonFormations::initBalloonFormations() { constexpr int y4 = -BLOCK; const int x4_0 = param.game.play_area.rect.x; const int x4_100 = param.game.play_area.rect.w - BALLOON_SIZE[3]; constexpr int y3 = -BLOCK; const int x3_0 = param.game.play_area.rect.x; const int x3_100 = param.game.play_area.rect.w - BALLOON_SIZE[2]; constexpr int y2 = -BLOCK; const int x2_0 = param.game.play_area.rect.x; const int x2_100 = param.game.play_area.rect.w - BALLOON_SIZE[1]; constexpr int y1 = -BLOCK; const int x1_0 = param.game.play_area.rect.x; const int x1_50 = param.game.play_area.center_x - (BALLOON_SIZE[0] / 2); const int x1_100 = param.game.play_area.rect.w - BALLOON_SIZE[0]; // Inicializa a cero las variables for (int j = 0; j < NUMBER_OF_BALLOON_FORMATIONS; ++j) { balloon_formation_[j].number_of_balloons = 0; for (int i = 0; i < MAX_NUMBER_OF_BALLOONS_IN_A_FORMATION; ++i) { balloon_formation_[j].init[i] = BalloonFormationParams(); } } constexpr int CREATION_TIME = 300; int inc_x = 0; int inc_time = 0; int j = 0; // #00 - Dos enemigos BALLOON4 uno a cada extremo j = 0; balloon_formation_[j].number_of_balloons = 2; inc_x = x4_100; inc_time = 0; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x4_0 + (i * inc_x); balloon_formation_[j].init[i].y = y4; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE * (((i % 2) * 2) - 1); balloon_formation_[j].init[i].size = BalloonSize::SIZE4; balloon_formation_[j].init[i].creation_counter = CREATION_TIME + (inc_time * i); } // #01 - Dos enemigos BALLOON4 uno a cada cuarto. Ambos van hacia el centro j = 1; balloon_formation_[j].number_of_balloons = 2; inc_x = param.game.play_area.center_x; inc_time = 0; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = param.game.play_area.first_quarter_x - (BALLOON_SIZE[3] / 2) + (i * inc_x); balloon_formation_[j].init[i].y = y4; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE * (((i % 2) * 2) - 1); balloon_formation_[j].init[i].size = BalloonSize::SIZE4; balloon_formation_[j].init[i].creation_counter = CREATION_TIME + (inc_time * i); } // #02 - Cuatro enemigos BALLOON2 uno detras del otro. A la izquierda y hacia el centro j = 2; balloon_formation_[j].number_of_balloons = 4; inc_x = BALLOON_SIZE[1] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x2_0 + (i * inc_x); balloon_formation_[j].init[i].y = y2; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE2; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #03 - Cuatro enemigos BALLOON2 uno detras del otro. A la derecha y hacia el centro j = 3; balloon_formation_[j].number_of_balloons = 4; inc_x = BALLOON_SIZE[1] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x2_100 - (i * inc_x); balloon_formation_[j].init[i].y = y2; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE2; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #04 - Tres enemigos BALLOON3. 0, 25, 50. Hacia la derecha j = 4; balloon_formation_[j].number_of_balloons = 3; inc_x = BALLOON_SIZE[2] * 2; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_0 + (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #05 - Tres enemigos BALLOON3. 50, 75, 100. Hacia la izquierda j = 5; balloon_formation_[j].number_of_balloons = 3; inc_x = BALLOON_SIZE[2] * 2; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_100 - (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #06 - Tres enemigos BALLOON3. 0, 0, 0. Hacia la derecha j = 6; balloon_formation_[j].number_of_balloons = 3; inc_x = BALLOON_SIZE[2] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_0 + (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #07 - Tres enemigos BALLOON3. 100, 100, 100. Hacia la izquierda j = 7; balloon_formation_[j].number_of_balloons = 3; inc_x = BALLOON_SIZE[2] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_100 - (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #08 - Seis enemigos BALLOON1. 0, 0, 0, 0, 0, 0. Hacia la derecha j = 8; balloon_formation_[j].number_of_balloons = 6; inc_x = BALLOON_SIZE[0] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x1_0 + (i * inc_x); balloon_formation_[j].init[i].y = y1; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE1; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #09 - Seis enemigos BALLOON1. 100, 100, 100, 100, 100, 100. Hacia la izquierda j = 9; balloon_formation_[j].number_of_balloons = 6; inc_x = BALLOON_SIZE[0] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x1_100 - (i * inc_x); balloon_formation_[j].init[i].y = y1; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE1; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #10 - Tres enemigos BALLOON4 seguidos desde la izquierda j = 10; balloon_formation_[j].number_of_balloons = 3; inc_x = BALLOON_SIZE[3] + 1; inc_time = 15; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x4_0 + (i * inc_x); balloon_formation_[j].init[i].y = y4; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE4; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #11 - Tres enemigos BALLOON4 seguidos desde la derecha j = 11; balloon_formation_[j].number_of_balloons = 3; inc_x = BALLOON_SIZE[3] + 1; inc_time = 15; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x4_100 - (i * inc_x); balloon_formation_[j].init[i].y = y4; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE4; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #12 - Seis enemigos BALLOON2 uno detras del otro. A la izquierda y hacia el centro j = 12; balloon_formation_[j].number_of_balloons = 6; inc_x = BALLOON_SIZE[1] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x2_0 + (i * inc_x); balloon_formation_[j].init[i].y = y2; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE2; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #13 - Seis enemigos BALLOON2 uno detras del otro. A la derecha y hacia el centro j = 13; balloon_formation_[j].number_of_balloons = 6; inc_x = BALLOON_SIZE[1] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x2_100 - (i * inc_x); balloon_formation_[j].init[i].y = y2; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE2; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #14 - Cinco enemigos BALLOON3. Hacia la derecha. Separados j = 14; balloon_formation_[j].number_of_balloons = 5; inc_x = BALLOON_SIZE[2] * 2; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_0 + (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #15 - Cinco enemigos BALLOON3. Hacia la izquierda. Separados j = 15; balloon_formation_[j].number_of_balloons = 5; inc_x = BALLOON_SIZE[2] * 2; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_100 - (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #16 - Cinco enemigos BALLOON3. Hacia la derecha. Juntos j = 16; balloon_formation_[j].number_of_balloons = 5; inc_x = BALLOON_SIZE[2] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_0 + (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #17 - Cinco enemigos BALLOON3. Hacia la izquierda. Juntos j = 17; balloon_formation_[j].number_of_balloons = 5; inc_x = BALLOON_SIZE[2] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x3_100 - (i * inc_x); balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #18 - Doce enemigos BALLOON1. Hacia la derecha. Juntos j = 18; balloon_formation_[j].number_of_balloons = 12; inc_x = BALLOON_SIZE[0] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x1_0 + (i * inc_x); balloon_formation_[j].init[i].y = y1; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE1; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #19 - Doce enemigos BALLOON1. Hacia la izquierda. Juntos j = 19; balloon_formation_[j].number_of_balloons = 12; inc_x = BALLOON_SIZE[0] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { balloon_formation_[j].init[i].x = x1_100 - (i * inc_x); balloon_formation_[j].init[i].y = y1; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].size = BalloonSize::SIZE1; balloon_formation_[j].init[i].creation_counter = CREATION_TIME - (inc_time * i); } // #20 - Dos enemigos BALLOON4 seguidos desde la izquierda/derecha. Simetricos j = 20; balloon_formation_[j].number_of_balloons = 4; inc_x = BALLOON_SIZE[3] + 1; inc_time = 0; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { const int half = balloon_formation_[j].number_of_balloons / 2; if (i < half) { balloon_formation_[j].init[i].x = x4_0 + (i * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; } else { balloon_formation_[j].init[i].x = x4_100 - ((i - half) * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; } balloon_formation_[j].init[i].y = y4; balloon_formation_[j].init[i].size = BalloonSize::SIZE4; balloon_formation_[j].init[i].creation_counter = CREATION_TIME + (inc_time * i); } // #21 - Diez enemigos BALLOON2 uno detras del otro. Izquierda/derecha. Simetricos j = 21; balloon_formation_[j].number_of_balloons = 10; inc_x = BALLOON_SIZE[1] + 1; inc_time = 3; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { const int half = balloon_formation_[j].number_of_balloons / 2; if (i < half) { balloon_formation_[j].init[i].x = x2_0 + (i * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * i); } else { balloon_formation_[j].init[i].x = x2_100 - ((i - half) * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * (i - half)); } balloon_formation_[j].init[i].y = y2; balloon_formation_[j].init[i].size = BalloonSize::SIZE2; } // #22 - Diez enemigos BALLOON3. Hacia la derecha/izquierda. Separados. Simetricos j = 22; balloon_formation_[j].number_of_balloons = 10; inc_x = BALLOON_SIZE[2] * 2; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { const int half = balloon_formation_[j].number_of_balloons / 2; if (i < half) { balloon_formation_[j].init[i].x = x3_0 + (i * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * i); } else { balloon_formation_[j].init[i].x = x3_100 - ((i - half) * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * (i - half)); } balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; } // #23 - Diez enemigos BALLOON3. Hacia la derecha. Juntos. Simetricos j = 23; balloon_formation_[j].number_of_balloons = 10; inc_x = BALLOON_SIZE[2] + 1; inc_time = 10; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { const int half = balloon_formation_[j].number_of_balloons / 2; if (i < half) { balloon_formation_[j].init[i].x = x3_0 + (i * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * i); } else { balloon_formation_[j].init[i].x = x3_100 - ((i - half) * inc_x); balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * (i - half)); } balloon_formation_[j].init[i].y = y3; balloon_formation_[j].init[i].size = BalloonSize::SIZE3; } // #24 - Treinta enemigos BALLOON1. Del centro hacia los extremos. Juntos. Simetricos j = 24; balloon_formation_[j].number_of_balloons = 30; inc_time = 5; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { const int half = balloon_formation_[j].number_of_balloons / 2; if (i < half) { balloon_formation_[j].init[i].x = x1_50; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) + (inc_time * i); } else { balloon_formation_[j].init[i].x = x1_50; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) + (inc_time * (i - half)); } balloon_formation_[j].init[i].y = y1; balloon_formation_[j].init[i].size = BalloonSize::SIZE1; } // #25 - Treinta enemigos BALLOON1. Del centro hacia adentro. Juntos. Simetricos j = 25; balloon_formation_[j].number_of_balloons = 30; inc_time = 5; for (int i = 0; i < balloon_formation_[j].number_of_balloons; i++) { const int half = balloon_formation_[j].number_of_balloons / 2; if (i < half) { balloon_formation_[j].init[i].x = x1_50 + 20; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_NEGATIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * i); } else { balloon_formation_[j].init[i].x = x1_50 - 20; balloon_formation_[j].init[i].vel_x = BALLOON_VELX_POSITIVE; balloon_formation_[j].init[i].creation_counter = (CREATION_TIME) - (inc_time * (i - half)); } balloon_formation_[j].init[i].y = y1; balloon_formation_[j].init[i].size = BalloonSize::SIZE1; } // Crea las mismas formaciones pero con hexagonos a partir de la posición 50 del vector for (int k = 0; k < j + 1; k++) { balloon_formation_[k + 50].number_of_balloons = balloon_formation_[k].number_of_balloons; for (int i = 0; i < balloon_formation_[k + 50].number_of_balloons; i++) { balloon_formation_[k + 50].init[i].x = balloon_formation_[k].init[i].x; balloon_formation_[k + 50].init[i].y = balloon_formation_[k].init[i].y; balloon_formation_[k + 50].init[i].vel_x = balloon_formation_[k].init[i].vel_x; balloon_formation_[k + 50].init[i].creation_counter = balloon_formation_[k].init[i].creation_counter; balloon_formation_[k + 50].init[i].size = balloon_formation_[k].init[i].size; balloon_formation_[k + 50].init[i].type = BalloonType::FLOATER; } } // TEST balloon_formation_[99].number_of_balloons = 4; balloon_formation_[99].init[0].x = 10; balloon_formation_[99].init[0].y = y1; balloon_formation_[99].init[0].vel_x = 0; balloon_formation_[99].init[0].size = BalloonSize::SIZE1; balloon_formation_[99].init[0].creation_counter = 200; balloon_formation_[99].init[1].x = 50; balloon_formation_[99].init[1].y = y1; balloon_formation_[99].init[1].vel_x = 0; balloon_formation_[99].init[1].size = BalloonSize::SIZE2; balloon_formation_[99].init[1].creation_counter = 200; balloon_formation_[99].init[2].x = 90; balloon_formation_[99].init[2].y = y1; balloon_formation_[99].init[2].vel_x = 0; balloon_formation_[99].init[2].size = BalloonSize::SIZE3; balloon_formation_[99].init[2].creation_counter = 200; balloon_formation_[99].init[3].x = 140; balloon_formation_[99].init[3].y = y1; balloon_formation_[99].init[3].vel_x = 0; balloon_formation_[99].init[3].size = BalloonSize::SIZE4; balloon_formation_[99].init[3].creation_counter = 200; } // Inicializa los conjuntos de formaciones void BalloonFormations::initBalloonFormationPools() { // EnemyPool #0 balloon_formation_pool_[0].set[0] = balloon_formation_[0]; balloon_formation_pool_[0].set[1] = balloon_formation_[1]; balloon_formation_pool_[0].set[2] = balloon_formation_[2]; balloon_formation_pool_[0].set[3] = balloon_formation_[3]; balloon_formation_pool_[0].set[4] = balloon_formation_[4]; balloon_formation_pool_[0].set[5] = balloon_formation_[5]; balloon_formation_pool_[0].set[6] = balloon_formation_[6]; balloon_formation_pool_[0].set[7] = balloon_formation_[7]; balloon_formation_pool_[0].set[8] = balloon_formation_[8]; balloon_formation_pool_[0].set[9] = balloon_formation_[9]; // EnemyPool #1 balloon_formation_pool_[1].set[0] = balloon_formation_[10]; balloon_formation_pool_[1].set[1] = balloon_formation_[11]; balloon_formation_pool_[1].set[2] = balloon_formation_[12]; balloon_formation_pool_[1].set[3] = balloon_formation_[13]; balloon_formation_pool_[1].set[4] = balloon_formation_[14]; balloon_formation_pool_[1].set[5] = balloon_formation_[15]; balloon_formation_pool_[1].set[6] = balloon_formation_[16]; balloon_formation_pool_[1].set[7] = balloon_formation_[17]; balloon_formation_pool_[1].set[8] = balloon_formation_[18]; balloon_formation_pool_[1].set[9] = balloon_formation_[19]; // EnemyPool #2 balloon_formation_pool_[2].set[0] = balloon_formation_[0]; balloon_formation_pool_[2].set[1] = balloon_formation_[1]; balloon_formation_pool_[2].set[2] = balloon_formation_[2]; balloon_formation_pool_[2].set[3] = balloon_formation_[3]; balloon_formation_pool_[2].set[4] = balloon_formation_[4]; balloon_formation_pool_[2].set[5] = balloon_formation_[55]; balloon_formation_pool_[2].set[6] = balloon_formation_[56]; balloon_formation_pool_[2].set[7] = balloon_formation_[57]; balloon_formation_pool_[2].set[8] = balloon_formation_[58]; balloon_formation_pool_[2].set[9] = balloon_formation_[59]; // EnemyPool #3 balloon_formation_pool_[3].set[0] = balloon_formation_[50]; balloon_formation_pool_[3].set[1] = balloon_formation_[51]; balloon_formation_pool_[3].set[2] = balloon_formation_[52]; balloon_formation_pool_[3].set[3] = balloon_formation_[53]; balloon_formation_pool_[3].set[4] = balloon_formation_[54]; balloon_formation_pool_[3].set[5] = balloon_formation_[5]; balloon_formation_pool_[3].set[6] = balloon_formation_[6]; balloon_formation_pool_[3].set[7] = balloon_formation_[7]; balloon_formation_pool_[3].set[8] = balloon_formation_[8]; balloon_formation_pool_[3].set[9] = balloon_formation_[9]; // EnemyPool #4 balloon_formation_pool_[4].set[0] = balloon_formation_[60]; balloon_formation_pool_[4].set[1] = balloon_formation_[61]; balloon_formation_pool_[4].set[2] = balloon_formation_[62]; balloon_formation_pool_[4].set[3] = balloon_formation_[63]; balloon_formation_pool_[4].set[4] = balloon_formation_[64]; balloon_formation_pool_[4].set[5] = balloon_formation_[65]; balloon_formation_pool_[4].set[6] = balloon_formation_[66]; balloon_formation_pool_[4].set[7] = balloon_formation_[67]; balloon_formation_pool_[4].set[8] = balloon_formation_[68]; balloon_formation_pool_[4].set[9] = balloon_formation_[69]; // EnemyPool #5 balloon_formation_pool_[5].set[0] = balloon_formation_[10]; balloon_formation_pool_[5].set[1] = balloon_formation_[61]; balloon_formation_pool_[5].set[2] = balloon_formation_[12]; balloon_formation_pool_[5].set[3] = balloon_formation_[63]; balloon_formation_pool_[5].set[4] = balloon_formation_[14]; balloon_formation_pool_[5].set[5] = balloon_formation_[65]; balloon_formation_pool_[5].set[6] = balloon_formation_[16]; balloon_formation_pool_[5].set[7] = balloon_formation_[67]; balloon_formation_pool_[5].set[8] = balloon_formation_[18]; balloon_formation_pool_[5].set[9] = balloon_formation_[69]; // EnemyPool #6 balloon_formation_pool_[6].set[0] = balloon_formation_[60]; balloon_formation_pool_[6].set[1] = balloon_formation_[11]; balloon_formation_pool_[6].set[2] = balloon_formation_[62]; balloon_formation_pool_[6].set[3] = balloon_formation_[13]; balloon_formation_pool_[6].set[4] = balloon_formation_[64]; balloon_formation_pool_[6].set[5] = balloon_formation_[15]; balloon_formation_pool_[6].set[6] = balloon_formation_[66]; balloon_formation_pool_[6].set[7] = balloon_formation_[17]; balloon_formation_pool_[6].set[8] = balloon_formation_[68]; balloon_formation_pool_[6].set[9] = balloon_formation_[19]; // EnemyPool #7 balloon_formation_pool_[7].set[0] = balloon_formation_[20]; balloon_formation_pool_[7].set[1] = balloon_formation_[21]; balloon_formation_pool_[7].set[2] = balloon_formation_[22]; balloon_formation_pool_[7].set[3] = balloon_formation_[23]; balloon_formation_pool_[7].set[4] = balloon_formation_[24]; balloon_formation_pool_[7].set[5] = balloon_formation_[65]; balloon_formation_pool_[7].set[6] = balloon_formation_[66]; balloon_formation_pool_[7].set[7] = balloon_formation_[67]; balloon_formation_pool_[7].set[8] = balloon_formation_[68]; balloon_formation_pool_[7].set[9] = balloon_formation_[69]; // EnemyPool #8 balloon_formation_pool_[8].set[0] = balloon_formation_[70]; balloon_formation_pool_[8].set[1] = balloon_formation_[71]; balloon_formation_pool_[8].set[2] = balloon_formation_[72]; balloon_formation_pool_[8].set[3] = balloon_formation_[73]; balloon_formation_pool_[8].set[4] = balloon_formation_[74]; balloon_formation_pool_[8].set[5] = balloon_formation_[15]; balloon_formation_pool_[8].set[6] = balloon_formation_[16]; balloon_formation_pool_[8].set[7] = balloon_formation_[17]; balloon_formation_pool_[8].set[8] = balloon_formation_[18]; balloon_formation_pool_[8].set[9] = balloon_formation_[19]; // EnemyPool #9 balloon_formation_pool_[9].set[0] = balloon_formation_[20]; balloon_formation_pool_[9].set[1] = balloon_formation_[21]; balloon_formation_pool_[9].set[2] = balloon_formation_[22]; balloon_formation_pool_[9].set[3] = balloon_formation_[23]; balloon_formation_pool_[9].set[4] = balloon_formation_[24]; balloon_formation_pool_[9].set[5] = balloon_formation_[70]; balloon_formation_pool_[9].set[6] = balloon_formation_[71]; balloon_formation_pool_[9].set[7] = balloon_formation_[72]; balloon_formation_pool_[9].set[8] = balloon_formation_[73]; balloon_formation_pool_[9].set[9] = balloon_formation_[74]; } // Inicializa las fases del juego void BalloonFormations::initGameStages() { // STAGE 1 stage_[0].number = 1; stage_[0].power_to_complete = 200; stage_[0].min_menace = 7 + (4 * 1); stage_[0].max_menace = 7 + (4 * 3); stage_[0].balloon_pool = balloon_formation_pool_[0]; // STAGE 2 stage_[1].number = 2; stage_[1].power_to_complete = 300; stage_[1].min_menace = 7 + (4 * 2); stage_[1].max_menace = 7 + (4 * 4); stage_[1].balloon_pool = balloon_formation_pool_[1]; // STAGE 3 stage_[2].number = 3; stage_[2].power_to_complete = 600; stage_[2].min_menace = 7 + (4 * 3); stage_[2].max_menace = 7 + (4 * 5); stage_[2].balloon_pool = balloon_formation_pool_[2]; // STAGE 4 stage_[3].number = 4; stage_[3].power_to_complete = 600; stage_[3].min_menace = 7 + (4 * 3); stage_[3].max_menace = 7 + (4 * 5); stage_[3].balloon_pool = balloon_formation_pool_[3]; // STAGE 5 stage_[4].number = 5; stage_[4].power_to_complete = 600; stage_[4].min_menace = 7 + (4 * 4); stage_[4].max_menace = 7 + (4 * 6); stage_[4].balloon_pool = balloon_formation_pool_[4]; // STAGE 6 stage_[5].number = 6; stage_[5].power_to_complete = 600; stage_[5].min_menace = 7 + (4 * 4); stage_[5].max_menace = 7 + (4 * 6); stage_[5].balloon_pool = balloon_formation_pool_[5]; // STAGE 7 stage_[6].number = 7; stage_[6].power_to_complete = 650; stage_[6].min_menace = 7 + (4 * 5); stage_[6].max_menace = 7 + (4 * 7); stage_[6].balloon_pool = balloon_formation_pool_[6]; // STAGE 8 stage_[7].number = 8; stage_[7].power_to_complete = 750; stage_[7].min_menace = 7 + (4 * 5); stage_[7].max_menace = 7 + (4 * 7); stage_[7].balloon_pool = balloon_formation_pool_[7]; // STAGE 9 stage_[8].number = 9; stage_[8].power_to_complete = 850; stage_[8].min_menace = 7 + (4 * 6); stage_[8].max_menace = 7 + (4 * 8); stage_[8].balloon_pool = balloon_formation_pool_[8]; // STAGE 10 stage_[9].number = 10; stage_[9].power_to_complete = 950; stage_[9].min_menace = 7 + (4 * 7); stage_[9].max_menace = 7 + (4 * 10); stage_[9].balloon_pool = balloon_formation_pool_[9]; } // Devuelve una fase Stage BalloonFormations::getStage(int index) const { return stage_[index]; }