|
Projeto IDJ - Towers Of Madness
TowerDefenseLovecraftnianoZombicida
|
Classe que gerencia as waves do jogo. Responsavel por iniciar, encerrar e contar as waves. Também gerencia o spawn dos inimigos na wave atual. Mantem a contagem de vidas restantes e inimigos restantes que sao usadas para condição de fim de jogo. Mais...
#include <WaveManager.h>
Métodos Públicos | |
| WaveManager (TileMap &tileMap, string waveFile) | |
| Construtor. Mais... | |
| ~WaveManager () | |
| Destrutor. Destrói o ponteiro de spawnGroups. Mais... | |
| void | Update (float dt) |
| Atualiza estado. Atualiza o estado da wave atual. Mais... | |
| bool | Is (ComponentType type) const |
| Tipo Retorna o tipo da componente se é igual a WAVE_MANAGER. true ou false. Mais... | |
| void | StartWave (void) |
| Inicializa um nova wave. reinicia os atributos da classe (enemyIndex, endWave e waveCount) para executar uma nova wave e conta o novo número de inimigos restantes. Mais... | |
| bool | EndWave (void) const |
| Verifica Fim de wave. Verifica se a flag de fim de wave foi acionada. Retorna endWave. Mais... | |
| void | NotifyEnemyGotToHisDestiny (void) |
| Inimigo Chegou ao Destino. Recebe uma notificação da componente HitPoints, se o inimigo foi destruido por chegar ao destino e decrementa o contador de vidas. Mais... | |
| void | NotifyEnemyGotKilled (void) |
| Inimigo Destruido. Recebe uma notificação se o inimigo foi destruido e decrementa o contador de inimigos restantes. Mais... | |
| int | GetLifesLeft (void) |
| Pegar vidas Restantes. Mais... | |
| int | GetEnemiesLeft (void) |
| Pegar inimigos Restantes. Mais... | |
| bool | Victory (void) |
| Condiçao de Vitoria. Mais... | |
Métodos Públicos inherited from Component | |
| virtual | ~Component (void) |
| Destrutor. Mais... | |
Métodos Privados | |
| void | SpawnEnemy (int tileMapPosition, int enemyId, uint baseHP, uint endPoint, uint indexOfTheEnemyToSpawn) |
| Criar um novo inimigo no mapa. Mais... | |
Atributos Privados | |
| vector< vector< int > > * | spawnGroups |
| vector< vector< int > > * | endGroups |
| Timer | spawnTimer |
| int | enemiesLeft |
| int | playerLifes |
| TileMap & | tileMap |
| bool | endWave |
| std::shared_ptr< std::pair < std::vector< WaveData > , std::vector< EnemyData > > > | wavesAndEnemysData |
| int | waveIndex |
| int | enemyIndex |
| int | totalWaves |
| int | waveTotalEnemies |
| int | maxNumberOfEnemiesInSpawnPoint |
| bool | victory |
| Sound | waveStartSound |
| Timer | betweenWavesTimer |
| bool | waitingForTheNextWave |
Atributos Privados Estáticos | |
| static int | waveCount = 0 |
Classe que gerencia as waves do jogo. Responsavel por iniciar, encerrar e contar as waves. Também gerencia o spawn dos inimigos na wave atual. Mantem a contagem de vidas restantes e inimigos restantes que sao usadas para condição de fim de jogo.
A waveManager é um componente. Ela gerencia as waves usando como base os inimigos restantes e vidas restantes.
| WaveManager::WaveManager | ( | TileMap & | tileMap, |
| string | waveFile | ||
| ) |
Construtor.
| tileMap | Usada para inicializar spawnGroup, um vetor de grupos, e cada grupo, um vetor de spawn points. Um vetor de vetor! |
| waveFile | Nome do arquivo aonde será feita a leitura dos dados contendo todas as informações de wave e inimigos do jogo. |
| WaveManager::~WaveManager | ( | ) |
Destrutor. Destrói o ponteiro de spawnGroups.
| bool WaveManager::EndWave | ( | void | ) | const |
Verifica Fim de wave. Verifica se a flag de fim de wave foi acionada. Retorna endWave.
| int WaveManager::GetEnemiesLeft | ( | void | ) |
Pegar inimigos Restantes.
| int WaveManager::GetLifesLeft | ( | void | ) |
Pegar vidas Restantes.
|
virtual |
Tipo Retorna o tipo da componente se é igual a WAVE_MANAGER. true ou false.
| type | Tipo da Compomente a ser comparada com WAVE_MANAGER. |
Implementa Component.
| void WaveManager::NotifyEnemyGotKilled | ( | void | ) |
Inimigo Destruido. Recebe uma notificação se o inimigo foi destruido e decrementa o contador de inimigos restantes.
| void WaveManager::NotifyEnemyGotToHisDestiny | ( | void | ) |
Inimigo Chegou ao Destino. Recebe uma notificação da componente HitPoints, se o inimigo foi destruido por chegar ao destino e decrementa o contador de vidas.
|
private |
Criar um novo inimigo no mapa.
| tileMapPosition | Posição do tileMap. Usado para calcular a posição exata de spawn do inimigo. |
| enemyId | identificador de inimigo no waveData. |
| baseHP | HP base do inimigo para a wave atual. |
| endPoint | posição de destino para aonde o inimigo vai. Lido de WaveData. |
| void WaveManager::StartWave | ( | void | ) |
Inicializa um nova wave. reinicia os atributos da classe (enemyIndex, endWave e waveCount) para executar uma nova wave e conta o novo número de inimigos restantes.
|
virtual |
Atualiza estado. Atualiza o estado da wave atual.
| dt | tempo dt, é usado para fazer o spawn de tempos em tempos dos inimigos. |
Implementa Component.
| bool WaveManager::Victory | ( | void | ) |
Condiçao de Vitoria.
|
private |
|
private |
Armazena o vetor de SpawnGroup, cada spawnGroup armazena um vetor de spawnPoint.
|
private |
Flag de fim da wave atual. true se a level acabou.
|
private |
Contador de inimigos restantes da wave atual.
|
private |
|
private |
Numero maximo de um tipo de inimigo dentro de uma SpawnGroup.
|
private |
Contador de inimigos restantes da wave atual.
|
private |
Armazena o vetor de SpawnGroup, cada spawnGroup armazena um vetor de spawnPoint.
|
private |
Contador para o cooldown de respawn.
|
private |
Identificador da wave atual, identificador do inimigo atual e o contador de waves. Vitória se da quando contador for igual ao número total.
|
private |
Verdadeiro se o jogador passou por todas as waves com vidas restantes.
|
private |
|
staticprivate |
Contador de waves restantes. Também usado para nivelar as waves.
|
private |
|
private |
Shared Pointer, vai armazenar a leitura do arquivo com as informaçoes de Wave e Inimigo.
|
private |
|
private |
Indica o número total de inimigos da wave atual.
1.8.8