mirror of
https://github.com/devZoGok/PlanetFleet.git
synced 2026-08-26 19:43:29 +00:00
victory and defeat screens
This commit is contained in:
@@ -43,12 +43,42 @@ namespace battleship{
|
||||
}
|
||||
}
|
||||
|
||||
void Game::endGame(bool victory){
|
||||
ended = true;
|
||||
|
||||
StateManager *sm = GameManager::getSingleton()->getStateManager();
|
||||
sm->dettachAppState(sm->getAppStateByType(AppStateType::ACTIVE_STATE));
|
||||
|
||||
togglePause();
|
||||
|
||||
string endGameScreen = (victory ? "victory.lua" : "defeat.lua");
|
||||
ConcreteGuiManager::getSingleton()->readLuaScreenScript(endGameScreen);
|
||||
}
|
||||
|
||||
void Game::update(){
|
||||
resetLuaGameObjects();
|
||||
|
||||
for(int i = 0; i < players.size(); i++)
|
||||
int numPlayersWithUnits = 0;
|
||||
|
||||
for(int i = 0; i < players.size(); i++){
|
||||
players[i]->update();
|
||||
|
||||
if(players[i]->getNumUnits() > 0)
|
||||
numPlayersWithUnits++;
|
||||
}
|
||||
|
||||
ActiveGameState *activeState = (ActiveGameState*)GameManager::getSingleton()->getStateManager()->getAppStateByType(AppStateType::ACTIVE_STATE);
|
||||
Player *mainPlayer = (activeState ? activeState->getPlayer() : nullptr);
|
||||
|
||||
if(mainPlayer && !ended){
|
||||
int numMainPlayerUnits = mainPlayer->getNumUnits();
|
||||
|
||||
if(numMainPlayerUnits > 0 && numPlayersWithUnits == 1)
|
||||
endGame(true);
|
||||
else if(numMainPlayerUnits == 0)
|
||||
endGame(false);
|
||||
}
|
||||
|
||||
for(Projectile *proj : projectiles)
|
||||
proj->update();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user