public void Update(float ms)
{
UpdateAliens(ms);
UpdateWeaponDepots(ms);
if (currentSection < sections.Count - 1)
{
if (sections[currentSection].GetAlienCount() == 0)
{
sections[currentSection].Open();
currentSection += 1;
sections[currentSection].FillWithAliens();
// respawn
if (Globals.gameInstance.players.Length > 1)
{
if (!Globals.gameInstance.players[0].alive)
{
Globals.gameInstance.players[0].Respawn(Globals.gameInstance.players[1].Position);
}
else if (!Globals.gameInstance.players[1].alive)
{
Globals.gameInstance.players[1].Respawn(Globals.gameInstance.players[0].Position);
}
}
}
}
else
{
// check if players are both on the portal
bool allOnPortal = true;
for (int i = 0; i < Globals.gameInstance.players.Length; i++)
{
if (Vector3.DistanceSquared(endteleporter.Position, Globals.gameInstance.players[i].Position) > 1.5f)
{
allOnPortal = false;
break;
}
}
if (allOnPortal && !endteleporter.Started && !endteleporter.Finished)
{
endteleporter.Start();
}
endteleporter.Update(ms);
if (endteleporter.Progress > 30)
{
// win
//Globals.gameInstance.parentLayer.
GameLayer game = (GameLayer)Globals.screenManager.GetTop();
game.fadeOutCompleteCallback = win;
game.StartTransitionOff();
}
}
UpdateDoors(ms);
}