Compare commits
219 Commits
Sound
...
SniperSprint
| Author | SHA1 | Date | |
|---|---|---|---|
| a20ef0504a | |||
| 4e68f9063b | |||
| dbef995627 | |||
| f8f4b4d939 | |||
| 62653cf65d | |||
| 78835f95d8 | |||
| 8a66b1e5c8 | |||
| 3c8df35be9 | |||
| f761416e20 | |||
| 9161c11764 | |||
| a2b938d8f6 | |||
| ab7fd89546 | |||
| 6968e71e07 | |||
| 2fb3bb2a39 | |||
| 6540848392 | |||
| de9657700b | |||
| 4652cd7861 | |||
| 03a35d0f5e | |||
| e4e9af5d9c | |||
| 96768e66de | |||
| ef66f3ebe5 | |||
| 799990f44d | |||
| 39369aa3e5 | |||
| 6eb0b83d6b | |||
| ab40fa715b | |||
| a38c18fd3a | |||
| 9747a201b7 | |||
| 6281e20000 | |||
| f147929aa9 | |||
| aadfdfdd90 | |||
| bba002dea9 | |||
| 15195964da | |||
| b0a66f9e83 | |||
| 7ba5e01560 | |||
| 6d68486c05 | |||
| c60e1ba7e4 | |||
| 63d205f56a | |||
| 36f6ade87a | |||
| 724d7b1586 | |||
| 8cda614de4 | |||
| 77eaa45702 | |||
| dfa224b4dd | |||
| 86df8f14f4 | |||
| eaea645068 | |||
| 21bf7f4df3 | |||
| e2b7e5400d | |||
| 658eace093 | |||
| c106768939 | |||
| c7dad79e72 | |||
| d37f8cc350 | |||
| 3c35c0a956 | |||
| d47a806c64 | |||
| 8e21c5a5e4 | |||
| df7ace6626 | |||
| bef79d116b | |||
| db5170c699 | |||
| bb76c9d248 | |||
| 9cbc6f7755 | |||
| d3a245606a | |||
| b320d8d1e4 | |||
| afddd276a4 | |||
| a48e1b567a | |||
| 62e22d3821 | |||
| 0805375483 | |||
| 0c60b637c3 | |||
| d411de894f | |||
| f56705d921 | |||
| 18450ff4f3 | |||
| 22b473a0b6 | |||
| f161fce719 | |||
| 0343683678 | |||
| 9e6c67596d | |||
| 89d0d5753f | |||
| 748a178801 | |||
| eac9a9daf6 | |||
| 059fe5c6c0 | |||
| fb465ede81 | |||
| f66fa7a183 | |||
| 508d8a6f00 | |||
| cd315bbaa0 | |||
| 8ce6308649 | |||
| f10958c268 | |||
| da1c7b3093 | |||
| ef87102d1f | |||
| 9a41bda4cf | |||
| fc18932068 | |||
| b874ea8641 | |||
| 2609a0253d | |||
| de309d3b9d | |||
| f7ef6707a7 | |||
| feeff5b164 | |||
| 7394436e7a | |||
| f41e0b29be | |||
| 607e83134d | |||
| 5af4f9d8e7 | |||
| af68236e71 | |||
| 6f9ce8a0c1 | |||
| 6465fe6ed6 | |||
| fa13c1d065 | |||
| e2831c5593 | |||
| 8d23c531af | |||
| 91b0ac5fbd | |||
| d77119bb2d | |||
| 27669b7383 | |||
| fc7d62a5ad | |||
| c42e1e0967 | |||
| fe9dbf0b0f | |||
| 4ffb03fdd5 | |||
| fe3e0bac5b | |||
| fa4f007604 | |||
| e5ff88d3c9 | |||
| 845a30ed0f | |||
| 34a71b0767 | |||
| 833006744a | |||
| b2d8cddfb7 | |||
| 6fab971734 | |||
| 2c18068059 | |||
| 09aec08d0e | |||
| ed9149fe63 | |||
| 4cf8c3d8d7 | |||
| 37414ce124 | |||
| adceccf402 | |||
| 4c1a284636 | |||
| 23dc8e07b2 | |||
| c7d31cac2d | |||
| a1e932d261 | |||
| 070f1bd394 | |||
| 993d804cef | |||
| 201480b17f | |||
| bac23f6e8c | |||
| 68f2d5327d | |||
| 2263fd2ad6 | |||
| 2f259c3773 | |||
| 8cc928b5f4 | |||
| 881ce7b02f | |||
| c130fdda5e | |||
| 97fcdb342d | |||
| 4c87ca10b9 | |||
| 22664848dc | |||
| d135ea2da6 | |||
| 949ee76f55 | |||
| 844825813b | |||
| 722b795d37 | |||
| cf2bf4e14d | |||
| 2ac584bafb | |||
| 6e5335a266 | |||
| fc5d054cb2 | |||
| 8c9f4bb84b | |||
| e15a7b9485 | |||
| a141da3d8c | |||
| b81bb9eeea | |||
| ca907b912e | |||
| b2304a95f8 | |||
| 8c92b7ceb6 | |||
| 97499f1c28 | |||
| 64610e3c03 | |||
| 7f489b3569 | |||
| 5dd85d2748 | |||
| 261c2e021e | |||
| 581a7b470c | |||
| c3ed429377 | |||
| c4d3c515e4 | |||
| 7cc58dc94c | |||
| 5e3af7ac5d | |||
| 3e7936ef00 | |||
| 46987beefb | |||
| 8845054965 | |||
| 7dfd68467e | |||
| 4fd0108443 | |||
| 56bc1fee3d | |||
| 52355a63e2 | |||
| 72db672dbf | |||
| 1c9a1a9904 | |||
| 950ecba1c0 | |||
| fdc8f753cb | |||
| e8aff02c4e | |||
| 0d665c10fe | |||
| 23bb1a6405 | |||
| b8222c7b2e | |||
| 43bbc063cf | |||
| f7303ad787 | |||
| 3e4b87da7c | |||
| ac9ce8ea83 | |||
| 99643fd748 | |||
| a6c30100af | |||
| 833015f45e | |||
| 657125b469 | |||
| 456cd35a12 | |||
| 8f28c760dd | |||
| b13362360a | |||
| 0af9edc6e5 | |||
| ec10ef3ffc | |||
| 4432891437 | |||
| b2a437731e | |||
| 42b49f9dba | |||
| 4b8f1d95a3 | |||
| 8f84a5ddd6 | |||
| a006db9e63 | |||
| 17da9a8036 | |||
| 6bc7131290 | |||
| 4214bf10a1 | |||
| 717af2c4a4 | |||
| 969e7cb0d5 | |||
| 47a365a8fc | |||
| 71c03326aa | |||
| ba69c79821 | |||
| 0a31fa3dfd | |||
| ca457d9c00 | |||
| a08e54a147 | |||
| 2c3122bbdb | |||
| 10846be820 | |||
| 7d732c75ca | |||
| 02cd822cf1 | |||
| f7756ff60f | |||
| 2d5f71e442 | |||
| 2f53ed140f | |||
| 503613907e | |||
| 4bf91ba56a | |||
| 047e71a4e1 |
@@ -28,6 +28,7 @@ public:
|
|||||||
virtual void Reset();
|
virtual void Reset();
|
||||||
|
|
||||||
void AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer);
|
void AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer);
|
||||||
|
bool SniperSprintingCheck();
|
||||||
virtual bool AssaultDashDoubleTapped() const { return m_AssaultDashDoubleTapped; }
|
virtual bool AssaultDashDoubleTapped() const { return m_AssaultDashDoubleTapped; }
|
||||||
virtual bool PlayerIsDashing() const { return m_PlayerIsDashing; }
|
virtual bool PlayerIsDashing() const { return m_PlayerIsDashing; }
|
||||||
|
|
||||||
@@ -202,7 +203,7 @@ void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool
|
|||||||
}
|
}
|
||||||
|
|
||||||
//dashing with shift
|
//dashing with shift
|
||||||
if (m_ShiftDashing && m_AssaultDashCoolDownTimer <= 0.0f && !isJumping) {
|
if (m_ShiftDashing && m_AssaultDashCoolDownTimer <= 0.0f) {
|
||||||
//player is dashing with shift
|
//player is dashing with shift
|
||||||
//the wanted-direction is set in playermovement already so we dont need to check what direction we want to dash in!
|
//the wanted-direction is set in playermovement already so we dont need to check what direction we want to dash in!
|
||||||
m_AssaultDashCoolDownTimer = assaultDashCoolDownMaxTimer;
|
m_AssaultDashCoolDownTimer = assaultDashCoolDownMaxTimer;
|
||||||
@@ -227,7 +228,7 @@ void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool
|
|||||||
}
|
}
|
||||||
m_ValidDoubleTap = false;
|
m_ValidDoubleTap = false;
|
||||||
|
|
||||||
if (!(m_AssaultDashCoolDownTimer <= 0.0f && !isJumping)) {
|
if (!(m_AssaultDashCoolDownTimer <= 0.0f)) {
|
||||||
//if we cant dash at the moment, then just reset the tap-sensitivity-timer
|
//if we cant dash at the moment, then just reset the tap-sensitivity-timer
|
||||||
m_AssaultDashDoubleTapDeltaTime = 0.f;
|
m_AssaultDashDoubleTapDeltaTime = 0.f;
|
||||||
return;
|
return;
|
||||||
@@ -241,4 +242,12 @@ void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool
|
|||||||
m_EventBroker->Publish(e);
|
m_EventBroker->Publish(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename EventContext>
|
||||||
|
bool FirstPersonInputController<EventContext>::SniperSprintingCheck() {
|
||||||
|
if (m_SpecialAbilityKeyDown) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
#define NetworkClient_h__
|
#define NetworkClient_h__
|
||||||
|
|
||||||
#include "Network/Packet.h"
|
#include "Network/Packet.h"
|
||||||
#define BUFFERSIZE 32000
|
#define BUFFERSIZE 64000
|
||||||
typedef unsigned int PlayerID;
|
typedef unsigned int PlayerID;
|
||||||
typedef unsigned int PacketID;
|
typedef unsigned int PacketID;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <boost/asio.hpp>
|
#include <boost/asio.hpp>
|
||||||
#include "Network/Packet.h"
|
#include "Network/Packet.h"
|
||||||
#include "Network/PlayerDefinition.h"
|
#include "Network/PlayerDefinition.h"
|
||||||
#define BUFFERSIZE 32000
|
#define BUFFERSIZE 64000
|
||||||
typedef unsigned int PlayerID;
|
typedef unsigned int PlayerID;
|
||||||
typedef unsigned int PacketID;
|
typedef unsigned int PacketID;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#ifndef BoostSystem_h__
|
||||||
|
#define BoostSystem_h__
|
||||||
|
|
||||||
|
#include "Core/System.h"
|
||||||
|
#include "Core/ResourceManager.h"
|
||||||
|
#include "Core/EntityFileParser.h"
|
||||||
|
#include "Core/EPlayerDamage.h"
|
||||||
|
#include "Common.h"
|
||||||
|
|
||||||
|
class BoostSystem : public System
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BoostSystem(SystemParams params);
|
||||||
|
|
||||||
|
private:
|
||||||
|
EventRelay<BoostSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||||
|
bool OnPlayerDamage(Events::PlayerDamage& e);
|
||||||
|
|
||||||
|
std::string DetermineClass(EntityWrapper player);
|
||||||
|
};
|
||||||
|
#endif
|
||||||
@@ -35,7 +35,12 @@
|
|||||||
<xs:include schemaLocation="Components/AmmoPickup.xsd"/>
|
<xs:include schemaLocation="Components/AmmoPickup.xsd"/>
|
||||||
<xs:include schemaLocation="Components/AnimationOffset.xsd"/>
|
<xs:include schemaLocation="Components/AnimationOffset.xsd"/>
|
||||||
<xs:include schemaLocation="Components/DashAbility.xsd"/>
|
<xs:include schemaLocation="Components/DashAbility.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/ShieldAbility.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/SprintAbility.xsd"/>
|
||||||
<xs:include schemaLocation="Components/AssaultWeapon.xsd"/>
|
<xs:include schemaLocation="Components/AssaultWeapon.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/BoostAssault.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/BoostDefender.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/BoostSniper.xsd"/>
|
||||||
<xs:include schemaLocation="Components/Shield.xsd"/>
|
<xs:include schemaLocation="Components/Shield.xsd"/>
|
||||||
<xs:include schemaLocation="Components/Sprite.xsd"/>
|
<xs:include schemaLocation="Components/Sprite.xsd"/>
|
||||||
<xs:include schemaLocation="Components/Shielded.xsd"/>
|
<xs:include schemaLocation="Components/Shielded.xsd"/>
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<BoostAssault xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BoostAssault.xsd">
|
||||||
|
<StrengthOfEffect>2</StrengthOfEffect>
|
||||||
|
</BoostAssault>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?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="BoostAssault">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>This is the assault's class boost component</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="StrengthOfEffect" type="t:double" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>This is the strength of the boost effect</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<BoostDefender xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BoostDefender.xsd">
|
||||||
|
<StrengthOfEffect>10</StrengthOfEffect>
|
||||||
|
</BoostDefender>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?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="BoostDefender">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>This is the defender's class boost component</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="StrengthOfEffect" type="t:double" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>This is the strength of the boost effect</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<BoostSniper xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BoostSniper.xsd">
|
||||||
|
<StrengthOfEffect>10</StrengthOfEffect>
|
||||||
|
</BoostSniper>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?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="BoostSniper">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>This is the sniper's class boost component</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="StrengthOfEffect" type="t:double" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>This is the strength of the boost effect</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ShieldAbility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ShieldAbility.xsd">
|
||||||
|
<CoolDownMaxTimer>2.0</CoolDownMaxTimer>
|
||||||
|
</ShieldAbility>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?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="ShieldAbility">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>A shield component for one of the classes</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="CoolDownMaxTimer" type="t:double" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>This is the cooldown on shield</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<SprintAbility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SprintAbility.xsd">
|
||||||
|
<StrengthOfEffect>2.0</StrengthOfEffect>
|
||||||
|
</SprintAbility>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?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="SprintAbility">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>A sprint component for one of the classes</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="StrengthOfEffect" type="t:double" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>This is the strength of the sprint effect</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -5,10 +5,15 @@
|
|||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:AmmoPickup/>
|
<c:AmmoPickup/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
<Resource>Models/Props/PickUps/AmmoPickUp.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
|
<c:RaptorCopter>
|
||||||
|
<Speed>0.1</Speed>
|
||||||
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="1" Z="0"/>
|
<Position X="0" Y="1" Z="0"/>
|
||||||
|
<Scale X="0.3" Y="0.3" Z="0.3"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?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:BoostAssault/>
|
||||||
|
<c:Lifetime>
|
||||||
|
<Lifetime>10</Lifetime>
|
||||||
|
</c:Lifetime>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children/>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
|||||||
|
<?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:BoostDefender/>
|
||||||
|
<c:Lifetime>
|
||||||
|
<Lifetime>10</Lifetime>
|
||||||
|
</c:Lifetime>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children/>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?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:BoostSniper/>
|
||||||
|
<c:Lifetime>
|
||||||
|
<Lifetime>10</Lifetime>
|
||||||
|
</c:Lifetime>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children/>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -5,10 +5,15 @@
|
|||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:HealthPickup/>
|
<c:HealthPickup/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
<Resource>Models/Props/PickUps/HealthPickUp.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
|
<c:RaptorCopter>
|
||||||
|
<Speed>0.1</Speed>
|
||||||
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="1" Z="0"/>
|
<Position X="0" Y="1" Z="0"/>
|
||||||
|
<Scale X="0.3" Y="0.3" Z="0.3"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|||||||
@@ -593,7 +593,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="56.3723755" Y="-0.458255291" Z="53.1675453"/>
|
<Position X="57.2414131" Y="-0.458255291" Z="53.1675453"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -726,7 +726,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-2.87285304" Y="0" Z="0.0110195652"/>
|
<Position X="-3.20842171" Y="0" Z="0.0110195652"/>
|
||||||
<Scale X="1" Y="0.800000012" Z="1"/>
|
<Scale X="1" Y="0.800000012" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -739,7 +739,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="2.9002583" Y="0" Z="-0.00627081469"/>
|
<Position X="3.16696811" Y="0" Z="-0.00627081469"/>
|
||||||
<Scale X="1" Y="0.800000012" Z="1"/>
|
<Scale X="1" Y="0.800000012" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -1291,7 +1291,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="42.3930092" Y="-0.436794043" Z="53.3168259"/>
|
<Position X="42.6762505" Y="-0.436794043" Z="53.3168259"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1302,7 +1302,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="2.79896975" Y="0" Z="0"/>
|
<Position X="3.02606034" Y="0" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1314,7 +1314,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="5.67178059" Y="0" Z="0"/>
|
<Position X="6.20324564" Y="0" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -1326,7 +1326,7 @@
|
|||||||
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
<Resource>Models/Props/Walls/BigWallBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="8.55263519" Y="0" Z="0"/>
|
<Position X="9.40820885" Y="0" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -3310,6 +3310,60 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="2.85156512" Y="-1.23010564" Z="-1.48294902"/>
|
||||||
|
<Scale X="1.50000012" Y="1" Z="1.4000001"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/MediumStone2.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-8.1107378" Y="1.61279738" Z="6.04347277"/>
|
||||||
|
<Scale X="2.70000005" Y="2.20000005" Z="2.4000001"/>
|
||||||
|
<Orientation X="1.02200007" Y="1.27200007" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-12.3116245" Y="3.30153632" Z="2.33947349"/>
|
||||||
|
<Orientation X="0" Y="3.46600008" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="2.7208035" Y="0.631672204" Z="1.97706997"/>
|
||||||
|
<Orientation X="0" Y="0" Z="5.86300039"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity>
|
<Entity>
|
||||||
@@ -3319,7 +3373,7 @@
|
|||||||
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-32.077774" Y="1.78250229" Z="-52.9675865"/>
|
<Position X="-32.141304" Y="1.78250229" Z="-52.9675865"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -3349,6 +3403,46 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="13.3016024" Y="-1.04082656" Z="-2.06582665"/>
|
||||||
|
<Orientation X="0" Y="1.17200005" Z="6.28300047"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/SmallStone1.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="7.52924776" Y="0.407071143" Z="-2.09290624"/>
|
||||||
|
<Scale X="3.4000001" Y="5.70000029" Z="3.70000029"/>
|
||||||
|
<Orientation X="0" Y="1.7700001" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Props/Stones/BigStone.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-5.73053885" Y="-0.909733951" Z="4.32710028"/>
|
||||||
|
<Orientation X="0" Y="3.46600008" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity>
|
<Entity>
|
||||||
@@ -3698,7 +3792,7 @@
|
|||||||
<Resource>Models/Props/Stones/SmallStone1.mesh</Resource>
|
<Resource>Models/Props/Stones/SmallStone1.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="17.9978104" Y="0.729522109" Z="64.9478226"/>
|
<Position X="17.9978104" Y="0.729522109" Z="65.3742523"/>
|
||||||
<Scale X="3" Y="3" Z="3"/>
|
<Scale X="3" Y="3" Z="3"/>
|
||||||
<Orientation X="2.68900013" Y="3.5940001" Z="0"/>
|
<Orientation X="2.68900013" Y="3.5940001" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -3948,7 +4042,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-40.5458374" Y="-0.729142785" Z="-45.7907982"/>
|
<Position X="-40.5458374" Y="-0.729142785" Z="-45.7907982"/>
|
||||||
<Orientation X="4.93700027" Y="3.5" Z="1.37700009"/>
|
<Orientation X="4.93700027" Y="4.81200027" Z="1.37700009"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -4671,6 +4765,7 @@
|
|||||||
<HomePointForTeam>
|
<HomePointForTeam>
|
||||||
<Blue/>
|
<Blue/>
|
||||||
</HomePointForTeam>
|
</HomePointForTeam>
|
||||||
|
<CapturePointNumber>4</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
||||||
@@ -4706,7 +4801,7 @@
|
|||||||
<Entity>
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
<CapturePointNumber>3</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
||||||
@@ -4771,7 +4866,7 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
<CaptureTimer>1.5498908015879351</CaptureTimer>
|
<CaptureTimer>1.5498908015879351</CaptureTimer>
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
<CapturePointNumber>1</CapturePointNumber>
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
||||||
@@ -4806,7 +4901,6 @@
|
|||||||
<HomePointForTeam>
|
<HomePointForTeam>
|
||||||
<Red/>
|
<Red/>
|
||||||
</HomePointForTeam>
|
</HomePointForTeam>
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
||||||
@@ -4925,7 +5019,7 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-60.3695679" Y="2.14482641" Z="-79.3789597"/>
|
<Position X="-60.3695679" Y="5.14500046" Z="-79.3789597"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -4995,7 +5089,7 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="60.0169258" Y="2.37972379" Z="76.2893906"/>
|
<Position X="60.0169258" Y="6.0800004" Z="76.2893906"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -5071,7 +5165,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="48.9189453" Y="7.06223536" Z="-78.9347992"/>
|
<Position X="48.9189453" Y="7.06223536" Z="-78.9347992"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="22.6496716" Z="0"/>
|
<Orientation X="0" Y="74.6042328" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5090,7 +5184,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-59.3499641" Y="7.46932745" Z="-20.6276321"/>
|
<Position X="-59.3499641" Y="7.46932745" Z="-20.6276321"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="19.304081" Z="0"/>
|
<Orientation X="0" Y="71.2585754" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5109,7 +5203,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-1.13644195" Y="1.38919806" Z="38.9768829"/>
|
<Position X="-1.13644195" Y="1.38919806" Z="38.9768829"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="16.9120293" Z="0"/>
|
<Orientation X="0" Y="68.8666077" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5128,7 +5222,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="54.7225227" Y="6.51863909" Z="29.0052128"/>
|
<Position X="54.7225227" Y="6.51863909" Z="29.0052128"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="17.2259693" Z="0"/>
|
<Orientation X="0" Y="69.180542" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5147,7 +5241,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-51.6792374" Y="8.44526482" Z="32.5153465"/>
|
<Position X="-51.6792374" Y="8.44526482" Z="32.5153465"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="16.6746445" Z="0"/>
|
<Orientation X="0" Y="68.6292572" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5166,7 +5260,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-42.3974304" Y="7.28327894" Z="81.9305344"/>
|
<Position X="-42.3974304" Y="7.28327894" Z="81.9305344"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="14.8039036" Z="0"/>
|
<Orientation X="0" Y="66.7584839" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5185,7 +5279,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-9.85184956" Y="8.25567532" Z="39.6119232"/>
|
<Position X="-9.85184956" Y="8.25567532" Z="39.6119232"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="13.8527527" Z="0"/>
|
<Orientation X="0" Y="65.8073425" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5204,7 +5298,7 @@
|
|||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="49.2257118" Y="7.39368248" Z="-31.1810112"/>
|
<Position X="49.2257118" Y="7.39368248" Z="-31.1810112"/>
|
||||||
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
<Scale X="0.300000012" Y="0.300000012" Z="0.300000012"/>
|
||||||
<Orientation X="0" Y="11.0639687" Z="0"/>
|
<Orientation X="0" Y="63.0184822" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|||||||
@@ -23,9 +23,7 @@
|
|||||||
<Blue/>
|
<Blue/>
|
||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform/>
|
||||||
<Position X="0" Y="0.0288832653" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
@@ -37,20 +35,6 @@
|
|||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="PlayerName">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,100</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<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"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="CameraModel">
|
<Entity name="CameraModel">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
@@ -504,7 +488,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Assault/AssaultAnimations.mesh</Resource>
|
<Resource>Models/Characters/Assault/AssaultAnimations.mesh</Resource>
|
||||||
<Color A="1" B="1" G="0.309803933" R="0"/>
|
<Color A="1" B="1" G="0.309803933" R="0"/>
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -574,6 +557,21 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="PlayerName">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Insert name here</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,100</Resource>
|
||||||
|
<Color A="1" B="0" G="1" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.100000001" Y="1.50176644" Z="-0.248000011"/>
|
||||||
|
<Scale X="0.100000001" Y="0.113000005" Z="0.5"/>
|
||||||
|
<Orientation X="0" Y="3.14199996" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -35,20 +35,6 @@
|
|||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="PlayerName">
|
|
||||||
<Components>
|
|
||||||
<c:Text>
|
|
||||||
<Resource>Fonts/DroidSans.ttf,100</Resource>
|
|
||||||
<Color A="1" B="0" G="1" R="0"/>
|
|
||||||
</c:Text>
|
|
||||||
<c:Transform>
|
|
||||||
<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"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="CameraModel">
|
<Entity name="CameraModel">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
@@ -571,6 +557,21 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="PlayerName">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Insert name here</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,100</Resource>
|
||||||
|
<Color A="1" B="0" G="1" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.100000001" Y="1.50199997" Z="-0.248000011"/>
|
||||||
|
<Scale X="0.100000001" Y="0.113000005" Z="0.5"/>
|
||||||
|
<Orientation X="0" Y="3.14199996" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -40,8 +40,11 @@ EditorSystem::EditorSystem(SystemParams params, IRenderer* renderer, RenderFrame
|
|||||||
|
|
||||||
m_EditorStats = new EditorStats();
|
m_EditorStats = new EditorStats();
|
||||||
|
|
||||||
|
m_Enabled = ResourceManager::Load<ConfigFile>("Config.ini")->Get<bool>("Debug.EditorEnabled", false);
|
||||||
if (m_Enabled) {
|
if (m_Enabled) {
|
||||||
Enable();
|
Enable();
|
||||||
|
} else {
|
||||||
|
Disable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -436,7 +436,11 @@ bool Client::OnPlayerSpawned(const Events::PlayerSpawned& e)
|
|||||||
void Client::parsePlayerDamage(Packet& packet)
|
void Client::parsePlayerDamage(Packet& packet)
|
||||||
{
|
{
|
||||||
Events::PlayerDamage e;
|
Events::PlayerDamage e;
|
||||||
e.Inflictor = EntityWrapper(m_World, m_ServerIDToClientID.at(packet.ReadPrimitive<EntityID>()));
|
PlayerID victimID = packet.ReadPrimitive<EntityID>();
|
||||||
|
if(serverClientMapsHasEntity(victimID)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
e.Inflictor = EntityWrapper(m_World, m_ServerIDToClientID.at(victimID));
|
||||||
e.Victim = EntityWrapper(m_World, m_ServerIDToClientID.at(packet.ReadPrimitive<EntityID>()));
|
e.Victim = EntityWrapper(m_World, m_ServerIDToClientID.at(packet.ReadPrimitive<EntityID>()));
|
||||||
e.Damage = packet.ReadPrimitive<double>();
|
e.Damage = packet.ReadPrimitive<double>();
|
||||||
// Don't rebroadcast our own player damage events or we'll have an infinite loop!
|
// Don't rebroadcast our own player damage events or we'll have an infinite loop!
|
||||||
|
|||||||
@@ -335,6 +335,7 @@ void Server::disconnect(PlayerID playerID)
|
|||||||
//m_World->DeleteEntity(m_ConnectedPlayers[playerID].EntityID);
|
//m_World->DeleteEntity(m_ConnectedPlayers[playerID].EntityID);
|
||||||
m_ConnectedPlayers[playerID].TCPSocket->shutdown(boost::asio::ip::tcp::socket::shutdown_both);
|
m_ConnectedPlayers[playerID].TCPSocket->shutdown(boost::asio::ip::tcp::socket::shutdown_both);
|
||||||
m_ConnectedPlayers[playerID].TCPSocket->close();
|
m_ConnectedPlayers[playerID].TCPSocket->close();
|
||||||
|
m_World->DeleteEntity(m_ConnectedPlayers[playerID].EntityID);
|
||||||
m_ConnectedPlayers.erase(playerID);
|
m_ConnectedPlayers.erase(playerID);
|
||||||
// Send disconnect to the other players.
|
// Send disconnect to the other players.
|
||||||
}
|
}
|
||||||
@@ -476,6 +477,11 @@ void Server::parseOnInputCommand(Packet& packet)
|
|||||||
|
|
||||||
void Server::parsePlayerTransform(Packet& packet)
|
void Server::parsePlayerTransform(Packet& packet)
|
||||||
{
|
{
|
||||||
|
PlayerID playerID = GetPlayerIDFromEndpoint();
|
||||||
|
if (playerID == -1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
glm::vec3 position;
|
glm::vec3 position;
|
||||||
glm::vec3 orientation;
|
glm::vec3 orientation;
|
||||||
position.x = packet.ReadPrimitive<float>();
|
position.x = packet.ReadPrimitive<float>();
|
||||||
@@ -485,7 +491,6 @@ void Server::parsePlayerTransform(Packet& packet)
|
|||||||
orientation.y = packet.ReadPrimitive<float>();
|
orientation.y = packet.ReadPrimitive<float>();
|
||||||
orientation.z = packet.ReadPrimitive<float>();
|
orientation.z = packet.ReadPrimitive<float>();
|
||||||
|
|
||||||
PlayerID playerID = GetPlayerIDFromEndpoint();
|
|
||||||
bool hasAssaultWeapon = packet.ReadPrimitive<bool>();
|
bool hasAssaultWeapon = packet.ReadPrimitive<bool>();
|
||||||
int magazineAmmo;
|
int magazineAmmo;
|
||||||
int ammo;
|
int ammo;
|
||||||
|
|||||||
@@ -121,7 +121,6 @@ void Skeleton::AccumulateBoneTransforms(bool noRootMotion, std::vector<Animation
|
|||||||
|
|
||||||
|
|
||||||
if (progress > 1.0f || progress < 0.0f) {
|
if (progress > 1.0f || progress < 0.0f) {
|
||||||
LOG_INFO("Progress: %f", progress);
|
|
||||||
progress = glm::clamp(progress, 0.0f, 1.0f);
|
progress = glm::clamp(progress, 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
||||||
@@ -241,7 +240,6 @@ void Skeleton::AccumulateBoneTransforms(bool noRootMotion, std::vector<Animation
|
|||||||
|
|
||||||
|
|
||||||
if (progress > 1.0f || progress < 0.0f) {
|
if (progress > 1.0f || progress < 0.0f) {
|
||||||
LOG_INFO("Progress: %f", progress);
|
|
||||||
progress = glm::clamp(progress, 0.0f, 1.0f);
|
progress = glm::clamp(progress, 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
||||||
@@ -489,7 +487,6 @@ glm::mat4 Skeleton::GetBoneTransform(bool noRootMotion, const Bone* bone, std::v
|
|||||||
|
|
||||||
|
|
||||||
if (progress > 1.0f || progress < 0.0f) {
|
if (progress > 1.0f || progress < 0.0f) {
|
||||||
LOG_INFO("Progress: %f", progress);
|
|
||||||
progress = glm::clamp(progress, 0.0f, 1.0f);
|
progress = glm::clamp(progress, 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
||||||
@@ -609,12 +606,10 @@ glm::mat4 Skeleton::GetBoneTransform(bool noRootMotion, const Bone* bone, std::v
|
|||||||
progress = (time - currentFrame.Time) / (animation->Duration - currentFrame.Time);
|
progress = (time - currentFrame.Time) / (animation->Duration - currentFrame.Time);
|
||||||
} else {
|
} else {
|
||||||
progress = (time - currentFrame.Time) / (nextFrame.Time - currentFrame.Time);
|
progress = (time - currentFrame.Time) / (nextFrame.Time - currentFrame.Time);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (progress > 1.0f || progress < 0.0f) {
|
if (progress > 1.0f || progress < 0.0f) {
|
||||||
LOG_INFO("Progress: %f", progress);
|
|
||||||
progress = glm::clamp(progress, 0.0f, 1.0f);
|
progress = glm::clamp(progress, 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
Animation::Keyframe::BoneProperty currentBoneProperty = currentFrame.BoneProperties;
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#include "Network/MultiplayerSnapshotFilter.h"
|
#include "Network/MultiplayerSnapshotFilter.h"
|
||||||
#include "Game/Systems/AmmunitionHUDSystem.h"
|
#include "Game/Systems/AmmunitionHUDSystem.h"
|
||||||
#include "Game/Systems/KillFeedSystem.h"
|
#include "Game/Systems/KillFeedSystem.h"
|
||||||
|
#include "Game/Systems/BoostSystem.h"
|
||||||
|
|
||||||
|
|
||||||
Game::Game(int argc, char* argv[])
|
Game::Game(int argc, char* argv[])
|
||||||
@@ -132,6 +133,7 @@ Game::Game(int argc, char* argv[])
|
|||||||
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<AmmunitionHUDSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<AmmunitionHUDSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<BoostSystem>(updateOrderLevel);
|
||||||
// Populate Octree with collidables
|
// Populate Octree with collidables
|
||||||
++updateOrderLevel;
|
++updateOrderLevel;
|
||||||
m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable");
|
m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable");
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ bool MultiplayerSnapshotFilter::FilterComponent(EntityWrapper entity, SharedComp
|
|||||||
|| component.Info.Name == "AssaultWeapon"
|
|| component.Info.Name == "AssaultWeapon"
|
||||||
|| component.Info.Name == "Animation"
|
|| component.Info.Name == "Animation"
|
||||||
|| component.Info.Name == "AnimationOffset"
|
|| component.Info.Name == "AnimationOffset"
|
||||||
|
|| entity.Name() == "PlayerName"
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
#include "Systems/BoostSystem.h"
|
||||||
|
|
||||||
|
BoostSystem::BoostSystem(SystemParams params)
|
||||||
|
: System(params)
|
||||||
|
{
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EPlayerDamage, &BoostSystem::OnPlayerDamage);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BoostSystem::OnPlayerDamage(Events::PlayerDamage& e)
|
||||||
|
{
|
||||||
|
if (e.Victim.ID == e.Inflictor.ID) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!e.Victim.Valid() && e.Victim != LocalPlayer && !e.Victim.IsChildOf(LocalPlayer)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!e.Inflictor.Valid() || !e.Victim.Valid()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//if its not friendly fire, return
|
||||||
|
if ((int)m_World->GetComponent(e.Inflictor.ID, "Team")["Team"] != (int)m_World->GetComponent(e.Victim.ID, "Team")["Team"]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//determine the inflictors class
|
||||||
|
auto className = DetermineClass(e.Inflictor);
|
||||||
|
if (className == "") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//get the XML file, example: "Schema/Entities/BoostclassName.xml"
|
||||||
|
std::string classXML = "Schema/Entities/" + className + ".xml";
|
||||||
|
|
||||||
|
//check if player already has a child with the component, if so delete that child
|
||||||
|
auto playerBoostAssaultEntity = e.Victim.FirstChildByName(className);
|
||||||
|
if (playerBoostAssaultEntity.Valid()) {
|
||||||
|
m_World->DeleteEntity(playerBoostAssaultEntity.ID);
|
||||||
|
}
|
||||||
|
//load boost XML file, set it entity parented with the victim player
|
||||||
|
auto entityFile = ResourceManager::Load<EntityFile>(classXML);
|
||||||
|
EntityFileParser parser(entityFile);
|
||||||
|
EntityID boostAssaultEntity = parser.MergeEntities(m_World);
|
||||||
|
m_World->SetName(boostAssaultEntity, className);
|
||||||
|
m_World->SetParent(boostAssaultEntity, e.Victim.ID);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string BoostSystem::DetermineClass(EntityWrapper inflictorPlayer)
|
||||||
|
{
|
||||||
|
//determine the class based on what component the inflictor-player has
|
||||||
|
if (m_World->HasComponent(inflictorPlayer.ID, "DashAbility")) {
|
||||||
|
return "BoostAssault";
|
||||||
|
}
|
||||||
|
if (m_World->HasComponent(inflictorPlayer.ID, "ShieldAbility")) {
|
||||||
|
return "BoostDefender";
|
||||||
|
}
|
||||||
|
if (m_World->HasComponent(inflictorPlayer.ID, "SprintAbility")) {
|
||||||
|
return "BoostSniper";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@ bool DamageIndicatorSystem::OnPlayerDamage(Events::PlayerDamage& e)
|
|||||||
//if (e.Victim != LocalPlayer) {
|
//if (e.Victim != LocalPlayer) {
|
||||||
// return false;
|
// return false;
|
||||||
//}
|
//}
|
||||||
if (e.Victim != LocalPlayer && !e.Victim.IsChildOf(LocalPlayer)) {
|
if (e.Victim.Valid() && e.Victim != LocalPlayer && !e.Victim.IsChildOf(LocalPlayer)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,11 @@ bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e)
|
|||||||
|
|
||||||
ComponentWrapper cHealth = e.Victim["Health"];
|
ComponentWrapper cHealth = e.Victim["Health"];
|
||||||
double& health = cHealth["Health"];
|
double& health = cHealth["Health"];
|
||||||
|
//if player has the boost from a defender, subtract the damage taken by StrengthOfEffect amount
|
||||||
|
auto playerBoostDefenderEntity = e.Victim.FirstChildByName("BoostDefender");
|
||||||
|
if (playerBoostDefenderEntity.Valid()) {
|
||||||
|
e.Damage -= (double)playerBoostDefenderEntity["BoostDefender"]["StrengthOfEffect"];
|
||||||
|
}
|
||||||
health -= e.Damage;
|
health -= e.Damage;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -39,6 +44,7 @@ bool HealthSystem::OnInputCommand(Events::InputCommand& e)
|
|||||||
{
|
{
|
||||||
if (e.Command == "TakeDamage" && e.Value > 0 && LocalPlayer.Valid()) {
|
if (e.Command == "TakeDamage" && e.Value > 0 && LocalPlayer.Valid()) {
|
||||||
Events::PlayerDamage ev;
|
Events::PlayerDamage ev;
|
||||||
|
ev.Inflictor = LocalPlayer;
|
||||||
ev.Victim = LocalPlayer;
|
ev.Victim = LocalPlayer;
|
||||||
ev.Damage = e.Value;
|
ev.Damage = e.Value;
|
||||||
m_EventBroker->Publish(ev);
|
m_EventBroker->Publish(ev);
|
||||||
|
|||||||
@@ -53,6 +53,19 @@ void PlayerMovementSystem::updateMovementControllers(double dt)
|
|||||||
float playerMovementSpeed = player["Player"]["MovementSpeed"];
|
float playerMovementSpeed = player["Player"]["MovementSpeed"];
|
||||||
float playerCrouchSpeed = player["Player"]["CrouchSpeed"];
|
float playerCrouchSpeed = player["Player"]["CrouchSpeed"];
|
||||||
glm::vec3& wishDirection = player["Player"]["CurrentWishDirection"];
|
glm::vec3& wishDirection = player["Player"]["CurrentWishDirection"];
|
||||||
|
auto playerBoostAssaultEntity = player.FirstChildByName("BoostAssault");
|
||||||
|
if (playerBoostAssaultEntity.Valid()) {
|
||||||
|
playerMovementSpeed *= (double)playerBoostAssaultEntity["BoostAssault"]["StrengthOfEffect"];
|
||||||
|
playerCrouchSpeed *= (double)playerBoostAssaultEntity["BoostAssault"]["StrengthOfEffect"];
|
||||||
|
}
|
||||||
|
bool sniperSprinting = false;
|
||||||
|
if (player.HasComponent("SprintAbility")) {
|
||||||
|
if (controller->SniperSprintingCheck()) {
|
||||||
|
playerMovementSpeed *= (double)player["SprintAbility"]["StrengthOfEffect"];
|
||||||
|
playerCrouchSpeed *= (double)player["SprintAbility"]["StrengthOfEffect"];
|
||||||
|
sniperSprinting = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (player.HasComponent("Physics")) {
|
if (player.HasComponent("Physics")) {
|
||||||
ComponentWrapper cPhysics = player["Physics"];
|
ComponentWrapper cPhysics = player["Physics"];
|
||||||
@@ -79,18 +92,18 @@ void PlayerMovementSystem::updateMovementControllers(double dt)
|
|||||||
}
|
}
|
||||||
glm::vec3& velocity = cPhysics["Velocity"];
|
glm::vec3& velocity = cPhysics["Velocity"];
|
||||||
bool isOnGround = (bool)cPhysics["IsOnGround"];
|
bool isOnGround = (bool)cPhysics["IsOnGround"];
|
||||||
ImGui::Text(isOnGround ? "On ground" : "In air");
|
//ImGui::Text(isOnGround ? "On ground" : "In air");
|
||||||
ImGui::Text("velocity: (%f, %f, %f) |%f|", velocity.x, velocity.y, velocity.z, glm::length(velocity));
|
//ImGui::Text("velocity: (%f, %f, %f) |%f|", velocity.x, velocity.y, velocity.z, glm::length(velocity));
|
||||||
glm::vec3 groundVelocity(0.f, 0.f, 0.f);
|
glm::vec3 groundVelocity(0.f, 0.f, 0.f);
|
||||||
groundVelocity.x = velocity.x;
|
groundVelocity.x = velocity.x;
|
||||||
groundVelocity.z = velocity.z;
|
groundVelocity.z = velocity.z;
|
||||||
ImGui::Text("groundVelocity: (%f, %f, %f) |%f|", groundVelocity.x, groundVelocity.y, groundVelocity.z, glm::length(groundVelocity));
|
//ImGui::Text("groundVelocity: (%f, %f, %f) |%f|", groundVelocity.x, groundVelocity.y, groundVelocity.z, glm::length(groundVelocity));
|
||||||
ImGui::Text("wishDirection: (%f, %f, %f) |%f|", wishDirection.x, wishDirection.y, wishDirection.z, glm::length(wishDirection));
|
//ImGui::Text("wishDirection: (%f, %f, %f) |%f|", wishDirection.x, wishDirection.y, wishDirection.z, glm::length(wishDirection));
|
||||||
float currentSpeedProj = glm::dot(groundVelocity, wishDirection);
|
float currentSpeedProj = glm::dot(groundVelocity, wishDirection);
|
||||||
float addSpeed = wishSpeed - currentSpeedProj;
|
float addSpeed = wishSpeed - currentSpeedProj;
|
||||||
ImGui::Text("currentSpeedProj: %f", currentSpeedProj);
|
//ImGui::Text("currentSpeedProj: %f", currentSpeedProj);
|
||||||
ImGui::Text("wishSpeed: %f", wishSpeed);
|
//ImGui::Text("wishSpeed: %f", wishSpeed);
|
||||||
ImGui::Text("addSpeed: %f", addSpeed);
|
//ImGui::Text("addSpeed: %f", addSpeed);
|
||||||
|
|
||||||
if (addSpeed > 0) {
|
if (addSpeed > 0) {
|
||||||
static float accel = 15.f;
|
static float accel = 15.f;
|
||||||
@@ -104,6 +117,13 @@ void PlayerMovementSystem::updateMovementControllers(double dt)
|
|||||||
//if doubleTapped do Assault Dash - but only boost maximum 50.0f
|
//if doubleTapped do Assault Dash - but only boost maximum 50.0f
|
||||||
float doubleTapDashBoost = controller->AssaultDashDoubleTapped() ? 40.0f : 1.0f;
|
float doubleTapDashBoost = controller->AssaultDashDoubleTapped() ? 40.0f : 1.0f;
|
||||||
accelerationSpeed = glm::min(doubleTapDashBoost*glm::min(accelerationSpeed, addSpeed), 50.0f);
|
accelerationSpeed = glm::min(doubleTapDashBoost*glm::min(accelerationSpeed, addSpeed), 50.0f);
|
||||||
|
//if player has Boost from an Assault class, accelerate the player faster
|
||||||
|
if (playerBoostAssaultEntity.Valid()) {
|
||||||
|
accelerationSpeed *= (double)playerBoostAssaultEntity["BoostAssault"]["StrengthOfEffect"];
|
||||||
|
}
|
||||||
|
if (sniperSprinting) {
|
||||||
|
accelerationSpeed *= (double)player["SprintAbility"]["StrengthOfEffect"];
|
||||||
|
}
|
||||||
velocity += accelerationSpeed * wishDirection;
|
velocity += accelerationSpeed * wishDirection;
|
||||||
ImGui::Text("velocity: (%f, %f, %f) |%f|", velocity.x, velocity.y, velocity.z, glm::length(velocity));
|
ImGui::Text("velocity: (%f, %f, %f) |%f|", velocity.x, velocity.y, velocity.z, glm::length(velocity));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,6 +128,12 @@ bool PlayerSpawnSystem::OnPlayerSpawned(Events::PlayerSpawned& e)
|
|||||||
// When a player is actually spawned (since the actual spawning is handled on the server)
|
// When a player is actually spawned (since the actual spawning is handled on the server)
|
||||||
// Hack should be moved.
|
// Hack should be moved.
|
||||||
|
|
||||||
|
// TODO: Set the player name to whatever
|
||||||
|
EntityWrapper playerName = e.Player.FirstChildByName("PlayerName");
|
||||||
|
if (playerName.Valid()) {
|
||||||
|
playerName["Text"]["Content"] = e.PlayerName;
|
||||||
|
}
|
||||||
|
|
||||||
if (!IsClient) {
|
if (!IsClient) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -153,12 +159,6 @@ bool PlayerSpawnSystem::OnPlayerSpawned(Events::PlayerSpawned& e)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Set the player name to whatever
|
|
||||||
EntityWrapper playerName = e.Player.FirstChildByName("PlayerName");
|
|
||||||
if (playerName.Valid()) {
|
|
||||||
playerName["Text"]["Content"] = e.PlayerName;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,10 +181,10 @@ bool PlayerSpawnSystem::OnPlayerDeath(Events::PlayerDeath& e)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
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"];
|
||||||
m_SpawnRequests.push_back(req);
|
m_SpawnRequests.push_back(req);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -384,9 +384,10 @@ bool AssaultWeaponBehaviour::shoot(double damage)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for friendly fire
|
|
||||||
|
// If friendly fire - reduce damage to 0 (needed to make Boosts, Ammosharing work)
|
||||||
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)m_Player["Team"]["Team"]) {
|
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)m_Player["Team"]["Team"]) {
|
||||||
return false;
|
damage = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deal damage!
|
// Deal damage!
|
||||||
|
|||||||
Reference in New Issue
Block a user