EndScreen should now show when a team win

This commit is contained in:
Tleety
2016-03-12 17:03:50 +01:00
parent 8c2a665ccb
commit 548efeb11e
6 changed files with 4967 additions and 5086 deletions
+58 -2
View File
@@ -3,6 +3,7 @@
EndScreenSystem::EndScreenSystem(SystemParams params)
: System(params)
, ImpureSystem()
{
EVENT_SUBSCRIBE_MEMBER(m_EWin, &EndScreenSystem::OnWin);
}
@@ -12,7 +13,62 @@ void EndScreenSystem::Update(double dt)
}
bool EndScreenSystem::OnWin(const Events::Win&)
bool EndScreenSystem::OnWin(const Events::Win& e)
{
auto endScreenCameras = m_World->GetComponents("EndScreen");
if(endScreenCameras == nullptr) {
LOG_ERROR("Win event recieved but no Endscreen camera is present.");
return 1;
}
for(auto& camera : *endScreenCameras) {
EntityWrapper entity = EntityWrapper(m_World, camera.EntityID);
Events::SetCamera event;
event.CameraEntity = entity;
m_EventBroker->Publish(event);
EntityWrapper redSprite = entity.FirstChildByName("SpriteRed");
EntityWrapper blueSprite = entity.FirstChildByName("SpriteBlue");
EntityWrapper redText = entity.FirstChildByName("TextRed");
EntityWrapper blueText = entity.FirstChildByName("TextBlue");
if (e.TeamThatWon == 2) {
//Red team won
if(redSprite.HasComponent("Sprite"))
(bool&)redSprite["Sprite"]["Visible"] = true;
if (redText.HasComponent("Text"))
(bool&)redText["Text"]["Visible"] = true;
if (blueSprite.HasComponent("Sprite"))
(bool&)blueSprite["Sprite"]["Visible"] = false;
if (blueText.HasComponent("Text"))
(bool&)blueText["Text"]["Visible"] = false;
}else if (e.TeamThatWon == 1) {
//Blue team won
if (redSprite.HasComponent("Sprite"))
(bool&)redSprite["Sprite"]["Visible"] = false;
if (redText.HasComponent("Text"))
(bool&)redText["Text"]["Visible"] = false;
if (blueSprite.HasComponent("Sprite"))
(bool&)blueSprite["Sprite"]["Visible"] = true;
if (blueText.HasComponent("Text"))
(bool&)blueText["Text"]["Visible"] = true;
} else {
//No team won?
if (redSprite.HasComponent("Sprite"))
(bool&)redSprite["Sprite"]["Visible"] = false;
if (blueSprite.HasComponent("Sprite"))
(bool&)blueSprite["Sprite"]["Visible"] = false;
if (redText.HasComponent("Text"))
(bool&)redText["Text"]["Visible"] = false;
if (blueText.HasComponent("Text"))
(bool&)blueText["Text"]["Visible"] = false;
}
}
return 1;
}