end condition: change scene only if scene has a player

This commit is contained in:
arthur.jamet
2021-06-15 11:28:24 +02:00
parent 2ec012c567
commit 005ddecf53
4 changed files with 12 additions and 3 deletions
@@ -2,6 +2,7 @@
#include "EndConditionSystem.hpp"
#include <map>
#include "Runner/Runner.hpp"
#include "Component/Score/ScoreComponent.hpp"
namespace BBM {
@@ -12,8 +13,11 @@ namespace BBM {
void EndConditionSystem::onSelfUpdate()
{
unsigned int alivePlayersCount = 0;
auto &view = this->_wal.getScene()->view<ScoreComponent, HealthComponent>();
for (auto & [_ , healthComponent]: this->_wal.getScene()->view<HealthComponent>())
if (!view.size())
return;
for (auto & [_ , scoreComponent, healthComponent]: view)
alivePlayersCount += (healthComponent.getHealthPoint() != 0);
if (alivePlayersCount <= 1)
Runner::gameState.nextScene = Runner::gameState.ScoreScene;