EndScreen should now show when a team win
This commit is contained in:
@@ -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
|
||||||
@@ -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
|
||||||
+4883
-5061
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user