Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e8df340b3 | |||
| b629ed5e2b | |||
| f00fb836fb | |||
| 13c3bcb290 | |||
| f585f9ada9 |
@@ -24,10 +24,7 @@ private:
|
|||||||
bool OnPlayerDeath(Events::PlayerDeath& e);
|
bool OnPlayerDeath(Events::PlayerDeath& e);
|
||||||
EventRelay<PlayerDeathSystem, Events::EntityDeleted> m_EEntityDeleted;
|
EventRelay<PlayerDeathSystem, Events::EntityDeleted> m_EEntityDeleted;
|
||||||
bool OnEntityDeleted(Events::EntityDeleted& e);
|
bool OnEntityDeleted(Events::EntityDeleted& e);
|
||||||
EventRelay<PlayerDeathSystem, Events::InputCommand> m_EInputCommand;
|
|
||||||
bool OnInputCommand(Events::InputCommand& e);
|
|
||||||
|
|
||||||
void setSpectatorCamera();
|
|
||||||
void createDeathEffect(EntityWrapper player);
|
void createDeathEffect(EntityWrapper player);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,19 +15,10 @@ public:
|
|||||||
virtual void Update(double dt) override;
|
virtual void Update(double dt) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// This enum must correspond to the command values for PickTeam buttons.
|
|
||||||
enum class PlayerClass
|
|
||||||
{
|
|
||||||
None = 0,
|
|
||||||
Assault,
|
|
||||||
Defender,
|
|
||||||
Sniper
|
|
||||||
};
|
|
||||||
struct SpawnRequest
|
struct SpawnRequest
|
||||||
{
|
{
|
||||||
int PlayerID;
|
int PlayerID;
|
||||||
ComponentInfo::EnumType Team;
|
ComponentInfo::EnumType Team;
|
||||||
PlayerClass Class;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool m_NetworkEnabled = false;
|
bool m_NetworkEnabled = false;
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
#ifndef SpectatorCameraSystem_h__
|
|
||||||
#define SpectatorCameraSystem_h__
|
|
||||||
|
|
||||||
#include "Core/System.h"
|
|
||||||
#include "Input/EInputCommand.h"
|
|
||||||
|
|
||||||
class SpectatorCameraSystem : public ImpureSystem
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SpectatorCameraSystem(SystemParams params);
|
|
||||||
|
|
||||||
virtual void Update(double dt) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
int m_PickedTeam;
|
|
||||||
bool m_CamSetToTeamPick;
|
|
||||||
|
|
||||||
EventRelay<SpectatorCameraSystem, Events::InputCommand> m_EInputCommand;
|
|
||||||
bool OnInputCommand(const Events::InputCommand& e);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -28,5 +28,4 @@ P=SwitchToPlayer
|
|||||||
K=TakeDamage,1500
|
K=TakeDamage,1500
|
||||||
F2=PerformanceTimingResetAllTimers
|
F2=PerformanceTimingResetAllTimers
|
||||||
F3=PerformanceTimingCreateExcelData
|
F3=PerformanceTimingCreateExcelData
|
||||||
Comma=SwapToClassPick
|
F4=SwapToClassPick
|
||||||
Period=SwapToTeamPick
|
|
||||||
@@ -65,4 +65,5 @@
|
|||||||
<xs:include schemaLocation="Components/InputCmdButton.xsd"/>
|
<xs:include schemaLocation="Components/InputCmdButton.xsd"/>
|
||||||
<xs:include schemaLocation="Components/ScoreScreen.xsd"/>
|
<xs:include schemaLocation="Components/ScoreScreen.xsd"/>
|
||||||
<xs:include schemaLocation="Components/ScoreIdentity.xsd"/>
|
<xs:include schemaLocation="Components/ScoreIdentity.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/NetworkComponent.xsd"/>
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<NetworkComponent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="NetworkComponent.xsd">
|
||||||
|
</NetworkComponent>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||||
|
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||||
|
|
||||||
|
<xs:element name="NetworkComponent">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>If an entity has this component, it will be broadcasted to clients in a snapshot.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AmmoPickup/>
|
<c:AmmoPickup/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Props/PickUps/AmmoPickUp.mesh</Resource>
|
<Resource>Models/Props/PickUps/AmmoPickUp.mesh</Resource>
|
||||||
|
|||||||
@@ -13,80 +13,6 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.811270177" Y="0.440691769" Z="-0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="BackgroundHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.62788737" Y="0.919596612" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="BackgroundHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -96,21 +22,84 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
<c:CapturePointHUD>
|
||||||
<CapturePointNumber>2</CapturePointNumber>
|
<CapturePointNumber>2</CapturePointNumber>
|
||||||
</c:CapturePointHUD>
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="BackgroundHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.811270177" Y="0.440691769" Z="-0.100000001"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="ProgressionHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:CapturePointHUD>
|
||||||
|
<CapturePointNumber>3</CapturePointNumber>
|
||||||
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Percentage>0.80222018197612788</Percentage>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="BackgroundHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="1.62788737" Y="0.919596612" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="ProgressionHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:CapturePointHUD>
|
||||||
|
<CapturePointNumber>4</CapturePointNumber>
|
||||||
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -121,8 +110,6 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -132,21 +119,19 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
<c:CapturePointHUD>
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
<CapturePointNumber>1</CapturePointNumber>
|
||||||
</c:CapturePointHUD>
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -157,9 +142,7 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<Color A="0.699999988" B="0" G="0.200000003" R="1"/>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.699999988" B="0" G="0" R="1"/>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-1.58304751" Y="0.919596612" Z="0"/>
|
<Position X="-1.58304751" Y="0.919596612" Z="0"/>
|
||||||
@@ -168,19 +151,17 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:CapturePointHUD/>
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
</c:Fill>
|
</c:Fill>
|
||||||
<c:CapturePointHUD/>
|
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:HealthPickup/>
|
<c:HealthPickup/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Props/PickUps/HealthPickUp.mesh</Resource>
|
<Resource>Models/Props/PickUps/HealthPickUp.mesh</Resource>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,6 @@
|
|||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="-4" Z="0"/>
|
<Position X="0" Y="-4" Z="0"/>
|
||||||
<Orientation X="0" Y="55.3495064" Z="0"/>
|
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
@@ -21,369 +20,6 @@
|
|||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="PickClassCamera">
|
|
||||||
<Components>
|
|
||||||
<c:Camera/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="PickClassHUD">
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0" Z="-0.5"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="DefenderClassPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Icons/Classes/Defender-01.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickClass</Command>
|
|
||||||
<PressValue>2</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.0500000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="DefenderText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Defender</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0.784313738"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.800000012" Z="0"/>
|
|
||||||
<Scale X="0.310000002" Y="0.310000002" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SniperClassPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Icons/Classes/Sniper-01.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickClass</Command>
|
|
||||||
<PressValue>3</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.150000006" Y="-0.0500000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="SniperText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Sniper</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0.784313738"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.800000012" Z="0"/>
|
|
||||||
<Scale X="0.310000002" Y="0.310000002" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="AssaultClassPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Icons/Classes/Assault-01.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickClass</Command>
|
|
||||||
<PressValue>1</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-0.150000006" Y="-0.0500000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="AssaultText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Assault</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0.784313738"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.800000012" Z="0"/>
|
|
||||||
<Scale X="0.310000002" Y="0.310000002" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="ClassPickText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Pick Class</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0.784313738"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.0799999982" Z="0"/>
|
|
||||||
<Scale X="0.0250000004" Y="0.0250000004" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="ToTeamPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="1" B="0" G="1" R="0.509803951"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>SwapToTeamPick</Command>
|
|
||||||
<PressValue>1</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.349999994" Y="-0.180000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ChangeText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Change</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="TeamText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Team</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.224999994" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="PickTeamCamera">
|
|
||||||
<Components>
|
|
||||||
<c:Camera/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="PickTeamHUD">
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="TeamPickText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Pick Team</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0.784313738"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.0799999982" Z="0"/>
|
|
||||||
<Scale X="0.0250000004" Y="0.0250000004" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SpectatorPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="1" B="0" G="1" R="0.509803951"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickTeam</Command>
|
|
||||||
<PressValue>1</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.0500000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="SpectatorText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Spectator</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.0450000018" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.200000003" Y="0.200000003" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="TeamRedPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="1" B="0" G="0.294117659" R="0.980392158"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickTeam</Command>
|
|
||||||
<PressValue>2</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.150000006" Y="-0.0500000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="RedText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Red</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.0850000009" Z="0.00249999994"/>
|
|
||||||
<Scale X="0.310000002" Y="0.310000002" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="TeamBluePick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="1" B="0.980392158" G="0.294117659" R="0"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickTeam</Command>
|
|
||||||
<PressValue>3</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-0.150000006" Y="-0.0500000007" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="BlueText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Blue</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.0850000009" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.310000002" Y="0.310000002" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="ToClassPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="1" B="0" G="1" R="0.509803951"/>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>SwapToClassPick</Command>
|
|
||||||
<PressValue>1</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.349999994" Y="-0.0800000057" Z="0"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ChangeText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Change</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="ClassText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Class</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.224999994" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SpectatorCamera">
|
<Entity name="SpectatorCamera">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Camera/>
|
<c:Camera/>
|
||||||
@@ -397,20 +33,6 @@
|
|||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="RespawnTimer">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>7</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0.784313738"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.178199276" Z="0"/>
|
|
||||||
<Scale X="0.0250000004" Y="0.0250000004" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="CapturePointHUD">
|
<Entity name="CapturePointHUD">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -424,79 +46,6 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.811270177" Y="0.440691769" Z="-0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="BackgroundHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.62788737" Y="0.919596612" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="BackgroundHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -506,16 +55,83 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Fill>
|
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:CapturePointHUD>
|
<c:CapturePointHUD>
|
||||||
<CapturePointNumber>2</CapturePointNumber>
|
<CapturePointNumber>2</CapturePointNumber>
|
||||||
</c:CapturePointHUD>
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="BackgroundHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.811270177" Y="0.440691769" Z="-0.100000001"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="ProgressionHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:CapturePointHUD>
|
||||||
|
<CapturePointNumber>3</CapturePointNumber>
|
||||||
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="BackgroundHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="1.62788737" Y="0.919596612" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="ProgressionHexagon">
|
||||||
|
<Components>
|
||||||
|
<c:CapturePointHUD>
|
||||||
|
<CapturePointNumber>4</CapturePointNumber>
|
||||||
|
</c:CapturePointHUD>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
@@ -532,7 +148,6 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -542,17 +157,16 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:CapturePointHUD>
|
||||||
|
<CapturePointNumber>1</CapturePointNumber>
|
||||||
|
</c:CapturePointHUD>
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Percentage>0.10332605343919568</Percentage>
|
<Percentage>0.10332605343919568</Percentage>
|
||||||
<Color A="0.699999988" B="0" G="0" R="1"/>
|
<Color A="0.699999988" B="0" G="0" R="1"/>
|
||||||
</c:Fill>
|
</c:Fill>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
@@ -569,7 +183,6 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.699999988" B="0" G="0" R="1"/>
|
<Color A="0.699999988" B="0" G="0" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -579,14 +192,13 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:CapturePointHUD/>
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
</c:Fill>
|
</c:Fill>
|
||||||
<c:CapturePointHUD/>
|
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
@@ -600,99 +212,90 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="ToTeamPick">
|
<Entity name="RespawnTimer">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Text>
|
||||||
<c:Sprite>
|
<Content>16</Content>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
<GlowMap></GlowMap>
|
<Color A="1" B="0" G="1" R="0.784313738"/>
|
||||||
<DepthSort>false</DepthSort>
|
</c:Text>
|
||||||
<Color A="1" B="0" G="1" R="0.509803951"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>SwapToTeamPick</Command>
|
|
||||||
<PressValue>1</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.349999994" Y="-0.180000007" Z="0"/>
|
<Position X="0" Y="0.178199276" Z="0"/>
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
<Scale X="0.0250000004" Y="0.0250000004" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children/>
|
||||||
<Entity name="ChangeText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Change</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="TeamText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Team</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.224999994" Z="0.00200000009"/>
|
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="ToClassPick">
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="PickClassCamera">
|
||||||
|
<Components>
|
||||||
|
<c:Camera/>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="PickClassHUD">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="DefenderClassPick">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="1" B="0" G="1" R="0.509803951"/>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:InputCmdButton>
|
<c:InputCmdButton>
|
||||||
<Command>SwapToClassPick</Command>
|
<Command>PickClass</Command>
|
||||||
<PressValue>1</PressValue>
|
<PressValue>2</PressValue>
|
||||||
</c:InputCmdButton>
|
</c:InputCmdButton>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.349999994" Y="-0.0800000057" Z="0"/>
|
<Position X="0.349999994" Y="0.0500000007" Z="0"/>
|
||||||
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children/>
|
||||||
<Entity name="ChangeText">
|
</Entity>
|
||||||
<Components>
|
<Entity name="AssaultClassPick">
|
||||||
<c:Text>
|
<Components>
|
||||||
<Content>Change</Content>
|
<c:Button/>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<c:Sprite>
|
||||||
</c:Text>
|
<DiffuseTexture>Textures/Core/UnitRaptor.png</DiffuseTexture>
|
||||||
<c:Transform>
|
<GlowMap></GlowMap>
|
||||||
<Position X="0" Y="0" Z="0.00200000009"/>
|
</c:Sprite>
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
<c:InputCmdButton>
|
||||||
</c:Transform>
|
<Command>PickClass</Command>
|
||||||
</Components>
|
<PressValue>1</PressValue>
|
||||||
<Children/>
|
</c:InputCmdButton>
|
||||||
</Entity>
|
<c:Transform>
|
||||||
<Entity name="ClassText">
|
<Position X="0.349999994" Y="0.149504215" Z="0"/>
|
||||||
<Components>
|
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
||||||
<c:Text>
|
</c:Transform>
|
||||||
<Content>Class</Content>
|
</Components>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Children/>
|
||||||
</c:Text>
|
</Entity>
|
||||||
<c:Transform>
|
<Entity name="SniperClassPick">
|
||||||
<Position X="0" Y="-0.224999994" Z="0.00200000009"/>
|
<Components>
|
||||||
<Scale X="0.25" Y="0.25" Z="1"/>
|
<c:Button/>
|
||||||
</c:Transform>
|
<c:Sprite>
|
||||||
</Components>
|
<DiffuseTexture>Textures/Test/aM4ME4GR.png</DiffuseTexture>
|
||||||
<Children/>
|
<GlowMap></GlowMap>
|
||||||
</Entity>
|
</c:Sprite>
|
||||||
</Children>
|
<c:InputCmdButton>
|
||||||
|
<Command>PickClass</Command>
|
||||||
|
<PressValue>3</PressValue>
|
||||||
|
</c:InputCmdButton>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.349999994" Y="-0.0500000007" Z="0"/>
|
||||||
|
<Scale X="0.0799999982" Y="0.0799999982" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="PlayerAssault" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="PlayerAssault" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="PlayerAssault" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="PlayerAssault" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="PlayerDefender" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="PlayerDefender" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="ScoreBoardOrigin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="ScoreBoardOrigin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="66.4319992" Y="37.9560013" Z="0"/>
|
<Position X="66.4319992" Y="37.9560013" Z="0"/>
|
||||||
<Orientation X="0" Y="4.71199989" Z="0"/>
|
<Orientation X="0" Y="4.71199989" Z="0"/>
|
||||||
|
|||||||
@@ -68,6 +68,7 @@
|
|||||||
<xs:element ref="c:InputCmdButton" minOccurs="0"/>
|
<xs:element ref="c:InputCmdButton" minOccurs="0"/>
|
||||||
<xs:element ref="c:ScoreScreen" minOccurs="0"/>
|
<xs:element ref="c:ScoreScreen" minOccurs="0"/>
|
||||||
<xs:element ref="c:ScoreIdentity" minOccurs="0"/>
|
<xs:element ref="c:ScoreIdentity" minOccurs="0"/>
|
||||||
|
<xs:element ref="c:NetworkComponent" minOccurs="0"/>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ bool ButtonSystem::OnMousePress(const Events::MousePress& e)
|
|||||||
//You have clicked on a button entity, send pressed event.
|
//You have clicked on a button entity, send pressed event.
|
||||||
if (m_World->HasComponent(m_PickData.Entity, "InputCmdButton")) {
|
if (m_World->HasComponent(m_PickData.Entity, "InputCmdButton")) {
|
||||||
Events::InputCommand eInputCmd;
|
Events::InputCommand eInputCmd;
|
||||||
eInputCmd.PlayerID = -1;
|
eInputCmd.PlayerID = LocalPlayer.ID;
|
||||||
eInputCmd.Player = LocalPlayer;
|
eInputCmd.Player = LocalPlayer;
|
||||||
EntityWrapper button = EntityWrapper(m_World, m_PickData.Entity);
|
EntityWrapper button = EntityWrapper(m_World, m_PickData.Entity);
|
||||||
eInputCmd.Command = (std::string)button["InputCmdButton"]["Command"];
|
eInputCmd.Command = (std::string)button["InputCmdButton"]["Command"];
|
||||||
@@ -68,7 +68,7 @@ bool ButtonSystem::OnMouseRelease(const Events::MouseRelease& e)
|
|||||||
|
|
||||||
if (m_World->HasComponent(m_PickData.Entity, "InputCmdButton")) {
|
if (m_World->HasComponent(m_PickData.Entity, "InputCmdButton")) {
|
||||||
Events::InputCommand eInputCmd;
|
Events::InputCommand eInputCmd;
|
||||||
eInputCmd.PlayerID = -1;
|
eInputCmd.PlayerID = LocalPlayer.ID;
|
||||||
eInputCmd.Player = LocalPlayer;
|
eInputCmd.Player = LocalPlayer;
|
||||||
EntityWrapper button = EntityWrapper(m_World, m_PickData.Entity);
|
EntityWrapper button = EntityWrapper(m_World, m_PickData.Entity);
|
||||||
eInputCmd.Command = (std::string)button["InputCmdButton"]["Command"];
|
eInputCmd.Command = (std::string)button["InputCmdButton"]["Command"];
|
||||||
|
|||||||
@@ -641,22 +641,7 @@ void Server::parsePlayerTransform(Packet& packet)
|
|||||||
|
|
||||||
bool Server::shouldSendToClient(EntityWrapper childEntity)
|
bool Server::shouldSendToClient(EntityWrapper childEntity)
|
||||||
{
|
{
|
||||||
auto children = m_World->GetDirectChildren(childEntity.ID);
|
return childEntity.HasComponent("NetworkComponent") || childEntity.FirstParentWithComponent("NetworkComponent").Valid();
|
||||||
for (auto it = children.first; it != children.second; it++) {
|
|
||||||
EntityWrapper child(m_World, it->second);
|
|
||||||
if (child.HasComponent("CapturePoint") || child.HasComponent("HealthPickup")
|
|
||||||
|| child.HasComponent("AmmoPickup")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return childEntity.HasComponent("Player")
|
|
||||||
|| childEntity.FirstParentWithComponent("Player").Valid()
|
|
||||||
|| childEntity.HasComponent("CapturePoint")
|
|
||||||
|| childEntity.HasComponent("HealthPickup")
|
|
||||||
|| childEntity.HasComponent("AmmoPickup")
|
|
||||||
|| childEntity.HasComponent("ScoreScreen")
|
|
||||||
|| childEntity.FirstParentWithComponent("ScoreScreen").Valid()
|
|
||||||
|| childEntity.FirstParentWithComponent("CapturePoint").Valid();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerID Server::getPlayerIDFromEndpoint()
|
PlayerID Server::getPlayerIDFromEndpoint()
|
||||||
|
|||||||
+7
-2
@@ -35,7 +35,6 @@
|
|||||||
#include "Game/Systems/BoostSystem.h"
|
#include "Game/Systems/BoostSystem.h"
|
||||||
#include "Game/Systems/BoostIconsHUDSystem.h"
|
#include "Game/Systems/BoostIconsHUDSystem.h"
|
||||||
#include "Game/Systems/ScoreScreenSystem.h"
|
#include "Game/Systems/ScoreScreenSystem.h"
|
||||||
#include "Game/Systems/SpectatorCameraSystem.h"
|
|
||||||
#include "GUI/ButtonSystem.h"
|
#include "GUI/ButtonSystem.h"
|
||||||
#include "GUI/MainMenuSystem.h"
|
#include "GUI/MainMenuSystem.h"
|
||||||
|
|
||||||
@@ -138,19 +137,25 @@ Game::Game(int argc, char* argv[])
|
|||||||
m_SystemPipeline->AddSystem<LifetimeSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<LifetimeSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<CapturePointSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<CapturePointSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<CapturePointHUDSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<CapturePointHUDSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<PickupSpawnSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<AmmoPickupSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<TextFieldReader>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<TextFieldReader>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<AbilityCooldownHUDSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<AbilityCooldownHUDSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<CapturePointArrowHUDSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<CapturePointArrowHUDSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<CapturePointSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<CapturePointHUDSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<PickupSpawnSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<PickupSpawnSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<AmmoPickupSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<AmmoPickupSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<TextFieldReader>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<BoostSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<BoostSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<ButtonSystem>(updateOrderLevel, m_Renderer);
|
m_SystemPipeline->AddSystem<ButtonSystem>(updateOrderLevel, m_Renderer);
|
||||||
m_SystemPipeline->AddSystem<MainMenuSystem>(updateOrderLevel, m_Renderer);
|
m_SystemPipeline->AddSystem<MainMenuSystem>(updateOrderLevel, m_Renderer);
|
||||||
m_SystemPipeline->AddSystem<BoostIconsHUDSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<BoostIconsHUDSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<ScoreScreenSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<ScoreScreenSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<SpectatorCameraSystem>(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");
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ bool AmmoPickupSystem::OnAmmoPickup(Events::AmmoPickup & e)
|
|||||||
}
|
}
|
||||||
|
|
||||||
currentAmmo = std::min(currentAmmo + e.AmmoGain, maxWeaponAmmo);
|
currentAmmo = std::min(currentAmmo + e.AmmoGain, maxWeaponAmmo);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,11 +114,8 @@ bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
||||||
//trigger should be valid but if it isnt we just return (to avoid crash)
|
|
||||||
if (!trigger.Valid()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int maxWeaponAmmo = (int)player["AssaultWeapon"]["MaxAmmo"];
|
int maxWeaponAmmo = (int)player["AssaultWeapon"]["MaxAmmo"];
|
||||||
|
int& currentAmmo = (int)player["AssaultWeapon"]["Ammo"];
|
||||||
int ammoGiven = 0.01*(double)trigger["AmmoPickup"]["AmmoGain"] * maxWeaponAmmo;
|
int ammoGiven = 0.01*(double)trigger["AmmoPickup"]["AmmoGain"] * maxWeaponAmmo;
|
||||||
|
|
||||||
Events::AmmoPickup ePlayerAmmoPickup;
|
Events::AmmoPickup ePlayerAmmoPickup;
|
||||||
@@ -127,6 +123,9 @@ void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
|||||||
ePlayerAmmoPickup.Player = player;
|
ePlayerAmmoPickup.Player = player;
|
||||||
m_EventBroker->Publish(ePlayerAmmoPickup);
|
m_EventBroker->Publish(ePlayerAmmoPickup);
|
||||||
|
|
||||||
|
//immediately give the player the ammo (on server)
|
||||||
|
currentAmmo = std::min(currentAmmo + ammoGiven, maxWeaponAmmo);
|
||||||
|
|
||||||
//copy position, ammogain, respawntimer (twice since one of the values will be counted down to 0, the other will be set in the new object)
|
//copy position, ammogain, respawntimer (twice since one of the values will be counted down to 0, the other will be set in the new object)
|
||||||
//we need to copy all values since each value can be different for each ammoPickup
|
//we need to copy all values since each value can be different for each ammoPickup
|
||||||
m_ETriggerTouchVector.push_back({ (glm::vec3)trigger["Transform"]["Position"], trigger["AmmoPickup"]["AmmoGain"],
|
m_ETriggerTouchVector.push_back({ (glm::vec3)trigger["Transform"]["Position"], trigger["AmmoPickup"]["AmmoGain"],
|
||||||
|
|||||||
@@ -83,10 +83,6 @@ bool PickupSpawnSystem::OnTriggerLeave(Events::TriggerLeave& e)
|
|||||||
}
|
}
|
||||||
void PickupSpawnSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger)
|
void PickupSpawnSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger)
|
||||||
{
|
{
|
||||||
//trigger should be valid but if it isnt we just return (to avoid crash)
|
|
||||||
if (!trigger.Valid()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
double healthGiven = 0.01*(double)trigger["HealthPickup"]["HealthGain"] * (double)player["Health"]["MaxHealth"];
|
double healthGiven = 0.01*(double)trigger["HealthPickup"]["HealthGain"] * (double)player["Health"]["MaxHealth"];
|
||||||
|
|
||||||
//only the server will increase the players hp and set it in the next delta
|
//only the server will increase the players hp and set it in the next delta
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
#include "Systems/PlayerDeathSystem.h"
|
#include "Systems/PlayerDeathSystem.h"
|
||||||
#include "Core/ELockMouse.h"
|
|
||||||
|
|
||||||
PlayerDeathSystem::PlayerDeathSystem(SystemParams params)
|
PlayerDeathSystem::PlayerDeathSystem(SystemParams params)
|
||||||
: System(params)
|
: System(params)
|
||||||
{
|
{
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_OnPlayerDeath, &PlayerDeathSystem::OnPlayerDeath);
|
EVENT_SUBSCRIBE_MEMBER(m_OnPlayerDeath, &PlayerDeathSystem::OnPlayerDeath);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EEntityDeleted, &PlayerDeathSystem::OnEntityDeleted);
|
EVENT_SUBSCRIBE_MEMBER(m_EEntityDeleted, &PlayerDeathSystem::OnEntityDeleted);
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &PlayerDeathSystem::OnInputCommand);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerDeathSystem::Update(double dt)
|
void PlayerDeathSystem::Update(double dt)
|
||||||
@@ -35,10 +33,10 @@ void PlayerDeathSystem::createDeathEffect(EntityWrapper player)
|
|||||||
|
|
||||||
//components that we need from player
|
//components that we need from player
|
||||||
auto playerModel = player.FirstChildByName("PlayerModel");
|
auto playerModel = player.FirstChildByName("PlayerModel");
|
||||||
|
if (!playerModel.Valid()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!playerModel.HasComponent("Model") || !playerModel.HasComponent("Animation")) {
|
if (!playerModel.HasComponent("Model") || !playerModel.HasComponent("Animation")) {
|
||||||
if (player == LocalPlayer) {
|
|
||||||
setSpectatorCamera();
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto playerEntityModel = playerModel["Model"];
|
auto playerEntityModel = playerModel["Model"];
|
||||||
@@ -70,35 +68,14 @@ bool PlayerDeathSystem::OnEntityDeleted(Events::EntityDeleted& e)
|
|||||||
if (m_LocalPlayerDeathEffect.ID != e.DeletedEntity) {
|
if (m_LocalPlayerDeathEffect.ID != e.DeletedEntity) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the player hasn't spawned already, activate the spectator camera.
|
|
||||||
if (!LocalPlayer.Valid()) {
|
|
||||||
setSpectatorCamera();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PlayerDeathSystem::setSpectatorCamera()
|
|
||||||
{
|
|
||||||
// Look for the spectator camera entity in the level.
|
// Look for the spectator camera entity in the level.
|
||||||
EntityWrapper spectatorCam = m_World->GetFirstEntityByName("SpectatorCamera");
|
EntityWrapper spectatorCam = m_World->GetFirstEntityByName("SpectatorCamera");
|
||||||
if (!spectatorCam.HasComponent("Camera")) {
|
if (!spectatorCam.Valid() || !spectatorCam.HasComponent("Camera") || LocalPlayer.Valid()) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
Events::SetCamera eSetCamera;
|
Events::SetCamera eSetCamera;
|
||||||
eSetCamera.CameraEntity = spectatorCam;
|
eSetCamera.CameraEntity = spectatorCam;
|
||||||
m_EventBroker->Publish(eSetCamera);
|
m_EventBroker->Publish(eSetCamera);
|
||||||
Events::UnlockMouse unlock;
|
|
||||||
m_EventBroker->Publish(unlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool PlayerDeathSystem::OnInputCommand(Events::InputCommand& e)
|
|
||||||
{
|
|
||||||
if (e.Value == 0 || e.Command != "SwapToTeamPick" && e.Command != "SwapToClassPick") {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure that we don't set spectator camera if the player deliberately changes to class/team pick.
|
|
||||||
m_LocalPlayerDeathEffect = EntityWrapper::Invalid;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#include "Systems/PlayerSpawnSystem.h"
|
#include "Systems/PlayerSpawnSystem.h"
|
||||||
#include "Core/ELockMouse.h"
|
|
||||||
|
|
||||||
PlayerSpawnSystem::PlayerSpawnSystem(SystemParams params)
|
PlayerSpawnSystem::PlayerSpawnSystem(SystemParams params)
|
||||||
: System(params)
|
: System(params)
|
||||||
@@ -60,15 +59,7 @@ void PlayerSpawnSystem::Update(double dt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int numSpawnedPlayers = 0;
|
int numSpawnedPlayers = 0;
|
||||||
int playersSpectating = 0;
|
for (auto& req : m_SpawnRequests) {
|
||||||
const int numRequestsToHandle = (int)m_SpawnRequests.size();
|
|
||||||
for (auto it = m_SpawnRequests.begin(); it != m_SpawnRequests.end(); ++it) {
|
|
||||||
// It is valid if they didn't pick class yet
|
|
||||||
// but don't spawn anything, goto next spawnrequest.
|
|
||||||
if (it->Class == PlayerClass::None) {
|
|
||||||
++playersSpectating;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (auto& cPlayerSpawn : *playerSpawns) {
|
for (auto& cPlayerSpawn : *playerSpawns) {
|
||||||
EntityWrapper spawner(m_World, cPlayerSpawn.EntityID);
|
EntityWrapper spawner(m_World, cPlayerSpawn.EntityID);
|
||||||
if (!spawner.HasComponent("Spawner")) {
|
if (!spawner.HasComponent("Spawner")) {
|
||||||
@@ -78,49 +69,43 @@ void PlayerSpawnSystem::Update(double dt)
|
|||||||
// If the spawner has a team affiliation, check it
|
// If the spawner has a team affiliation, check it
|
||||||
if (spawner.HasComponent("Team")) {
|
if (spawner.HasComponent("Team")) {
|
||||||
auto cSpawnerTeam = spawner["Team"];
|
auto cSpawnerTeam = spawner["Team"];
|
||||||
if ((int)cSpawnerTeam["Team"] != it->Team) {
|
if ((int)cSpawnerTeam["Team"] != req.Team) {
|
||||||
// If they somehow has a valid class as spectator, don't spawn them.
|
// Increase num spawned players if someone picks spectator, since it is valid to pick spectator
|
||||||
if (it->Team == cSpawnerTeam["Team"].Enum("Spectator")) {
|
// but don't spawn anything, goto next spawnrequest.
|
||||||
++playersSpectating;
|
if (req.Team == (int)cSpawnerTeam["Team"].Enum("Spectator")) {
|
||||||
|
++numSpawnedPlayers;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Choose a different spawner depending on class picked?
|
|
||||||
|
|
||||||
// Spawn the player!
|
// Spawn the player!
|
||||||
EntityWrapper player = SpawnerSystem::Spawn(spawner, EntityWrapper::Invalid, "Player");
|
EntityWrapper player = SpawnerSystem::Spawn(spawner, EntityWrapper::Invalid, "Player");
|
||||||
// Set the player team affiliation
|
// Set the player team affiliation
|
||||||
player["Team"]["Team"] = it->Team;
|
player["Team"]["Team"] = req.Team;
|
||||||
|
|
||||||
// Publish a PlayerSpawned event
|
// Publish a PlayerSpawned event
|
||||||
Events::PlayerSpawned e;
|
Events::PlayerSpawned e;
|
||||||
e.PlayerID = it->PlayerID;
|
e.PlayerID = req.PlayerID;
|
||||||
e.Player = player;
|
e.Player = player;
|
||||||
e.Spawner = spawner;
|
e.Spawner = spawner;
|
||||||
m_EventBroker->Publish(e);
|
m_EventBroker->Publish(e);
|
||||||
++numSpawnedPlayers;
|
++numSpawnedPlayers;
|
||||||
it = m_SpawnRequests.erase(it);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (it == m_SpawnRequests.end()) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (numSpawnedPlayers != numRequestsToHandle - playersSpectating) {
|
if (numSpawnedPlayers != (int)m_SpawnRequests.size()) {
|
||||||
LOG_DEBUG("%i players were supposed to be spawned, but only %i was successfully.", numRequestsToHandle - playersSpectating, numSpawnedPlayers);
|
LOG_DEBUG("%i players were supposed to be spawned or set as spectator, but only %i was handled.", (int)m_SpawnRequests.size(), numSpawnedPlayers);
|
||||||
} else {
|
} else {
|
||||||
std::string dbg = numSpawnedPlayers != 0 ? std::to_string(numSpawnedPlayers) + " players were spawned. " : "";
|
LOG_DEBUG("%i players were spawned or set as spectator.", numSpawnedPlayers);
|
||||||
dbg += playersSpectating != 0 ? std::to_string(playersSpectating) + " players are spectating/picking class. " : "";
|
|
||||||
LOG_DEBUG(dbg.c_str());
|
|
||||||
}
|
}
|
||||||
|
m_SpawnRequests.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PlayerSpawnSystem::OnInputCommand(Events::InputCommand& e)
|
bool PlayerSpawnSystem::OnInputCommand(Events::InputCommand& e)
|
||||||
{
|
{
|
||||||
if (e.Command != "PickTeam" && e.Command != "PickClass" && e.Command != "SwapToTeamPick" && e.Command != "SwapToClassPick") {
|
if (e.Command != "PickTeam" && e.Command != "SwapToClassPick") {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,6 +113,19 @@ bool PlayerSpawnSystem::OnInputCommand(Events::InputCommand& e)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A dead client should be able to swap to the overwatch camera.
|
||||||
|
if (IsClient && !LocalPlayer.Valid()) {
|
||||||
|
// Set the camera as active, if it exists.
|
||||||
|
// Find the respawn camera or class pick camera.
|
||||||
|
std::string camName = e.Command == "SwapToClassPick" ? "PickClassCamera" : "SpectatorCamera";
|
||||||
|
EntityWrapper spectatorCam = m_World->GetFirstEntityByName(camName);
|
||||||
|
if (spectatorCam.Valid() && spectatorCam.HasComponent("Camera")) {
|
||||||
|
Events::SetCamera eSetCamera;
|
||||||
|
eSetCamera.CameraEntity = spectatorCam;
|
||||||
|
m_EventBroker->Publish(eSetCamera);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Team picks should be processed ONLY server-side!
|
// Team picks should be processed ONLY server-side!
|
||||||
// Don't make a spawn request if we're the client.
|
// Don't make a spawn request if we're the client.
|
||||||
if (!IsServer && m_NetworkEnabled) {
|
if (!IsServer && m_NetworkEnabled) {
|
||||||
@@ -138,38 +136,27 @@ bool PlayerSpawnSystem::OnInputCommand(Events::InputCommand& e)
|
|||||||
auto iter = m_SpawnRequests.begin();
|
auto iter = m_SpawnRequests.begin();
|
||||||
for (; iter != m_SpawnRequests.end(); ++iter) {
|
for (; iter != m_SpawnRequests.end(); ++iter) {
|
||||||
if (iter->PlayerID == e.PlayerID) {
|
if (iter->PlayerID == e.PlayerID) {
|
||||||
// If player wants to switch team or class , remove their selected class so they don't spawn.
|
// If player wants to switch class, remove their spawn request.
|
||||||
if (e.Command == "SwapToTeamPick" || e.Command == "SwapToClassPick") {
|
if (e.Command == "SwapToClassPick") {
|
||||||
iter->Class = PlayerClass::None;
|
m_SpawnRequests.erase(iter);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//If we get here we got a PickTeam or PickClass, so add or alter a spawn request.
|
if (e.Command == "SwapToClassPick") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (iter != m_SpawnRequests.end()) {
|
if (iter != m_SpawnRequests.end()) {
|
||||||
// If player is in queue to spawn, then change their team affiliation or class in the request.
|
// If player is in queue to spawn, then change their team affiliation in the request.
|
||||||
if (e.Command == "PickTeam") {
|
iter->Team = (ComponentInfo::EnumType)e.Value;
|
||||||
iter->Team = (ComponentInfo::EnumType)e.Value;
|
|
||||||
} else {
|
|
||||||
iter->Class = static_cast<PlayerClass>((int)e.Value);
|
|
||||||
}
|
|
||||||
} else if (m_PlayerEntities.count(e.PlayerID) == 0 || !m_PlayerEntities[e.PlayerID].Valid()) {
|
} else if (m_PlayerEntities.count(e.PlayerID) == 0 || !m_PlayerEntities[e.PlayerID].Valid()) {
|
||||||
// If player is not in queue to spawn, then create a spawn request,
|
// If player is not in queue to spawn, then create a spawn request,
|
||||||
// but only if they are spectating and/or just connected.
|
// but only if they are spectating and/or just connected.
|
||||||
SpawnRequest req;
|
SpawnRequest req;
|
||||||
req.PlayerID = e.PlayerID;
|
req.PlayerID = e.PlayerID;
|
||||||
if (e.Command == "PickTeam") {
|
req.Team = (ComponentInfo::EnumType)e.Value;
|
||||||
req.Team = (ComponentInfo::EnumType)e.Value;
|
|
||||||
req.Class = PlayerClass::None;
|
|
||||||
} else {
|
|
||||||
// Should never get here, since you should have picked a team before you ever get a chance to pick class.
|
|
||||||
LOG_WARNING("Sequence error: Should not be able to pick class before team");
|
|
||||||
req.Team = 1; // TODO: 1 Signifies spectator, should probably have real enum here later.
|
|
||||||
req.Class = static_cast<PlayerClass>((int)e.Value);
|
|
||||||
}
|
|
||||||
m_SpawnRequests.push_back(req);
|
m_SpawnRequests.push_back(req);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@@ -204,8 +191,6 @@ bool PlayerSpawnSystem::OnPlayerSpawned(Events::PlayerSpawned& e)
|
|||||||
Events::SetCamera e;
|
Events::SetCamera e;
|
||||||
e.CameraEntity = cameraEntity;
|
e.CameraEntity = cameraEntity;
|
||||||
m_EventBroker->Publish(e);
|
m_EventBroker->Publish(e);
|
||||||
Events::LockMouse lock;
|
|
||||||
m_EventBroker->Publish(lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HACK: Set the player model color to team color
|
// HACK: Set the player model color to team color
|
||||||
@@ -225,7 +210,7 @@ bool PlayerSpawnSystem::OnPlayerSpawned(Events::PlayerSpawned& e)
|
|||||||
|
|
||||||
bool PlayerSpawnSystem::OnPlayerDeath(Events::PlayerDeath& e)
|
bool PlayerSpawnSystem::OnPlayerDeath(Events::PlayerDeath& e)
|
||||||
{
|
{
|
||||||
// Only spawn request if network is disabled or we are server.
|
//Only spawn request if network is disabled or we are server.
|
||||||
if (!IsServer && m_NetworkEnabled) {
|
if (!IsServer && m_NetworkEnabled) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -233,6 +218,10 @@ bool PlayerSpawnSystem::OnPlayerDeath(Events::PlayerDeath& e)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ComponentWrapper cTeam = e.Player["Team"];
|
ComponentWrapper cTeam = e.Player["Team"];
|
||||||
|
//A spectator can't die anyway
|
||||||
|
if ((ComponentInfo::EnumType)cTeam["Team"] == cTeam["Team"].Enum("Spectator")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_PlayerIDs.count(e.Player.ID) == 0) {
|
if (m_PlayerIDs.count(e.Player.ID) == 0) {
|
||||||
return false;
|
return false;
|
||||||
@@ -241,16 +230,6 @@ bool PlayerSpawnSystem::OnPlayerDeath(Events::PlayerDeath& e)
|
|||||||
SpawnRequest req;
|
SpawnRequest req;
|
||||||
req.PlayerID = m_PlayerIDs.at(e.Player.ID);
|
req.PlayerID = m_PlayerIDs.at(e.Player.ID);
|
||||||
req.Team = cTeam["Team"];
|
req.Team = cTeam["Team"];
|
||||||
// TODO: Something better than temp class state code, if we ever add class enums in .xml
|
|
||||||
if (e.Player.HasComponent("DashAbility")) {
|
|
||||||
req.Class = PlayerClass::Assault;
|
|
||||||
} else if (e.Player.HasComponent("SprintAbility")) {
|
|
||||||
req.Class = PlayerClass::Sniper;
|
|
||||||
} else if (e.Player.HasComponent("ShieldAbility")) {
|
|
||||||
req.Class = PlayerClass::Defender;
|
|
||||||
} else {
|
|
||||||
req.Class = PlayerClass::None;
|
|
||||||
}
|
|
||||||
m_SpawnRequests.push_back(req);
|
m_SpawnRequests.push_back(req);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,90 +0,0 @@
|
|||||||
#include "Systems/SpectatorCameraSystem.h"
|
|
||||||
#include "Rendering/ESetCamera.h"
|
|
||||||
#include "Core/ELockMouse.h"
|
|
||||||
|
|
||||||
SpectatorCameraSystem::SpectatorCameraSystem(SystemParams params)
|
|
||||||
: System(params)
|
|
||||||
, m_CamSetToTeamPick(false)
|
|
||||||
, m_PickedTeam(-1)
|
|
||||||
{
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &SpectatorCameraSystem::OnInputCommand);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpectatorCameraSystem::Update(double dt)
|
|
||||||
{
|
|
||||||
if (!m_CamSetToTeamPick && IsClient) {
|
|
||||||
// Find the class pick camera and set them to it, since they need to pick a team before they can leave the screen.
|
|
||||||
EntityWrapper spectatorCam = m_World->GetFirstEntityByName("PickTeamCamera");
|
|
||||||
if (spectatorCam.HasComponent("Camera")) {
|
|
||||||
m_CamSetToTeamPick = true;
|
|
||||||
Events::SetCamera eSetCamera;
|
|
||||||
eSetCamera.CameraEntity = spectatorCam;
|
|
||||||
m_EventBroker->Publish(eSetCamera);
|
|
||||||
Events::UnlockMouse unlock;
|
|
||||||
m_EventBroker->Publish(unlock);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool SpectatorCameraSystem::OnInputCommand(const Events::InputCommand& e)
|
|
||||||
{
|
|
||||||
// Only the client should do this, and only if player is not spawned.
|
|
||||||
if (!IsClient || LocalPlayer.Valid()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
bool swapToClass = e.Command == "PickTeam" || e.Command == "SwapToClassPick";
|
|
||||||
if (e.Value == 0 || !swapToClass && e.Command != "SwapToTeamPick" && e.Command != "PickClass") {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e.Command == "PickTeam") {
|
|
||||||
m_PickedTeam = e.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If a team has not been picked, they may not exit the pick team screen.
|
|
||||||
if (m_PickedTeam == -1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// A dead client should be able to swap to and between the overwatch cameras.
|
|
||||||
std::string camName;
|
|
||||||
// TODO: 1 Signifies spectator, should probably have real enum here later.
|
|
||||||
// Spectators should never end up at the class select, instead put them at the SpectatorCamera.
|
|
||||||
if (swapToClass && m_PickedTeam != 1) {
|
|
||||||
camName = "PickClassCamera";
|
|
||||||
} else if (e.Command == "SwapToTeamPick") {
|
|
||||||
camName = "PickTeamCamera";
|
|
||||||
} else {
|
|
||||||
camName = "SpectatorCamera";
|
|
||||||
}
|
|
||||||
EntityWrapper spectatorCam = m_World->GetFirstEntityByName(camName);
|
|
||||||
// Set the camera as active, if it exists.
|
|
||||||
if (spectatorCam.HasComponent("Camera")) {
|
|
||||||
// Set the class pick button visible if a blue or red team is picked, else invisible.
|
|
||||||
EntityWrapper HUD;
|
|
||||||
if (camName == "SpectatorCamera") {
|
|
||||||
HUD = spectatorCam.FirstChildByName("SpectatorHUD");
|
|
||||||
} else if (camName == "PickTeamCamera") {
|
|
||||||
HUD = spectatorCam.FirstChildByName("PickTeamHUD");
|
|
||||||
}
|
|
||||||
// If we are at the class pick already, or if HUD is invalid for any other reason, do nothing.
|
|
||||||
if (HUD.Valid()) {
|
|
||||||
EntityWrapper toClassButton = spectatorCam.FirstChildByName("ToClassPick");
|
|
||||||
if (toClassButton.Valid()) {
|
|
||||||
// Set ClassButton as invisible if spectator, else visible.
|
|
||||||
bool visible = m_PickedTeam != 1; // TODO: 1 Signifies spectator.
|
|
||||||
toClassButton["Sprite"]["Visible"] = visible;
|
|
||||||
for (auto& child : toClassButton.ChildrenWithComponent("Text")) {
|
|
||||||
child["Text"]["Visible"] = visible;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Events::SetCamera eSetCamera;
|
|
||||||
eSetCamera.CameraEntity = spectatorCam;
|
|
||||||
m_EventBroker->Publish(eSetCamera);
|
|
||||||
Events::UnlockMouse unlock;
|
|
||||||
m_EventBroker->Publish(unlock);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user