Projeto IDJ - Towers Of Madness
TowerDefenseLovecraftnianoZombicida
 Todos Classes Arquivos Funções Variáveis Definições de Tipos Enumerações Valores enumerados Definições e Macros Páginas
Métodos Públicos | Métodos Privados | Atributos Privados | Atributos Privados Estáticos | Lista de todos os Membros
Referência da Classe WaveManager

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>

Diagrama de Hierarquia para WaveManager:
[legenda]
Diagrama de colaboração para WaveManager:
[legenda]

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
 
TileMaptileMap
 
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
 

Descrição Detalhada

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.

Construtores & Destrutores

WaveManager::WaveManager ( TileMap tileMap,
string  waveFile 
)

Construtor.

Parâmetros
tileMapUsada para inicializar spawnGroup, um vetor de grupos, e cada grupo, um vetor de spawn points. Um vetor de vetor!
waveFileNome 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.

Métodos

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.

Retorna
enemiesLeft: Inimigos restantes. Retorna os inimigos restantes da wave atual.
int WaveManager::GetLifesLeft ( void  )

Pegar vidas Restantes.

Retorna
playerLifes: vidas restantes. Retorna as vidas restantes da wave atual.
bool WaveManager::Is ( ComponentType  type) const
virtual

Tipo Retorna o tipo da componente se é igual a WAVE_MANAGER. true ou false.

Parâmetros
typeTipo 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.

void WaveManager::SpawnEnemy ( int  tileMapPosition,
int  enemyId,
uint  baseHP,
uint  endPoint,
uint  indexOfTheEnemyToSpawn 
)
private

Criar um novo inimigo no mapa.

Parâmetros
tileMapPositionPosição do tileMap. Usado para calcular a posição exata de spawn do inimigo.
enemyIdidentificador de inimigo no waveData.
baseHPHP base do inimigo para a wave atual.
endPointposiçã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.

void WaveManager::Update ( float  dt)
virtual

Atualiza estado. Atualiza o estado da wave atual.

Parâmetros
dttempo dt, é usado para fazer o spawn de tempos em tempos dos inimigos.

Implementa Component.

bool WaveManager::Victory ( void  )

Condiçao de Vitoria.

Retorna
victory: verdadeiro se as waves acabaram. Retorna true se a condiçao de vitoria foi satisfeita.

Atributos

Timer WaveManager::betweenWavesTimer
private
vector<vector<int> >* WaveManager::endGroups
private

Armazena o vetor de SpawnGroup, cada spawnGroup armazena um vetor de spawnPoint.

bool WaveManager::endWave
private

Flag de fim da wave atual. true se a level acabou.

int WaveManager::enemiesLeft
private

Contador de inimigos restantes da wave atual.

int WaveManager::enemyIndex
private
int WaveManager::maxNumberOfEnemiesInSpawnPoint
private

Numero maximo de um tipo de inimigo dentro de uma SpawnGroup.

int WaveManager::playerLifes
private

Contador de inimigos restantes da wave atual.

vector<vector<int> >* WaveManager::spawnGroups
private

Armazena o vetor de SpawnGroup, cada spawnGroup armazena um vetor de spawnPoint.

Timer WaveManager::spawnTimer
private

Contador para o cooldown de respawn.

TileMap& WaveManager::tileMap
private

Endereço de TileMap. Usado para conseguir spwanGroups

int WaveManager::totalWaves
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.

bool WaveManager::victory
private

Verdadeiro se o jogador passou por todas as waves com vidas restantes.

bool WaveManager::waitingForTheNextWave
private
int WaveManager::waveCount = 0
staticprivate

Contador de waves restantes. Também usado para nivelar as waves.

int WaveManager::waveIndex
private
std::shared_ptr< std::pair< std::vector<WaveData>, std::vector<EnemyData> > > WaveManager::wavesAndEnemysData
private

Shared Pointer, vai armazenar a leitura do arquivo com as informaçoes de Wave e Inimigo.

Sound WaveManager::waveStartSound
private
int WaveManager::waveTotalEnemies
private

Indica o número total de inimigos da wave atual.


A documentação para esta classe foi gerada a partir dos seguintes arquivos: