#include "enemy_formations.h" #include "param.h" // Constructor EnemyFormations::EnemyFormations() { initEnemyFormations(); initEnemyPools(); initGameStages(); } // Destructor EnemyFormations::~EnemyFormations() { } // Inicializa las formaciones enemigas void EnemyFormations::initEnemyFormations() { const int y4 = - BLOCK; const int x4_0 = PLAY_AREA_LEFT; const int x4_100 = param.game.playArea.rect.w - BALLOON_WIDTH_4; const int y3 = - BLOCK; const int x3_0 = PLAY_AREA_LEFT; const int x3_100 = param.game.playArea.rect.w - BALLOON_WIDTH_3; const int y2 = - BLOCK; const int x2_0 = PLAY_AREA_LEFT; const int x2_100 = param.game.playArea.rect.w - BALLOON_WIDTH_2; const int y1 = - BLOCK; const int x1_0 = PLAY_AREA_LEFT; const int x1_50 = param.game.playArea.centerX - (BALLOON_WIDTH_1 / 2); const int x1_100 = param.game.playArea.rect.w - BALLOON_WIDTH_1; // Inicializa a cero las variables for (int i = 0; i < NUMBER_OF_ENEMY_FORMATIONS; i++) { enemyFormation[i].numberOfEnemies = 0; for (int j = 0; j < MAX_NUMBER_OF_ENEMIES_IN_A_FORMATION; j++) { enemyFormation[i].init[j].x = 0; enemyFormation[i].init[j].y = 0; enemyFormation[i].init[j].velX = 0; enemyFormation[i].init[j].kind = 0; enemyFormation[i].init[j].creationCounter = 0; } } const int creationTime = 300; int incX = 0; int incTime = 0; int j = 0; // #00 - Dos enemigos BALLOON4 uno a cada extremo j = 0; enemyFormation[j].numberOfEnemies = 2; incX = x4_100; incTime = 0; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x4_0 + (i * incX); enemyFormation[j].init[i].y = y4; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE * (((i % 2) * 2) - 1); enemyFormation[j].init[i].kind = BALLOON_4; enemyFormation[j].init[i].creationCounter = creationTime + (incTime * i); } // #01 - Dos enemigos BALLOON4 uno a cada cuarto. Ambos van hacia el centro j = 1; enemyFormation[j].numberOfEnemies = 2; incX = param.game.playArea.centerX; incTime = 0; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = param.game.playArea.firstQuarterX - (BALLOON_WIDTH_4 / 2) + (i * incX); enemyFormation[j].init[i].y = y4; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE * (((i % 2) * 2) - 1); enemyFormation[j].init[i].kind = BALLOON_4; enemyFormation[j].init[i].creationCounter = creationTime + (incTime * i); } // #02 - Cuatro enemigos BALLOON2 uno detras del otro. A la izquierda y hacia el centro j = 2; enemyFormation[j].numberOfEnemies = 4; incX = BALLOON_WIDTH_2 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x2_0 + (i * incX); enemyFormation[j].init[i].y = y2; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_2; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #03 - Cuatro enemigos BALLOON2 uno detras del otro. A la derecha y hacia el centro j = 3; enemyFormation[j].numberOfEnemies = 4; incX = BALLOON_WIDTH_2 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x2_100 - (i * incX); enemyFormation[j].init[i].y = y2; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_2; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #04 - Tres enemigos BALLOON3. 0, 25, 50. Hacia la derecha j = 4; enemyFormation[j].numberOfEnemies = 3; incX = BALLOON_WIDTH_3 * 2; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_0 + (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #05 - Tres enemigos BALLOON3. 50, 75, 100. Hacia la izquierda j = 5; enemyFormation[j].numberOfEnemies = 3; incX = BALLOON_WIDTH_3 * 2; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_100 - (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #06 - Tres enemigos BALLOON3. 0, 0, 0. Hacia la derecha j = 6; enemyFormation[j].numberOfEnemies = 3; incX = BALLOON_WIDTH_3 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_0 + (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #07 - Tres enemigos BALLOON3. 100, 100, 100. Hacia la izquierda j = 7; enemyFormation[j].numberOfEnemies = 3; incX = BALLOON_WIDTH_3 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_100 - (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #08 - Seis enemigos BALLOON1. 0, 0, 0, 0, 0, 0. Hacia la derecha j = 8; enemyFormation[j].numberOfEnemies = 6; incX = BALLOON_WIDTH_1 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x1_0 + (i * incX); enemyFormation[j].init[i].y = y1; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_1; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #09 - Seis enemigos BALLOON1. 100, 100, 100, 100, 100, 100. Hacia la izquierda j = 9; enemyFormation[j].numberOfEnemies = 6; incX = BALLOON_WIDTH_1 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x1_100 - (i * incX); enemyFormation[j].init[i].y = y1; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_1; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #10 - Tres enemigos BALLOON4 seguidos desde la izquierda j = 10; enemyFormation[j].numberOfEnemies = 3; incX = BALLOON_WIDTH_4 + 1; incTime = 15; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x4_0 + (i * incX); enemyFormation[j].init[i].y = y4; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_4; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #11 - Tres enemigos BALLOON4 seguidos desde la derecha j = 11; enemyFormation[j].numberOfEnemies = 3; incX = BALLOON_WIDTH_4 + 1; incTime = 15; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x4_100 - (i * incX); enemyFormation[j].init[i].y = y4; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_4; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #12 - Seis enemigos BALLOON2 uno detras del otro. A la izquierda y hacia el centro j = 12; enemyFormation[j].numberOfEnemies = 6; incX = BALLOON_WIDTH_2 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x2_0 + (i * incX); enemyFormation[j].init[i].y = y2; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_2; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #13 - Seis enemigos BALLOON2 uno detras del otro. A la derecha y hacia el centro j = 13; enemyFormation[j].numberOfEnemies = 6; incX = BALLOON_WIDTH_2 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x2_100 - (i * incX); enemyFormation[j].init[i].y = y2; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_2; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #14 - Cinco enemigos BALLOON3. Hacia la derecha. Separados j = 14; enemyFormation[j].numberOfEnemies = 5; incX = BALLOON_WIDTH_3 * 2; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_0 + (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #15 - Cinco enemigos BALLOON3. Hacia la izquierda. Separados j = 15; enemyFormation[j].numberOfEnemies = 5; incX = BALLOON_WIDTH_3 * 2; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_100 - (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #16 - Cinco enemigos BALLOON3. Hacia la derecha. Juntos j = 16; enemyFormation[j].numberOfEnemies = 5; incX = BALLOON_WIDTH_3 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_0 + (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #17 - Cinco enemigos BALLOON3. Hacia la izquierda. Juntos j = 17; enemyFormation[j].numberOfEnemies = 5; incX = BALLOON_WIDTH_3 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x3_100 - (i * incX); enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_3; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #18 - Doce enemigos BALLOON1. Hacia la derecha. Juntos j = 18; enemyFormation[j].numberOfEnemies = 12; incX = BALLOON_WIDTH_1 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x1_0 + (i * incX); enemyFormation[j].init[i].y = y1; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].kind = BALLOON_1; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #19 - Doce enemigos BALLOON1. Hacia la izquierda. Juntos j = 19; enemyFormation[j].numberOfEnemies = 12; incX = BALLOON_WIDTH_1 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { enemyFormation[j].init[i].x = x1_100 - (i * incX); enemyFormation[j].init[i].y = y1; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].kind = BALLOON_1; enemyFormation[j].init[i].creationCounter = creationTime - (incTime * i); } // #20 - Dos enemigos BALLOON4 seguidos desde la izquierda/derecha. Simetricos j = 20; enemyFormation[j].numberOfEnemies = 4; incX = BALLOON_WIDTH_4 + 1; incTime = 0; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { const int half = enemyFormation[j].numberOfEnemies / 2; if (i < half) { enemyFormation[j].init[i].x = x4_0 + (i * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; } else { enemyFormation[j].init[i].x = x4_100 - ((i - half) * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; } enemyFormation[j].init[i].y = y4; enemyFormation[j].init[i].kind = BALLOON_4; enemyFormation[j].init[i].creationCounter = creationTime + (incTime * i); } // #21 - Diez enemigos BALLOON2 uno detras del otro. Izquierda/derecha. Simetricos j = 21; enemyFormation[j].numberOfEnemies = 10; incX = BALLOON_WIDTH_2 + 1; incTime = 3; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { const int half = enemyFormation[j].numberOfEnemies / 2; if (i < half) { enemyFormation[j].init[i].x = x2_0 + (i * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * i); } else { enemyFormation[j].init[i].x = x2_100 - ((i - half) * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * (i - half)); } enemyFormation[j].init[i].y = y2; enemyFormation[j].init[i].kind = BALLOON_2; } // #22 - Diez enemigos BALLOON3. Hacia la derecha/izquierda. Separados. Simetricos j = 22; enemyFormation[j].numberOfEnemies = 10; incX = BALLOON_WIDTH_3 * 2; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { const int half = enemyFormation[j].numberOfEnemies / 2; if (i < half) { enemyFormation[j].init[i].x = x3_0 + (i * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * i); } else { enemyFormation[j].init[i].x = x3_100 - ((i - half) * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * (i - half)); } enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].kind = BALLOON_3; } // #23 - Diez enemigos BALLOON3. Hacia la derecha. Juntos. Simetricos j = 23; enemyFormation[j].numberOfEnemies = 10; incX = BALLOON_WIDTH_3 + 1; incTime = 10; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { const int half = enemyFormation[j].numberOfEnemies / 2; if (i < half) { enemyFormation[j].init[i].x = x3_0 + (i * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * i); } else { enemyFormation[j].init[i].x = x3_100 - ((i - half) * incX); enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * (i - half)); } enemyFormation[j].init[i].y = y3; enemyFormation[j].init[i].kind = BALLOON_3; } // #24 - Treinta enemigos BALLOON1. Del centro hacia los extremos. Juntos. Simetricos j = 24; enemyFormation[j].numberOfEnemies = 30; incX = 0; incTime = 5; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { const int half = enemyFormation[j].numberOfEnemies / 2; if (i < half) { enemyFormation[j].init[i].x = x1_50; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].creationCounter = (creationTime) + (incTime * i); } else { enemyFormation[j].init[i].x = x1_50; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].creationCounter = (creationTime) + (incTime * (i - half)); } enemyFormation[j].init[i].y = y1; enemyFormation[j].init[i].kind = BALLOON_1; } // #25 - Treinta enemigos BALLOON1. Del centro hacia adentro. Juntos. Simetricos j = 25; enemyFormation[j].numberOfEnemies = 30; incX = BALLOON_WIDTH_1 + 1; incTime = 5; for (int i = 0; i < enemyFormation[j].numberOfEnemies; i++) { const int half = enemyFormation[j].numberOfEnemies / 2; if (i < half) { enemyFormation[j].init[i].x = x1_50 + 20; enemyFormation[j].init[i].velX = BALLOON_VELX_NEGATIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * i); } else { enemyFormation[j].init[i].x = x1_50 - 20; enemyFormation[j].init[i].velX = BALLOON_VELX_POSITIVE; enemyFormation[j].init[i].creationCounter = (creationTime) - (incTime * (i - half)); } enemyFormation[j].init[i].y = y1; enemyFormation[j].init[i].kind = BALLOON_1; } // Crea las mismas formaciones pero con hexagonos a partir de la posición 50 del vector for (int k = 0; k < j + 1; k++) { enemyFormation[k + 50].numberOfEnemies = enemyFormation[k].numberOfEnemies; for (int i = 0; i < enemyFormation[k + 50].numberOfEnemies; i++) { enemyFormation[k + 50].init[i].x = enemyFormation[k].init[i].x; enemyFormation[k + 50].init[i].y = enemyFormation[k].init[i].y; enemyFormation[k + 50].init[i].velX = enemyFormation[k].init[i].velX; enemyFormation[k + 50].init[i].creationCounter = enemyFormation[k].init[i].creationCounter; enemyFormation[k + 50].init[i].kind = enemyFormation[k].init[i].kind + 4; } } // TEST enemyFormation[99].numberOfEnemies = 4; enemyFormation[99].init[0].x = 10; enemyFormation[99].init[0].y = y1; enemyFormation[99].init[0].velX = 0; enemyFormation[99].init[0].kind = BALLOON_1; enemyFormation[99].init[0].creationCounter = 200; enemyFormation[99].init[1].x = 50; enemyFormation[99].init[1].y = y1; enemyFormation[99].init[1].velX = 0; enemyFormation[99].init[1].kind = BALLOON_2; enemyFormation[99].init[1].creationCounter = 200; enemyFormation[99].init[2].x = 90; enemyFormation[99].init[2].y = y1; enemyFormation[99].init[2].velX = 0; enemyFormation[99].init[2].kind = BALLOON_3; enemyFormation[99].init[2].creationCounter = 200; enemyFormation[99].init[3].x = 140; enemyFormation[99].init[3].y = y1; enemyFormation[99].init[3].velX = 0; enemyFormation[99].init[3].kind = BALLOON_4; enemyFormation[99].init[3].creationCounter = 200; } // Inicializa los conjuntos de formaciones void EnemyFormations::initEnemyPools() { // EnemyPool #0 enemyPool[0].set[0] = &enemyFormation[0]; enemyPool[0].set[1] = &enemyFormation[1]; enemyPool[0].set[2] = &enemyFormation[2]; enemyPool[0].set[3] = &enemyFormation[3]; enemyPool[0].set[4] = &enemyFormation[4]; enemyPool[0].set[5] = &enemyFormation[5]; enemyPool[0].set[6] = &enemyFormation[6]; enemyPool[0].set[7] = &enemyFormation[7]; enemyPool[0].set[8] = &enemyFormation[8]; enemyPool[0].set[9] = &enemyFormation[9]; // EnemyPool #1 enemyPool[1].set[0] = &enemyFormation[10]; enemyPool[1].set[1] = &enemyFormation[11]; enemyPool[1].set[2] = &enemyFormation[12]; enemyPool[1].set[3] = &enemyFormation[13]; enemyPool[1].set[4] = &enemyFormation[14]; enemyPool[1].set[5] = &enemyFormation[15]; enemyPool[1].set[6] = &enemyFormation[16]; enemyPool[1].set[7] = &enemyFormation[17]; enemyPool[1].set[8] = &enemyFormation[18]; enemyPool[1].set[9] = &enemyFormation[19]; // EnemyPool #2 enemyPool[2].set[0] = &enemyFormation[0]; enemyPool[2].set[1] = &enemyFormation[1]; enemyPool[2].set[2] = &enemyFormation[2]; enemyPool[2].set[3] = &enemyFormation[3]; enemyPool[2].set[4] = &enemyFormation[4]; enemyPool[2].set[5] = &enemyFormation[55]; enemyPool[2].set[6] = &enemyFormation[56]; enemyPool[2].set[7] = &enemyFormation[57]; enemyPool[2].set[8] = &enemyFormation[58]; enemyPool[2].set[9] = &enemyFormation[59]; // EnemyPool #3 enemyPool[3].set[0] = &enemyFormation[50]; enemyPool[3].set[1] = &enemyFormation[51]; enemyPool[3].set[2] = &enemyFormation[52]; enemyPool[3].set[3] = &enemyFormation[53]; enemyPool[3].set[4] = &enemyFormation[54]; enemyPool[3].set[5] = &enemyFormation[5]; enemyPool[3].set[6] = &enemyFormation[6]; enemyPool[3].set[7] = &enemyFormation[7]; enemyPool[3].set[8] = &enemyFormation[8]; enemyPool[3].set[9] = &enemyFormation[9]; // EnemyPool #4 enemyPool[4].set[0] = &enemyFormation[60]; enemyPool[4].set[1] = &enemyFormation[61]; enemyPool[4].set[2] = &enemyFormation[62]; enemyPool[4].set[3] = &enemyFormation[63]; enemyPool[4].set[4] = &enemyFormation[64]; enemyPool[4].set[5] = &enemyFormation[65]; enemyPool[4].set[6] = &enemyFormation[66]; enemyPool[4].set[7] = &enemyFormation[67]; enemyPool[4].set[8] = &enemyFormation[68]; enemyPool[4].set[9] = &enemyFormation[69]; // EnemyPool #5 enemyPool[5].set[0] = &enemyFormation[10]; enemyPool[5].set[1] = &enemyFormation[61]; enemyPool[5].set[2] = &enemyFormation[12]; enemyPool[5].set[3] = &enemyFormation[63]; enemyPool[5].set[4] = &enemyFormation[14]; enemyPool[5].set[5] = &enemyFormation[65]; enemyPool[5].set[6] = &enemyFormation[16]; enemyPool[5].set[7] = &enemyFormation[67]; enemyPool[5].set[8] = &enemyFormation[18]; enemyPool[5].set[9] = &enemyFormation[69]; // EnemyPool #6 enemyPool[6].set[0] = &enemyFormation[60]; enemyPool[6].set[1] = &enemyFormation[11]; enemyPool[6].set[2] = &enemyFormation[62]; enemyPool[6].set[3] = &enemyFormation[13]; enemyPool[6].set[4] = &enemyFormation[64]; enemyPool[6].set[5] = &enemyFormation[15]; enemyPool[6].set[6] = &enemyFormation[66]; enemyPool[6].set[7] = &enemyFormation[17]; enemyPool[6].set[8] = &enemyFormation[68]; enemyPool[6].set[9] = &enemyFormation[19]; // EnemyPool #7 enemyPool[7].set[0] = &enemyFormation[20]; enemyPool[7].set[1] = &enemyFormation[21]; enemyPool[7].set[2] = &enemyFormation[22]; enemyPool[7].set[3] = &enemyFormation[23]; enemyPool[7].set[4] = &enemyFormation[24]; enemyPool[7].set[5] = &enemyFormation[65]; enemyPool[7].set[6] = &enemyFormation[66]; enemyPool[7].set[7] = &enemyFormation[67]; enemyPool[7].set[8] = &enemyFormation[68]; enemyPool[7].set[9] = &enemyFormation[69]; // EnemyPool #8 enemyPool[8].set[0] = &enemyFormation[70]; enemyPool[8].set[1] = &enemyFormation[71]; enemyPool[8].set[2] = &enemyFormation[72]; enemyPool[8].set[3] = &enemyFormation[73]; enemyPool[8].set[4] = &enemyFormation[74]; enemyPool[8].set[5] = &enemyFormation[15]; enemyPool[8].set[6] = &enemyFormation[16]; enemyPool[8].set[7] = &enemyFormation[17]; enemyPool[8].set[8] = &enemyFormation[18]; enemyPool[8].set[9] = &enemyFormation[19]; // EnemyPool #9 enemyPool[9].set[0] = &enemyFormation[20]; enemyPool[9].set[1] = &enemyFormation[21]; enemyPool[9].set[2] = &enemyFormation[22]; enemyPool[9].set[3] = &enemyFormation[23]; enemyPool[9].set[4] = &enemyFormation[24]; enemyPool[9].set[5] = &enemyFormation[70]; enemyPool[9].set[6] = &enemyFormation[71]; enemyPool[9].set[7] = &enemyFormation[72]; enemyPool[9].set[8] = &enemyFormation[73]; enemyPool[9].set[9] = &enemyFormation[74]; } // Inicializa las fases del juego void EnemyFormations::initGameStages() { // STAGE 1 stage[0].number = 1; stage[0].powerToComplete = 200; stage[0].minMenace = 7 + (4 * 1); stage[0].maxMenace = 7 + (4 * 3); stage[0].enemyPool = &enemyPool[0]; // STAGE 2 stage[1].number = 2; stage[1].powerToComplete = 300; stage[1].minMenace = 7 + (4 * 2); stage[1].maxMenace = 7 + (4 * 4); stage[1].enemyPool = &enemyPool[1]; // STAGE 3 stage[2].number = 3; stage[2].powerToComplete = 600; stage[2].minMenace = 7 + (4 * 3); stage[2].maxMenace = 7 + (4 * 5); stage[2].enemyPool = &enemyPool[2]; // STAGE 4 stage[3].number = 4; stage[3].powerToComplete = 600; stage[3].minMenace = 7 + (4 * 3); stage[3].maxMenace = 7 + (4 * 5); stage[3].enemyPool = &enemyPool[3]; // STAGE 5 stage[4].number = 5; stage[4].powerToComplete = 600; stage[4].minMenace = 7 + (4 * 4); stage[4].maxMenace = 7 + (4 * 6); stage[4].enemyPool = &enemyPool[4]; // STAGE 6 stage[5].number = 6; stage[5].powerToComplete = 600; stage[5].minMenace = 7 + (4 * 4); stage[5].maxMenace = 7 + (4 * 6); stage[5].enemyPool = &enemyPool[5]; // STAGE 7 stage[6].number = 7; stage[6].powerToComplete = 650; stage[6].minMenace = 7 + (4 * 5); stage[6].maxMenace = 7 + (4 * 7); stage[6].enemyPool = &enemyPool[6]; // STAGE 8 stage[7].number = 8; stage[7].powerToComplete = 750; stage[7].minMenace = 7 + (4 * 5); stage[7].maxMenace = 7 + (4 * 7); stage[7].enemyPool = &enemyPool[7]; // STAGE 9 stage[8].number = 9; stage[8].powerToComplete = 850; stage[8].minMenace = 7 + (4 * 6); stage[8].maxMenace = 7 + (4 * 8); stage[8].enemyPool = &enemyPool[8]; // STAGE 10 stage[9].number = 10; stage[9].powerToComplete = 950; stage[9].minMenace = 7 + (4 * 7); stage[9].maxMenace = 7 + (4 * 10); stage[9].enemyPool = &enemyPool[9]; } // Devuelve una fase stage_t EnemyFormations::getStage(int index) { return stage[index]; }