Merge branch 'master' into Recording
This commit is contained in:
@@ -213,7 +213,6 @@ bool FirstPersonInputController<EventContext>::OnCommand(const Events::InputComm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EntityWrapper firstPersonModel = m_PlayerEntity.FirstChildByName("Hands");
|
EntityWrapper firstPersonModel = m_PlayerEntity.FirstChildByName("Hands");
|
||||||
if (firstPersonModel.Valid()) {
|
if (firstPersonModel.Valid()) {
|
||||||
if (val > 0) { // Walk/Run
|
if (val > 0) { // Walk/Run
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#include "Network/ESearchForServers.h"
|
#include "Network/ESearchForServers.h"
|
||||||
#include "Network/EInterpolate.h"
|
#include "Network/EInterpolate.h"
|
||||||
#include "Network/SnapshotFilter.h"
|
#include "Network/SnapshotFilter.h"
|
||||||
|
#include "Core/EWin.h"
|
||||||
|
|
||||||
class Client : public Network
|
class Client : public Network
|
||||||
{
|
{
|
||||||
@@ -107,6 +108,7 @@ private:
|
|||||||
void parseAmmoPickup(Packet& packet);
|
void parseAmmoPickup(Packet& packet);
|
||||||
void parseRemoveWorld(Packet& packet);
|
void parseRemoveWorld(Packet& packet);
|
||||||
void parseKDEvent(Packet& packet);
|
void parseKDEvent(Packet& packet);
|
||||||
|
void parseWin(Packet& packet);
|
||||||
void InterpolateFields(Packet& packet, const ComponentInfo & componentInfo, const EntityID & entityID, const std::string & componentType);
|
void InterpolateFields(Packet& packet, const ComponentInfo & componentInfo, const EntityID & entityID, const std::string & componentType);
|
||||||
void parseSnapshot(Packet& packet);
|
void parseSnapshot(Packet& packet);
|
||||||
void identifyPacketLoss();
|
void identifyPacketLoss();
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ enum class MessageType
|
|||||||
AmmoPickup,
|
AmmoPickup,
|
||||||
RemoveWorld,
|
RemoveWorld,
|
||||||
KD,
|
KD,
|
||||||
|
Win,
|
||||||
Invalid
|
Invalid
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ private:
|
|||||||
void setSoundProperties(Source* source, ComponentWrapper* soundComponent);
|
void setSoundProperties(Source* source, ComponentWrapper* soundComponent);
|
||||||
float getDurationSeconds(Source* source);
|
float getDurationSeconds(Source* source);
|
||||||
float getTimeOffsetSeconds(Source* source);
|
float getTimeOffsetSeconds(Source* source);
|
||||||
|
void setTimeOffsetSeconds(Source* source, float timeOffset);
|
||||||
|
|
||||||
// Specific logic
|
// Specific logic
|
||||||
void playSound(Source* source);
|
void playSound(Source* source);
|
||||||
|
|||||||
+7154
-7476
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,6 +5,7 @@
|
|||||||
<c:Lifetime>
|
<c:Lifetime>
|
||||||
<Lifetime>0.079999998211860657</Lifetime>
|
<Lifetime>0.079999998211860657</Lifetime>
|
||||||
</c:Lifetime>
|
</c:Lifetime>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
@@ -17,10 +18,8 @@
|
|||||||
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
||||||
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
||||||
<KeepRatio>true</KeepRatio>
|
<KeepRatio>true</KeepRatio>
|
||||||
<Linear>true</Linear>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
<Scale X="1" Y="0.0700000003" Z="0"/>
|
<Scale X="1" Y="0.0700000003" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -35,10 +34,8 @@
|
|||||||
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
||||||
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
||||||
<KeepRatio>true</KeepRatio>
|
<KeepRatio>true</KeepRatio>
|
||||||
<Linear>true</Linear>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
<Scale X="1" Y="0.0700000003" Z="0"/>
|
<Scale X="1" Y="0.0700000003" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
<c:Lifetime>
|
<c:Lifetime>
|
||||||
<Lifetime>0.079999998211860657</Lifetime>
|
<Lifetime>0.079999998211860657</Lifetime>
|
||||||
</c:Lifetime>
|
</c:Lifetime>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
@@ -17,12 +18,10 @@
|
|||||||
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
|
||||||
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
||||||
<KeepRatio>true</KeepRatio>
|
<KeepRatio>true</KeepRatio>
|
||||||
<Linear>true</Linear>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
<Scale X="1" Y="0.0700000003" Z="0"/>
|
<Scale X="1" Y="0.0700000003" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -35,12 +34,10 @@
|
|||||||
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
|
||||||
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
||||||
<KeepRatio>true</KeepRatio>
|
<KeepRatio>true</KeepRatio>
|
||||||
<Linear>true</Linear>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
<Scale X="1" Y="0.0700000003" Z="0"/>
|
<Scale X="1" Y="0.0700000003" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
@@ -3,11 +3,12 @@
|
|||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
<c:Lifetime>
|
<c:Lifetime>
|
||||||
<Lifetime>0.08</Lifetime>
|
<Lifetime>0.080000000000000002</Lifetime>
|
||||||
</c:Lifetime>
|
</c:Lifetime>
|
||||||
<c:Fade>
|
<c:Fade>
|
||||||
<FadeTime>0.08</FadeTime>
|
<FadeTime>0.080000000000000002</FadeTime>
|
||||||
</c:Fade>
|
</c:Fade>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
@@ -20,10 +21,8 @@
|
|||||||
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
||||||
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
||||||
<KeepRatio>true</KeepRatio>
|
<KeepRatio>true</KeepRatio>
|
||||||
<Linear>true</Linear>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
<Scale X="1" Y="0.0250000004" Z="0"/>
|
<Scale X="1" Y="0.0250000004" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -38,10 +37,8 @@
|
|||||||
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
|
||||||
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
|
||||||
<KeepRatio>true</KeepRatio>
|
<KeepRatio>true</KeepRatio>
|
||||||
<Linear>true</Linear>
|
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-0.5"/>
|
|
||||||
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
<Scale X="1" Y="0.0250000004" Z="0"/>
|
<Scale X="1" Y="0.0250000004" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
|
|||||||
@@ -6,12 +6,14 @@
|
|||||||
<Lifetime>2</Lifetime>
|
<Lifetime>2</Lifetime>
|
||||||
</c:Lifetime>
|
</c:Lifetime>
|
||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<ColorByDistance>true</ColorByDistance>
|
<Velocity X="1.78000009" Y="0.0320000015" Z="0"/>
|
||||||
<Velocity X="1.63300014" Y="0.0320000015" Z="0"/>
|
<ExplosionOrigin X="0" Y="0.142000005" Z="-0.659000039"/>
|
||||||
<ExplosionOrigin X="0" Y="0.0790000036" Z="-0.329000026"/>
|
<EndColor A="0" B="19.6078434" G="0.00392156886" R="1.96078432"/>
|
||||||
<ExponentialAccelaration>true</ExponentialAccelaration>
|
<RandomnessScalar>1.3399996757507324</RandomnessScalar>
|
||||||
<EndColor A="0" B="19.6078434" G="19.6078434" R="0"/>
|
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
|
<ColorByDistance>true</ColorByDistance>
|
||||||
|
<ExponentialAccelaration>true</ExponentialAccelaration>
|
||||||
|
<ColorDistanceScalar>5.0899982452392578</ColorDistanceScalar>
|
||||||
</c:ExplosionEffect>
|
</c:ExplosionEffect>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="SidearmWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="SidearmWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:Shielded/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
@@ -9,16 +10,37 @@
|
|||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="WeaponMuzzle">
|
<Entity name="Muzzle">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/RayBlue.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0123999491" Y="0.102453232" Z="-0.273824364"/>
|
<Position X="-0.0169804785" Y="-0.0188358482" Z="-0.222064406"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children>
|
||||||
|
<Entity name="WeaponMuzzleRay">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.125075191" Z="-0.206788138"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="WeaponMuzzleFlash">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/MuzzleFlashSideArmBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0240342002" Y="0.116005458" Z="-0.0419839472"/>
|
||||||
|
<Scale X="0.5" Y="0.5" Z="0.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
|
|||||||
@@ -11,17 +11,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="WeaponMuzzle">
|
|
||||||
<Components>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Ray2Red.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.105000004" Z="-0.256000012"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="AmmunitionHUD">
|
<Entity name="AmmunitionHUD">
|
||||||
<Components>
|
<Components>
|
||||||
<c:TextFieldReader>
|
<c:TextFieldReader>
|
||||||
@@ -38,8 +27,9 @@
|
|||||||
<Entity name="AmmunitionHUDBackground">
|
<Entity name="AmmunitionHUDBackground">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
<GlowMap></GlowMap>
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<Color A="0.588235319" B="0" G="0" R="0"/>
|
<Color A="0.588235319" B="0" G="0" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -56,16 +46,16 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="MagazineAmmo">
|
<Entity name="MagazineAmmo">
|
||||||
<Components>
|
<Components>
|
||||||
<c:TextFieldReader>
|
|
||||||
<ParentEntityName>Player</ParentEntityName>
|
|
||||||
<ComponentType>SidearmWeapon</ComponentType>
|
|
||||||
<Field>MagazineAmmo</Field>
|
|
||||||
</c:TextFieldReader>
|
|
||||||
<c:Text>
|
<c:Text>
|
||||||
<Content>16</Content>
|
<Content>16</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
<Color A="1" B="3.92156863" G="1.17647064" R="0"/>
|
<Color A="1" B="3.92156863" G="1.17647064" R="0"/>
|
||||||
</c:Text>
|
</c:Text>
|
||||||
|
<c:TextFieldReader>
|
||||||
|
<ParentEntityName>Player</ParentEntityName>
|
||||||
|
<ComponentType>SidearmWeapon</ComponentType>
|
||||||
|
<Field>MagazineAmmo</Field>
|
||||||
|
</c:TextFieldReader>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="-0.00600000005" Z="0"/>
|
<Position X="0" Y="-0.00600000005" Z="0"/>
|
||||||
<Scale X="0.0599999987" Y="0.0599999987" Z="0.0599999987"/>
|
<Scale X="0.0599999987" Y="0.0599999987" Z="0.0599999987"/>
|
||||||
@@ -92,6 +82,37 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="Muzzle">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.197295129" Y="-0.116625182" Z="-0.709192753"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="WeaponMuzzleRay">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.155046776"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="WeaponMuzzleFlash">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/MuzzleFlashSideArmBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.5" Y="0.5" Z="0.5"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
</c:BlendAdditive>
|
</c:BlendAdditive>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
|
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -90,9 +91,10 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<GlowIntensity>1.5</GlowIntensity>
|
<GlowIntensity>1.5</GlowIntensity>
|
||||||
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.120748267" Y="-0.22843127" Z="-0.181454584"/>
|
<Position X="0.120748267" Y="-0.22843127" Z="-0.181454599"/>
|
||||||
<Orientation X="0.0102799674" Y="-0.00312504289" Z="0.0428140014"/>
|
<Orientation X="0.0102799674" Y="-0.00312504289" Z="0.0428140014"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -131,7 +133,7 @@
|
|||||||
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
|
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
|
||||||
</c:Spawner>
|
</c:Spawner>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.00123506912" Y="-0.00209517847" Z="-0.681198895"/>
|
<Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="AssaultWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="AssaultWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:Shielded/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
@@ -9,17 +10,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="WeaponMuzzle">
|
|
||||||
<Components>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/RayBlue.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.00644115033" Y="0.096679531" Z="-0.436609417"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="ReloadSpawner">
|
<Entity name="ReloadSpawner">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Spawner>
|
<c:Spawner>
|
||||||
@@ -29,6 +19,38 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="Muzzle">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.00728808995" Y="0.0896582007" Z="-0.643795013"/>
|
||||||
|
<Orientation X="6.27600002" Y="0.00499999989" Z="0.00600000005"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="WeaponMuzzleFlash">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-8.41593719e-05" Y="-0.000816107844" Z="0.0612007342"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="WeaponMuzzleRay">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
</c:BlendAdditive>
|
</c:BlendAdditive>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
|
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -154,7 +155,7 @@
|
|||||||
<InheritScale>true</InheritScale>
|
<InheritScale>true</InheritScale>
|
||||||
</c:BoneAttachment>
|
</c:BoneAttachment>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546911"/>
|
<Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546926"/>
|
||||||
<Orientation X="0.00124507793" Y="0.077417776" Z="0.00737103401"/>
|
<Orientation X="0.00124507793" Y="0.077417776" Z="0.00737103401"/>
|
||||||
<Scale X="0.300000012" Y="0.300000042" Z="0.299999952"/>
|
<Scale X="0.300000012" Y="0.300000042" Z="0.299999952"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -244,9 +245,10 @@
|
|||||||
</c:BoneAttachment>
|
</c:BoneAttachment>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.120748043" Y="-0.228436321" Z="-0.151475549"/>
|
<Position X="0.120748043" Y="-0.228436321" Z="-0.151475564"/>
|
||||||
<Orientation X="0.0102800643" Y="-0.00312487315" Z="0.0428144038"/>
|
<Orientation X="0.0102800643" Y="-0.00312487315" Z="0.0428144038"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -265,7 +267,7 @@
|
|||||||
<Entity name="Muzzle">
|
<Entity name="Muzzle">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.137428522" Y="-0.145251781" Z="-0.590083241"/>
|
<Position X="0.119734153" Y="-0.145251781" Z="-0.564532101"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -275,7 +277,7 @@
|
|||||||
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
|
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
|
||||||
</c:Spawner>
|
</c:Spawner>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0180841181" Y="0.0252480619" Z="-0.663679719"/>
|
<Position X="0" Y="0" Z="-0.109966502"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -286,7 +288,7 @@
|
|||||||
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
|
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
|
||||||
</c:Spawner>
|
</c:Spawner>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0201820824" Y="0.0212024488" Z="-0.0305794869"/>
|
<Position X="0.0201820824" Y="0" Z="0"/>
|
||||||
<Scale X="1.5" Y="1.5" Z="1"/>
|
<Scale X="1.5" Y="1.5" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<Entity name="ThirdPersonWeaponModel" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="ThirdPersonWeaponModel" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:Shielded/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
@@ -9,17 +10,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="WeaponMuzzle">
|
|
||||||
<Components>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/DefenderRayBlue.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.000284185546" Y="0.0318552479" Z="-0.193328083"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="ThirdPersonReloadSpawner">
|
<Entity name="ThirdPersonReloadSpawner">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Spawner>
|
<c:Spawner>
|
||||||
@@ -29,6 +19,38 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="Muzzle">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.0100463303" Y="0.0624945536" Z="-0.372351319"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="WeaponMuzzleRay">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0180841181" Y="0.0252480619" Z="-0.135249734"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="WeaponMuzzleFlash">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.0201820824" Y="0.0212024488" Z="-0.0305794869"/>
|
||||||
|
<Scale X="1.5" Y="1.5" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
</c:BlendAdditive>
|
</c:BlendAdditive>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
|
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -183,6 +184,7 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<GlowIntensity>1.2999999523162842</GlowIntensity>
|
<GlowIntensity>1.2999999523162842</GlowIntensity>
|
||||||
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.185786247" Y="-0.21622014" Z="-0.412707269"/>
|
<Position X="0.185786247" Y="-0.21622014" Z="-0.412707269"/>
|
||||||
@@ -204,7 +206,7 @@
|
|||||||
<Entity name="Muzzle">
|
<Entity name="Muzzle">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.197295129" Y="-0.116625182" Z="-0.709192753"/>
|
<Position X="0.189540595" Y="-0.114737265" Z="-0.681462705"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -213,9 +215,7 @@
|
|||||||
<c:Spawner>
|
<c:Spawner>
|
||||||
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
|
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
|
||||||
</c:Spawner>
|
</c:Spawner>
|
||||||
<c:Transform>
|
<c:Transform/>
|
||||||
<Position X="0" Y="0" Z="-0.155046776"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
</c:BlendAdditive>
|
</c:BlendAdditive>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
|
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -86,7 +87,7 @@
|
|||||||
<BoneName>R_Ammo_Joint</BoneName>
|
<BoneName>R_Ammo_Joint</BoneName>
|
||||||
</c:BoneAttachment>
|
</c:BoneAttachment>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.109812573" Y="-0.0832190216" Z="-0.373473197"/>
|
<Position X="0.109812573" Y="-0.0832190216" Z="-0.373473227"/>
|
||||||
<Orientation X="0.00118373742" Y="0.077411525" Z="0.00458352407"/>
|
<Orientation X="0.00118373742" Y="0.077411525" Z="0.00458352407"/>
|
||||||
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -183,9 +184,10 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<GlowIntensity>1.5</GlowIntensity>
|
<GlowIntensity>1.5</GlowIntensity>
|
||||||
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.18578662" Y="-0.216220587" Z="-0.382728696"/>
|
<Position X="0.18578662" Y="-0.216220587" Z="-0.382728726"/>
|
||||||
<Orientation X="0.010279973" Y="-0.00312555139" Z="0.0428142436"/>
|
<Orientation X="0.010279973" Y="-0.00312555139" Z="0.0428142436"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -204,10 +206,19 @@
|
|||||||
<Entity name="Muzzle">
|
<Entity name="Muzzle">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.196999997" Y="-0.116999999" Z="-0.668634355"/>
|
<Position X="0.192775041" Y="-0.117133088" Z="-0.647809923"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
|
<Entity name="WeaponMuzzleRay">
|
||||||
|
<Components>
|
||||||
|
<c:Spawner>
|
||||||
|
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
|
||||||
|
</c:Spawner>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
<Entity name="WeaponMuzzleFlash">
|
<Entity name="WeaponMuzzleFlash">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Spawner>
|
<c:Spawner>
|
||||||
@@ -219,17 +230,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="WeaponMuzzleRay">
|
|
||||||
<Components>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="-0.155000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|||||||
@@ -176,6 +176,9 @@ void Client::parseMessageType(Packet& packet)
|
|||||||
case MessageType::KD:
|
case MessageType::KD:
|
||||||
parseKDEvent(packet);
|
parseKDEvent(packet);
|
||||||
break;
|
break;
|
||||||
|
case MessageType::Win:
|
||||||
|
parseWin(packet);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -376,6 +379,13 @@ void Client::parseKDEvent(Packet & packet)
|
|||||||
m_EventBroker->Publish(e);
|
m_EventBroker->Publish(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Client::parseWin(Packet& packet)
|
||||||
|
{
|
||||||
|
Events::Win e;
|
||||||
|
e.TeamThatWon = packet.ReadPrimitive<int>();
|
||||||
|
m_EventBroker->Publish(e);
|
||||||
|
}
|
||||||
|
|
||||||
void Client::updateFields(Packet& packet, const ComponentInfo& componentInfo, const EntityID& entityID)
|
void Client::updateFields(Packet& packet, const ComponentInfo& componentInfo, const EntityID& entityID)
|
||||||
{
|
{
|
||||||
for (auto field : componentInfo.FieldsInOrder) {
|
for (auto field : componentInfo.FieldsInOrder) {
|
||||||
|
|||||||
@@ -609,6 +609,9 @@ bool Server::OnWin(const Events::Win & e)
|
|||||||
{
|
{
|
||||||
// Postpone the gameover reset
|
// Postpone the gameover reset
|
||||||
m_GameIsOver = true;
|
m_GameIsOver = true;
|
||||||
|
Packet winPacket = Packet(MessageType::Win);
|
||||||
|
winPacket.WritePrimitive(e.TeamThatWon);
|
||||||
|
reliableBroadcast(winPacket);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -417,6 +417,14 @@ bool SoundManager::OnSetCamera(const Events::SetCamera& e)
|
|||||||
alSourcei(m_CurrentBGMCombo->ALsource, AL_LOOPING, 1);
|
alSourcei(m_CurrentBGMCombo->ALsource, AL_LOOPING, 1);
|
||||||
setGain(m_CurrentBGMCombo, 0);
|
setGain(m_CurrentBGMCombo, 0);
|
||||||
playSound(m_CurrentBGMCombo);
|
playSound(m_CurrentBGMCombo);
|
||||||
|
} else if (m_World->HasComponent(e.CameraEntity.ID, "EndScreen")) {
|
||||||
|
float timeOffset = getTimeOffsetSeconds(m_CurrentBGM);
|
||||||
|
stopSound(m_CurrentBGM);
|
||||||
|
m_CurrentBGM = createSource("Audio/BGM/Layer3.wav");
|
||||||
|
m_CurrentBGM->Type = SoundType::BGM;
|
||||||
|
alSourcei(m_CurrentBGM->ALsource, AL_LOOPING, 1);
|
||||||
|
playSound(m_CurrentBGM);
|
||||||
|
setTimeOffsetSeconds(m_CurrentBGM, timeOffset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -477,6 +485,11 @@ float SoundManager::getTimeOffsetSeconds(Source* source)
|
|||||||
return time;
|
return time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SoundManager::setTimeOffsetSeconds(Source * source, float timeOffset)
|
||||||
|
{
|
||||||
|
alSourcef(source->ALsource, AL_SEC_OFFSET, timeOffset);
|
||||||
|
}
|
||||||
|
|
||||||
void SoundManager::initOpenAL()
|
void SoundManager::initOpenAL()
|
||||||
{
|
{
|
||||||
// Initialize OpenAL
|
// Initialize OpenAL
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ bool SoundSystem::OnPlayerDamage(const Events::PlayerDamage & e)
|
|||||||
if (!e.Victim.Valid() || !e.Inflictor.Valid()) {
|
if (!e.Victim.Valid() || !e.Inflictor.Valid()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (e.Victim.ID != LocalPlayer.ID) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
auto victimTeam = m_World->GetComponent(e.Victim.ID, "Team");
|
auto victimTeam = m_World->GetComponent(e.Victim.ID, "Team");
|
||||||
auto inflictorTeam = m_World->GetComponent(e.Inflictor.ID, "Team");
|
auto inflictorTeam = m_World->GetComponent(e.Inflictor.ID, "Team");
|
||||||
if ((int)victimTeam["Team"] == (int)inflictorTeam["Team"]) {
|
if ((int)victimTeam["Team"] == (int)inflictorTeam["Team"]) {
|
||||||
|
|||||||
@@ -14,7 +14,19 @@ void AssaultWeaponBehaviour::UpdateWeapon(ComponentWrapper cWeapon, WeaponInfo&
|
|||||||
// Start reloading automatically if at 0 mag ammo
|
// Start reloading automatically if at 0 mag ammo
|
||||||
Field<int> magAmmo = cWeapon["MagazineAmmo"];
|
Field<int> magAmmo = cWeapon["MagazineAmmo"];
|
||||||
if (m_ConfigAutoReload && magAmmo <= 0) {
|
if (m_ConfigAutoReload && magAmmo <= 0) {
|
||||||
OnReload(cWeapon, wi);
|
//OnReload(cWeapon, wi);
|
||||||
|
// Send an input command instead of reloading immediately so the server
|
||||||
|
// has a chance to catch up.
|
||||||
|
if (IsClient) {
|
||||||
|
Events::InputCommand e;
|
||||||
|
e.Player = wi.Player;
|
||||||
|
e.PlayerID = -1;
|
||||||
|
e.Command = "Reload";
|
||||||
|
e.Value = 1;
|
||||||
|
m_EventBroker->Publish(e);
|
||||||
|
e.Value = 0;
|
||||||
|
m_EventBroker->Publish(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only start reloading once we're done firing
|
// Only start reloading once we're done firing
|
||||||
@@ -235,7 +247,8 @@ void AssaultWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
|
|||||||
float distance = traceRayDistance(origin, direction);
|
float distance = traceRayDistance(origin, direction);
|
||||||
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
|
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
|
||||||
if (ray.Valid()) {
|
if (ray.Valid()) {
|
||||||
((Field<glm::vec3>)ray["Transform"]["Scale"]).z(distance);
|
((Field<glm::vec3>)ray["Transform"]["Scale"]).x(distance);
|
||||||
|
((Field<glm::vec3>)ray["Transform"]["Position"]).z(-distance/2.f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//MuzzleFlash
|
//MuzzleFlash
|
||||||
|
|||||||
@@ -395,9 +395,12 @@ void DefenderWeaponBehaviour::spawnTracers(ComponentWrapper cWeapon, WeaponInfo&
|
|||||||
glm::vec3 muzzlePosition = TransformSystem::AbsolutePosition(muzzle);
|
glm::vec3 muzzlePosition = TransformSystem::AbsolutePosition(muzzle);
|
||||||
glm::quat muzzleOrientation = TransformSystem::AbsoluteOrientation(muzzle);
|
glm::quat muzzleOrientation = TransformSystem::AbsoluteOrientation(muzzle);
|
||||||
|
|
||||||
rayOrigin = muzzlePosition;
|
|
||||||
|
|
||||||
glm::vec3 muzzleToHit = hitPosition - muzzlePosition;
|
glm::vec3 muzzleToHit = hitPosition - muzzlePosition;
|
||||||
|
|
||||||
|
rayOrigin = muzzlePosition + (muzzleToHit/2.f);
|
||||||
|
|
||||||
|
|
||||||
glm::vec3 lookVector = glm::normalize(-muzzleToHit);
|
glm::vec3 lookVector = glm::normalize(-muzzleToHit);
|
||||||
float pitch = std::asin(-lookVector.y);
|
float pitch = std::asin(-lookVector.y);
|
||||||
float yaw = std::atan2(lookVector.x, lookVector.z);
|
float yaw = std::atan2(lookVector.x, lookVector.z);
|
||||||
@@ -459,8 +462,8 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Temp hit decal
|
// Temp hit decal
|
||||||
EntityWrapper hit = ResourceManager::Load<EntityFile>("Schema/Entities/HitTest.xml")->MergeInto(m_World);
|
// EntityWrapper hit = ResourceManager::Load<EntityFile>("Schema/Entities/HitTest.xml")->MergeInto(m_World);
|
||||||
(Field<glm::vec3>)hit["Transform"]["Position"] = pick.Position;
|
// (Field<glm::vec3>)hit["Transform"]["Position"] = pick.Position;
|
||||||
|
|
||||||
// Don't let us shoot ourselves in the foot somehow
|
// Don't let us shoot ourselves in the foot somehow
|
||||||
if (victim == LocalPlayer) {
|
if (victim == LocalPlayer) {
|
||||||
@@ -477,12 +480,17 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
|
|||||||
|
|
||||||
// Check for friendly fire
|
// Check for friendly fire
|
||||||
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) {
|
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) {
|
||||||
// TODO: Ammo sharing
|
// Give boost
|
||||||
|
Events::PlayerDamage ePlayerDamage;
|
||||||
|
ePlayerDamage.Inflictor = wi.Player;
|
||||||
|
ePlayerDamage.Victim = victim;
|
||||||
|
ePlayerDamage.Damage = 0;
|
||||||
|
m_EventBroker->Publish(ePlayerDamage);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
damageSum[victim] += pelletDamage;
|
damageSum[victim] += pelletDamage;
|
||||||
((Field<glm::vec4>)hit["Model"]["Color"]).z(1.f);
|
// ((Field<glm::vec4>)hit["Model"]["Color"]).z(1.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deal damage!
|
// Deal damage!
|
||||||
@@ -493,7 +501,6 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
|
|||||||
ePlayerDamage.Victim = kv.first;
|
ePlayerDamage.Victim = kv.first;
|
||||||
ePlayerDamage.Damage = kv.second;
|
ePlayerDamage.Damage = kv.second;
|
||||||
m_EventBroker->Publish(ePlayerDamage);
|
m_EventBroker->Publish(ePlayerDamage);
|
||||||
LOG_DEBUG("Dealt %f damage to #%i", kv.second, kv.first.ID);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -223,15 +223,16 @@ void SidearmWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Tracer
|
// Tracer
|
||||||
EntityWrapper tracerSpawner = weaponModelEntity.FirstChildByName("WeaponMuzzleRay");
|
EntityWrapper tracerSpawner = weaponModelEntity.FirstChildByName("WeaponMuzzleRay");
|
||||||
if (tracerSpawner.Valid()) {
|
if (tracerSpawner.Valid()) {
|
||||||
glm::vec3 origin = TransformSystem::AbsolutePosition(tracerSpawner);
|
glm::vec3 origin = TransformSystem::AbsolutePosition(tracerSpawner);
|
||||||
glm::vec3 direction = TransformSystem::AbsoluteOrientation(tracerSpawner) * glm::vec3(0, 0, -1);
|
glm::vec3 direction = glm::quat(TransformSystem::AbsoluteOrientationEuler(tracerSpawner)) * glm::vec3(0, 0, -1);
|
||||||
float distance = traceRayDistance(origin, direction);
|
float distance = traceRayDistance(origin, direction);
|
||||||
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
|
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
|
||||||
if (ray.Valid()) {
|
if (ray.Valid()) {
|
||||||
((Field<glm::vec3>)ray["Transform"]["Scale"]).z(distance);
|
((Field<glm::vec3>)ray["Transform"]["Scale"]).x(distance);
|
||||||
|
((Field<glm::vec3>)ray["Transform"]["Position"]).z(-distance/2.f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user