void ScenarioDefend::Update(double dt, bool multiplay)
{
	this->multiplay = multiplay;
	if (timer.GetTimeLeft() > 0){
		if (Enemy::enemyList.size() <= 0){//check for wave completion
			wave++;
			amountToSpawn += increment;

			SpawnEnemies();
			MoveEnemies();
		}
	}
	if (Enemy::enemyList.size() > 0){
		for (vector<Enemy*>::iterator it = Enemy::enemyList.begin(); it != Enemy::enemyList.end();){//check if enemies reached destination
			if ((*it)->reachedDestination){
				HP -= 1;
				if (HP <= 0){// LOSE
					stopScenario = true;
				}

				delete *it;
				it = Enemy::enemyList.erase(it);
			}
			else{
				it++;
			}
		}
	}
	if (timer.GetTimeLeft() <= 0 && Enemy::enemyList.size() <= 0){// WIN
		winScenario = true;
		stopScenario = true;
	}
}
Exemple #2
0
void World::Update(float dt)
{
	if(mActive == true)
	{
		UpdateGameObjects(dt);
		SpawnEnemies(dt);
		FireBullets();
		CheckCollision();
	}
}
ScenarioDefend::ScenarioDefend(int health, double duration, int increment, bool multiplay)
{

	this->increment = increment;
	amountToSpawn = increment;
	HP = health;
	wave = 1;
	winScenario = false;
	timer.StartCountdown(duration);
	this->multiplay = multiplay;

	SpawnEnemies();
	MoveEnemies();
}