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... | |
![]() | |
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.