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