Merge remote-tracking branch 'origin/master' into Weapons
# Conflicts: # assets # resources/Schema/Entities/Player.xml # resources/Schema/Entities/PlayerAssaultFallbackBlue.xml # resources/Schema/Entities/PlayerAssaultFallbackRed.xml # resources/Schema/Entities/PlayerAssaultRed.xml # resources/Schema/Entities/aaaatestremoveme.xml # resources/Schema/Entities/aim_rays.xml
This commit is contained in:
@@ -29,18 +29,7 @@
|
|||||||
#include "Core/EAmmoPickup.h"
|
#include "Core/EAmmoPickup.h"
|
||||||
#include "Network/ESearchForServers.h"
|
#include "Network/ESearchForServers.h"
|
||||||
#include "../Game/Events/EDashAbility.h"
|
#include "../Game/Events/EDashAbility.h"
|
||||||
|
#include "Network/EDisplayServerlist.h"
|
||||||
struct ServerInfo
|
|
||||||
{
|
|
||||||
ServerInfo(std::string a, int b, std::string c, int d)
|
|
||||||
{
|
|
||||||
Address = a; Port = b; Name = c; PlayersConnected = d;
|
|
||||||
}
|
|
||||||
std::string Address = "";
|
|
||||||
int Port = 0;
|
|
||||||
std::string Name = "";
|
|
||||||
int PlayersConnected = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Client : public Network
|
class Client : public Network
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#ifndef Events_ConnectRequest_h__
|
||||||
|
#define Events_ConnectRequest_h__
|
||||||
|
|
||||||
|
#include "Core/EventBroker.h"
|
||||||
|
|
||||||
|
namespace Events
|
||||||
|
{
|
||||||
|
|
||||||
|
struct ConnectRequest : public Event
|
||||||
|
{
|
||||||
|
std::string IP = "";
|
||||||
|
int Port = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
#ifndef Events_DisplayServerlist_h__
|
||||||
|
#define Events_DisplayServerlist_h__
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include "Core/Event.h"
|
||||||
|
|
||||||
|
struct ServerInfo
|
||||||
|
{
|
||||||
|
ServerInfo(std::string address, int port, std::string name, int players)
|
||||||
|
{
|
||||||
|
Address = address; Port = port; Name = name; PlayersConnected = players;
|
||||||
|
}
|
||||||
|
std::string Address = "";
|
||||||
|
int Port = 0;
|
||||||
|
std::string Name = "";
|
||||||
|
int PlayersConnected = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace Events
|
||||||
|
{
|
||||||
|
|
||||||
|
struct DisplayServerlist : public Event
|
||||||
|
{
|
||||||
|
std::vector<ServerInfo> Serverlist;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
#ifndef BlurHUD_h__
|
||||||
|
#define BlurHUD_h__
|
||||||
|
|
||||||
|
#include "IRenderer.h"
|
||||||
|
#include "DrawBloomPassState.h"
|
||||||
|
//#include "LightCullingPass.h" Finalpass om den skall skickas in
|
||||||
|
#include "FrameBuffer.h"
|
||||||
|
#include "ShaderProgram.h"
|
||||||
|
//#include "Util/UnorderedMapVec2.h"
|
||||||
|
#include "Texture.h"
|
||||||
|
|
||||||
|
class BlurHUD
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BlurHUD(IRenderer* renderer);
|
||||||
|
~BlurHUD() { }
|
||||||
|
void InitializeTextures();
|
||||||
|
void InitializeFrameBuffers();
|
||||||
|
void InitializeShaderPrograms();
|
||||||
|
void InitializeBuffers();
|
||||||
|
void ClearBuffer();
|
||||||
|
|
||||||
|
void FillGaussianBuffer(FrameBuffer* fb);
|
||||||
|
|
||||||
|
GLuint Draw(GLuint texture, RenderScene& scene);
|
||||||
|
|
||||||
|
void OnWindowResize();
|
||||||
|
void FillStencil(RenderScene& scene);
|
||||||
|
GLuint CombineTextures(GLuint texture1, GLuint texture2);
|
||||||
|
|
||||||
|
//Getters
|
||||||
|
//Return the blurred result of the texture that was sent into draw
|
||||||
|
GLuint GaussianTexture() const {
|
||||||
|
if (m_Quality == 0) {
|
||||||
|
return m_BlackTexture->m_Texture;
|
||||||
|
} else {
|
||||||
|
return m_GaussianTexture_vert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
Texture* m_BlackTexture;
|
||||||
|
Model* m_ScreenQuad;
|
||||||
|
|
||||||
|
const IRenderer* m_Renderer;
|
||||||
|
ConfigFile* m_Config;
|
||||||
|
//const LightCullingPass* m_LightCullingPass
|
||||||
|
int m_Iterations = 3;
|
||||||
|
int m_Quality = 0;
|
||||||
|
float m_BlurQuality = 2.f;
|
||||||
|
|
||||||
|
GLuint m_GaussianTexture_horiz = 0;
|
||||||
|
GLuint m_GaussianTexture_vert = 0;
|
||||||
|
GLuint m_DepthStencil_horiz = 0;
|
||||||
|
GLuint m_DepthStencil_vert = 0;
|
||||||
|
GLuint m_CombinedTexture = 0;
|
||||||
|
|
||||||
|
FrameBuffer m_GaussianFrameBuffer_horiz;
|
||||||
|
FrameBuffer m_GaussianFrameBuffer_vert;
|
||||||
|
FrameBuffer m_CombinedTextureBuffer;
|
||||||
|
|
||||||
|
ShaderProgram* m_GaussianProgram_horiz;
|
||||||
|
ShaderProgram* m_GaussianProgram_vert;
|
||||||
|
ShaderProgram* m_FillDepthStencilProgram;
|
||||||
|
ShaderProgram* m_CombineTexturesProgram;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
#include "Util/UnorderedMapVec2.h"
|
#include "Util/UnorderedMapVec2.h"
|
||||||
#include "Util/CommonFunctions.h"
|
#include "Util/CommonFunctions.h"
|
||||||
#include "Texture.h"
|
#include "Texture.h"
|
||||||
|
#include "BlurHUD.h"
|
||||||
|
|
||||||
class DrawFinalPass
|
class DrawFinalPass
|
||||||
{
|
{
|
||||||
@@ -20,7 +21,7 @@ public:
|
|||||||
void InitializeTextures();
|
void InitializeTextures();
|
||||||
void InitializeFrameBuffers();
|
void InitializeFrameBuffers();
|
||||||
void InitializeShaderPrograms();
|
void InitializeShaderPrograms();
|
||||||
void Draw(RenderScene& scene);
|
void Draw(RenderScene& scene, BlurHUD* blurHUDPass);
|
||||||
void ClearBuffer();
|
void ClearBuffer();
|
||||||
void OnWindowResize();
|
void OnWindowResize();
|
||||||
|
|
||||||
@@ -28,6 +29,10 @@ public:
|
|||||||
GLuint BloomTexture() const { return m_BloomTexture; }
|
GLuint BloomTexture() const { return m_BloomTexture; }
|
||||||
//Return the texture with diffuse and lighting of the scene.
|
//Return the texture with diffuse and lighting of the scene.
|
||||||
GLuint SceneTexture() const { return m_SceneTexture; }
|
GLuint SceneTexture() const { return m_SceneTexture; }
|
||||||
|
//Return the SceneTexture with the blurred HUD bits.
|
||||||
|
GLuint CombinedSceneTexture() const { return m_CombinedTexture; }
|
||||||
|
//Return the blurred scene texture.
|
||||||
|
GLuint FullBlurredTexture() const { return m_FullBlurredTexture; }
|
||||||
//Return the framebuffer used in the scene rendering stage.
|
//Return the framebuffer used in the scene rendering stage.
|
||||||
FrameBuffer* FinalPassFrameBuffer() { return &m_FinalPassFrameBuffer; }
|
FrameBuffer* FinalPassFrameBuffer() { return &m_FinalPassFrameBuffer; }
|
||||||
|
|
||||||
@@ -57,6 +62,8 @@ private:
|
|||||||
GLuint m_DepthBuffer;
|
GLuint m_DepthBuffer;
|
||||||
GLuint m_ShieldBuffer;
|
GLuint m_ShieldBuffer;
|
||||||
GLuint m_CubeMapTexture;
|
GLuint m_CubeMapTexture;
|
||||||
|
GLuint m_FullBlurredTexture;
|
||||||
|
GLuint m_CombinedTexture; //This can be removed for less memory usage, just set m_sceneTexture to the return from m_BlurHUDPass.CombineTextures
|
||||||
|
|
||||||
//maqke this component based i guess?
|
//maqke this component based i guess?
|
||||||
GLuint m_ShieldPixelRate = 16;
|
GLuint m_ShieldPixelRate = 16;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ struct RenderScene
|
|||||||
|
|
||||||
Rectangle Viewport;
|
Rectangle Viewport;
|
||||||
bool ClearDepth = false;
|
bool ClearDepth = false;
|
||||||
|
bool ShouldBlur = false;
|
||||||
glm::vec4 AmbientColor;
|
glm::vec4 AmbientColor;
|
||||||
|
|
||||||
void Clear()
|
void Clear()
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#include "DrawColorCorrectionPass.h"
|
#include "DrawColorCorrectionPass.h"
|
||||||
#include "SSAOPass.h"
|
#include "SSAOPass.h"
|
||||||
#include "CubeMapPass.h"
|
#include "CubeMapPass.h"
|
||||||
|
#include "BlurHUD.h"
|
||||||
#include "../Core/EventBroker.h"
|
#include "../Core/EventBroker.h"
|
||||||
#include "ImGuiRenderPass.h"
|
#include "ImGuiRenderPass.h"
|
||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
@@ -75,6 +76,7 @@ private:
|
|||||||
DrawColorCorrectionPass* m_DrawColorCorrectionPass;
|
DrawColorCorrectionPass* m_DrawColorCorrectionPass;
|
||||||
SSAOPass* m_SSAOPass;
|
SSAOPass* m_SSAOPass;
|
||||||
CubeMapPass* m_CubeMapPass;
|
CubeMapPass* m_CubeMapPass;
|
||||||
|
BlurHUD* m_BlurHUDPass;
|
||||||
|
|
||||||
//----------------------Functions----------------------//
|
//----------------------Functions----------------------//
|
||||||
void InitializeWindow();
|
void InitializeWindow();
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ struct SpriteJob : RenderJob
|
|||||||
EndIndex = matProp.material->EndIndex;
|
EndIndex = matProp.material->EndIndex;
|
||||||
Matrix = matrix;
|
Matrix = matrix;
|
||||||
Color = cSprite["Color"];
|
Color = cSprite["Color"];
|
||||||
|
BlurBackground = (bool)cSprite["BlurBackground"];
|
||||||
|
|
||||||
Entity = cSprite.EntityID;
|
Entity = cSprite.EntityID;
|
||||||
Position = Transform::AbsolutePosition(world, cSprite.EntityID);
|
Position = Transform::AbsolutePosition(world, cSprite.EntityID);
|
||||||
Depth = 0;
|
Depth = 0;
|
||||||
@@ -65,6 +67,7 @@ struct SpriteJob : RenderJob
|
|||||||
|
|
||||||
bool Pickable;
|
bool Pickable;
|
||||||
bool IsIndicator = false;
|
bool IsIndicator = false;
|
||||||
|
bool BlurBackground = false;
|
||||||
|
|
||||||
glm::vec4 FillColor = glm::vec4(0);
|
glm::vec4 FillColor = glm::vec4(0);
|
||||||
float FillPercentage = 0.0;
|
float FillPercentage = 0.0;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
virtual void Update(double dt) override;
|
virtual void Update(double dt) override;
|
||||||
|
private:
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -40,5 +40,17 @@ private:
|
|||||||
};
|
};
|
||||||
std::vector<EntityAtMaxValuePickupStruct> m_PickupAtMaximum;
|
std::vector<EntityAtMaxValuePickupStruct> m_PickupAtMaximum;
|
||||||
void DoPickup(EntityWrapper &player, EntityWrapper &trigger);
|
void DoPickup(EntityWrapper &player, EntityWrapper &trigger);
|
||||||
|
//class
|
||||||
|
enum class PlayerClass {
|
||||||
|
Assault,
|
||||||
|
Defender,
|
||||||
|
Sniper,
|
||||||
|
None
|
||||||
|
};
|
||||||
|
//helper methods
|
||||||
|
bool DoesPlayerHaveMaxAmmo(EntityWrapper &player);
|
||||||
|
PlayerClass DetermineClass(EntityWrapper &player);
|
||||||
|
void SetPlayerAmmo(EntityWrapper &player, int ammoGain);
|
||||||
|
int GetPlayerMaxAmmo(EntityWrapper &player);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#include "Rendering/Util/CommonFunctions.h"
|
#include "Rendering/Util/CommonFunctions.h"
|
||||||
//#define INDICATOR_TEST
|
//#define INDICATOR_TEST
|
||||||
|
#include "Core/ConfigFile.h"
|
||||||
|
|
||||||
class DamageIndicatorSystem : public ImpureSystem
|
class DamageIndicatorSystem : public ImpureSystem
|
||||||
{
|
{
|
||||||
@@ -40,6 +41,8 @@ private:
|
|||||||
std::vector<DamageIndicatorStruct> updateDamageIndicatorVector;
|
std::vector<DamageIndicatorStruct> updateDamageIndicatorVector;
|
||||||
float CalculateAngle(EntityWrapper player, glm::vec3 enemyPos);
|
float CalculateAngle(EntityWrapper player, glm::vec3 enemyPos);
|
||||||
|
|
||||||
|
bool m_NetworkEnabled;
|
||||||
|
|
||||||
//for tests
|
//for tests
|
||||||
#ifdef INDICATOR_TEST
|
#ifdef INDICATOR_TEST
|
||||||
glm::vec3 DamageIndicatorTest(EntityWrapper player);
|
glm::vec3 DamageIndicatorTest(EntityWrapper player);
|
||||||
|
|||||||
@@ -1,15 +1,19 @@
|
|||||||
#ifndef MainMenuSystem_h__
|
#ifndef MainMenuSystem_h__
|
||||||
#define MainMenuSystem_h__
|
#define MainMenuSystem_h__
|
||||||
|
|
||||||
#include "../Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "../Rendering/IRenderer.h"
|
#include "Rendering/IRenderer.h"
|
||||||
#include "../Core/ResourceManager.h"
|
#include "Core/ResourceManager.h"
|
||||||
#include "../Core/Event.h"
|
#include "Core/Event.h"
|
||||||
|
#include "Systems/SpawnerSystem.h"
|
||||||
|
|
||||||
|
|
||||||
#include "EButtonClicked.h"
|
#include "GUI/EButtonClicked.h"
|
||||||
#include "EButtonPressed.h"
|
#include "GUI/EButtonPressed.h"
|
||||||
#include "EButtonReleased.h"
|
#include "GUI/EButtonReleased.h"
|
||||||
|
#include "Input/EInputCommand.h"
|
||||||
|
#include "Network/ESearchForServers.h"
|
||||||
|
#include "Network/EConnectRequest.h"
|
||||||
|
|
||||||
|
|
||||||
class MainMenuSystem : public ImpureSystem
|
class MainMenuSystem : public ImpureSystem
|
||||||
@@ -27,6 +31,11 @@ private:
|
|||||||
bool OnButtonRelease(const Events::ButtonReleased& e);
|
bool OnButtonRelease(const Events::ButtonReleased& e);
|
||||||
EventRelay<MainMenuSystem, Events::ButtonPressed> m_EPressed;
|
EventRelay<MainMenuSystem, Events::ButtonPressed> m_EPressed;
|
||||||
bool OnButtonPress(const Events::ButtonPressed& e);
|
bool OnButtonPress(const Events::ButtonPressed& e);
|
||||||
|
EventRelay<MainMenuSystem, Events::InputCommand> m_EInputCommand;
|
||||||
|
bool OnInputCommand(const Events::InputCommand& e);
|
||||||
|
|
||||||
|
std::string m_CurrentCommand = "";
|
||||||
|
EntityWrapper m_OpenSubMenu = EntityWrapper::Invalid;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -24,7 +24,10 @@ 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,10 +15,19 @@ 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;
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
#ifndef ServerListSystem_h__
|
||||||
|
#define ServerListSystem_h__
|
||||||
|
|
||||||
|
#include "Core/System.h"
|
||||||
|
#include "Rendering/IRenderer.h"
|
||||||
|
#include "Core/ResourceManager.h"
|
||||||
|
#include "Core/Event.h"
|
||||||
|
#include "Systems/SpawnerSystem.h"
|
||||||
|
#include "Core/EventBroker.h"
|
||||||
|
|
||||||
|
#include "Network/ESearchForServers.h"
|
||||||
|
#include "Network/EDisplayServerlist.h"
|
||||||
|
|
||||||
|
class ServerListSystem : public PureSystem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ServerListSystem(SystemParams params, IRenderer* renderer);
|
||||||
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cServerList, double dt) override;
|
||||||
|
|
||||||
|
void RefreshList();
|
||||||
|
|
||||||
|
private:
|
||||||
|
IRenderer* m_Renderer;
|
||||||
|
|
||||||
|
EventRelay<ServerListSystem, Events::DisplayServerlist> m_EServerListRecieved;
|
||||||
|
bool OnServerListRecieved(const Events::DisplayServerlist& e);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#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,4 +28,5 @@ P=SwitchToPlayer
|
|||||||
K=TakeDamage,1500
|
K=TakeDamage,1500
|
||||||
F2=PerformanceTimingResetAllTimers
|
F2=PerformanceTimingResetAllTimers
|
||||||
F3=PerformanceTimingCreateExcelData
|
F3=PerformanceTimingCreateExcelData
|
||||||
F4=SwapToClassPick
|
Comma=SwapToClassPick
|
||||||
|
Period=SwapToTeamPick
|
||||||
@@ -65,4 +65,7 @@
|
|||||||
<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:include schemaLocation="Components/ServerIdentity.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/ServerList.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>
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ServerIdentity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ServerIdentity.xsd">
|
||||||
|
<IP>123.123.123.123</IP>
|
||||||
|
<Port>65999</Port>
|
||||||
|
<ServerName>UnkownServer</ServerName>
|
||||||
|
<PlayersConnected>0</PlayersConnected>
|
||||||
|
</ServerIdentity>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?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="ServerIdentity">
|
||||||
|
<xs:annotation><xs:documentation>A component for tracking the data of servers in the serverlist.</xs:documentation></xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="IP" type="t:string" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>The IP adress of the server.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Port" type="t:int" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>Port used to connect to the server.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="ServerName" type="t:string" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>Name of the server.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="PlayersConnected" type="t:int" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>Amount of players connected to the server.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ServerList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ServerList.xsd">
|
||||||
|
<TotalIdentities>0</TotalIdentities>
|
||||||
|
<NextPosition>0</NextPosition>
|
||||||
|
<Offset X="0.0" Y="0.0" Z="0.0"/>
|
||||||
|
</ServerList>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?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="ServerList">
|
||||||
|
<xs:annotation><xs:documentation>The menulist where servers will be listed.</xs:documentation></xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="TotalIdentities" type="t:int" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>The amount of server identities in this list.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="NextPosition" type="t:int" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>Where the next serverIdentity should be placed.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="Offset" type="t:Vector" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>How much offset should be applied per position</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<ShieldAbility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ShieldAbility.xsd">
|
<ShieldAbility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ShieldAbility.xsd">
|
||||||
<CoolDownMaxTimer>2.0</CoolDownMaxTimer>
|
<Active>false</Active>
|
||||||
</ShieldAbility>
|
</ShieldAbility>
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:all>
|
<xs:all>
|
||||||
<xs:element name="CoolDownMaxTimer" type="t:double" minOccurs="0">
|
<xs:element name="Active" type="t:bool" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>This is the cooldown on shield</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>If the shield is active or not</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|||||||
@@ -5,4 +5,5 @@
|
|||||||
<Color R="1" G="1" B="1" A="1"/>
|
<Color R="1" G="1" B="1" A="1"/>
|
||||||
<Visible>true</Visible>
|
<Visible>true</Visible>
|
||||||
<DepthSort>true</DepthSort>
|
<DepthSort>true</DepthSort>
|
||||||
|
<BlurBackground>false</BlurBackground>
|
||||||
</Sprite>
|
</Sprite>
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
<xs:element name="DepthSort" type="t:bool" minOccurs="0">
|
<xs:element name="DepthSort" type="t:bool" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Whether the sprite should be sorted with depth or not. Only use false for textures that are on HUD</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Whether the sprite should be sorted with depth or not. Only use false for textures that are on HUD</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
<xs:element name="BlurBackground" type="t:bool" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>Wether the background should be blurred begind this sprite.</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
+3962
-3974
File diff suppressed because it is too large
Load Diff
+1144
-1144
File diff suppressed because it is too large
Load Diff
@@ -4,14 +4,39 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:CapturePoint/>
|
<c:CapturePoint/>
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team/>
|
<c:Team/>
|
||||||
<c:Transform/>
|
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children/>
|
<Children>
|
||||||
|
<Entity name="Red">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Blue">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Spectator">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -13,38 +13,8 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<GlowMap></GlowMap>
|
||||||
</c:Sprite>
|
<DepthSort>false</DepthSort>
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.919596612" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>2</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>
|
|
||||||
</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"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -54,20 +24,21 @@
|
|||||||
<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>3</CapturePointNumber>
|
<CapturePointNumber>3</CapturePointNumber>
|
||||||
</c:CapturePointHUD>
|
</c:CapturePointHUD>
|
||||||
<c:Fill>
|
|
||||||
<Percentage>0.80222018197612788</Percentage>
|
|
||||||
<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"/>
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -78,6 +49,8 @@
|
|||||||
<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.699999988" B="1" G="0.200000003" R="0"/>
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -87,19 +60,21 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<CapturePointNumber>4</CapturePointNumber>
|
||||||
|
</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"/>
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -110,6 +85,44 @@
|
|||||||
<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" 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>2</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>
|
||||||
@@ -119,19 +132,21 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<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>
|
||||||
|
<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"/>
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -142,7 +157,9 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<Color A="0.699999988" B="0" G="0.200000003" R="1"/>
|
<GlowMap></GlowMap>
|
||||||
|
<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"/>
|
||||||
@@ -151,17 +168,19 @@
|
|||||||
<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"/>
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</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>
|
||||||
|
|||||||
@@ -0,0 +1,208 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity name="MainMenuOrigin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Menu/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="Side_Origin">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.377000004" Y="0.0400000028" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0.797000051" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="ButtonPos_3">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.140000001" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Button_3">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Credits</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.075000003" Y="-0.0150000006" Z="0.00100000005"/>
|
||||||
|
<Scale X="0.0199999996" Y="0.0199999996" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ButtonPos_1">
|
||||||
|
<Components>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Button_1">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:InputCmdButton>
|
||||||
|
<Command>Play</Command>
|
||||||
|
<PressValue>1</PressValue>
|
||||||
|
</c:InputCmdButton>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Play</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.075000003" Y="-0.0150000006" Z="0.00100000005"/>
|
||||||
|
<Scale X="0.0199999996" Y="0.0199999996" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ButtonPos_2">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.0700000003" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Button_2">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Option</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.075000003" Y="-0.0150000006" Z="0.00100000005"/>
|
||||||
|
<Scale X="0.0199999996" Y="0.0199999996" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ButtonPos_4">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.209999993" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Button_4">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Quit</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.075000003" Y="-0.0150000006" Z="0.00100000005"/>
|
||||||
|
<Scale X="0.0199999996" Y="0.0199999996" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Popup_Origin">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.103822395" Y="0" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="PlaySpawner">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/ServerList.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@
|
|||||||
</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>
|
||||||
|
|
||||||
@@ -20,6 +21,369 @@
|
|||||||
</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/>
|
||||||
@@ -33,6 +397,20 @@
|
|||||||
</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>
|
||||||
@@ -46,40 +424,7 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<DepthSort>false</DepthSort>
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.919596612" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>2</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.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>
|
||||||
@@ -89,15 +434,16 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<CapturePointNumber>3</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"/>
|
||||||
@@ -114,6 +460,7 @@
|
|||||||
<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="1" G="0.200000003" R="0"/>
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -123,15 +470,16 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<CapturePointNumber>4</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"/>
|
||||||
@@ -148,6 +496,43 @@
|
|||||||
<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" 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>2</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>
|
||||||
@@ -157,16 +542,17 @@
|
|||||||
<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"/>
|
||||||
@@ -183,6 +569,7 @@
|
|||||||
<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>
|
||||||
@@ -192,13 +579,14 @@
|
|||||||
<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"/>
|
||||||
@@ -212,90 +600,99 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="RespawnTimer">
|
<Entity name="ToTeamPick">
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>16</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>
|
|
||||||
</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>PickClass</Command>
|
<Command>SwapToTeamPick</Command>
|
||||||
<PressValue>2</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 name="AssaultClassPick">
|
|
||||||
<Components>
|
|
||||||
<c:Button/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/UnitRaptor.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>PickClass</Command>
|
|
||||||
<PressValue>1</PressValue>
|
<PressValue>1</PressValue>
|
||||||
</c:InputCmdButton>
|
</c:InputCmdButton>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.349999994" Y="0.149504215" Z="0"/>
|
<Position X="0.349999994" Y="-0.180000007" 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">
|
||||||
|
<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="SniperClassPick">
|
<Entity name="ToClassPick">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Test/aM4ME4GR.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>PickClass</Command>
|
<Command>SwapToClassPick</Command>
|
||||||
<PressValue>3</PressValue>
|
<PressValue>1</PressValue>
|
||||||
</c:InputCmdButton>
|
</c:InputCmdButton>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.349999994" Y="-0.0500000007" Z="0"/>
|
<Position X="0.349999994" Y="-0.0800000057" 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">
|
||||||
|
<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="ClassText">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Class</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>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -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"/>
|
||||||
|
|||||||
@@ -31,116 +31,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="HealthHUD">
|
|
||||||
<Components>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="HealthBar">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Percentage>1</Percentage>
|
|
||||||
<Color A="0.301960796" B="1" G="0" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:HealthHUD/>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/HUD/HealthHudTriMain.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<Color A="0.588235319" B="0" G="0" R="0"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-0.263000011" Y="-0.185000002" Z="0"/>
|
|
||||||
<Orientation X="5.87300014" Y="0" Z="4.71200037"/>
|
|
||||||
<Scale X="0.0799999982" Y="0.333000004" Z="0.150000006"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="BoostIcons">
|
|
||||||
<Components>
|
|
||||||
<c:BoostIconsHUD/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="Sniper">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="1" B="0.345098048" G="0" R="1"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.588235319" B="0.121568628" G="0" R="0.443137258"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.225000009" Y="0.38500002" Z="0"/>
|
|
||||||
<Scale X="0.27700001" Y="0.100000001" Z="0.200000003"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Assault">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="1" B="0.533333361" G="1" R="0.329411775"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.588235319" B="0.0392156877" G="0.184313729" R="0"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.225000009" Y="0.168000013" Z="0"/>
|
|
||||||
<Scale X="0.27700001" Y="0.100000001" Z="0.200000003"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Defender">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Color A="1" B="1" G="0.58431375" R="0.105882354"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:Sprite>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Color A="0.588235319" B="0.34117648" G="0.192156866" R="0"/>
|
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.224999994" Y="0.27700001" Z="0"/>
|
|
||||||
<Scale X="0.27700001" Y="0.100000001" Z="0.200000003"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="HealthText">
|
|
||||||
<Components>
|
|
||||||
<c:Fill>
|
|
||||||
<Percentage>1</Percentage>
|
|
||||||
<Color A="1" B="1" G="0" R="0"/>
|
|
||||||
</c:Fill>
|
|
||||||
<c:Text>
|
|
||||||
<Content>100/100</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
<Color A="0.505882382" B="3.92156863" G="1.17647064" R="0"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:HealthHUD/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-0.372000009" Y="-0.212000012" Z="0.0560000017"/>
|
|
||||||
<Orientation X="0" Y="0.410000026" Z="0"/>
|
|
||||||
<Scale X="0.0189999994" Y="0.0250000004" Z="0.0350000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="CapturePointHUD">
|
<Entity name="CapturePointHUD">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -154,40 +44,7 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<DepthSort>false</DepthSort>
|
||||||
</c:Sprite>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.919596612" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="ProgressionHexagon">
|
|
||||||
<Components>
|
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>2</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.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>
|
||||||
@@ -197,15 +54,16 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<CapturePointNumber>3</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"/>
|
||||||
@@ -222,6 +80,7 @@
|
|||||||
<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="1" G="0.200000003" R="0"/>
|
<Color A="0.699999988" B="1" G="0.200000003" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -231,16 +90,17 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Percentage>1</Percentage>
|
<Percentage>1</Percentage>
|
||||||
<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>
|
||||||
|
<CapturePointNumber>4</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"/>
|
||||||
@@ -257,6 +117,43 @@
|
|||||||
<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" 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>2</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>
|
||||||
@@ -266,15 +163,16 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<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"/>
|
||||||
@@ -291,6 +189,7 @@
|
|||||||
<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>
|
||||||
@@ -300,14 +199,15 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD/>
|
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Percentage>1</Percentage>
|
<Percentage>1</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/>
|
||||||
<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"/>
|
||||||
@@ -377,23 +277,157 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="CapturePointArrow">
|
<Entity name="CapturePointArrow">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointArrowHUD/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Widgets/Arrows/Arrow5.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team>
|
<c:Team>
|
||||||
<Team>
|
<Team>
|
||||||
<Blue/>
|
<Blue/>
|
||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
|
<c:CapturePointArrowHUD/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Widgets/Arrows/Arrow5.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0.714000046" Z="-1.30000007"/>
|
<Position X="0" Y="0.198665127" Z="0"/>
|
||||||
<Orientation X="0.405680239" Y="0.369605929" Z="0"/>
|
<Scale X="0.0500000007" Y="0.0500000007" Z="0.0500000007"/>
|
||||||
<Scale X="0.200000003" Y="0.200000003" Z="0.200000003"/>
|
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="HealthHUDAssault">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.263000011" Y="-0.185000002" Z="0"/>
|
||||||
|
<Orientation X="5.83699989" Y="0" Z="4.71199989"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="HealthText">
|
||||||
|
<Components>
|
||||||
|
<c:Fill>
|
||||||
|
<Percentage>1</Percentage>
|
||||||
|
<Color A="1" B="1" G="0" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Text>
|
||||||
|
<Content>100/100</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="0.505882382" B="3.92156863" G="1.17647064" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:HealthHUD/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0200000014" Y="-0.101000004" Z="0.00300000003"/>
|
||||||
|
<Orientation X="0" Y="0" Z="1.57070696"/>
|
||||||
|
<Scale X="0.0350000001" Y="0.0350000001" Z="0.0350000001"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="HealthBar">
|
||||||
|
<Components>
|
||||||
|
<c:Fill>
|
||||||
|
<Percentage>1</Percentage>
|
||||||
|
<Color A="0.301960796" B="1" G="0" R="0"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:HealthHUD/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/HealthHUD3.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="0" G="0" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.106000006" Y="0.333000004" Z="0.150000006"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="BoostIcons">
|
||||||
|
<Components>
|
||||||
|
<c:BoostIconsHUD/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.00500000035" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Assault">
|
||||||
|
<Components>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="1" B="0.533333361" G="1" R="0.329411775"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Icons/Boosts/Assault-01.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
|
<Color A="0" B="0.0392156877" G="0.184313729" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0250000004" Y="0.0700000003" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0" Z="3.14199996"/>
|
||||||
|
<Scale X="0.0399999991" Y="0.0399999991" Z="0.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Defender">
|
||||||
|
<Components>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="1" B="1" G="0.58431375" R="0.105882354"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Icons/Boosts/Defender-01.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
|
<Color A="0" B="0.34117648" G="0.192156866" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0270000007" Y="0.110000007" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0" Z="3.14199996"/>
|
||||||
|
<Scale X="0.0399999991" Y="0.0400000028" Z="0.165000007"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Sniper">
|
||||||
|
<Components>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="1" B="0.345098048" G="0" R="1"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Icons/Boosts/Sniper-01.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
|
<Color A="0" B="0.121568628" G="0" R="0.443137258"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0250000004" Y="0.145000011" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0" Z="3.14199996"/>
|
||||||
|
<Scale X="0.0400000028" Y="0.0400000028" Z="0.165000007"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ShiftAbility">
|
||||||
|
<Components>
|
||||||
|
<c:AbilityCooldownHUD/>
|
||||||
|
<c:Fill>
|
||||||
|
<Color A="1" B="0.392156869" G="0.392156869" R="0.392156869"/>
|
||||||
|
</c:Fill>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Icons/Abilities/Superman-01.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
|
<Color A="1" B="0.206628323" G="0.78039217" R="0.192802757"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0250000004" Y="0.0100000007" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0" Z="3.14159203"/>
|
||||||
|
<Scale X="0.0800000057" Y="0.0700000003" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</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"/>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointGameMode>
|
<c:CapturePointGameMode>
|
||||||
<RespawnTime>4.7473226580121377</RespawnTime>
|
<RespawnTime>3.6154132075906489</RespawnTime>
|
||||||
</c:CapturePointGameMode>
|
</c:CapturePointGameMode>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="-1" Z="0"/>
|
<Position X="0" Y="-1" Z="0"/>
|
||||||
@@ -11,6 +11,104 @@
|
|||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
|
<Entity name="AnimationTestOrigin">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-9.21499538" Y="0" Z="8.55711079"/>
|
||||||
|
<Orientation X="0" Y="4.829" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="RunAnim">
|
||||||
|
<Components>
|
||||||
|
<c:Animation>
|
||||||
|
<AnimationName></AnimationName>
|
||||||
|
</c:Animation>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.786919653" Y="0" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Walkanim">
|
||||||
|
<Components>
|
||||||
|
<c:Animation>
|
||||||
|
<AnimationName></AnimationName>
|
||||||
|
</c:Animation>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="AnimationText">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Animation test</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="2.4000001" Z="0"/>
|
||||||
|
<Orientation X="0" Y="3.08300018" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="AssetBase">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
||||||
|
<Color A="1" B="1.56862748" G="1.56862748" R="1.56862748"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-1.10000002" Y="-0.231354833" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Light">
|
||||||
|
<Components>
|
||||||
|
<c:PointLight/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.663784981" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="RotationOrigin">
|
||||||
|
<Components>
|
||||||
|
<c:RaptorCopter>
|
||||||
|
<Speed>0.5</Speed>
|
||||||
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
|
</c:RaptorCopter>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="2907.64526" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Asset">
|
||||||
|
<Components>
|
||||||
|
<c:Animation>
|
||||||
|
<AnimationName></AnimationName>
|
||||||
|
</c:Animation>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.5" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
<Entity name="Ground">
|
<Entity name="Ground">
|
||||||
<Components>
|
<Components>
|
||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
@@ -43,7 +141,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="9038.11328" Z="0"/>
|
<Orientation X="0" Y="9141.29785" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -96,115 +194,11 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
|
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
|
||||||
<Orientation X="4.16300011" Y="18876.6172" Z="0"/>
|
<Orientation X="4.16300011" Y="18980.4727" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="AnimationTestOrigin">
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-9.21499538" Y="0" Z="8.55711079"/>
|
|
||||||
<Orientation X="0" Y="4.829" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="RunAnim">
|
|
||||||
<Components>
|
|
||||||
<c:Animation>
|
|
||||||
<AnimationName1></AnimationName1>
|
|
||||||
<AnimationName2></AnimationName2>
|
|
||||||
<AnimationName3></AnimationName3>
|
|
||||||
</c:Animation>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.786919653" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Walkanim">
|
|
||||||
<Components>
|
|
||||||
<c:Animation>
|
|
||||||
<AnimationName1></AnimationName1>
|
|
||||||
<AnimationName2></AnimationName2>
|
|
||||||
<AnimationName3></AnimationName3>
|
|
||||||
</c:Animation>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="AnimationText">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Content>Animation test</Content>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="2.4000001" Z="0"/>
|
|
||||||
<Orientation X="0" Y="3.08300018" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="AssetBase">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
|
||||||
<Color A="1" B="1.56862748" G="1.56862748" R="1.56862748"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.10000002" Y="-0.231354833" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="Light">
|
|
||||||
<Components>
|
|
||||||
<c:PointLight/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.663784981" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="RotationOrigin">
|
|
||||||
<Components>
|
|
||||||
<c:RaptorCopter>
|
|
||||||
<Speed>0.5</Speed>
|
|
||||||
<Axis X="0" Y="1" Z="0"/>
|
|
||||||
</c:RaptorCopter>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="0" Y="2856.05518" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="Asset">
|
|
||||||
<Components>
|
|
||||||
<c:Animation>
|
|
||||||
<AnimationName1></AnimationName1>
|
|
||||||
<AnimationName2></AnimationName2>
|
|
||||||
<AnimationName3></AnimationName3>
|
|
||||||
</c:Animation>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.5" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SpheresOrigin">
|
<Entity name="SpheresOrigin">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -228,7 +222,7 @@
|
|||||||
<Axis X="1" Y="1" Z="1"/>
|
<Axis X="1" Y="1" Z="1"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="17467.0977" Y="17467.0977" Z="17467.0977"/>
|
<Orientation X="17570.9531" Y="17570.9531" Z="17570.9531"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -292,7 +286,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="17263.0938" Z="0"/>
|
<Orientation X="0" Y="17366.9492" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -324,7 +318,7 @@
|
|||||||
<Axis X="0.699999988" Y="1" Z="0.300000012"/>
|
<Axis X="0.699999988" Y="1" Z="0.300000012"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="12630.0664" Y="17990.5039" Z="5383.80176"/>
|
<Orientation X="12702.4932" Y="18094.3594" Z="5414.53027"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -395,15 +389,15 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="SpawnerRedTeam">
|
<Entity name="SpawnerRedTeam">
|
||||||
<Components>
|
<Components>
|
||||||
<c:PlayerSpawn/>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Team>
|
<c:Team>
|
||||||
<Team>
|
<Team>
|
||||||
<Red/>
|
<Red/>
|
||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
|
<c:PlayerSpawn/>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-3"/>
|
<Position X="0" Y="0" Z="-3"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -465,15 +459,15 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="SpawnerBlueTeam">
|
<Entity name="SpawnerBlueTeam">
|
||||||
<Components>
|
<Components>
|
||||||
<c:PlayerSpawn/>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Team>
|
<c:Team>
|
||||||
<Team>
|
<Team>
|
||||||
<Blue/>
|
<Blue/>
|
||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
|
<c:PlayerSpawn/>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="3"/>
|
<Position X="0" Y="0" Z="3"/>
|
||||||
<Orientation X="0" Y="3.20000005" Z="0"/>
|
<Orientation X="0" Y="3.20000005" Z="0"/>
|
||||||
@@ -619,8 +613,8 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="1.16991854" Y="0.5" Z="-1.42708254"/>
|
<Position X="1.16991854" Y="0.5" Z="-1.42708254"/>
|
||||||
<Scale X="3.70000029" Y="1" Z="1"/>
|
|
||||||
<Orientation X="1.80400014" Y="3.6650002" Z="4.94500017"/>
|
<Orientation X="1.80400014" Y="3.6650002" Z="4.94500017"/>
|
||||||
|
<Scale X="3.70000029" Y="1" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -674,7 +668,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -721,7 +715,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -781,7 +775,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -828,7 +822,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -874,7 +868,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -921,7 +915,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -968,7 +962,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1153.80225" Z="0"/>
|
<Orientation X="0" Y="1205.41614" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1023,22 +1017,22 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
|
<CaptureTimer>15</CaptureTimer>
|
||||||
<HomePointForTeam>
|
<HomePointForTeam>
|
||||||
<Red/>
|
<Red/>
|
||||||
</HomePointForTeam>
|
</HomePointForTeam>
|
||||||
<CaptureTimer>15</CaptureTimer>
|
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Red/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="0" G="0" R="1"/>
|
<Color A="0.300000012" B="0" G="0" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2" Z="0"/>
|
<Position X="0" Y="2" Z="0"/>
|
||||||
<Scale X="8" Y="4" Z="8"/>
|
<Scale X="8" Y="4" Z="8"/>
|
||||||
@@ -1054,8 +1048,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="4" Z="0"/>
|
<Position X="0" Y="4" Z="0"/>
|
||||||
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
|
||||||
<Orientation X="0" Y="4.71200037" Z="0"/>
|
<Orientation X="0" Y="4.71200037" Z="0"/>
|
||||||
|
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1078,13 +1072,13 @@
|
|||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
<CapturePointNumber>1</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
|
<c:Team/>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team/>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2" Z="0"/>
|
<Position X="0" Y="2" Z="0"/>
|
||||||
<Scale X="8" Y="4" Z="8"/>
|
<Scale X="8" Y="4" Z="8"/>
|
||||||
@@ -1100,8 +1094,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="4" Z="0"/>
|
<Position X="0" Y="4" Z="0"/>
|
||||||
<Scale X="0.400000006" Y="0.400000006" Z="1"/>
|
|
||||||
<Orientation X="0" Y="4.71200037" Z="0"/>
|
<Orientation X="0" Y="4.71200037" Z="0"/>
|
||||||
|
<Scale X="0.400000006" Y="0.400000006" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1122,13 +1116,13 @@
|
|||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
<CapturePointNumber>2</CapturePointNumber>
|
<CapturePointNumber>2</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
|
<c:Team/>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team/>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2" Z="0"/>
|
<Position X="0" Y="2" Z="0"/>
|
||||||
<Scale X="8" Y="4" Z="8"/>
|
<Scale X="8" Y="4" Z="8"/>
|
||||||
@@ -1144,8 +1138,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="4" Z="0"/>
|
<Position X="0" Y="4" Z="0"/>
|
||||||
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
|
||||||
<Orientation X="0" Y="4.71200037" Z="0"/>
|
<Orientation X="0" Y="4.71200037" Z="0"/>
|
||||||
|
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1168,13 +1162,13 @@
|
|||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
<CapturePointNumber>3</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
|
<c:Team/>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="1" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team/>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2" Z="0"/>
|
<Position X="0" Y="2" Z="0"/>
|
||||||
<Scale X="8" Y="4" Z="8"/>
|
<Scale X="8" Y="4" Z="8"/>
|
||||||
@@ -1190,8 +1184,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="4" Z="0"/>
|
<Position X="0" Y="4" Z="0"/>
|
||||||
<Scale X="0.400000006" Y="0.400000006" Z="1"/>
|
|
||||||
<Orientation X="0" Y="4.71200037" Z="0"/>
|
<Orientation X="0" Y="4.71200037" Z="0"/>
|
||||||
|
<Scale X="0.400000006" Y="0.400000006" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1212,23 +1206,23 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
|
<CaptureTimer>-15</CaptureTimer>
|
||||||
<HomePointForTeam>
|
<HomePointForTeam>
|
||||||
<Blue/>
|
<Blue/>
|
||||||
</HomePointForTeam>
|
</HomePointForTeam>
|
||||||
<CaptureTimer>-15</CaptureTimer>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
<CapturePointNumber>4</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Blue/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="1" G="0" R="0"/>
|
<Color A="0.300000012" B="1" G="0" R="0"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2" Z="0"/>
|
<Position X="0" Y="2" Z="0"/>
|
||||||
<Scale X="8" Y="4" Z="8"/>
|
<Scale X="8" Y="4" Z="8"/>
|
||||||
@@ -1244,8 +1238,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="4" Z="0"/>
|
<Position X="0" Y="4" Z="0"/>
|
||||||
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
|
||||||
<Orientation X="0" Y="4.71200037" Z="0"/>
|
<Orientation X="0" Y="4.71200037" Z="0"/>
|
||||||
|
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1285,8 +1279,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="13.1000004" Z="0"/>
|
<Position X="0" Y="13.1000004" Z="0"/>
|
||||||
<Scale X="2" Y="2" Z="2"/>
|
|
||||||
<Orientation X="0" Y="3.08300018" Z="0"/>
|
<Orientation X="0" Y="3.08300018" Z="0"/>
|
||||||
|
<Scale X="2" Y="2" Z="2"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1382,7 +1376,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1687.52917" Z="0"/>
|
<Orientation X="0" Y="1739.14307" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1391,7 +1385,7 @@
|
|||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
||||||
<TimeSinceDeath>2.5396116058983438</TimeSinceDeath>
|
<TimeSinceDeath>1.5712751414989441</TimeSinceDeath>
|
||||||
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
||||||
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
@@ -1438,7 +1432,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1687.52917" Z="0"/>
|
<Orientation X="0" Y="1739.14307" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1447,7 +1441,7 @@
|
|||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<Velocity X="0.5" Y="1" Z="0"/>
|
<Velocity X="0.5" Y="1" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="0.900000036" Z="0"/>
|
<ExplosionOrigin X="0" Y="0.900000036" Z="0"/>
|
||||||
<TimeSinceDeath>1.5396208215609732</TimeSinceDeath>
|
<TimeSinceDeath>0.85439856235552725</TimeSinceDeath>
|
||||||
</c:ExplosionEffect>
|
</c:ExplosionEffect>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
|
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
|
||||||
@@ -1490,22 +1484,20 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1687.52917" Z="0"/>
|
<Orientation X="0" Y="1739.14307" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="Asset">
|
<Entity name="Asset">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Animation>
|
<c:Animation>
|
||||||
<AnimationName1></AnimationName1>
|
<AnimationName></AnimationName>
|
||||||
<AnimationName2></AnimationName2>
|
|
||||||
<AnimationName3></AnimationName3>
|
|
||||||
</c:Animation>
|
</c:Animation>
|
||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0.300000012" Y="2" Z="0"/>
|
<Velocity X="0.300000012" Y="2" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="1.30000007" Z="-0.200000003"/>
|
<ExplosionOrigin X="0" Y="1.30000007" Z="-0.200000003"/>
|
||||||
<TimeSinceDeath>1.5396208215609732</TimeSinceDeath>
|
<TimeSinceDeath>0.85439856235552725</TimeSinceDeath>
|
||||||
<EndColor A="0" B="0.333333343" G="0.933333337" R="3.92156863"/>
|
<EndColor A="0" B="0.333333343" G="0.933333337" R="3.92156863"/>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
</c:ExplosionEffect>
|
</c:ExplosionEffect>
|
||||||
@@ -1550,7 +1542,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1695.30933" Z="0"/>
|
<Orientation X="0" Y="1746.92322" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1560,7 +1552,7 @@
|
|||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0" Y="0.699999988" Z="0"/>
|
<Velocity X="0" Y="0.699999988" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="-1.10000002" Z="0"/>
|
<ExplosionOrigin X="0" Y="-1.10000002" Z="0"/>
|
||||||
<TimeSinceDeath>4.4522528839264339</TimeSinceDeath>
|
<TimeSinceDeath>7.5223549108000043</TimeSinceDeath>
|
||||||
<ExplosionDuration>10</ExplosionDuration>
|
<ExplosionDuration>10</ExplosionDuration>
|
||||||
<EndColor A="1" B="0" G="0" R="1"/>
|
<EndColor A="1" B="0" G="0" R="1"/>
|
||||||
<RandomnessScalar>3</RandomnessScalar>
|
<RandomnessScalar>3</RandomnessScalar>
|
||||||
@@ -1608,7 +1600,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="1293.42383" Z="0"/>
|
<Orientation X="0" Y="1345.03772" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1618,7 +1610,7 @@
|
|||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="6" Y="0.100000001" Z="0"/>
|
<Velocity X="6" Y="0.100000001" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="-10" Z="0"/>
|
<ExplosionOrigin X="0" Y="-10" Z="0"/>
|
||||||
<TimeSinceDeath>3.2362842141074992</TimeSinceDeath>
|
<TimeSinceDeath>0.39702717854592606</TimeSinceDeath>
|
||||||
<ExponentialAccelaration>true</ExponentialAccelaration>
|
<ExponentialAccelaration>true</ExponentialAccelaration>
|
||||||
<ExplosionDuration>5</ExplosionDuration>
|
<ExplosionDuration>5</ExplosionDuration>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
@@ -1655,8 +1647,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="7.57566977" Y="8.63030624" Z="-0.00154382922"/>
|
<Position X="7.57566977" Y="8.63030624" Z="-0.00154382922"/>
|
||||||
<Scale X="2" Y="2" Z="1"/>
|
|
||||||
<Orientation X="0" Y="1.5710001" Z="0"/>
|
<Orientation X="0" Y="1.5710001" Z="0"/>
|
||||||
|
<Scale X="2" Y="2" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1701,6 +1693,11 @@
|
|||||||
<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"/>
|
||||||
</c:AABB>
|
</c:AABB>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Red/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
<c:Collidable/>
|
<c:Collidable/>
|
||||||
<c:Health/>
|
<c:Health/>
|
||||||
<c:Physics>
|
<c:Physics>
|
||||||
@@ -1711,11 +1708,6 @@
|
|||||||
<MovementSpeed>5</MovementSpeed>
|
<MovementSpeed>5</MovementSpeed>
|
||||||
<CurrentWeapon></CurrentWeapon>
|
<CurrentWeapon></CurrentWeapon>
|
||||||
</c:Player>
|
</c:Player>
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-1.56735241" Y="0.527999997" Z="0.929739475"/>
|
<Position X="-1.56735241" Y="0.527999997" Z="0.929739475"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -1738,8 +1730,8 @@
|
|||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.100000001" Y="0.248000011" Z="-0.248000011"/>
|
<Position X="0.100000001" Y="0.248000011" Z="-0.248000011"/>
|
||||||
<Scale X="0.100000001" Y="0.113000005" Z="0.5"/>
|
|
||||||
<Orientation X="0" Y="3.14199996" Z="0"/>
|
<Orientation X="0" Y="3.14199996" Z="0"/>
|
||||||
|
<Scale X="0.100000001" Y="0.113000005" Z="0.5"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1777,8 +1769,8 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.383000016" Y="-0.185000002" Z="0"/>
|
<Position X="-0.383000016" Y="-0.185000002" Z="0"/>
|
||||||
<Scale X="0.150000006" Y="0.150000006" Z="0.150000006"/>
|
|
||||||
<Orientation X="0" Y="0.594000041" Z="0"/>
|
<Orientation X="0" Y="0.594000041" Z="0"/>
|
||||||
|
<Scale X="0.150000006" Y="0.150000006" Z="0.150000006"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1790,8 +1782,8 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.200000003"/>
|
<Position X="0" Y="0" Z="0.200000003"/>
|
||||||
<Scale X="0.00600000005" Y="1" Z="0.00600000005"/>
|
|
||||||
<Orientation X="1.57000005" Y="0" Z="0"/>
|
<Orientation X="1.57000005" Y="0" Z="0"/>
|
||||||
|
<Scale X="0.00600000005" Y="1" Z="0.00600000005"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1801,7 +1793,7 @@
|
|||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
||||||
<TimeSinceDeath>2.5396116058983438</TimeSinceDeath>
|
<TimeSinceDeath>1.5712751414989441</TimeSinceDeath>
|
||||||
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
||||||
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
@@ -1845,9 +1837,7 @@
|
|||||||
<Entity name="PlayerModel">
|
<Entity name="PlayerModel">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Animation>
|
<c:Animation>
|
||||||
<AnimationName1></AnimationName1>
|
<AnimationName></AnimationName>
|
||||||
<AnimationName2></AnimationName2>
|
|
||||||
<AnimationName3></AnimationName3>
|
|
||||||
</c:Animation>
|
</c:Animation>
|
||||||
<c:Shielded/>
|
<c:Shielded/>
|
||||||
<c:HiddenForLocalPlayer/>
|
<c:HiddenForLocalPlayer/>
|
||||||
@@ -1915,8 +1905,8 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-4.95900011" Y="0" Z="1.29897511"/>
|
<Position X="-4.95900011" Y="0" Z="1.29897511"/>
|
||||||
<Scale X="5" Y="5" Z="5"/>
|
|
||||||
<Orientation X="0.407000005" Y="1.68700004" Z="0"/>
|
<Orientation X="0.407000005" Y="1.68700004" Z="0"/>
|
||||||
|
<Scale X="5" Y="5" Z="5"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1991,20 +1981,20 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>2</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<CapturePointNumber>2</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>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<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"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -2025,20 +2015,20 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<CapturePointNumber>3</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>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<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"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -2059,21 +2049,21 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</c:CapturePointHUD>
|
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Percentage>1</Percentage>
|
<Percentage>1</Percentage>
|
||||||
<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>
|
||||||
|
<CapturePointNumber>4</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>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<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"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -2094,20 +2084,20 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD>
|
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
|
||||||
</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>
|
||||||
|
<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>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<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"/>
|
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -2128,19 +2118,19 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="ProgressionHexagon">
|
<Entity name="ProgressionHexagon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointHUD/>
|
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Percentage>1</Percentage>
|
<Percentage>1</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/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00999999978"/>
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
|
||||||
<Orientation X="0" Y="0" Z="4.71238899"/>
|
<Orientation X="0" Y="0" Z="4.71238899"/>
|
||||||
|
<Scale X="0.800000012" Y="0.800000012" Z="0.800000012"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -2166,14 +2156,24 @@
|
|||||||
<Position X="0" Y="1.32321239" Z="0"/>
|
<Position X="0" Y="1.32321239" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children>
|
||||||
|
<Entity name="Spawner">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile></EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="MenuOirign">
|
<Entity name="MenuOirign">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-23.0533829" Y="0.938369572" Z="14.068408"/>
|
<Position X="0" Y="0.600000024" Z="-1.86100006"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -2374,7 +2374,9 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/ErrorTexture.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/ErrorTexture.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-1"/>
|
<Position X="0" Y="0" Z="-1"/>
|
||||||
@@ -2387,6 +2389,7 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
|
<Visible>false</Visible>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0.375197947" Z="0.0627754927"/>
|
<Position X="0" Y="0.375197947" Z="0.0627754927"/>
|
||||||
@@ -2400,6 +2403,7 @@
|
|||||||
<Content>1920x1080</Content>
|
<Content>1920x1080</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
<Color A="1" B="1" G="0.847058833" R="0"/>
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
<Visible>false</Visible>
|
||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
@@ -2416,6 +2420,7 @@
|
|||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
|
<Visible>false</Visible>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0.199327558" Z="0.0627754927"/>
|
<Position X="0" Y="0.199327558" Z="0.0627754927"/>
|
||||||
@@ -2429,6 +2434,7 @@
|
|||||||
<Content>1280x720</Content>
|
<Content>1280x720</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
<Color A="1" B="1" G="0.847058833" R="0"/>
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
<Visible>false</Visible>
|
||||||
</c:Text>
|
</c:Text>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
@@ -2540,20 +2546,20 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="CapturePointArrow">
|
<Entity name="CapturePointArrow">
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Red/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
<c:CapturePointArrowHUD>
|
<c:CapturePointArrowHUD>
|
||||||
<CurrentTarget>2</CurrentTarget>
|
<CurrentTarget>2</CurrentTarget>
|
||||||
</c:CapturePointArrowHUD>
|
</c:CapturePointArrowHUD>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
|
<Orientation X="-0.26696983" Y="-0.146981478" Z="0"/>
|
||||||
<Scale X="10.7000008" Y="1.4000001" Z="5.30000019"/>
|
<Scale X="10.7000008" Y="1.4000001" Z="5.30000019"/>
|
||||||
<Orientation X="-0.648448348" Y="-0.417814791" Z="0"/>
|
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
@@ -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"/>
|
||||||
|
|||||||
@@ -21,11 +21,11 @@
|
|||||||
<Entity name="ScoreBoard_Spectators">
|
<Entity name="ScoreBoard_Spectators">
|
||||||
<Components>
|
<Components>
|
||||||
<c:ScoreScreen>
|
<c:ScoreScreen>
|
||||||
<Offset X="0" Y="-1" Z="0"/>
|
<Offset X="0" Y="-2" Z="0"/>
|
||||||
</c:ScoreScreen>
|
</c:ScoreScreen>
|
||||||
<c:Team/>
|
<c:Team/>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="-14" Z="1.5"/>
|
<Position X="0" Y="-15.7886772" Z="1.5"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity name="ServerIdentity_Origin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="ServerIdentity">
|
||||||
|
<Components>
|
||||||
|
<c:ServerIdentity/>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="IP">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>123.123.123.123</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:TextFieldReader>
|
||||||
|
<ParentEntityName>ServerIdentity</ParentEntityName>
|
||||||
|
<ComponentType>ServerIdentity</ComponentType>
|
||||||
|
<Field>IP</Field>
|
||||||
|
</c:TextFieldReader>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.200000003" Y="-0.100000001" Z="0"/>
|
||||||
|
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Port">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>65999</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:TextFieldReader>
|
||||||
|
<ParentEntityName>ServerIdentity</ParentEntityName>
|
||||||
|
<ComponentType>ServerIdentity</ComponentType>
|
||||||
|
<Field>Port</Field>
|
||||||
|
</c:TextFieldReader>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="4.70000029" Y="-0.100000001" Z="0"/>
|
||||||
|
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ServerName">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>UnkownServer</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:TextFieldReader>
|
||||||
|
<ParentEntityName>ServerIdentity</ParentEntityName>
|
||||||
|
<ComponentType>ServerIdentity</ComponentType>
|
||||||
|
<Field>ServerName</Field>
|
||||||
|
</c:TextFieldReader>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-8.60000038" Y="-0.100000001" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="PlayersConnected">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>0</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
|
<Alignment>
|
||||||
|
<Left/>
|
||||||
|
</Alignment>
|
||||||
|
</c:Text>
|
||||||
|
<c:TextFieldReader>
|
||||||
|
<ParentEntityName>ServerIdentity</ParentEntityName>
|
||||||
|
<ComponentType>ServerIdentity</ComponentType>
|
||||||
|
<Field>PlayersConnected</Field>
|
||||||
|
</c:TextFieldReader>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="7.80000019" Y="0" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ServerIdentityConnect">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.100000001" Y="0.496000022" Z="0"/>
|
||||||
|
<Scale X="18.1000004" Y="2" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity name="ServerList" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:ServerList>
|
||||||
|
<Offset X="0" Y="-2.20000005" Z="0"/>
|
||||||
|
</c:ServerList>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="Identities_Origin">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.181182757" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="ServerIdentitySpawner">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/ServerIdentity.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.0149999997" Y="0.0149999997" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Background">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="0" G="0" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.300000012" Y="0.5" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="RefreshButton">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:InputCmdButton>
|
||||||
|
<Command>RefreshServerList</Command>
|
||||||
|
<PressValue>1</PressValue>
|
||||||
|
</c:InputCmdButton>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.120867848" Y="0.222928733" Z="0.0189953279"/>
|
||||||
|
<Scale X="0.0149999997" Y="0.0149999997" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="RefreshIcon">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Icons/rotate.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<Color A="1" B="1" G="0" R="1"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.245000005" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.690000057" Y="1.37600005" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -0,0 +1,336 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
<Color A="1" B="0.980392158" G="1" R="1"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.100000001" Y="0" Z="0"/>
|
||||||
|
<Scale X="50" Y="1" Z="51.1000023"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="1"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-14.500001" Y="1.50000012" Z="16.9222012"/>
|
||||||
|
<Scale X="14.4000006" Y="5.30000019" Z="4.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:DirectionalLight/>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="4.38500023" Y="0" Z="0.458000034"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
<Color A="1" B="1" G="0" R="0"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-14.500001" Y="1.50000012" Z="-17.6888409"/>
|
||||||
|
<Scale X="14.4000006" Y="5.30000019" Z="4.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="1"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="12.1000004" Y="1.50000012" Z="16.9222012"/>
|
||||||
|
<Scale X="14.4000006" Y="5.30000019" Z="4.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
<Color A="1" B="1" G="0" R="0"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="12.1228638" Y="1.50000012" Z="-17.9642811"/>
|
||||||
|
<Scale X="14.4000006" Y="5.30000019" Z="4.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Red/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
|
<c:PlayerSpawn/>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:SpawnPoint/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-20.6000004" Y="1" Z="21.7150002"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:PlayerSpawn/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-12.2000008" Y="1" Z="21.5000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="15.4000006" Y="1" Z="21.6000004"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:SpawnPoint/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="10.500001" Y="0" Z="21.9000015"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Blue/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
|
<c:PlayerSpawn/>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:SpawnPoint/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-9.70000076" Y="1" Z="-23.4000015"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:SpawnPoint/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-18.8000011" Y="1" Z="-22.3000011"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:SpawnPoint/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="8.10000038" Y="1" Z="-23.2000008"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:SpawnPoint/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="16.2000008" Y="1" Z="-23.2000008"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
<Color A="1" B="39.2156868" G="0" R="3.13725495"/>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="-70" Y="-70" Z="-70"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="-">
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:CapturePoint>
|
||||||
|
<CaptureTimer>15</CaptureTimer>
|
||||||
|
<HomePointForTeam>
|
||||||
|
<Red/>
|
||||||
|
</HomePointForTeam>
|
||||||
|
</c:CapturePoint>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Red/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
|
<c:Trigger/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-4.10000038"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Red">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="2.70000005" Y="3.4000001" Z="4.60000038"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Blue">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="3.4000001" Y="4.70000029" Z="0.700000048"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Spectator">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="1" Y="5.70000029" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="-">
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:CapturePoint>
|
||||||
|
<CaptureTimer>-15</CaptureTimer>
|
||||||
|
<HomePointForTeam>
|
||||||
|
<Blue/>
|
||||||
|
</HomePointForTeam>
|
||||||
|
<CapturePointNumber>1</CapturePointNumber>
|
||||||
|
</c:CapturePoint>
|
||||||
|
<c:Team>
|
||||||
|
<Team>
|
||||||
|
<Blue/>
|
||||||
|
</Team>
|
||||||
|
</c:Team>
|
||||||
|
<c:Trigger/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="4"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Red">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="4.4000001" Y="2" Z="3.70000029"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Blue">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="2.95000005" Z="0"/>
|
||||||
|
<Scale X="4.70000029" Y="3.60000014" Z="3.60000014"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Spectator">
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="5.50000048" Y="2.5" Z="3.80000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -68,6 +68,9 @@
|
|||||||
<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:element ref="c:ServerIdentity" minOccurs="0"/>
|
||||||
|
<xs:element ref="c:ServerList" minOccurs="0"/>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#version 430
|
||||||
|
|
||||||
|
layout (binding = 0) uniform sampler2D Texture0;
|
||||||
|
layout (binding = 1)uniform sampler2D Texture1;
|
||||||
|
|
||||||
|
|
||||||
|
in VertexData{
|
||||||
|
vec2 TextureCoordinate;
|
||||||
|
}Input;
|
||||||
|
|
||||||
|
out vec4 sceneColor;
|
||||||
|
out vec4 bloomColor;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 texel0 = texture(Texture0, Input.TextureCoordinate);
|
||||||
|
vec4 texel1 = texture(Texture1, Input.TextureCoordinate);
|
||||||
|
float texel1_total = (texel1.r + texel1.g + texel1.b) * texel1.a;
|
||||||
|
texel1_total = ceil(clamp(texel1_total, 0, 1));
|
||||||
|
|
||||||
|
vec4 result0 = texel0 * (1.0 - texel1_total);
|
||||||
|
vec4 result1 = texel1 * texel1_total;
|
||||||
|
|
||||||
|
//vec4 final = texel1 * texel1_total + texel0 * (1.0 - texel1_total);
|
||||||
|
//float res = 1.0 - texel1_total;
|
||||||
|
//vec4 final = vec4(texel1_total, texel1_total, texel1_total, 1.0);
|
||||||
|
sceneColor = result1;
|
||||||
|
bloomColor = vec4(0.0, 0.0, 0.0, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#version 430
|
||||||
|
|
||||||
|
layout (location = 0) in vec3 Position;
|
||||||
|
|
||||||
|
out VertexData{
|
||||||
|
vec2 TextureCoordinate;
|
||||||
|
}Output;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
gl_Position = vec4(Position, 1.0);
|
||||||
|
Output.TextureCoordinate = (vec2(Position) + 1) / 2;
|
||||||
|
}
|
||||||
@@ -171,7 +171,7 @@ void main()
|
|||||||
vec4 color_result = mix((Color * diffuseTexel * DiffuseColor), Input.ExplosionColor, Input.ExplosionPercentageElapsed);
|
vec4 color_result = mix((Color * diffuseTexel * DiffuseColor), Input.ExplosionColor, Input.ExplosionPercentageElapsed);
|
||||||
color_result = color_result * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel));
|
color_result = color_result * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel));
|
||||||
float specularResult = (specularTexel.r + specularTexel.g + specularTexel.b)/3.0;
|
float specularResult = (specularTexel.r + specularTexel.g + specularTexel.b)/3.0;
|
||||||
vec4 reflectionTotal = reflectionColor * (1-specularTexel.a) * color_result.a;
|
vec4 reflectionTotal = reflectionColor * (1-specularTexel.a) * color_result.a * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel));
|
||||||
color_result = color_result * clamp(1/specularTexel.a, 0, 1) + reflectionTotal;
|
color_result = color_result * clamp(1/specularTexel.a, 0, 1) + reflectionTotal;
|
||||||
//vec4 color_result = (DiffuseColor + Input.ExplosionColor) * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel)) * diffuseTexel * Color;
|
//vec4 color_result = (DiffuseColor + Input.ExplosionColor) * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel)) * diffuseTexel * Color;
|
||||||
|
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ void main()
|
|||||||
vec4 color_result = mix((Color * diffuseTexel * DiffuseColor), Input.ExplosionColor, Input.ExplosionPercentageElapsed);
|
vec4 color_result = mix((Color * diffuseTexel * DiffuseColor), Input.ExplosionColor, Input.ExplosionPercentageElapsed);
|
||||||
color_result = color_result * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel));
|
color_result = color_result * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel));
|
||||||
float specularResult = (specularTexel.r + specularTexel.g + specularTexel.b)/3.0;
|
float specularResult = (specularTexel.r + specularTexel.g + specularTexel.b)/3.0;
|
||||||
vec4 reflectionTotal = reflectionColor * (1-specularTexel.a) * color_result.a;
|
vec4 reflectionTotal = reflectionColor * (1-specularTexel.a) * color_result.a * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel));
|
||||||
color_result = color_result * clamp(1/specularTexel.a, 0, 1) + reflectionTotal;
|
color_result = color_result * clamp(1/specularTexel.a, 0, 1) + reflectionTotal;
|
||||||
//vec4 color_result = (DiffuseColor + Input.ExplosionColor) * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel)) * diffuseTexel * Color;
|
//vec4 color_result = (DiffuseColor + Input.ExplosionColor) * (totalLighting.Diffuse + (totalLighting.Specular * specularTexel)) * diffuseTexel * Color;
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,15 @@ uniform float weight[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.01
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
|
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
|
||||||
vec3 result = texture(Texture, Input.TextureCoordinate).rgb * weight[0];
|
vec3 center = texture(Texture, Input.TextureCoordinate).rgb;
|
||||||
|
vec3 result = center * weight[0];
|
||||||
for(int i = 1; i < 5; ++i) {
|
for(int i = 1; i < 5; ++i) {
|
||||||
result += texture(Texture, Input.TextureCoordinate + vec2(tex_offset.x * i, 0.0)).rgb * weight[i];
|
vec4 eastFragments = texture(Texture, Input.TextureCoordinate + vec2(tex_offset.x * i, 0.0));
|
||||||
result += texture(Texture, Input.TextureCoordinate - vec2(tex_offset.x * i, 0.0)).rgb * weight[i];
|
vec4 westFragments = texture(Texture, Input.TextureCoordinate - vec2(tex_offset.x * i, 0.0));
|
||||||
|
result += eastFragments.rgb * weight[i] * eastFragments.a;
|
||||||
|
result += westFragments.rgb * weight[i] * westFragments.a;
|
||||||
|
result += center * weight[i] * (1.0 - westFragments.a);
|
||||||
|
result += center * weight[i] * (1.0 - eastFragments.a);
|
||||||
}
|
}
|
||||||
fragmentColor = vec4(result, 1.0);
|
fragmentColor = vec4(result, 1.0);
|
||||||
}
|
}
|
||||||
@@ -14,11 +14,15 @@ uniform float weight[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.01
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
|
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
|
||||||
vec3 result = texture(Texture, Input.TextureCoordinate).rgb * weight[0];
|
vec3 center = texture(Texture, Input.TextureCoordinate).rgb;
|
||||||
|
vec3 result = center * weight[0];
|
||||||
for(int i = 1; i < 5; ++i) {
|
for(int i = 1; i < 5; ++i) {
|
||||||
result += texture(Texture, Input.TextureCoordinate + vec2(0.0, tex_offset.y * i)).rgb * weight[i];
|
vec4 northFragments = texture(Texture, Input.TextureCoordinate + vec2(0.0, tex_offset.y * i));
|
||||||
result += texture(Texture, Input.TextureCoordinate - vec2(0.0, tex_offset.y * i)).rgb * weight[i];
|
vec4 southFragments = texture(Texture, Input.TextureCoordinate - vec2(0.0, tex_offset.y * i));
|
||||||
|
result += northFragments.rgb * weight[i] * northFragments.a;
|
||||||
|
result += southFragments.rgb * weight[i] * southFragments.a;
|
||||||
|
result += center * weight[i] * (1.0 - northFragments.a);
|
||||||
|
result += center * weight[i] * (1.0 - southFragments.a);
|
||||||
}
|
}
|
||||||
fragmentColor = vec4(result, 1.0);
|
fragmentColor = vec4(result, 1.0);
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,8 @@ void main()
|
|||||||
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
||||||
|
|
||||||
//bloomColor = vec4(clamp((glowTexel.xyz*3) - 1.0, 0, 100), 1.0);
|
//bloomColor = vec4(clamp((glowTexel.xyz*3) - 1.0, 0, 100), 1.0);
|
||||||
bloomColor = vec4(1.0, 1.0, 1.0, 0.0);
|
bloomColor = vec4(max(color_result.xyz - 1.0, 0.0), clamp(color_result.a, 0, 1));
|
||||||
|
//bloomColor = vec4(1.0, 1.0, 1.0, 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 = LocalPlayer.ID;
|
eInputCmd.PlayerID = -1;
|
||||||
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 = LocalPlayer.ID;
|
eInputCmd.PlayerID = -1;
|
||||||
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"];
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
#include "GUI/MainMenuSystem.h"
|
|
||||||
|
|
||||||
MainMenuSystem::MainMenuSystem(SystemParams params, IRenderer* renderer)
|
|
||||||
: System(params)
|
|
||||||
, ImpureSystem()
|
|
||||||
, m_Renderer(renderer)
|
|
||||||
{
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EPressed, &MainMenuSystem::OnButtonPress);
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EReleased, &MainMenuSystem::OnButtonRelease);
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EClicked, &MainMenuSystem::OnButtonClick);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainMenuSystem::Update(double dt)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MainMenuSystem::OnButtonClick(const Events::ButtonClicked& e)
|
|
||||||
{
|
|
||||||
if(e.EntityName == "Play") {
|
|
||||||
//Run play code
|
|
||||||
} else if(e.EntityName == "Connect") {
|
|
||||||
//Run connect code
|
|
||||||
} else if(e.EntityName == "Host") {
|
|
||||||
//Run host code
|
|
||||||
} else if(e.EntityName == "Quit") {
|
|
||||||
printf("No, you stay");
|
|
||||||
} else if (e.EntityName == "Res1080") {
|
|
||||||
glfwSetWindowSize(m_Renderer->Window(), 1920, 1080);
|
|
||||||
printf("\n1080");
|
|
||||||
} else if (e.EntityName == "Res720") {
|
|
||||||
glfwSetWindowSize(m_Renderer->Window(), 1280, 720);
|
|
||||||
glViewport(0, 0, 1280, 720);
|
|
||||||
printf("\n720");
|
|
||||||
} else if (e.EntityName == "Res480") {
|
|
||||||
glfwSetWindowSize(m_Renderer->Window(), 854, 480);
|
|
||||||
glViewport(0, 0, 854, 480);
|
|
||||||
printf("\n480");
|
|
||||||
} else if (e.EntityName == "FullScreen") {
|
|
||||||
printf("No fullscreen for now");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MainMenuSystem::OnButtonRelease(const Events::ButtonReleased& e)
|
|
||||||
{
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MainMenuSystem::OnButtonPress(const Events::ButtonPressed& e)
|
|
||||||
{
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -82,7 +82,10 @@ void Client::Update()
|
|||||||
if (m_SearchingForServers) {
|
if (m_SearchingForServers) {
|
||||||
if (m_SearchingTime < (1000* (std::clock() - m_StartSearchTime) / (double)CLOCKS_PER_SEC)) {
|
if (m_SearchingTime < (1000* (std::clock() - m_StartSearchTime) / (double)CLOCKS_PER_SEC)) {
|
||||||
m_SearchingForServers = false;
|
m_SearchingForServers = false;
|
||||||
displayServerlist();
|
//displayServerlist();
|
||||||
|
Events::DisplayServerlist e;
|
||||||
|
e.Serverlist = m_Serverlist;
|
||||||
|
m_EventBroker->Publish(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -463,12 +466,6 @@ void Client::disconnect()
|
|||||||
|
|
||||||
bool Client::OnInputCommand(const Events::InputCommand & e)
|
bool Client::OnInputCommand(const Events::InputCommand & e)
|
||||||
{
|
{
|
||||||
// TEMP
|
|
||||||
if (e.Command == "SearchForServers" && e.Value > 0) {
|
|
||||||
Events::SearchForServers e;
|
|
||||||
m_EventBroker->Publish(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e.PlayerID != -1) {
|
if (e.PlayerID != -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -553,7 +550,6 @@ bool Client::OnSearchForServers(const Events::SearchForServers& e)
|
|||||||
m_SearchingForServers = true;
|
m_SearchingForServers = true;
|
||||||
m_StartSearchTime = std::clock();
|
m_StartSearchTime = std::clock();
|
||||||
m_Serverlist.clear();
|
m_Serverlist.clear();
|
||||||
LOG_INFO("Searching for LAN servers...\n");
|
|
||||||
Packet packet(MessageType::ServerlistRequest);
|
Packet packet(MessageType::ServerlistRequest);
|
||||||
m_ServerlistRequest.Broadcast(packet, 13); // TODO: Config
|
m_ServerlistRequest.Broadcast(packet, 13); // TODO: Config
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ void Server::unreliableBroadcast(Packet& packet)
|
|||||||
{
|
{
|
||||||
for (auto& kv : m_ConnectedPlayers) {
|
for (auto& kv : m_ConnectedPlayers) {
|
||||||
packet.ChangePacketID(kv.second.PacketID);
|
packet.ChangePacketID(kv.second.PacketID);
|
||||||
// m_Unreliable.Send(packet, kv.second);
|
// m_Unreliable.Send(packet, kv.second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -641,21 +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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerID Server::getPlayerIDFromEndpoint()
|
PlayerID Server::getPlayerIDFromEndpoint()
|
||||||
@@ -674,7 +660,7 @@ PlayerID Server::getPlayerIDFromEndpoint()
|
|||||||
|
|
||||||
PlayerID Server::getPlayerIDFromEntityID(EntityID entityID)
|
PlayerID Server::getPlayerIDFromEntityID(EntityID entityID)
|
||||||
{
|
{
|
||||||
for(auto& kv : m_ConnectedPlayers) {
|
for (auto& kv : m_ConnectedPlayers) {
|
||||||
if (entityID == kv.second.EntityID) {
|
if (entityID == kv.second.EntityID) {
|
||||||
return kv.first;
|
return kv.first;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,282 @@
|
|||||||
|
#include "Rendering/BlurHUD.h"
|
||||||
|
|
||||||
|
BlurHUD::BlurHUD(IRenderer* renderer)
|
||||||
|
: m_Renderer(renderer)
|
||||||
|
{
|
||||||
|
InitializeShaderPrograms();
|
||||||
|
InitializeBuffers();
|
||||||
|
InitializeTextures();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlurHUD::InitializeTextures()
|
||||||
|
{
|
||||||
|
m_BlackTexture = CommonFunctions::LoadTexture("Textures/Core/Black.png", false);
|
||||||
|
m_ScreenQuad = ResourceManager::Load<Model>("Models/Core/ScreenQuad.mesh");
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlurHUD::InitializeShaderPrograms()
|
||||||
|
{
|
||||||
|
m_GaussianProgram_horiz = ResourceManager::Load<ShaderProgram>("##GaussianProgramHoriz");
|
||||||
|
if (m_GaussianProgram_horiz->GetHandle() == 0) {
|
||||||
|
m_GaussianProgram_horiz->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/Gaussian_horiz.vert.glsl")));
|
||||||
|
m_GaussianProgram_horiz->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/Gaussian_horiz.frag.glsl")));
|
||||||
|
m_GaussianProgram_horiz->Compile();
|
||||||
|
m_GaussianProgram_horiz->BindFragDataLocation(0, "fragmentColor");
|
||||||
|
m_GaussianProgram_horiz->Link();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_GaussianProgram_vert = ResourceManager::Load<ShaderProgram>("##GaussianProgramVert");
|
||||||
|
if (m_GaussianProgram_vert->GetHandle() == 0) {
|
||||||
|
m_GaussianProgram_vert->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/Gaussian_vert.vert.glsl")));
|
||||||
|
m_GaussianProgram_vert->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/Gaussian_vert.frag.glsl")));
|
||||||
|
m_GaussianProgram_vert->Compile();
|
||||||
|
m_GaussianProgram_vert->BindFragDataLocation(0, "fragmentColor");
|
||||||
|
m_GaussianProgram_vert->Link();
|
||||||
|
}
|
||||||
|
m_FillDepthStencilProgram = ResourceManager::Load<ShaderProgram>("#FillDepthStencilProgram");
|
||||||
|
if (m_FillDepthStencilProgram->GetHandle() == 0) {
|
||||||
|
m_FillDepthStencilProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/FillDepthBuffer.vert.glsl")));
|
||||||
|
m_FillDepthStencilProgram->Compile();
|
||||||
|
m_FillDepthStencilProgram->Link();
|
||||||
|
}
|
||||||
|
m_CombineTexturesProgram = ResourceManager::Load<ShaderProgram>("#CombineTexturesProgram");
|
||||||
|
if (m_CombineTexturesProgram->GetHandle() == 0) {
|
||||||
|
m_CombineTexturesProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/CombineTexture.vert.glsl")));
|
||||||
|
m_CombineTexturesProgram->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/CombineTexture.frag.glsl")));
|
||||||
|
m_CombineTexturesProgram->Compile();
|
||||||
|
m_CombineTexturesProgram->BindFragDataLocation(0, "sceneColor");
|
||||||
|
m_CombineTexturesProgram->BindFragDataLocation(1, "bloomColor");
|
||||||
|
m_CombineTexturesProgram->Link();
|
||||||
|
}
|
||||||
|
GLERROR("Creating DepthFill program");
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlurHUD::InitializeBuffers()
|
||||||
|
{
|
||||||
|
glm::vec2 res = glm::vec2(m_Renderer->GetViewportSize().Width, m_Renderer->GetViewportSize().Height);
|
||||||
|
glm::vec2 res2 = glm::vec2(m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality);
|
||||||
|
|
||||||
|
|
||||||
|
CommonFunctions::GenerateTexture(&m_DepthStencil_horiz, GL_CLAMP_TO_BORDER, GL_NEAREST,
|
||||||
|
res2, GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8);
|
||||||
|
CommonFunctions::GenerateTexture(&m_GaussianTexture_horiz, GL_CLAMP_TO_EDGE, GL_NEAREST,
|
||||||
|
res2, GL_RGBA16F, GL_RGBA, GL_FLOAT);
|
||||||
|
|
||||||
|
if (m_GaussianFrameBuffer_horiz.GetHandle() == 0) {
|
||||||
|
m_GaussianFrameBuffer_horiz.AddResource(std::shared_ptr<BufferResource>(new Texture2D(&m_DepthStencil_horiz, GL_DEPTH_STENCIL_ATTACHMENT)));
|
||||||
|
m_GaussianFrameBuffer_horiz.AddResource(std::shared_ptr<BufferResource>(new Texture2D(&m_GaussianTexture_horiz, GL_COLOR_ATTACHMENT0)));
|
||||||
|
}
|
||||||
|
m_GaussianFrameBuffer_horiz.Generate();
|
||||||
|
|
||||||
|
CommonFunctions::GenerateTexture(&m_DepthStencil_vert, GL_CLAMP_TO_BORDER, GL_NEAREST,
|
||||||
|
res2, GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8);
|
||||||
|
CommonFunctions::GenerateTexture(&m_GaussianTexture_vert, GL_CLAMP_TO_EDGE, GL_NEAREST,
|
||||||
|
res2, GL_RGBA16F, GL_RGBA, GL_FLOAT);
|
||||||
|
|
||||||
|
if (m_GaussianFrameBuffer_vert.GetHandle() == 0) {
|
||||||
|
m_GaussianFrameBuffer_vert.AddResource(std::shared_ptr<BufferResource>(new Texture2D(&m_DepthStencil_vert, GL_DEPTH_STENCIL_ATTACHMENT)));
|
||||||
|
m_GaussianFrameBuffer_vert.AddResource(std::shared_ptr<BufferResource>(new Texture2D(&m_GaussianTexture_vert, GL_COLOR_ATTACHMENT0)));
|
||||||
|
}
|
||||||
|
m_GaussianFrameBuffer_vert.Generate();
|
||||||
|
|
||||||
|
CommonFunctions::GenerateTexture(&m_CombinedTexture, GL_CLAMP_TO_BORDER, GL_NEAREST,
|
||||||
|
res, GL_RGB16F, GL_RGB, GL_FLOAT);
|
||||||
|
|
||||||
|
if (m_CombinedTextureBuffer.GetHandle() == 0) {
|
||||||
|
m_CombinedTextureBuffer.AddResource(std::shared_ptr<BufferResource>(new Texture2D(&m_CombinedTexture, GL_COLOR_ATTACHMENT0)));
|
||||||
|
}
|
||||||
|
m_CombinedTextureBuffer.Generate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BlurHUD::ClearBuffer()
|
||||||
|
{
|
||||||
|
GLERROR("PRE");
|
||||||
|
m_GaussianFrameBuffer_horiz.Bind();
|
||||||
|
glClearColor(0.f, 0.f, 0.f, 0.f);
|
||||||
|
glClearStencil(0x00);
|
||||||
|
glStencilMask(~0);
|
||||||
|
glDisable(GL_SCISSOR_TEST);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
||||||
|
m_GaussianFrameBuffer_horiz.Unbind();
|
||||||
|
m_GaussianFrameBuffer_vert.Bind();
|
||||||
|
glClearColor(0.f, 0.f, 0.f, 0.f);
|
||||||
|
glClearStencil(0x00);
|
||||||
|
glStencilMask(~0);
|
||||||
|
glDisable(GL_SCISSOR_TEST);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
||||||
|
m_GaussianFrameBuffer_vert.Unbind();
|
||||||
|
|
||||||
|
m_CombinedTextureBuffer.Bind();
|
||||||
|
glClearColor(0.f, 0.f, 0.f, 0.f);
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
m_CombinedTextureBuffer.Unbind();
|
||||||
|
GLERROR("END");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Returns the finished blurred texture
|
||||||
|
GLuint BlurHUD::Draw(GLuint texture, RenderScene& scene)
|
||||||
|
{
|
||||||
|
GLERROR("DrawBloomPass::Draw: Pre");
|
||||||
|
|
||||||
|
FillStencil(scene);
|
||||||
|
|
||||||
|
RenderState state;
|
||||||
|
state.Disable(GL_BLEND);
|
||||||
|
state.Disable(GL_DEPTH_TEST);
|
||||||
|
state.Disable(GL_CULL_FACE);
|
||||||
|
|
||||||
|
state.Enable(GL_STENCIL_TEST);
|
||||||
|
state.StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
|
||||||
|
state.StencilFunc(GL_EQUAL, 1, 0xFF);
|
||||||
|
state.StencilMask(0x00);
|
||||||
|
state.DepthMask(GL_FALSE);
|
||||||
|
state.Enable(GL_SCISSOR_TEST);
|
||||||
|
|
||||||
|
GLuint shaderHandle_horiz = m_GaussianProgram_horiz->GetHandle();
|
||||||
|
GLuint shaderHandle_vert = m_GaussianProgram_vert->GetHandle();
|
||||||
|
|
||||||
|
//Horizontal pass, first use the given texture then save it to the horizontal framebuffer.
|
||||||
|
m_GaussianFrameBuffer_horiz.Bind();
|
||||||
|
|
||||||
|
glViewport(0, 0, m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality);
|
||||||
|
glScissor(0, 0, m_Renderer->GetViewportSize().Width, m_Renderer->GetViewportSize().Height);
|
||||||
|
|
||||||
|
m_GaussianProgram_horiz->Bind();
|
||||||
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, texture);
|
||||||
|
glBindVertexArray(m_ScreenQuad->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ScreenQuad->ElementBuffer);
|
||||||
|
glDrawElementsBaseVertex(GL_TRIANGLES, m_ScreenQuad->MaterialGroups()[0].material->EndIndex - m_ScreenQuad->MaterialGroups()[0].material->StartIndex +1
|
||||||
|
, GL_UNSIGNED_INT, 0, m_ScreenQuad->MaterialGroups()[0].material->StartIndex);
|
||||||
|
//Iterate some times to make it more gaussian.
|
||||||
|
for (int i = 1; i < m_Iterations; i++) {
|
||||||
|
//Vertical pass
|
||||||
|
m_GaussianFrameBuffer_vert.Bind();
|
||||||
|
m_GaussianProgram_vert->Bind();
|
||||||
|
|
||||||
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, m_GaussianTexture_horiz);
|
||||||
|
|
||||||
|
glBindVertexArray(m_ScreenQuad->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ScreenQuad->ElementBuffer);
|
||||||
|
glDrawElementsBaseVertex(GL_TRIANGLES, m_ScreenQuad->MaterialGroups()[0].material->EndIndex - m_ScreenQuad->MaterialGroups()[0].material->StartIndex +1
|
||||||
|
, GL_UNSIGNED_INT, 0, m_ScreenQuad->MaterialGroups()[0].material->StartIndex);
|
||||||
|
//horizontal pass
|
||||||
|
m_GaussianFrameBuffer_vert.Unbind();
|
||||||
|
m_GaussianFrameBuffer_horiz.Bind();
|
||||||
|
m_GaussianProgram_horiz->Bind();
|
||||||
|
|
||||||
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, m_GaussianTexture_vert);
|
||||||
|
|
||||||
|
glBindVertexArray(m_ScreenQuad->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ScreenQuad->ElementBuffer);
|
||||||
|
glDrawElementsBaseVertex(GL_TRIANGLES, m_ScreenQuad->MaterialGroups()[0].material->EndIndex - m_ScreenQuad->MaterialGroups()[0].material->StartIndex +1
|
||||||
|
, GL_UNSIGNED_INT, 0, m_ScreenQuad->MaterialGroups()[0].material->StartIndex);
|
||||||
|
m_GaussianFrameBuffer_horiz.Unbind();
|
||||||
|
}
|
||||||
|
|
||||||
|
//final vertical gaussian after the iterations are done
|
||||||
|
|
||||||
|
m_GaussianFrameBuffer_vert.Bind();
|
||||||
|
m_GaussianProgram_vert->Bind();
|
||||||
|
|
||||||
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, m_GaussianTexture_horiz);
|
||||||
|
glBindVertexArray(m_ScreenQuad->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ScreenQuad->ElementBuffer);
|
||||||
|
glDrawElementsBaseVertex(GL_TRIANGLES, m_ScreenQuad->MaterialGroups()[0].material->EndIndex - m_ScreenQuad->MaterialGroups()[0].material->StartIndex +1
|
||||||
|
, GL_UNSIGNED_INT, 0, m_ScreenQuad->MaterialGroups()[0].material->StartIndex);
|
||||||
|
|
||||||
|
GLERROR("DrawBloomPass::Draw: END");
|
||||||
|
glViewport(0, 0, m_Renderer->GetViewportSize().Width, m_Renderer->GetViewportSize().Height);
|
||||||
|
glScissor(0, 0, m_Renderer->GetViewportSize().Width, m_Renderer->GetViewportSize().Height);
|
||||||
|
|
||||||
|
|
||||||
|
return m_GaussianTexture_vert;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BlurHUD::OnWindowResize()
|
||||||
|
{
|
||||||
|
CommonFunctions::GenerateTexture(&m_GaussianTexture_vert, GL_CLAMP_TO_EDGE, GL_LINEAR, glm::vec2(m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality), GL_RGB16F, GL_RGB, GL_FLOAT);
|
||||||
|
m_GaussianFrameBuffer_vert.Generate();
|
||||||
|
CommonFunctions::GenerateTexture(&m_GaussianTexture_horiz, GL_CLAMP_TO_EDGE, GL_LINEAR, glm::vec2(m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality), GL_RGB16F, GL_RGB, GL_FLOAT);
|
||||||
|
m_GaussianFrameBuffer_horiz.Generate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlurHUD::FillStencil(RenderScene& scene)
|
||||||
|
{
|
||||||
|
RenderState state;
|
||||||
|
|
||||||
|
state.BindFramebuffer(m_GaussianFrameBuffer_horiz.GetHandle());
|
||||||
|
state.Disable(GL_DEPTH_TEST);
|
||||||
|
state.Enable(GL_CULL_FACE);
|
||||||
|
state.Enable(GL_STENCIL_TEST);
|
||||||
|
state.StencilFunc(GL_ALWAYS, 1, 0xFF);
|
||||||
|
state.StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
|
||||||
|
state.StencilMask(0xFF);
|
||||||
|
glViewport(0, 0, m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality);
|
||||||
|
|
||||||
|
m_FillDepthStencilProgram->Bind();
|
||||||
|
|
||||||
|
GLuint shaderHandle = m_FillDepthStencilProgram->GetHandle();
|
||||||
|
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "V"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ViewMatrix()));
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "P"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ProjectionMatrix()));
|
||||||
|
|
||||||
|
for (auto& job : scene.Jobs.SpriteJob) {
|
||||||
|
auto spriteJob = std::dynamic_pointer_cast<SpriteJob>(job);
|
||||||
|
if (!spriteJob) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!spriteJob->BlurBackground) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "M"), 1, GL_FALSE, glm::value_ptr(spriteJob->Matrix));
|
||||||
|
|
||||||
|
glBindVertexArray(spriteJob->Model->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, spriteJob->Model->ElementBuffer);
|
||||||
|
glDrawElements(GL_TRIANGLES, spriteJob->EndIndex - spriteJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(spriteJob->StartIndex*sizeof(unsigned int)));
|
||||||
|
}
|
||||||
|
|
||||||
|
state.BindFramebuffer(m_GaussianFrameBuffer_vert.GetHandle());
|
||||||
|
for (auto& job : scene.Jobs.SpriteJob) {
|
||||||
|
auto spriteJob = std::dynamic_pointer_cast<SpriteJob>(job);
|
||||||
|
if (!spriteJob) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(!spriteJob->BlurBackground) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "M"), 1, GL_FALSE, glm::value_ptr(spriteJob->Matrix));
|
||||||
|
|
||||||
|
glBindVertexArray(spriteJob->Model->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, spriteJob->Model->ElementBuffer);
|
||||||
|
glDrawElements(GL_TRIANGLES, spriteJob->EndIndex - spriteJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(spriteJob->StartIndex*sizeof(unsigned int)));
|
||||||
|
}
|
||||||
|
glViewport(0, 0, m_Renderer->GetViewportSize().Width, m_Renderer->GetViewportSize().Height);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Texture 1 will be used if texture 2 is black at that texel, else texture 2 is used.
|
||||||
|
GLuint BlurHUD::CombineTextures(GLuint texture1, GLuint texture2)
|
||||||
|
{
|
||||||
|
//RenderState state;
|
||||||
|
//state.BindFramebuffer(m_CombinedTextureBuffer.GetHandle());
|
||||||
|
//state.Disable(GL_DEPTH_TEST);
|
||||||
|
//state.Disable(GL_STENCIL_TEST);
|
||||||
|
|
||||||
|
m_CombineTexturesProgram->Bind();
|
||||||
|
|
||||||
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
glActiveTexture(GL_TEXTURE1);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, texture1);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, texture2);
|
||||||
|
glBindVertexArray(m_ScreenQuad->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_ScreenQuad->ElementBuffer);
|
||||||
|
glDrawElementsBaseVertex(GL_TRIANGLES, m_ScreenQuad->MaterialGroups()[0].material->EndIndex - m_ScreenQuad->MaterialGroups()[0].material->StartIndex +1
|
||||||
|
, GL_UNSIGNED_INT, 0, m_ScreenQuad->MaterialGroups()[0].material->StartIndex);
|
||||||
|
|
||||||
|
return m_CombinedTexture;
|
||||||
|
}
|
||||||
@@ -50,13 +50,15 @@ void BoneAttachmentSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapp
|
|||||||
glm::vec4 perspective;
|
glm::vec4 perspective;
|
||||||
glm::decompose(boneTransform, scale, rotation, translation, skew, perspective);
|
glm::decompose(boneTransform, scale, rotation, translation, skew, perspective);
|
||||||
|
|
||||||
glm::vec3 angles = glm::vec3(-glm::pitch(rotation), -glm::yaw(rotation), -glm::roll(rotation));
|
rotation = glm::quat((glm::vec3)entity["BoneAttachment"]["OrientationOffset"]) * rotation;
|
||||||
|
rotation = glm::inverse(rotation);
|
||||||
|
glm::vec3 angles = glm::eulerAngles(rotation);
|
||||||
|
|
||||||
if ((bool)entity["BoneAttachment"]["InheritPosition"]) {
|
if ((bool)entity["BoneAttachment"]["InheritPosition"]) {
|
||||||
(glm::vec3&)entity["Transform"]["Position"] = translation + (glm::vec3)entity["BoneAttachment"]["PositionOffset"];
|
(glm::vec3&)entity["Transform"]["Position"] = translation + (glm::vec3)entity["BoneAttachment"]["PositionOffset"];
|
||||||
}
|
}
|
||||||
if ((bool)entity["BoneAttachment"]["InheritOrientation"]) {
|
if ((bool)entity["BoneAttachment"]["InheritOrientation"]) {
|
||||||
(glm::vec3&)entity["Transform"]["Orientation"] = angles + (glm::vec3)entity["BoneAttachment"]["OrientationOffset"];
|
(glm::vec3&)entity["Transform"]["Orientation"] = angles;
|
||||||
}
|
}
|
||||||
if ((bool)entity["BoneAttachment"]["InheritScale"]) {
|
if ((bool)entity["BoneAttachment"]["InheritScale"]) {
|
||||||
(glm::vec3&)entity["Transform"]["Scale"] = scale * (glm::vec3)entity["BoneAttachment"]["ScaleOffset"];
|
(glm::vec3&)entity["Transform"]["Scale"] = scale * (glm::vec3)entity["BoneAttachment"]["ScaleOffset"];
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ void DrawFinalPass::InitializeShaderPrograms()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawFinalPass::Draw(RenderScene& scene)
|
void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
|
||||||
{
|
{
|
||||||
GLERROR("Pre");
|
GLERROR("Pre");
|
||||||
DrawFinalPassState* stateDethp = new DrawFinalPassState(m_ShieldDepthFrameBuffer.GetHandle());
|
DrawFinalPassState* stateDethp = new DrawFinalPassState(m_ShieldDepthFrameBuffer.GetHandle());
|
||||||
@@ -280,16 +280,32 @@ void DrawFinalPass::Draw(RenderScene& scene)
|
|||||||
DrawModelRenderQueuesWithShieldCheck(scene.Jobs.TransparentObjects, scene); //might need changing
|
DrawModelRenderQueuesWithShieldCheck(scene.Jobs.TransparentObjects, scene); //might need changing
|
||||||
GLERROR("Shielded Transparent objects");
|
GLERROR("Shielded Transparent objects");
|
||||||
|
|
||||||
|
//Generate blur texture.
|
||||||
|
delete state;
|
||||||
|
if (scene.ShouldBlur) {
|
||||||
|
//This needs to be drawn only when the full scene is being renderd, and then let be, otherwise sprite and other shit will show on it.
|
||||||
|
m_FullBlurredTexture = blurHUDPass->Draw(m_SceneTexture, scene);
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawFinalPassState* stateSprite = new DrawFinalPassState(m_FinalPassFrameBuffer.GetHandle());
|
||||||
|
if(scene.ShouldBlur) {
|
||||||
|
//Combine nonblur and blur texture
|
||||||
|
stateSprite->Disable(GL_DEPTH_TEST);
|
||||||
|
stateSprite->Disable(GL_STENCIL_TEST);
|
||||||
|
m_CombinedTexture = blurHUDPass->CombineTextures(m_SceneTexture, m_FullBlurredTexture);
|
||||||
|
|
||||||
|
}
|
||||||
//Draw Transparen objects
|
//Draw Transparen objects
|
||||||
//state->BlendFunc(GL_ONE, GL_ONE);
|
//state->BlendFunc(GL_ONE, GL_ONE);
|
||||||
//state->StencilFunc(GL_EQUAL, 1, 0xFF);
|
//state->StencilFunc(GL_EQUAL, 1, 0xFF);
|
||||||
//DrawModelRenderQueues(scene.Jobs.TransparentObjects, scene);
|
//DrawModelRenderQueues(scene.Jobs.TransparentObjects, scene);
|
||||||
GLERROR("TransparentObjects");
|
GLERROR("TransparentObjects");
|
||||||
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
stateSprite->Enable(GL_DEPTH_TEST);
|
||||||
DrawSprites(scene.Jobs.SpriteJob, scene);
|
DrawSprites(scene.Jobs.SpriteJob, scene);
|
||||||
GLERROR("SpriteJobs");
|
GLERROR("SpriteJobs");
|
||||||
|
|
||||||
delete state;
|
delete stateSprite;
|
||||||
GLERROR("END");
|
GLERROR("END");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -435,6 +435,7 @@ void RenderSystem::Update(double dt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
RenderScene scene;
|
RenderScene scene;
|
||||||
|
scene.ShouldBlur = true;
|
||||||
scene.Camera = m_Camera;
|
scene.Camera = m_Camera;
|
||||||
scene.Viewport = Rectangle(1280, 720);
|
scene.Viewport = Rectangle(1280, 720);
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ void Renderer::Draw(RenderFrame& frame)
|
|||||||
{
|
{
|
||||||
GLERROR("PRE");
|
GLERROR("PRE");
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||||
ImGui::Combo("Draw textures", &m_DebugTextureToDraw, "Final\0Scene\0Bloom\0Gaussian\0Picking\0Ambient Occlusion");
|
ImGui::Combo("Draw textures", &m_DebugTextureToDraw, "Final\0Scene\0Bloom\0Gaussian\0Picking\0Ambient Occlusion\0Combined Scene Texture\0Full Blurred Texture");
|
||||||
ImGui::Combo("CubeMap", &m_CubeMapTexture, "Nevada(512)\0Sky(1024)");
|
ImGui::Combo("CubeMap", &m_CubeMapTexture, "Nevada(512)\0Sky(1024)");
|
||||||
if(m_CubeMapTexture == 0) {
|
if(m_CubeMapTexture == 0) {
|
||||||
m_CubeMapPass->LoadTextures("Nevada");
|
m_CubeMapPass->LoadTextures("Nevada");
|
||||||
@@ -133,6 +133,7 @@ void Renderer::Draw(RenderFrame& frame)
|
|||||||
m_DrawFinalPass->ClearBuffer();
|
m_DrawFinalPass->ClearBuffer();
|
||||||
m_DrawBloomPass->ClearBuffer();
|
m_DrawBloomPass->ClearBuffer();
|
||||||
m_SSAOPass->ClearBuffer();
|
m_SSAOPass->ClearBuffer();
|
||||||
|
m_BlurHUDPass->ClearBuffer();
|
||||||
PerformanceTimer::StopTimer("Renderer-ClearBuffers");
|
PerformanceTimer::StopTimer("Renderer-ClearBuffers");
|
||||||
GLERROR("ClearBuffers");
|
GLERROR("ClearBuffers");
|
||||||
for (auto scene : frame.RenderScenes) {
|
for (auto scene : frame.RenderScenes) {
|
||||||
@@ -158,7 +159,7 @@ void Renderer::Draw(RenderFrame& frame)
|
|||||||
m_LightCullingPass->CullLights(*scene);
|
m_LightCullingPass->CullLights(*scene);
|
||||||
GLERROR("LightCulling");
|
GLERROR("LightCulling");
|
||||||
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Draw Geometry+Light");
|
PerformanceTimer::StartTimerAndStopPrevious("Renderer-Draw Geometry+Light");
|
||||||
m_DrawFinalPass->Draw(*scene);
|
m_DrawFinalPass->Draw(*scene, m_BlurHUDPass);
|
||||||
GLERROR("Draw Geometry+Light");
|
GLERROR("Draw Geometry+Light");
|
||||||
//m_DrawScenePass->Draw(*scene);
|
//m_DrawScenePass->Draw(*scene);
|
||||||
|
|
||||||
@@ -194,6 +195,12 @@ void Renderer::Draw(RenderFrame& frame)
|
|||||||
if (m_DebugTextureToDraw == 5) {
|
if (m_DebugTextureToDraw == 5) {
|
||||||
m_DrawScreenQuadPass->Draw(m_SSAOPass->SSAOTexture());
|
m_DrawScreenQuadPass->Draw(m_SSAOPass->SSAOTexture());
|
||||||
}
|
}
|
||||||
|
if (m_DebugTextureToDraw == 6) {
|
||||||
|
m_DrawScreenQuadPass->Draw(m_DrawFinalPass->CombinedSceneTexture());
|
||||||
|
}
|
||||||
|
if (m_DebugTextureToDraw == 7) {
|
||||||
|
m_DrawScreenQuadPass->Draw(m_DrawFinalPass->FullBlurredTexture());
|
||||||
|
}
|
||||||
PerformanceTimer::StopTimer("Renderer-Misc Debug Draws");
|
PerformanceTimer::StopTimer("Renderer-Misc Debug Draws");
|
||||||
|
|
||||||
PerformanceTimer::StartTimer("Renderer-ImGuiRenderPass");
|
PerformanceTimer::StartTimer("Renderer-ImGuiRenderPass");
|
||||||
@@ -244,6 +251,7 @@ void Renderer::InitializeRenderPasses()
|
|||||||
m_LightCullingPass = new LightCullingPass(this);
|
m_LightCullingPass = new LightCullingPass(this);
|
||||||
m_CubeMapPass = new CubeMapPass(this);
|
m_CubeMapPass = new CubeMapPass(this);
|
||||||
m_SSAOPass = new SSAOPass(this, m_Config);
|
m_SSAOPass = new SSAOPass(this, m_Config);
|
||||||
|
m_BlurHUDPass = new BlurHUD(this);
|
||||||
m_DrawFinalPass = new DrawFinalPass(this, m_LightCullingPass, m_CubeMapPass, m_SSAOPass);
|
m_DrawFinalPass = new DrawFinalPass(this, m_LightCullingPass, m_CubeMapPass, m_SSAOPass);
|
||||||
m_DrawScreenQuadPass = new DrawScreenQuadPass(this);
|
m_DrawScreenQuadPass = new DrawScreenQuadPass(this);
|
||||||
m_DrawBloomPass = new DrawBloomPass(this, m_Config);
|
m_DrawBloomPass = new DrawBloomPass(this, m_Config);
|
||||||
|
|||||||
+5
-8
@@ -35,8 +35,10 @@
|
|||||||
#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 "Game/Systems/MainMenuSystem.h"
|
||||||
|
#include "Game/Systems/ServerListSystem.h"
|
||||||
|
|
||||||
|
|
||||||
Game::Game(int argc, char* argv[])
|
Game::Game(int argc, char* argv[])
|
||||||
@@ -137,25 +139,20 @@ 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);
|
||||||
|
m_SystemPipeline->AddSystem<ServerListSystem>(updateOrderLevel, m_Renderer);
|
||||||
// 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");
|
||||||
|
|||||||
@@ -11,23 +11,72 @@ void AbilityCooldownHUDSystem::Update(double dt)
|
|||||||
for (auto& abilityHUDC : *abilityHUDs) {
|
for (auto& abilityHUDC : *abilityHUDs) {
|
||||||
EntityWrapper entity = EntityWrapper(m_World, abilityHUDC.EntityID);
|
EntityWrapper entity = EntityWrapper(m_World, abilityHUDC.EntityID);
|
||||||
EntityWrapper abilityEntity = entity.FirstParentWithComponent("DashAbility");
|
EntityWrapper abilityEntity = entity.FirstParentWithComponent("DashAbility");
|
||||||
if (!abilityEntity.Valid())
|
std::string abilityName = "";
|
||||||
return;
|
|
||||||
EntityWrapper cooldownTextEntity = entity.FirstChildByName("Cooldown");
|
|
||||||
|
|
||||||
double maxAbilityCD = (double)abilityEntity["DashAbility"]["CoolDownMaxTimer"];
|
if (!abilityEntity.Valid()) {
|
||||||
double currentAbilityCD = (double)abilityEntity["DashAbility"]["CoolDownTimer"];
|
//If we dont have a dash ability on player, we check for Sprint ability
|
||||||
|
abilityEntity = entity.FirstParentWithComponent("SprintAbility");
|
||||||
|
|
||||||
currentAbilityCD = currentAbilityCD >= 0.0 ? currentAbilityCD : 0.0;
|
if (!abilityEntity.Valid()) {
|
||||||
|
//If we dont have a sprint ability on player, we check for shield ability
|
||||||
|
abilityEntity = entity.FirstParentWithComponent("ShieldAbility");
|
||||||
|
|
||||||
if(cooldownTextEntity.Valid()) {
|
if (!abilityEntity.Valid()) {
|
||||||
if(cooldownTextEntity.HasComponent("Text"))
|
//If we dont have a shield ability, we return, since we cannot do anything.
|
||||||
{
|
return;
|
||||||
std::string t = (std::string&)cooldownTextEntity["Text"]["Content"] = std::to_string(currentAbilityCD).substr(0, 3);
|
} else {
|
||||||
|
//If we have a shield ability, we set the right icon
|
||||||
|
abilityName = "ShieldAbility";
|
||||||
|
if (entity.HasComponent("Sprite")) {
|
||||||
|
(std::string&)entity["Sprite"]["DiffuseTexture"] = "Textures\\Icons\\Abilities\\SheildDots-01.png";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//If we do have a sprint ability, we change the icon
|
||||||
|
abilityName = "SprintAbility";
|
||||||
|
if (entity.HasComponent("Sprite")) {
|
||||||
|
(std::string&)entity["Sprite"]["DiffuseTexture"] = "Textures\\Icons\\Abilities\\Dash-01.png";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//If we have a dash ability, we set the icon to the correct one.
|
||||||
|
abilityName = "DashAbility";
|
||||||
|
if (entity.HasComponent("Sprite")) {
|
||||||
|
(std::string&)entity["Sprite"]["DiffuseTexture"] = "Textures\\Icons\\Abilities\\Superman-01.png";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EntityWrapper cooldownTextEntity = entity.FirstChildByName("Cooldown");
|
||||||
|
//TODO: Fix so this track correctly for shield and sprint depending on how they work.
|
||||||
|
double maxAbilityCD, currentAbilityCD;
|
||||||
|
|
||||||
|
if (abilityName == "DashAbility") {
|
||||||
|
maxAbilityCD = (double)abilityEntity[abilityName]["CoolDownMaxTimer"];
|
||||||
|
currentAbilityCD = (double)abilityEntity[abilityName]["CoolDownTimer"];
|
||||||
|
currentAbilityCD = currentAbilityCD >= 0.0 ? currentAbilityCD : 0.0;
|
||||||
|
|
||||||
|
if (cooldownTextEntity.Valid()) {
|
||||||
|
if (cooldownTextEntity.HasComponent("Text")) {
|
||||||
|
std::string t = (std::string&)cooldownTextEntity["Text"]["Content"] = std::to_string(currentAbilityCD).substr(0, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (abilityName == "ShieldAbility") {
|
||||||
|
maxAbilityCD = 0.0;
|
||||||
|
currentAbilityCD = 1 - (bool)abilityEntity[abilityName]["Active"];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (abilityName == "SprintAbility") {
|
||||||
|
maxAbilityCD = 0.0;
|
||||||
|
currentAbilityCD = 1 - (bool)abilityEntity[abilityName]["Active"];
|
||||||
|
}
|
||||||
|
|
||||||
if (entity.HasComponent("Fill")) {
|
if (entity.HasComponent("Fill")) {
|
||||||
entity["Fill"]["Percentage"] = currentAbilityCD/maxAbilityCD;
|
entity["Fill"]["Percentage"] = currentAbilityCD/maxAbilityCD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,8 +37,7 @@ void AmmoPickupSystem::Update(double dt)
|
|||||||
|
|
||||||
//erase the current element (somePickup)
|
//erase the current element (somePickup)
|
||||||
it = m_ETriggerTouchVector.erase(it);
|
it = m_ETriggerTouchVector.erase(it);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -48,7 +47,7 @@ void AmmoPickupSystem::Update(double dt)
|
|||||||
m_PickupAtMaximum.erase(it);
|
m_PickupAtMaximum.erase(it);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((int)it->player["AssaultWeapon"]["Ammo"] < (int)it->player["AssaultWeapon"]["MaxAmmo"]) {
|
if (!DoesPlayerHaveMaxAmmo(it->player)) {
|
||||||
DoPickup(it->player, it->trigger);
|
DoPickup(it->player, it->trigger);
|
||||||
m_PickupAtMaximum.erase(it);
|
m_PickupAtMaximum.erase(it);
|
||||||
break;
|
break;
|
||||||
@@ -56,6 +55,58 @@ void AmmoPickupSystem::Update(double dt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bool AmmoPickupSystem::DoesPlayerHaveMaxAmmo(EntityWrapper &player) {
|
||||||
|
PlayerClass playerClass = DetermineClass(player);
|
||||||
|
if (playerClass == PlayerClass::Defender) {
|
||||||
|
return !((int)player["DefenderWeapon"]["Ammo"] < (int)player["DefenderWeapon"]["MaxAmmo"]);
|
||||||
|
} else if (playerClass == PlayerClass::Sniper) {
|
||||||
|
return !((int)player["SniperWeapon"]["Ammo"] < (int)player["SniperWeapon"]["MaxAmmo"]);
|
||||||
|
} else if (playerClass == PlayerClass::Assault) {
|
||||||
|
return !((int)player["AssaultWeapon"]["Ammo"] < (int)player["AssaultWeapon"]["MaxAmmo"]);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void AmmoPickupSystem::SetPlayerAmmo(EntityWrapper &player, int ammoGain) {
|
||||||
|
int maxWeaponAmmo = GetPlayerMaxAmmo(player);
|
||||||
|
|
||||||
|
PlayerClass playerClass = DetermineClass(player);
|
||||||
|
if (playerClass == PlayerClass::Defender) {
|
||||||
|
(int&)player["DefenderWeapon"]["Ammo"] = std::min((int)player["DefenderWeapon"]["Ammo"] + ammoGain, maxWeaponAmmo);
|
||||||
|
} else if (playerClass == PlayerClass::Sniper) {
|
||||||
|
(int&)player["SniperWeapon"]["Ammo"] = std::min((int)player["SniperWeapon"]["Ammo"] + ammoGain, maxWeaponAmmo);
|
||||||
|
} else if (playerClass == PlayerClass::Assault) {
|
||||||
|
(int&)player["AssaultWeapon"]["Ammo"] = std::min((int)player["AssaultWeapon"]["Ammo"] + ammoGain, maxWeaponAmmo);
|
||||||
|
} else {
|
||||||
|
//unknown class - ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int AmmoPickupSystem::GetPlayerMaxAmmo(EntityWrapper &player) {
|
||||||
|
PlayerClass playerClass = DetermineClass(player);
|
||||||
|
if (playerClass == PlayerClass::Defender) {
|
||||||
|
return (int)player["DefenderWeapon"]["MaxAmmo"];
|
||||||
|
} else if (playerClass == PlayerClass::Sniper) {
|
||||||
|
return (int)player["SniperWeapon"]["MaxAmmo"];
|
||||||
|
} else if (playerClass == PlayerClass::Assault) {
|
||||||
|
return (int)player["AssaultWeapon"]["MaxAmmo"];
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AmmoPickupSystem::PlayerClass AmmoPickupSystem::DetermineClass(EntityWrapper &player)
|
||||||
|
{
|
||||||
|
//determine the class based on what component the inflictor-player has
|
||||||
|
if (m_World->HasComponent(player.ID, "DashAbility")) {
|
||||||
|
return PlayerClass::Assault;
|
||||||
|
}
|
||||||
|
if (m_World->HasComponent(player.ID, "ShieldAbility")) {
|
||||||
|
return PlayerClass::Defender;
|
||||||
|
}
|
||||||
|
if (m_World->HasComponent(player.ID, "SprintAbility")) {
|
||||||
|
return PlayerClass::Sniper;
|
||||||
|
}
|
||||||
|
return PlayerClass::None;
|
||||||
|
}
|
||||||
|
|
||||||
bool AmmoPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
bool AmmoPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
||||||
{
|
{
|
||||||
@@ -63,7 +114,7 @@ bool AmmoPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//TODO: add other weapontypes
|
//TODO: add other weapontypes
|
||||||
if (!e.Entity.HasComponent("AssaultWeapon")) {
|
if (DetermineClass(e.Entity) == PlayerClass::None) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!e.Trigger.HasComponent("AmmoPickup")) {
|
if (!e.Trigger.HasComponent("AmmoPickup")) {
|
||||||
@@ -71,7 +122,7 @@ bool AmmoPickupSystem::OnTriggerTouch(Events::TriggerTouch& e)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//if at maxammo, save the trigger-touch to a vector since standing inside it will not re-trigger the trigger
|
//if at maxammo, save the trigger-touch to a vector since standing inside it will not re-trigger the trigger
|
||||||
if ((int)e.Entity["AssaultWeapon"]["Ammo"] >= (int)e.Entity["AssaultWeapon"]["MaxAmmo"]) {
|
if (DoesPlayerHaveMaxAmmo(e.Entity)) {
|
||||||
m_PickupAtMaximum.push_back({ e.Entity, e.Trigger });
|
m_PickupAtMaximum.push_back({ e.Entity, e.Trigger });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -85,18 +136,16 @@ bool AmmoPickupSystem::OnAmmoPickup(Events::AmmoPickup & e)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//TODO: add other weapontypes
|
//TODO: add other weapontypes
|
||||||
if (!e.Player.HasComponent("AssaultWeapon")) {
|
if (DetermineClass(e.Player) == PlayerClass::None) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int maxWeaponAmmo = (int)e.Player["AssaultWeapon"]["MaxAmmo"];
|
|
||||||
int& currentAmmo = (int)e.Player["AssaultWeapon"]["Ammo"];
|
|
||||||
//cant pick up ammopacks if you are already at MaxAmmo
|
//cant pick up ammopacks if you are already at MaxAmmo
|
||||||
if (currentAmmo >= maxWeaponAmmo) {
|
if (DoesPlayerHaveMaxAmmo(e.Player)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
SetPlayerAmmo(e.Player, e.AmmoGain);
|
||||||
|
|
||||||
currentAmmo = std::min(currentAmmo + e.AmmoGain, maxWeaponAmmo);
|
return true;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
||||||
@@ -114,8 +163,11 @@ bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
||||||
int maxWeaponAmmo = (int)player["AssaultWeapon"]["MaxAmmo"];
|
//trigger should be valid but if it isnt we just return (to avoid crash)
|
||||||
int& currentAmmo = (int)player["AssaultWeapon"]["Ammo"];
|
if (!trigger.Valid()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int maxWeaponAmmo = GetPlayerMaxAmmo(player);
|
||||||
int ammoGiven = 0.01*(double)trigger["AmmoPickup"]["AmmoGain"] * maxWeaponAmmo;
|
int ammoGiven = 0.01*(double)trigger["AmmoPickup"]["AmmoGain"] * maxWeaponAmmo;
|
||||||
|
|
||||||
Events::AmmoPickup ePlayerAmmoPickup;
|
Events::AmmoPickup ePlayerAmmoPickup;
|
||||||
@@ -123,9 +175,6 @@ 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"],
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ void CapturePointSystem::UpdateComponent(EntityWrapper& capturePointEntity, Comp
|
|||||||
int ownedBy = teamComponent["Team"];
|
int ownedBy = teamComponent["Team"];
|
||||||
int redTeamPlayersStandingInside = 0;
|
int redTeamPlayersStandingInside = 0;
|
||||||
int blueTeamPlayersStandingInside = 0;
|
int blueTeamPlayersStandingInside = 0;
|
||||||
|
//note: old color system
|
||||||
if (capturePointEntity.HasComponent("Model")) {
|
if (capturePointEntity.HasComponent("Model")) {
|
||||||
//Now sets team color to the capturepoint, or white if it is uncaptured.
|
//Now sets team color to the capturepoint, or white if it is uncaptured.
|
||||||
capturePointEntity["Model"]["Color"] = ownedBy == blueTeam ? glm::vec4(0, 0.0f, 1, 0.3) : ownedBy == redTeam ? glm::vec4(1, 0.0f, 0, 0.3) : glm::vec4(1, 1, 1, 0.3);
|
capturePointEntity["Model"]["Color"] = ownedBy == blueTeam ? glm::vec4(0, 0.0f, 1, 0.3) : ownedBy == redTeam ? glm::vec4(1, 0.0f, 0, 0.3) : glm::vec4(1, 1, 1, 0.3);
|
||||||
@@ -102,7 +103,18 @@ void CapturePointSystem::UpdateComponent(EntityWrapper& capturePointEntity, Comp
|
|||||||
nextPossibleCapturePoint["Blue"] = i - 1;
|
nextPossibleCapturePoint["Blue"] = i - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_RecentlyCapturedNeedNextCapturePointNow) {
|
if (m_RecentlyCapturedNeedNextCapturePointNow) {
|
||||||
|
//change what model is displaying (change all in case 2 capturepoints has been captured on the same frame)
|
||||||
|
for (int i = 0; i < m_NumberOfCapturePoints; i++) {
|
||||||
|
auto owner = (int)m_CapturePointNumberToEntityMap[i]["Team"]["Team"];
|
||||||
|
if (m_CapturePointNumberToEntityMap[i].FirstChildByName("Red").ID != EntityID_Invalid) {
|
||||||
|
(bool&)m_CapturePointNumberToEntityMap[i].FirstChildByName("Red")["Model"]["Visible"] = owner == redTeam ? true : false;
|
||||||
|
(bool&)m_CapturePointNumberToEntityMap[i].FirstChildByName("Blue")["Model"]["Visible"] = owner == blueTeam ? true : false;
|
||||||
|
(bool&)m_CapturePointNumberToEntityMap[i].FirstChildByName("Spectator")["Model"]["Visible"] = owner == spectatorTeam ? true : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//save the next cap points and publish the captured event
|
||||||
m_CapturedEvent.BlueTeamNextCapturePoint = m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Blue"]];
|
m_CapturedEvent.BlueTeamNextCapturePoint = m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Blue"]];
|
||||||
m_CapturedEvent.RedTeamNextCapturePoint = m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Red"]];
|
m_CapturedEvent.RedTeamNextCapturePoint = m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Red"]];
|
||||||
m_EventBroker->Publish(m_CapturedEvent);
|
m_EventBroker->Publish(m_CapturedEvent);
|
||||||
|
|||||||
@@ -10,10 +10,11 @@ DamageIndicatorSystem::DamageIndicatorSystem(SystemParams params)
|
|||||||
//load texture to cache
|
//load texture to cache
|
||||||
auto texture = CommonFunctions::LoadTexture("Textures/DamageIndicator.png", false);
|
auto texture = CommonFunctions::LoadTexture("Textures/DamageIndicator.png", false);
|
||||||
auto entityFile = ResourceManager::Load<EntityXMLFile>("Schema/Entities/DamageIndicator.xml");
|
auto entityFile = ResourceManager::Load<EntityXMLFile>("Schema/Entities/DamageIndicator.xml");
|
||||||
|
m_NetworkEnabled = ResourceManager::Load<ConfigFile>("Config.ini")->Get("Networking.StartNetwork", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DamageIndicatorSystem::Update(double dt) {
|
void DamageIndicatorSystem::Update(double dt) {
|
||||||
if (!IsServer && LocalPlayer.Valid()) {
|
if ((!IsServer || !m_NetworkEnabled) && LocalPlayer.Valid()) {
|
||||||
for (auto& iter = updateDamageIndicatorVector.begin(); iter != updateDamageIndicatorVector.end(); iter++) {
|
for (auto& iter = updateDamageIndicatorVector.begin(); iter != updateDamageIndicatorVector.end(); iter++) {
|
||||||
if (!iter->spriteEntity.Valid()) {
|
if (!iter->spriteEntity.Valid()) {
|
||||||
updateDamageIndicatorVector.erase(iter);
|
updateDamageIndicatorVector.erase(iter);
|
||||||
@@ -40,10 +41,15 @@ bool DamageIndicatorSystem::OnPlayerDamage(Events::PlayerDamage& e)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//friendly fire - return
|
||||||
|
if (e.Damage < 0.1f) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
glm::vec3 inflictorPos = e.Inflictor["Transform"]["Position"];
|
glm::vec3 inflictorPos = e.Inflictor["Transform"]["Position"];
|
||||||
//if testing
|
//if testing
|
||||||
#ifdef INDICATOR_TEST
|
#ifdef INDICATOR_TEST
|
||||||
inflictorPos = DamageIndicatorTest(e.Victim);
|
inflictorPos = DamageIndicatorTest(e.Victim);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
float angleBetweenVectors = CalculateAngle(e.Victim, inflictorPos);
|
float angleBetweenVectors = CalculateAngle(e.Victim, inflictorPos);
|
||||||
@@ -55,7 +61,7 @@ bool DamageIndicatorSystem::OnPlayerDamage(Events::PlayerDamage& e)
|
|||||||
//simply set the rotation z-wise to the angleBetweenVectors
|
//simply set the rotation z-wise to the angleBetweenVectors
|
||||||
sprite["Transform"]["Orientation"] = glm::vec3(0, 0, angleBetweenVectors);
|
sprite["Transform"]["Orientation"] = glm::vec3(0, 0, angleBetweenVectors);
|
||||||
|
|
||||||
if (!IsServer) {
|
if (!IsServer || !m_NetworkEnabled) {
|
||||||
updateDamageIndicatorVector.emplace_back(sprite, inflictorPos);
|
updateDamageIndicatorVector.emplace_back(sprite, inflictorPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +128,7 @@ glm::vec3 DamageIndicatorSystem::DamageIndicatorTest(EntityWrapper player) {
|
|||||||
}
|
}
|
||||||
m_TestVar++;
|
m_TestVar++;
|
||||||
|
|
||||||
auto inflictorPos = glm::vec3(currentPos.x + testVar*6.0f, currentPos.y, currentPos.z + testVar2*6.0f);
|
auto inflictorPos = glm::vec3(currentPos.x + testVar*6.0f, currentPos.y, currentPos.z + testVar2*6.0f);
|
||||||
|
|
||||||
//load the explosioneffect XML
|
//load the explosioneffect XML
|
||||||
auto deathEffect = ResourceManager::Load<EntityXMLFile>("Schema/Entities/PlayerDeathExplosionWithCamera.xml");
|
auto deathEffect = ResourceManager::Load<EntityXMLFile>("Schema/Entities/PlayerDeathExplosionWithCamera.xml");
|
||||||
|
|||||||
@@ -0,0 +1,94 @@
|
|||||||
|
#include "../Game/Systems/MainMenuSystem.h"
|
||||||
|
|
||||||
|
MainMenuSystem::MainMenuSystem(SystemParams params, IRenderer* renderer)
|
||||||
|
: System(params)
|
||||||
|
, ImpureSystem()
|
||||||
|
, m_Renderer(renderer)
|
||||||
|
{
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EPressed, &MainMenuSystem::OnButtonPress);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EReleased, &MainMenuSystem::OnButtonRelease);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EClicked, &MainMenuSystem::OnButtonClick);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &MainMenuSystem::OnInputCommand);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainMenuSystem::Update(double dt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnButtonClick(const Events::ButtonClicked& e)
|
||||||
|
{
|
||||||
|
if (e.EntityName == "ServerIdentityConnect") {
|
||||||
|
EntityWrapper entity = e.Entity;
|
||||||
|
EntityWrapper serverIdentityEntity = entity.FirstParentWithComponent("ServerIdentity");
|
||||||
|
if(serverIdentityEntity.Valid()) {
|
||||||
|
Events::ConnectRequest event;
|
||||||
|
event.IP = (std::string)entity["ServerIdentity"]["IP"];
|
||||||
|
event.Port = (int)entity["ServerIdentity"]["Port"];
|
||||||
|
printf("\n ----Request Server Connect----\nIP: %s\nPort: %i\n ------------------------------", event.IP, event.Port);
|
||||||
|
m_EventBroker->Publish(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnButtonRelease(const Events::ButtonReleased& e)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnButtonPress(const Events::ButtonPressed& e)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnInputCommand(const Events::InputCommand& e)
|
||||||
|
{
|
||||||
|
if(e.Command == "Play" && e.Value == 1) {
|
||||||
|
auto menus = m_World->GetComponents("Menu");
|
||||||
|
if (menus == nullptr) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_OpenSubMenu == EntityWrapper::Invalid) {
|
||||||
|
//No submenu is open, open one.
|
||||||
|
for (auto& menu : *menus) {
|
||||||
|
EntityWrapper menuEntity = EntityWrapper(m_World, menu.EntityID);
|
||||||
|
auto serverListSpawner = menuEntity.FirstChildByName(e.Command + "Spawner");
|
||||||
|
if (!serverListSpawner.HasComponent("Spawner")) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
m_OpenSubMenu = SpawnerSystem::Spawn(serverListSpawner, serverListSpawner);
|
||||||
|
Events::SearchForServers event;
|
||||||
|
m_EventBroker->Publish(event);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(!m_OpenSubMenu.HasComponent("ServerList")) {
|
||||||
|
//Menu is open, but not the right one, delete the old one and open a new one.
|
||||||
|
m_World->DeleteEntity(m_OpenSubMenu.ID);
|
||||||
|
m_OpenSubMenu = EntityWrapper::Invalid;
|
||||||
|
|
||||||
|
for (auto& menu : *menus) {
|
||||||
|
EntityWrapper menuEntity = EntityWrapper(m_World, menu.EntityID);
|
||||||
|
auto serverListSpawner = menuEntity.FirstChildByName(e.Command + "Spawner");
|
||||||
|
if (!serverListSpawner.HasComponent("Spawner")) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
m_OpenSubMenu = SpawnerSystem::Spawn(serverListSpawner, serverListSpawner);
|
||||||
|
Events::SearchForServers event;
|
||||||
|
m_EventBroker->Publish(event);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Serverlist submenu is open, close it.
|
||||||
|
printf("\n\nMenuShit\n\n");
|
||||||
|
m_World->DeleteEntity(m_OpenSubMenu.ID);
|
||||||
|
m_OpenSubMenu = EntityWrapper::Invalid;
|
||||||
|
}
|
||||||
|
} else if (e.Command == "RefreshServerList" && e.Value == 1){
|
||||||
|
Events::SearchForServers event;
|
||||||
|
m_EventBroker->Publish(event);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -83,6 +83,10 @@ 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,10 +1,12 @@
|
|||||||
#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)
|
||||||
@@ -33,10 +35,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"];
|
||||||
@@ -69,13 +71,34 @@ bool PlayerDeathSystem::OnEntityDeleted(Events::EntityDeleted& e)
|
|||||||
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.Valid() || !spectatorCam.HasComponent("Camera") || LocalPlayer.Valid()) {
|
if (!spectatorCam.HasComponent("Camera")) {
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
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,4 +1,5 @@
|
|||||||
#include "Systems/PlayerSpawnSystem.h"
|
#include "Systems/PlayerSpawnSystem.h"
|
||||||
|
#include "Core/ELockMouse.h"
|
||||||
|
|
||||||
PlayerSpawnSystem::PlayerSpawnSystem(SystemParams params)
|
PlayerSpawnSystem::PlayerSpawnSystem(SystemParams params)
|
||||||
: System(params)
|
: System(params)
|
||||||
@@ -59,7 +60,15 @@ void PlayerSpawnSystem::Update(double dt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int numSpawnedPlayers = 0;
|
int numSpawnedPlayers = 0;
|
||||||
for (auto& req : m_SpawnRequests) {
|
int playersSpectating = 0;
|
||||||
|
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")) {
|
||||||
@@ -69,43 +78,49 @@ 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"] != req.Team) {
|
if ((int)cSpawnerTeam["Team"] != it->Team) {
|
||||||
// Increase num spawned players if someone picks spectator, since it is valid to pick spectator
|
// If they somehow has a valid class as spectator, don't spawn them.
|
||||||
// but don't spawn anything, goto next spawnrequest.
|
if (it->Team == cSpawnerTeam["Team"].Enum("Spectator")) {
|
||||||
if (req.Team == (int)cSpawnerTeam["Team"].Enum("Spectator")) {
|
++playersSpectating;
|
||||||
++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"] = req.Team;
|
player["Team"]["Team"] = it->Team;
|
||||||
|
|
||||||
// Publish a PlayerSpawned event
|
// Publish a PlayerSpawned event
|
||||||
Events::PlayerSpawned e;
|
Events::PlayerSpawned e;
|
||||||
e.PlayerID = req.PlayerID;
|
e.PlayerID = it->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 != (int)m_SpawnRequests.size()) {
|
if (numSpawnedPlayers != numRequestsToHandle - playersSpectating) {
|
||||||
LOG_DEBUG("%i players were supposed to be spawned or set as spectator, but only %i was handled.", (int)m_SpawnRequests.size(), numSpawnedPlayers);
|
LOG_DEBUG("%i players were supposed to be spawned, but only %i was successfully.", numRequestsToHandle - playersSpectating, numSpawnedPlayers);
|
||||||
} else {
|
} else {
|
||||||
LOG_DEBUG("%i players were spawned or set as spectator.", numSpawnedPlayers);
|
std::string dbg = numSpawnedPlayers != 0 ? std::to_string(numSpawnedPlayers) + " players were spawned. " : "";
|
||||||
|
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 != "SwapToClassPick") {
|
if (e.Command != "PickTeam" && e.Command != "PickClass" && e.Command != "SwapToTeamPick" && e.Command != "SwapToClassPick") {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,19 +128,6 @@ 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) {
|
||||||
@@ -136,27 +138,38 @@ 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 class, remove their spawn request.
|
// If player wants to switch team or class , remove their selected class so they don't spawn.
|
||||||
if (e.Command == "SwapToClassPick") {
|
if (e.Command == "SwapToTeamPick" || e.Command == "SwapToClassPick") {
|
||||||
m_SpawnRequests.erase(iter);
|
iter->Class = PlayerClass::None;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.Command == "SwapToClassPick") {
|
//If we get here we got a PickTeam or PickClass, so add or alter a spawn request.
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (iter != m_SpawnRequests.end()) {
|
if (iter != m_SpawnRequests.end()) {
|
||||||
// If player is in queue to spawn, then change their team affiliation in the request.
|
// If player is in queue to spawn, then change their team affiliation or class in the request.
|
||||||
iter->Team = (ComponentInfo::EnumType)e.Value;
|
if (e.Command == "PickTeam") {
|
||||||
|
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;
|
||||||
req.Team = (ComponentInfo::EnumType)e.Value;
|
if (e.Command == "PickTeam") {
|
||||||
|
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;
|
||||||
@@ -191,6 +204,8 @@ 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
|
||||||
@@ -210,7 +225,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;
|
||||||
}
|
}
|
||||||
@@ -218,10 +233,6 @@ 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;
|
||||||
@@ -230,6 +241,16 @@ 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;
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
#include "../Game/Systems/ServerListSystem.h"
|
||||||
|
|
||||||
|
ServerListSystem::ServerListSystem(SystemParams params, IRenderer* renderer)
|
||||||
|
: System(params)
|
||||||
|
, PureSystem("ServerList")
|
||||||
|
, m_Renderer(renderer)
|
||||||
|
{
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EServerListRecieved, &ServerListSystem::OnServerListRecieved);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServerListSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cServerList, double dt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServerListSystem::RefreshList()
|
||||||
|
{
|
||||||
|
Events::SearchForServers event;
|
||||||
|
m_EventBroker->Publish(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ServerListSystem::OnServerListRecieved(const Events::DisplayServerlist& e)
|
||||||
|
{
|
||||||
|
if (e.Serverlist.size() == 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
auto serverLists = m_World->GetComponents("ServerList");
|
||||||
|
if (serverLists == nullptr)
|
||||||
|
return 1;
|
||||||
|
for (auto& cServerList : *serverLists) {
|
||||||
|
EntityWrapper serverListEntity = EntityWrapper(m_World, cServerList.EntityID);
|
||||||
|
EntityWrapper identitySpawner = serverListEntity.FirstChildByName("ServerIdentitySpawner");
|
||||||
|
identitySpawner.DeleteChildren();
|
||||||
|
|
||||||
|
(int&)cServerList["TotalIdentities"] = (int)e.Serverlist.size();
|
||||||
|
for (int i = 0; i < e.Serverlist.size(); i++) {
|
||||||
|
//Create Identities for each server and place them on the right position.
|
||||||
|
EntityWrapper newIdentity = SpawnerSystem::Spawn(identitySpawner, identitySpawner);
|
||||||
|
|
||||||
|
glm::vec3 offset = (glm::vec3)serverListEntity["ServerList"]["Offset"];
|
||||||
|
(glm::vec3&)newIdentity["Transform"]["Position"] = offset * (float)i;
|
||||||
|
|
||||||
|
auto& cIdentity = newIdentity["ServerIdentity"];
|
||||||
|
(std::string&)cIdentity["IP"] = e.Serverlist[i].Address;
|
||||||
|
(std::string&)cIdentity["ServerName"] = e.Serverlist[i].Name;
|
||||||
|
(int&)cIdentity["Port"] = e.Serverlist[i].Port;
|
||||||
|
(int&)cIdentity["PlayersConnected"] = e.Serverlist[i].PlayersConnected;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
#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