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
+2 -2
View File
@@ -14,8 +14,8 @@ public:
virtual void Update(double dt) override; virtual void Update(double dt) override;
private: private:
EventRelay<EndScreenSystem, Events::Win&> m_EWin; EventRelay<EndScreenSystem, Events::Win> m_EWin;
bool OnWin(const Events::Win&); bool OnWin(const Events::Win& e);
}; };
#endif #endif
+4 -4
View File
@@ -75,13 +75,13 @@ NumIterations=9
TextureQuality=0 TextureQuality=0
[GLOW] [GLOW]
Quality=3 Quality=1
[GLOW1] [GLOW1]
NumIterations=5 NumIterations=2
[GLOW2] [GLOW2]
NumIterations=9 NumIterations=4
[GLOW3] [GLOW3]
NumIterations=13 NumIterations=6
File diff suppressed because it is too large Load Diff
+18 -17
View File
@@ -11,6 +11,7 @@
<Entity name="Camera"> <Entity name="Camera">
<Components> <Components>
<c:Camera/> <c:Camera/>
<c:EndScreen/>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
@@ -21,6 +22,22 @@
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
<Entity name="SpriteRed">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.588235319" B="0" G="0" R="0.588235319"/>
<Visible>false</Visible>
</c:Sprite>
<c:Transform>
<Scale X="1.30000007" Y="0.300000012" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="SpriteBlue"> <Entity name="SpriteBlue">
<Components> <Components>
<c:Sprite> <c:Sprite>
@@ -28,8 +45,7 @@
<GlowMap></GlowMap> <GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture> <DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground> <BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0.196078435" G="0" R="0"/> <Color A="0.588235319" B="0.588235319" G="0" R="0"/>
<Visible>false</Visible>
</c:Sprite> </c:Sprite>
<c:Transform> <c:Transform>
<Scale X="1.30000007" Y="0.300000012" Z="1"/> <Scale X="1.30000007" Y="0.300000012" Z="1"/>
@@ -64,21 +80,6 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="SpriteRed">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.196078435"/>
</c:Sprite>
<c:Transform>
<Scale X="1.30000007" Y="0.300000012" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
+2
View File
@@ -40,6 +40,7 @@
#include "Game/Systems/MainMenuSystem.h" #include "Game/Systems/MainMenuSystem.h"
#include "Game/Systems/ServerListSystem.h" #include "Game/Systems/ServerListSystem.h"
#include "Game/Systems/StartSystem.h" #include "Game/Systems/StartSystem.h"
#include "Game/Systems/EndScreenSystem.h"
#include "Rendering/TextureSprite.h" #include "Rendering/TextureSprite.h"
@@ -157,6 +158,7 @@ Game::Game(int argc, char* argv[])
m_SystemPipeline->AddSystem<SpectatorCameraSystem>(updateOrderLevel); m_SystemPipeline->AddSystem<SpectatorCameraSystem>(updateOrderLevel);
m_SystemPipeline->AddSystem<ServerListSystem>(updateOrderLevel, m_Renderer); m_SystemPipeline->AddSystem<ServerListSystem>(updateOrderLevel, m_Renderer);
m_SystemPipeline->AddSystem<StartSystem>(updateOrderLevel); m_SystemPipeline->AddSystem<StartSystem>(updateOrderLevel);
m_SystemPipeline->AddSystem<EndScreenSystem>(updateOrderLevel);
// Populate Octree with collidables // Populate Octree with collidables
++updateOrderLevel; ++updateOrderLevel;
m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable"); m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable");
+57 -1
View File
@@ -3,6 +3,7 @@
EndScreenSystem::EndScreenSystem(SystemParams params) EndScreenSystem::EndScreenSystem(SystemParams params)
: System(params) : System(params)
, ImpureSystem()
{ {
EVENT_SUBSCRIBE_MEMBER(m_EWin, &EndScreenSystem::OnWin); 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;
} }